diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b52985ed7..78e9164115 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,29 +2,34 @@ # GraphBLAS/CMakeLists.txt: cmake script for GraphBLAS #------------------------------------------------------------------------------- -# SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved. +# SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 # See the User Guide for details on how to compile SuiteSparse:GraphBLAS. +cmake_minimum_required ( VERSION 3.20 ) + #------------------------------------------------------------------------------- -# get the version +# define the project #------------------------------------------------------------------------------- -cmake_minimum_required ( VERSION 3.20 ) +project ( graphblas + LANGUAGES C ) -set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - ${CMAKE_SOURCE_DIR}/cmake_modules ) +#------------------------------------------------------------------------------- +# SuiteSparse policies +#------------------------------------------------------------------------------- -include ( GraphBLAS_version ) +set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + ${PROJECT_SOURCE_DIR}/cmake_modules ) #------------------------------------------------------------------------------- -# SuiteSparse policies +# get the version #------------------------------------------------------------------------------- -# CUDA is under development for now, and not deployed in production: - set ( ENABLE_CUDA false ) -# set ( ENABLE_CUDA true ) +include ( GraphBLAS_version ) + +set ( PROJECT_VERSION "${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}" ) #------------------------------------------------------------------------------- # SuiteSparse policies @@ -32,29 +37,32 @@ include ( GraphBLAS_version ) # GraphBLAS takes a long time to build, so do not build the static library # by default -set ( NSTATIC_DEFAULT_ON true ) +if ( NOT BUILD_SHARED_LIBS ) + set ( BUILD_STATIC_LIBS_DEFAULT_OFF ON ) +endif ( ) + +# CUDA is under development for now, and not deployed in production: +set ( ENABLE_CUDA OFF ) +# set ( ENABLE_CUDA ON ) include ( SuiteSparsePolicy ) -include ( GraphBLAS_JIT_paths ) -#------------------------------------------------------------------------------- -# define the project -#------------------------------------------------------------------------------- +if ( NOT GRAPHBLAS_BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS ) + # ignore current value of BUILD_STATIC_LIBS and set it to OFF + set ( BUILD_STATIC_LIBS OFF ) +endif ( ) if ( SUITESPARSE_CUDA ) # FOR NOW: do not compile FactoryKernels when developing the CUDA kernels - set ( COMPACT on ) + set ( COMPACT ON ) message ( STATUS "GraphBLAS CUDA JIT: enabled") - project ( graphblas - VERSION "${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}" - LANGUAGES CUDA C ) + enable_language ( CUDA ) else ( ) message ( STATUS "GraphBLAS CUDA JIT: disabled") - project ( graphblas - VERSION "${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}" - LANGUAGES C ) endif ( ) +include ( GraphBLAS_JIT_paths ) + #------------------------------------------------------------------------------- # find OpenMP, CUDA, RMM, and cpu_features #------------------------------------------------------------------------------- @@ -63,7 +71,7 @@ if ( SUITESPARSE_CUDA ) # with CUDA and RMM add_subdirectory ( CUDA ) set ( GB_CUDA GraphBLAS_CUDA ${CUDA_LIBRARIES} ) - set ( GB_RMM rmm_wrap ${CUDA_LIBRARIES} ) + set ( GB_RMM RMM_wrap ${CUDA_LIBRARIES} ) add_subdirectory ( rmm_wrap ) include_directories ( "rmm_wrap" ${CUDA_INCLUDE_DIRS} "/usr/local/cuda/include/cub" ) @@ -80,7 +88,7 @@ endif ( ) option ( NOPENMP "ON: do not use OpenMP. OFF (default): use OpenMP" off ) if ( NOPENMP ) # OpenMP has been disabled. - set ( OPENMP_FOUND false ) + set ( OpenMP_C_FOUND OFF ) else ( ) find_package ( OpenMP ) endif ( ) @@ -126,15 +134,17 @@ endif ( ) # determine build type #------------------------------------------------------------------------------- -# select "true" to build both dynamic and static libraries: -# set ( NOT NSTATIC true ) -# set ( NOT NSTATIC false ) -# or use cmake with -DNSTATIC=1 +# select "ON" to build both dynamic and static libraries: +# set ( BUILD_STATIC_LIBS ON ) +# set ( BUILD_STATIC_LIBS OFF ) +# or use cmake with -DGRAPHBLAS_BUILD_STATIC_LIBS=ON -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS ) message ( STATUS "Building all GraphBLAS libraries (static and dynamic)" ) +elseif ( BUILD_SHARED_LIBS ) + message ( STATUS "Building dynamic GraphBLAS library (no static)" ) else ( ) - message ( STATUS "Building dynamic GraphBLAS library" ) + message ( STATUS "Building static GraphBLAS library (no shared)" ) endif ( ) #------------------------------------------------------------------------------- @@ -217,6 +227,9 @@ if ( NJIT ) "Source/FactoryKernels/*.c" ) endif ( ) else ( ) + # generate compressed JIT sources + add_subdirectory ( JITpackage ) + if ( COMPACT ) # with the JIT; but do not compile the FactoryKernels file ( GLOB GRAPHBLAS_SOURCES "Source/*.c" "Config/*.c" "PreJIT/*.c" @@ -228,60 +241,87 @@ else ( ) endif ( ) endif ( ) -add_library ( GraphBLAS SHARED ${GRAPHBLAS_SOURCES} ) +if ( BUILD_SHARED_LIBS ) + add_library ( GraphBLAS SHARED ${GRAPHBLAS_SOURCES} ) -set_target_properties ( GraphBLAS PROPERTIES - VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB} - OUTPUT_NAME graphblas - SOVERSION ${GraphBLAS_VERSION_MAJOR} - C_STANDARD 11 - C_STANDARD_REQUIRED ON - PUBLIC_HEADER "Include/GraphBLAS.h" - WINDOWS_EXPORT_ALL_SYMBOLS ON ) + set_target_properties ( GraphBLAS PROPERTIES + VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB} + OUTPUT_NAME graphblas + SOVERSION ${GraphBLAS_VERSION_MAJOR} + C_STANDARD 11 + C_STANDARD_REQUIRED ON + PUBLIC_HEADER "Include/GraphBLAS.h" + WINDOWS_EXPORT_ALL_SYMBOLS ON ) -target_include_directories ( GraphBLAS - INTERFACE $ - $ ) + if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" ) + set_target_properties ( GraphBLAS PROPERTIES EXPORT_NO_SYSTEM ON ) + endif ( ) -if ( SUITESPARSE_CUDA ) - add_dependencies ( GraphBLAS GraphBLAS_CUDA ) -# add_dependencies ( GraphBLAS rmm_wrap ) -endif ( ) + target_include_directories ( GraphBLAS + INTERFACE $ + $ ) -if ( WIN32 ) - # Compiling the graphblas dll on Windows: export the dll symbols - target_compile_definitions ( GraphBLAS PRIVATE GB_DLL_EXPORT ) + if ( SUITESPARSE_CUDA ) + add_dependencies ( GraphBLAS GraphBLAS_CUDA ) + add_dependencies ( GraphBLAS RMM_wrap ) + target_compile_definitions ( GraphBLAS PRIVATE "SUITESPARSE_CUDA" ) + endif ( ) + + if ( WIN32 ) + # Compiling the graphblas dll on Windows: export the dll symbols + target_compile_definitions ( GraphBLAS PRIVATE GB_DLL_EXPORT ) + endif ( ) + + if ( NOT NJIT ) + # Make sure compressed sources are built before library + add_dependencies ( GraphBLAS grb_jitpackage ) + endif ( ) endif ( ) #------------------------------------------------------------------------------- # static graphblas library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( GraphBLAS_static STATIC ${GRAPHBLAS_SOURCES} ) set_target_properties ( GraphBLAS_static PROPERTIES - VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB} OUTPUT_NAME graphblas - SOVERSION ${GraphBLAS_VERSION_MAJOR} C_STANDARD 11 - C_STANDARD_REQUIRED ON ) + C_STANDARD_REQUIRED ON + PUBLIC_HEADER "Include/GraphBLAS.h" ) if ( MSVC ) set_target_properties ( GraphBLAS_static PROPERTIES OUTPUT_NAME graphblas_static ) endif ( ) + if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" ) + set_target_properties ( GraphBLAS_static PROPERTIES EXPORT_NO_SYSTEM ON ) + endif ( ) + target_include_directories ( GraphBLAS_static - INTERFACE $ + INTERFACE $ $ ) if ( SUITESPARSE_CUDA ) add_dependencies ( GraphBLAS_static GraphBLAS_CUDA ) set ( GRAPHBLAS_STATIC_MODULES "${GRAPHBLAS_STATIC_MODULES} GraphBLAS_CUDA" ) -# add_dependencies ( GraphBLAS_static rmm_wrap ) + add_dependencies ( GraphBLAS_static RMM_wrap ) + target_compile_definitions ( GraphBLAS_static PRIVATE "SUITESPARSE_CUDA" ) + endif ( ) + + if ( WIN32 ) + # On Windows, don't use __declspec ( dllimport ) for static library. + target_compile_definitions ( GraphBLAS_static PUBLIC GB_STATIC ) + endif ( ) + + if ( NOT NJIT ) + # Make sure compressed sources are built before library + add_dependencies ( GraphBLAS_static grb_jitpackage ) endif ( ) + endif ( ) #------------------------------------------------------------------------------- @@ -296,8 +336,10 @@ if ( NOT GBNCPUFEAT ) check_include_file ( dlfcn.h HAVE_DLFCN_H ) if ( HAVE_DLFCN_H ) message ( STATUS "cpu_feautures has dlfcn.h" ) - target_compile_definitions ( GraphBLAS PRIVATE HAVE_DLFCN_H ) - if ( NOT NSTATIC ) + if ( BUILD_SHARED_LIBS ) + target_compile_definitions ( GraphBLAS PRIVATE HAVE_DLFCN_H ) + endif ( ) + if ( BUILD_STATIC_LIBS ) target_compile_definitions ( GraphBLAS_static PRIVATE HAVE_DLFCN_H ) endif ( ) else ( ) @@ -306,8 +348,10 @@ if ( NOT GBNCPUFEAT ) check_symbol_exists ( getauxval "sys/auxv.h" HAVE_STRONG_GETAUXVAL ) if ( HAVE_STRONG_GETAUXVAL ) message ( STATUS "cpu_feautures has getauxval from sys/auxv.h" ) - target_compile_definitions ( GraphBLAS PRIVATE HAVE_STRONG_GETAUXVAL ) - if ( NOT NSTATIC ) + if ( BUILD_SHARED_LIBS ) + target_compile_definitions ( GraphBLAS PRIVATE HAVE_STRONG_GETAUXVAL ) + endif ( ) + if ( BUILD_STATIC_LIBS ) target_compile_definitions ( GraphBLAS_static PRIVATE HAVE_STRONG_GETAUXVAL ) endif ( ) else ( ) @@ -323,8 +367,10 @@ endif ( ) # libm: if ( NOT WIN32 ) set ( GB_M "m" ) - target_link_libraries ( GraphBLAS PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_SHARED_LIBS ) + target_link_libraries ( GraphBLAS PRIVATE m ) + endif ( ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS "m" ) target_link_libraries ( GraphBLAS_static PUBLIC m ) endif ( ) @@ -332,8 +378,10 @@ endif ( ) # libdl if ( NOT WIN32 ) - target_link_libraries ( GraphBLAS PRIVATE dl ) - if ( NOT NSTATIC ) + if ( BUILD_SHARED_LIBS ) + target_link_libraries ( GraphBLAS PRIVATE dl ) + endif ( ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS "dl" ) target_link_libraries ( GraphBLAS_static PUBLIC dl ) endif ( ) @@ -342,8 +390,10 @@ endif ( ) # atomic include ( SuiteSparseAtomic ) if ( LIBATOMIC_REQUIRED ) - target_link_libraries ( GraphBLAS PRIVATE atomic ) - if ( NOT NSTATIC ) + if ( BUILD_SHARED_LIBS ) + target_link_libraries ( GraphBLAS PRIVATE atomic ) + endif ( ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS "atomic" ) target_link_libraries ( GraphBLAS_static PUBLIC atomic ) endif ( ) @@ -353,24 +403,27 @@ endif ( ) # add the OpenMP, IPP, CUDA, BLAS, etc libraries #------------------------------------------------------------------------------- -if ( OPENMP_FOUND ) +if ( OpenMP_C_FOUND ) message ( STATUS "CMAKE OpenMP libraries: ${OpenMP_C_LIBRARIES}" ) message ( STATUS "CMAKE OpenMP include: ${OpenMP_C_INCLUDE_DIRS}" ) # revert to ${OpenMP_C_LIBRARIES}: - target_link_libraries ( GraphBLAS PRIVATE ${OpenMP_C_LIBRARIES} ) + if ( BUILD_SHARED_LIBS ) + target_link_libraries ( GraphBLAS PRIVATE ${OpenMP_C_LIBRARIES} ) + target_include_directories ( GraphBLAS PRIVATE ${OpenMP_C_INCLUDE_DIRS} ) + endif ( ) # cannot use OpenMP::OpenMP_C because the JIT is configured with # LINK_LIBRARIES. Those are -l lists passed directly to the # C compiler, and this is converted into "-lOpenMP::OpenMP_C". # So this breaks: # target_link_libraries ( GraphBLAS PRIVATE OpenMP::OpenMP_C ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS ${OpenMP_C_LIBRARIES} ) target_link_libraries ( GraphBLAS_static PUBLIC ${OpenMP_C_LIBRARIES} ) # target_link_libraries ( GraphBLAS_static PUBLIC OpenMP::OpenMP_C ) + target_include_directories ( GraphBLAS_static PRIVATE ${OpenMP_C_INCLUDE_DIRS} ) endif ( ) message ( STATUS "CMAKE OpenMP C flags: ${OpenMP_C_FLAGS}" ) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} " ) - include_directories ( ${OpenMP_C_INCLUDE_DIRS} ) else ( ) message ( WARNING "WARNING: OpenMP was not found (or was disabled with NOPENMP). See the " @@ -393,14 +446,20 @@ else ( ) endif ( ) # get the current library list, before linking with cuda and rmm -get_target_property ( GB_CMAKE_LIBRARIES GraphBLAS LINK_LIBRARIES ) +if ( BUILD_SHARED_LIBS ) + get_target_property ( GB_CMAKE_LIBRARIES GraphBLAS LINK_LIBRARIES ) +else ( ) + get_target_property ( GB_CMAKE_LIBRARIES GraphBLAS_static LINK_LIBRARIES ) +endif ( ) if ( NOT GB_CMAKE_LIBRARIES ) set ( GB_CMAKE_LIBRARIES "" ) endif ( ) if ( SUITESPARSE_CUDA ) - target_link_libraries ( GraphBLAS PRIVATE ${GB_CUDA} ${GB_RMM} ) - if ( NOT NSTATIC ) + if ( BUILD_SHARED_LIBS ) + target_link_libraries ( GraphBLAS PRIVATE ${GB_CUDA} ${GB_RMM} ) + endif ( ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( GraphBLAS_static PUBLIC ${GB_CUDA} ${GB_RMM} ) endif ( ) endif ( ) @@ -437,23 +496,50 @@ if ( DEMO ) add_executable ( gauss_demo "Demo/Program/gauss_demo.c" ) # Libraries required for Demo programs - target_link_libraries ( openmp_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( openmp2_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( complex_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( kron_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( simple_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( wildtype_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( reduce_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( import_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( wathen_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( context_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - target_link_libraries ( gauss_demo PUBLIC GraphBLAS ${GB_M} ${GB_CUDA} ${GB_RMM} ) - if ( OPENMP_FOUND ) - target_link_libraries ( openmp_demo PUBLIC OpenMP::OpenMP_C ) - target_link_libraries ( openmp2_demo PUBLIC OpenMP::OpenMP_C ) - 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 ) + if ( BUILD_SHARED_LIBS ) + target_link_libraries ( openmp_demo PUBLIC GraphBLAS ) + target_link_libraries ( openmp2_demo PUBLIC GraphBLAS ) + target_link_libraries ( complex_demo PUBLIC GraphBLAS ) + target_link_libraries ( kron_demo PUBLIC GraphBLAS ) + target_link_libraries ( simple_demo PUBLIC GraphBLAS ) + target_link_libraries ( wildtype_demo PUBLIC GraphBLAS ) + target_link_libraries ( reduce_demo PUBLIC GraphBLAS ) + target_link_libraries ( import_demo PUBLIC GraphBLAS ) + target_link_libraries ( wathen_demo PUBLIC GraphBLAS ) + target_link_libraries ( context_demo PUBLIC GraphBLAS ) + target_link_libraries ( gauss_demo PUBLIC GraphBLAS ) + else ( ) + target_link_libraries ( openmp_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( openmp2_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( complex_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( kron_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( simple_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( wildtype_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( reduce_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( import_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( wathen_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( context_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( gauss_demo PUBLIC GraphBLAS_static ) + endif ( ) + + target_link_libraries ( openmp_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( openmp2_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( complex_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( kron_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( simple_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( wildtype_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( reduce_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( import_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + 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} ) + + if ( OpenMP_C_FOUND ) + target_link_libraries ( openmp_demo PUBLIC OpenMP::OpenMP_C ) + target_link_libraries ( openmp2_demo PUBLIC OpenMP::OpenMP_C ) + 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 ) endif ( ) else ( ) @@ -468,17 +554,20 @@ endif ( ) include ( CMakePackageConfigHelpers ) -install ( TARGETS GraphBLAS - EXPORT GraphBLASTargets - LIBRARY DESTINATION ${SUITESPARSE_LIBDIR} - ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} - RUNTIME DESTINATION ${SUITESPARSE_BINDIR} - PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) +if ( BUILD_SHARED_LIBS ) + install ( TARGETS GraphBLAS + EXPORT GraphBLASTargets + LIBRARY DESTINATION ${SUITESPARSE_LIBDIR} + ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} + RUNTIME DESTINATION ${SUITESPARSE_BINDIR} + PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) +endif ( ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS GraphBLAS_static EXPORT GraphBLASTargets - ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} ) + ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} + PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) endif ( ) # create (temporary) export target file during build @@ -489,21 +578,30 @@ export ( EXPORT GraphBLASTargets # install export target and config for find_package install ( EXPORT GraphBLASTargets NAMESPACE SuiteSparse:: - DESTINATION ${SUITESPARSE_LIBDIR}/cmake/GraphBLAS ) + DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/GraphBLAS ) +# generate config file to be used in common build tree +set ( SUITESPARSE_IN_BUILD_TREE ON ) configure_package_config_file ( Config/GraphBLASConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/GraphBLASConfig.cmake - INSTALL_DESTINATION ${SUITESPARSE_LIBDIR}/cmake/GraphBLAS ) + INSTALL_DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/GraphBLASConfig.cmake ) + +# generate config file to be installed +set ( SUITESPARSE_IN_BUILD_TREE OFF ) +configure_package_config_file ( + Config/GraphBLASConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/target/GraphBLASConfig.cmake + INSTALL_DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/GraphBLAS ) write_basic_package_version_file ( ${CMAKE_CURRENT_BINARY_DIR}/GraphBLASConfigVersion.cmake COMPATIBILITY SameMajorVersion ) install ( FILES - ${CMAKE_CURRENT_BINARY_DIR}/GraphBLASConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/target/GraphBLASConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/GraphBLASConfigVersion.cmake - DESTINATION ${SUITESPARSE_LIBDIR}/cmake/GraphBLAS ) + DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/GraphBLAS ) #------------------------------------------------------------------------------- # create pkg-config file @@ -558,7 +656,7 @@ if ( NOT MSVC ) NEWLINE_STYLE LF ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/GraphBLAS.pc - DESTINATION ${SUITESPARSE_LIBDIR}/pkgconfig ) + DESTINATION ${SUITESPARSE_PKGFILEDIR}/pkgconfig ) endif ( ) #------------------------------------------------------------------------------- @@ -598,4 +696,6 @@ endif ( ) # report status #------------------------------------------------------------------------------- -include ( SuiteSparseReport ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) + include ( SuiteSparseReport ) +endif ( ) diff --git a/CUDA/CMakeLists.txt b/CUDA/CMakeLists.txt index 4c302df59c..a035f1b1bf 100644 --- a/CUDA/CMakeLists.txt +++ b/CUDA/CMakeLists.txt @@ -55,6 +55,7 @@ set ( GRAPHBLAS_CUDA_INCLUDES ../Source/Shared ../Source/Template ../Source/Factories + Template ../Include ../CUDA ) @@ -64,18 +65,26 @@ message ( STATUS "GraphBLAS CUDA includes: ${GRAPHBLAS_CUDA_INCLUDES}" ) # GraphBLAS_CUDA properties #------------------------------------------------------------------------------- -target_include_directories(GraphBLAS_CUDA PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} +target_include_directories ( GraphBLAS_CUDA PRIVATE ${GRAPHBLAS_CUDA_INCLUDES}) -set_target_properties(GraphBLAS_CUDA PROPERTIES POSITION_INDEPENDENT_CODE ON) -set_target_properties(GraphBLAS_CUDA PROPERTIES CUDA_SEPARABLE_COMPILATION ON) +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 -set_target_properties(GraphBLAS_CUDA PROPERTIES CUDA_ARCHITECTURES "52;75;80" ) +set_target_properties ( GraphBLAS_CUDA PROPERTIES CUDA_ARCHITECTURES "52;75;80" ) -target_link_libraries(GraphBLAS_CUDA CUDA::nvrtc CUDA::cudart_static CUDA::cuda_driver CUDA::nvToolsExt ) +target_link_libraries ( GraphBLAS_CUDA PRIVATE CUDA::nvrtc CUDA::cudart_static CUDA::cuda_driver ) + +if ( TARGET CUDA::nvtx3 ) + target_link_libraries ( GraphBLAS_CUDA PRIVATE CUDA::nvtx3 ) + target_compile_definitions ( GraphBLAS_CUDA PRIVATE GBNVTX ) +endif ( ) target_compile_definitions ( GraphBLAS_CUDA PUBLIC "SUITESPARSE_CUDA" ) +if ( OpenMP_CXX_FOUND ) + target_include_directories ( GraphBLAS_CUDA PRIVATE OpenMP::OpenMP_CXX ) +endif ( ) + target_include_directories ( GraphBLAS_CUDA INTERFACE $ $ ) @@ -101,12 +110,12 @@ export ( EXPORT GraphBLAS_CUDATargets # install export target and config for find_package install ( EXPORT GraphBLAS_CUDATargets NAMESPACE SuiteSparse:: - DESTINATION ${SUITESPARSE_LIBDIR}/cmake/GraphBLAS ) + DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/GraphBLAS ) configure_package_config_file ( Config/GraphBLAS_CUDAConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/GraphBLAS_CUDAConfig.cmake - INSTALL_DESTINATION ${SUITESPARSE_LIBDIR}/cmake/GraphBLAS ) + INSTALL_DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/GraphBLAS ) write_basic_package_version_file ( ${CMAKE_CURRENT_BINARY_DIR}/GraphBLAS_CUDAConfigVersion.cmake @@ -115,7 +124,7 @@ write_basic_package_version_file ( install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/GraphBLAS_CUDAConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/GraphBLAS_CUDAConfigVersion.cmake - DESTINATION ${SUITESPARSE_LIBDIR}/cmake/GraphBLAS ) + DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/GraphBLAS ) #------------------------------------------------------------------------------- # create pkg-config file @@ -143,13 +152,15 @@ if ( NOT MSVC ) NEWLINE_STYLE LF ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/GraphBLAS_CUDA.pc - DESTINATION ${SUITESPARSE_LIBDIR}/pkgconfig ) + DESTINATION ${SUITESPARSE_PKGFILEDIR}/pkgconfig ) endif ( ) #------------------------------------------------------------------------------- # test suite for the CUDA kernels #------------------------------------------------------------------------------- +if ( 0 ) + # 1. Execute enumify/stringify/jitify logic to compile ptx kernels and # compile/link w/ relevant *.cu files. @@ -244,28 +255,27 @@ set_target_properties(graphblascuda_test PROPERTIES CUDA_ARCHITECTURES "52;75;80 include(GoogleTest) -add_dependencies(graphblascuda_test GraphBLAS) -add_dependencies(graphblascuda_test GraphBLAS_CUDA) -add_dependencies(graphblascuda_test gtest_main) -add_dependencies(graphblascuda_test rmm_wrap) - -target_link_libraries(graphblascuda_test - PUBLIC - GraphBLAS - GraphBLAS_CUDA - rmm_wrap - CUDA::cudart_static - CUDA::nvrtc - ${ADDITIONAL_DEPS} - PRIVATE - gtest_main) - -target_include_directories(graphblascuda_test - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/../Include - ${CMAKE_CURRENT_SOURCE_DIR}/../rmm_wrap - rmm_wrap - ${ADDITIONAL_INCLUDES} - ${CUDAToolkit_INCLUDE_DIRS} - ${GRAPHBLAS_CUDA_INCLUDES}) +if ( ENABLE_SHARED_LIBS ) + target_link_libraries ( graphblascuda_test PUBLIC GraphBLAS ) +else ( ) + target_link_libraries ( graphblascuda_test PUBLIC GraphBLAS_static ) +endif ( ) +target_link_libraries ( graphblascuda_test + PUBLIC + GraphBLAS_CUDA + RMM_wrap + CUDA::cudart_static + CUDA::nvrtc + ${ADDITIONAL_DEPS} + PRIVATE + gtest_main ) + +target_include_directories ( graphblascuda_test + PUBLIC + rmm_wrap + ${ADDITIONAL_INCLUDES} + ${CUDAToolkit_INCLUDE_DIRS} + ${GRAPHBLAS_CUDA_INCLUDES} ) + +endif ( ) diff --git a/CUDA/GB_cuda_init.c b/CUDA/GB_cuda_init.c index 5db44e8967..25dd233b88 100644 --- a/CUDA/GB_cuda_init.c +++ b/CUDA/GB_cuda_init.c @@ -1,8 +1,8 @@ //------------------------------------------------------------------------------ -// GB_cuda_init: initialize the GPUs for use by GraphBLAS +// GraphBLAS/CUDA/GB_cuda_init: initialize the GPUs for use by GraphBLAS //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ diff --git a/CUDA/GB_cuda_kernel.h b/CUDA/GB_cuda_kernel.h index e4a8a0a30e..6ba8d69be3 100644 --- a/CUDA/GB_cuda_kernel.h +++ b/CUDA/GB_cuda_kernel.h @@ -75,9 +75,6 @@ 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) diff --git a/CUDA/GB_cuda_type_bits.c b/CUDA/GB_cuda_type_bits.c index b30c5c21fa..52b446a4ea 100644 --- a/CUDA/GB_cuda_type_bits.c +++ b/CUDA/GB_cuda_type_bits.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -#undef GBCUDA_CPLUSPLUS +#if 0 #include "GB.h" size_t GB_cuda_type_bits (GB_Type_code); @@ -26,3 +26,4 @@ size_t GB_cuda_type_bits (GB_Type_code type_code) } } +#endif diff --git a/CUDA/templates/GB_jit_AxB_dot3_phase1.cuh b/CUDA/templates/GB_jit_AxB_dot3_phase1.cuh index 287aa7fae1..c2654ca296 100644 --- a/CUDA/templates/GB_jit_AxB_dot3_phase1.cuh +++ b/CUDA/templates/GB_jit_AxB_dot3_phase1.cuh @@ -80,12 +80,14 @@ __global__ void GB_jit_AxB_dot3_phase1 const bool M_is_hyper = M->h != NULL ; ASSERT (GB_M_IS_SPARSE || GB_M_IS_HYPER) ; + const int64_t *__restrict__ Ah = A->h ; const int64_t *__restrict__ Ap = A->p ; const int64_t *__restrict__ Ai = A->i ; const int64_t avlen = A->vlen ; // const int64_t anz = GB_nnz(A) ; const GB_A_NVALS (anz) ; + const int64_t *__restrict__ Bh = B->h ; const int64_t *__restrict__ Bp = B->p ; const int64_t *__restrict__ Bi = B->i ; const int64_t bvlen = B->vlen ; @@ -93,23 +95,17 @@ __global__ void GB_jit_AxB_dot3_phase1 const GB_B_NVALS (bnz) ; #if GB_A_IS_HYPER - const int64_t anvec = A->nvec ; - const int64_t *__restrict__ Ah = A->h ; - const int64_t *__restrict__ A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *__restrict__ A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *__restrict__ A_Yx = (int64_t *) - ((A->Y == NULL) ? NULL : A->Y->x) ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *__restrict__ A_Yp = A->Y->p ; + const int64_t *__restrict__ A_Yi = A->Y->i ; + const int64_t *__restrict__ A_Yx = (int64_t *) A->Y->x ; + const int64_t A_hash_bits = A->Y->vdim - 1 ; #endif #if GB_B_IS_HYPER - const int64_t bnvec = B->nvec ; - const int64_t *__restrict__ Bh = B->h ; - const int64_t *__restrict__ B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *__restrict__ B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *__restrict__ B_Yx = (int64_t *) - ((B->Y == NULL) ? NULL : B->Y->x) ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *__restrict__ B_Yp = B->Y->p ; + const int64_t *__restrict__ B_Yi = B->Y->i ; + const int64_t *__restrict__ B_Yx = (int64_t *) B->Y->x ; + const int64_t B_hash_bits = B->Y->vdim - 1 ; #endif // int64_t *restrict Cp = C->p ; // copy of Mp @@ -224,8 +220,8 @@ __global__ void GB_jit_AxB_dot3_phase1 int64_t pB, pB_end ; #if GB_B_IS_HYPER - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, - B_hash_bits, j, &pB, &pB_end) ; + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + j, &pB, &pB_end) ; #elif GB_B_IS_SPARSE pB = Bp[j] ; pB_end = Bp[j+1] ; @@ -245,8 +241,8 @@ __global__ void GB_jit_AxB_dot3_phase1 int64_t pA, pA_end ; #if GB_A_IS_HYPER - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, - A_hash_bits, i, &pA, &pA_end) ; + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + i, &pA, &pA_end) ; #elif GB_A_IS_SPARSE pA = Ap[i] ; pA_end = Ap[i+1] ; diff --git a/CUDA/templates/GB_jit_AxB_dot3_phase3_mp.cuh b/CUDA/templates/GB_jit_AxB_dot3_phase3_mp.cuh index 16364e8a38..267b41b419 100644 --- a/CUDA/templates/GB_jit_AxB_dot3_phase3_mp.cuh +++ b/CUDA/templates/GB_jit_AxB_dot3_phase3_mp.cuh @@ -114,23 +114,17 @@ __global__ void AxB_dot3_phase3_mp ASSERT (GB_B_IS_HYPER || GB_B_IS_SPARSE) ; #if GB_A_IS_HYPER - const int64_t anvec = A->nvec ; - const int64_t *__restrict__ Ah = A->h ; - const int64_t *__restrict__ A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *__restrict__ A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *__restrict__ A_Yx = (int64_t *) - ((A->Y == NULL) ? NULL : A->Y->x) ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *__restrict__ A_Yp = A->Y->p ; + const int64_t *__restrict__ A_Yi = A->Y->i ; + const int64_t *__restrict__ A_Yx = (int64_t *) A->Y->x ; + const int64_t A_hash_bits = A->Y->vdim - 1 ; #endif #if GB_B_IS_HYPER - const int64_t bnvec = B->nvec ; - const int64_t *__restrict__ Bh = B->h ; - const int64_t *__restrict__ B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *__restrict__ B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *__restrict__ B_Yx = (int64_t *) - ((B->Y == NULL) ? NULL : B->Y->x) ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *__restrict__ B_Yp = B->Y->p ; + const int64_t *__restrict__ B_Yi = B->Y->i ; + const int64_t *__restrict__ B_Yx = (int64_t *) B->Y->x ; + const int64_t B_hash_bits = B->Y->vdim - 1 ; #endif // zombie count @@ -168,7 +162,7 @@ __global__ void AxB_dot3_phase3_mp // find A(:,i) int64_t pA_start, pA_end ; #if GB_A_IS_HYPER - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, i, &pA_start, &pA_end) ; #else pA_start = Ap[i] ; @@ -198,7 +192,7 @@ __global__ void AxB_dot3_phase3_mp // find B(:,j) int64_t pB_start, pB_end ; #if GB_B_IS_HYPER - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, j, &pB_start, &pB_end) ; #else pB_start = Bp[j] ; diff --git a/CUDA/templates/GB_jit_AxB_dot3_phase3_spdn.cuh b/CUDA/templates/GB_jit_AxB_dot3_phase3_spdn.cuh index 883a46fe36..499a5f386f 100644 --- a/CUDA/templates/GB_jit_AxB_dot3_phase3_spdn.cuh +++ b/CUDA/templates/GB_jit_AxB_dot3_phase3_spdn.cuh @@ -113,23 +113,17 @@ __global__ void AxB_dot3_phase3_spdn #endif #if GB_A_IS_HYPER - const int64_t anvec = A->nvec ; - const int64_t *__restrict__ Ah = A->h ; - const int64_t *__restrict__ A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *__restrict__ A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *__restrict__ A_Yx = (int64_t *) - ((A->Y == NULL) ? NULL : A->Y->x) ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *__restrict__ A_Yp = A->Y->p ; + const int64_t *__restrict__ A_Yi = A->Y->i ; + const int64_t *__restrict__ A_Yx = (int64_t *) A->Y->x ; + const int64_t A_hash_bits = A->Y->vdim - 1 ; #endif #if GB_B_IS_HYPER - const int64_t bnvec = B->nvec ; - const int64_t *__restrict__ Bh = B->h ; - const int64_t *__restrict__ B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *__restrict__ B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *__restrict__ B_Yx = (int64_t *) - ((B->Y == NULL) ? NULL : B->Y->x) ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *__restrict__ B_Yp = B->Y->p ; + const int64_t *__restrict__ B_Yi = B->Y->i ; + const int64_t *__restrict__ B_Yx = (int64_t *) B->Y->x ; + const int64_t B_hash_bits = B->Y->vdim - 1 ; #endif // zombie count @@ -157,7 +151,7 @@ __global__ void AxB_dot3_phase3_spdn // find A(:,i) int64_t pA, pA_end ; #if GB_A_IS_HYPER - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, i, &pA, &pA_end) ; #elif GB_A_IS_SPARSE pA = Ap[i] ; @@ -177,7 +171,7 @@ __global__ void AxB_dot3_phase3_spdn // find B(:,j) int64_t pB, pB_end ; #if GB_B_IS_HYPER - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, j, &pB, &pB_end) ; #elif GB_B_IS_SPARSE pB = Bp[j] ; diff --git a/CUDA/templates/GB_jit_AxB_dot3_phase3_vsdn.cuh b/CUDA/templates/GB_jit_AxB_dot3_phase3_vsdn.cuh index 061a2608e2..d5713d5e1c 100644 --- a/CUDA/templates/GB_jit_AxB_dot3_phase3_vsdn.cuh +++ b/CUDA/templates/GB_jit_AxB_dot3_phase3_vsdn.cuh @@ -98,23 +98,17 @@ __global__ void AxB_dot3_phase3_vsdn #endif #if GB_A_IS_HYPER - const int64_t anvec = A->nvec ; - const int64_t *__restrict__ Ah = A->h ; - const int64_t *__restrict__ A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *__restrict__ A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *__restrict__ A_Yx = (int64_t *) - ((A->Y == NULL) ? NULL : A->Y->x) ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *__restrict__ A_Yp = A->Y->p ; + const int64_t *__restrict__ A_Yi = A->Y->i ; + const int64_t *__restrict__ A_Yx = (int64_t *) A->Y->x ; + const int64_t A_hash_bits = A->Y->vdim - 1 ; #endif #if GB_B_IS_HYPER - const int64_t bnvec = B->nvec ; - const int64_t *__restrict__ Bh = B->h ; - const int64_t *__restrict__ B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *__restrict__ B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *__restrict__ B_Yx = (int64_t *) - ((B->Y == NULL) ? NULL : B->Y->x) ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *__restrict__ B_Yp = B->Y->p ; + const int64_t *__restrict__ B_Yi = B->Y->i ; + const int64_t *__restrict__ B_Yx = (int64_t *) B->Y->x ; + const int64_t B_hash_bits = B->Y->vdim - 1 ; #endif // typedef cub::BlockReduce BlockReduce; @@ -153,7 +147,7 @@ __global__ void AxB_dot3_phase3_vsdn // find A(:,i) int64_t pA, pA_end ; #if GB_A_IS_HYPER - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, i, &pA, &pA_end) ; #elif GB_A_IS_SPARSE pA = Ap[i] ; @@ -167,7 +161,7 @@ __global__ void AxB_dot3_phase3_vsdn // find B(:,j) int64_t pB, pB_end ; #if GB_B_IS_HYPER - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, j, &pB, &pB_end) ; #elif GB_B_IS_SPARSE pB = Bp[j]; // col of C diff --git a/CUDA/templates/GB_jit_AxB_dot3_phase3_vsvs.cuh b/CUDA/templates/GB_jit_AxB_dot3_phase3_vsvs.cuh index 9fe6762987..02a94eeeb6 100644 --- a/CUDA/templates/GB_jit_AxB_dot3_phase3_vsvs.cuh +++ b/CUDA/templates/GB_jit_AxB_dot3_phase3_vsvs.cuh @@ -145,23 +145,17 @@ __global__ void AxB_dot3_phase3_vsvs #endif #if GB_A_IS_HYPER - const int64_t anvec = A->nvec ; - const int64_t *__restrict__ Ah = A->h ; - const int64_t *__restrict__ A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *__restrict__ A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *__restrict__ A_Yx = (int64_t *) - ((A->Y == NULL) ? NULL : A->Y->x) ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *__restrict__ A_Yp = A->Y->p ; + const int64_t *__restrict__ A_Yi = A->Y->i ; + const int64_t *__restrict__ A_Yx = (int64_t *) A->Y->x ; + const int64_t A_hash_bits = A->Y->vdim - 1 ; #endif #if GB_B_IS_HYPER - const int64_t bnvec = B->nvec ; - const int64_t *__restrict__ Bh = B->h ; - const int64_t *__restrict__ B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *__restrict__ B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *__restrict__ B_Yx = (int64_t *) - ((B->Y == NULL) ? NULL : B->Y->x) ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *__restrict__ B_Yp = B->Y->p ; + const int64_t *__restrict__ B_Yi = B->Y->i ; + const int64_t *__restrict__ B_Yx = (int64_t *) B->Y->x ; + const int64_t B_hash_bits = B->Y->vdim - 1 ; #endif //int64_t pfirst, plast; @@ -190,7 +184,7 @@ __global__ void AxB_dot3_phase3_vsvs // find A(:,i): A is always sparse or hypersparse int64_t pA, pA_end ; #if GB_A_IS_HYPER - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, i, &pA, &pA_end) ; #else pA = Ap[i] ; @@ -200,7 +194,7 @@ __global__ void AxB_dot3_phase3_vsvs // find B(:,j): B is always sparse or hypersparse int64_t pB, pB_end ; #if GB_B_IS_HYPER - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, j, &pB, &pB_end) ; #else pB = Bp[j] ; diff --git a/CUDA/test/run_tests.cpp b/CUDA/test/run_tests.cpp index 7f52b9ec1f..8b627db141 100644 --- a/CUDA/test/run_tests.cpp +++ b/CUDA/test/run_tests.cpp @@ -1,6 +1,8 @@ #include +extern "C" { #include "GraphBLAS.h" +} #include "rmm_wrap.h" #include "test_utility.hpp" diff --git a/Config/.gitignore b/Config/.gitignore new file mode 100644 index 0000000000..5b47ab2e61 --- /dev/null +++ b/Config/.gitignore @@ -0,0 +1,5 @@ +# Ignore these files: + +# cmake constructs GB_config.h from GB_config.h.in with the name of the +# compiler, its flags, and other platform-specific properties. +GB_config.h diff --git a/Config/GB_config.h b/Config/GB_config.h index 17787706ef..fd13fa13ea 100644 --- a/Config/GB_config.h +++ b/Config/GB_config.h @@ -15,18 +15,18 @@ // GB_C_COMPILER: the C compiler used to compile GraphBLAS: #ifndef GB_C_COMPILER -#define GB_C_COMPILER "/usr/bin/cc" +#define GB_C_COMPILER "/Users/davis/bin/utils/spack/opt/spack/darwin-monterey-cannonlake/apple-clang-13.1.6/gcc-11.2.0-rdyxomyj7vbtjrfladbf2vm2grn4gznb/bin/gcc" #endif // GB_C_FLAGS: the C compiler flags used to compile GraphBLAS. Used // for compiling and linking: #ifndef GB_C_FLAGS -#define GB_C_FLAGS " -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC " +#define GB_C_FLAGS " -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk " #endif // GB_C_LINK_FLAGS: the flags passed to the C compiler for the link phase: #ifndef GB_C_LINK_FLAGS -#define GB_C_LINK_FLAGS " -shared " +#define GB_C_LINK_FLAGS " -dynamiclib " #endif // GB_LIB_PREFIX: library prefix (lib for Linux/Unix/Mac, empty for Windows): @@ -36,10 +36,10 @@ // GB_LIB_SUFFIX: library suffix (.so for Linux/Unix, .dylib for Mac, etc): #ifndef GB_LIB_SUFFIX -#define GB_LIB_SUFFIX ".so" +#define GB_LIB_SUFFIX ".dylib" #endif -// GB_OBJ_SUFFIX: object suffix (.o for Linux/Unix/Mac, .obj for Windows): +// GB_OBJ_SUFFIX: object suffix (.o for Linux/Unix/Mac/MinGW, .obj for MSVC): #ifndef GB_OBJ_SUFFIX #define GB_OBJ_SUFFIX ".o" #endif @@ -57,12 +57,12 @@ // GB_C_LIBRARIES: libraries to link with when using direct compile/link: #ifndef GB_C_LIBRARIES -#define GB_C_LIBRARIES " -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so" +#define GB_C_LIBRARIES " -lm -ldl /Users/davis/bin/utils/spack/opt/spack/darwin-monterey-cannonlake/apple-clang-13.1.6/gcc-11.2.0-rdyxomyj7vbtjrfladbf2vm2grn4gznb/lib/libgomp.dylib" #endif // GB_CMAKE_LIBRARIES: libraries to link with when using cmake #ifndef GB_CMAKE_LIBRARIES -#define GB_CMAKE_LIBRARIES "m;dl;/usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.so" +#define GB_CMAKE_LIBRARIES "m;dl;/Users/davis/bin/utils/spack/opt/spack/darwin-monterey-cannonlake/apple-clang-13.1.6/gcc-11.2.0-rdyxomyj7vbtjrfladbf2vm2grn4gznb/lib/libgomp.dylib" #endif #endif diff --git a/Config/GB_config.h.in b/Config/GB_config.h.in index 0968021b3e..c72a289d2d 100644 --- a/Config/GB_config.h.in +++ b/Config/GB_config.h.in @@ -39,7 +39,7 @@ #define GB_LIB_SUFFIX "@GB_LIB_SUFFIX@" #endif -// GB_OBJ_SUFFIX: object suffix (.o for Linux/Unix/Mac, .obj for Windows): +// GB_OBJ_SUFFIX: object suffix (.o for Linux/Unix/Mac/MinGW, .obj for MSVC): #ifndef GB_OBJ_SUFFIX #define GB_OBJ_SUFFIX "@GB_OBJ_SUFFIX@" #endif diff --git a/Config/GraphBLAS.h.in b/Config/GraphBLAS.h.in index 451bcf96fe..75da682a1c 100644 --- a/Config/GraphBLAS.h.in +++ b/Config/GraphBLAS.h.in @@ -32,10 +32,10 @@ // Regarding "historical" functions and symbols: when a GxB_* function or // symbol is added to the C API Specification, the new GrB_* name should be -// used instead. The old GxB_* name will be kept in working order for -// historical reasons; it might no longer be mentioned in the user guide. -// Historical functions and symbols would only be removed in the rare case that -// they cause a serious conflict with future methods. +// used instead. The old GxB_* name will be kept for historical reasons, +// documented here and in working order; it might no longer be mentioned in the +// user guide. Historical functions and symbols would only be removed in the +// rare case that they cause a serious conflict with future methods. #ifndef GRAPHBLAS_H #define GRAPHBLAS_H @@ -96,9 +96,9 @@ #define GB_GLOBAL extern __declspec ( dllexport ) #elif defined ( GB_STATIC ) // Compiling the user application on Windows, importing symbols from - // a static GraphBLAS library on Windows. The user application must do: - // #define GB_STATIC - // #include "GraphBLAS.h" + // a static GraphBLAS library on Windows. The user application must + // define GB_STATIC (e.g., with the pre-processor flag -DGB_STATIC) for + // all compilation units that include "GraphBLAS.h". #define GB_GLOBAL extern #else // Compiling the user application on Windows, importing symbols from @@ -124,10 +124,18 @@ // C95: 199409L #define GxB_STDC_VERSION __STDC_VERSION__ #else -// assume ANSI C (C90 / C89) +// assume C90 / C89 #define GxB_STDC_VERSION 199001L #endif +//------------------------------------------------------------------------------ +// CUDA (currently experimental, not for production use) +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_CUDA +#cmakedefine SUITESPARSE_CUDA +#endif + //------------------------------------------------------------------------------ // definitions for complex types //------------------------------------------------------------------------------ @@ -197,10 +205,10 @@ // NVIDIA nvcc #define GB_restrict __restrict__ #elif GxB_STDC_VERSION >= 199901L - // ANSI C99 or later + // C99 or later #define GB_restrict restrict #else - // ANSI C95 and earlier: no restrict keyword + // C95 and earlier: no restrict keyword #define GB_restrict #endif @@ -276,11 +284,10 @@ // The 'spec' string describes the GraphBLAS spec: #define GxB_SPEC_ABOUT \ -"GraphBLAS C API, by Benjamin Brock, Aydin Buluc, Raye Kimmerer,\n" \ -"Jim Kitchen, Major Kumar, Timothy Mattson, Scott McMillan, Jose' Moreira,\n" \ -"Erik Welch, and Carl Yang. Based on 'GraphBLAS Mathematics by Jeremy\n" \ -"Kepner. See also 'Graph Algorithms in the Language of Linear Algebra,'\n" \ -"edited by J. Kepner and J. Gilbert, SIAM, 2011.\n" +"GraphBLAS C API, by Aydin Buluc, Timothy Mattson, Scott McMillan,\n" \ +"Jose' Moreira, Carl Yang, and Benjamin Brock. Based on 'GraphBLAS\n" \ +"Mathematics by Jeremy Kepner. See also 'Graph Algorithms in the Language\n" \ +"of Linear Algebra,' edited by J. Kepner and J. Gilbert, SIAM, 2011.\n" //============================================================================== // GrB_Index: the GraphBLAS integer @@ -337,7 +344,6 @@ typedef enum 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 @@ -400,12 +406,7 @@ 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_getVersion provides a runtime access of the C API Version. GrB_Info GrB_getVersion // runtime access to C API version number ( unsigned int *version, // returns GRB_VERSION @@ -418,13 +419,13 @@ GrB_Info GrB_getVersion // runtime access to C API version number // The GrB_Descriptor is used to modify the behavior of GraphBLAS operations. // -// GrB_OUTP: can be GrB_DEFAULT or GrB_REPLACE. If GrB_REPLACE, then C is +// GrB_OUTP: can be GxB_DEFAULT or GrB_REPLACE. If GrB_REPLACE, then C is // cleared after taking part in the accum operation but before the mask. // In other words, C = accum (C,T) is split into Z = accum(C,T) ; // C=0 ; C = Z. // -// GrB_MASK: can be GrB_DEFAULT, GrB_COMP, GrB_STRUCTURE, or set to both -// GrB_COMP and GrB_STRUCTURE. If GrB_DEFAULT, the mask is used +// GrB_MASK: can be GxB_DEFAULT, GrB_COMP, GrB_STRUCTURE, or set to both +// GrB_COMP and GrB_STRUCTURE. If GxB_DEFAULT, the mask is used // normally, where Mask(i,j)=1 means C(i,j) can be modified by C=Z, // and Mask(i,j)=0 means it cannot be modified even if Z(i,j) is has been // computed and differs from C(i,j). If GrB_COMP, this is the same as @@ -432,7 +433,7 @@ GrB_Info GrB_getVersion // runtime access to C API version number // the value of the mask is not considered, just its pattern. The // GrB_COMP and GrB_STRUCTURE settings can be combined. // -// GrB_INP0: can be GrB_DEFAULT or GrB_TRAN. If GrB_DEFAULT, the first input +// GrB_INP0: can be GxB_DEFAULT or GrB_TRAN. If GxB_DEFAULT, the first input // is used as-is. If GrB_TRAN, it is transposed. Only matrices are // transposed this way. Vectors are never transposed via the // GrB_Descriptor. @@ -442,7 +443,7 @@ GrB_Info GrB_getVersion // runtime access to C API version number // GxB_AxB_METHOD: this is a hint to SuiteSparse:GraphBLAS on which algorithm // it should use to compute C=A*B, in GrB_mxm, GrB_mxv, and GrB_vxm. // SuiteSparse:GraphBLAS has four different heuristics, and the default -// method (GrB_DEFAULT) selects between them automatically. The complete +// method (GxB_DEFAULT) selects between them automatically. The complete // rule is in the User Guide. The brief discussion here assumes all // matrices are stored by column. All methods compute the same result, // except that floating-point roundoff may differ when working on @@ -472,7 +473,7 @@ GrB_Info GrB_getVersion // runtime access to C API version number // state, with indices out of order. The sort is left pending. Some // methods can tolerate jumbled matrices on input, so this can be faster. // However, in some cases, it can be faster for GrB_mxm to sort its output -// as it is computed. With GxB_SORT set to GrB_DEFAULT, the sort is left +// as it is computed. With GxB_SORT set to GxB_DEFAULT, the sort is left // pending. With GxB_SORT set to a nonzero value, GrB_mxm typically sorts // the resulting matrix C (but not always; this is just a hint). If // GrB_init is called with GrB_BLOCKING mode, the sort will always be @@ -510,8 +511,7 @@ GrB_Desc_Field ; typedef enum { // for all GrB_Descriptor fields: - GrB_DEFAULT = 0, // default behavior of the method - GxB_DEFAULT = 0, // historical; use GrB_DEFAULT instead + GxB_DEFAULT = 0, // default behavior of the method // for GrB_OUTP only: GrB_REPLACE = 1, // clear the output before assigning new values to it @@ -519,7 +519,6 @@ typedef enum // for GrB_MASK only: GrB_COMP = 2, // use the structural complement of the input GrB_STRUCTURE = 4, // use the only pattern of the mask, not its values - GrB_COMP_STRUCTURE = 6, // shorthand for GrB_COMP + GrB_STRUCTURE // for GrB_INP0 and GrB_INP1 only: GrB_TRAN = 3, // use the transpose of the input @@ -536,7 +535,7 @@ typedef enum GrB_Desc_Value ; // default for GxB pack is to trust the input data -#define GxB_FAST_IMPORT ((int) GrB_DEFAULT) +#define GxB_FAST_IMPORT GxB_DEFAULT typedef struct GB_Descriptor_opaque *GrB_Descriptor ; @@ -545,15 +544,61 @@ 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_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + GrB_Desc_Value val // value to change it to +) ; + +GrB_Info GxB_Descriptor_get // get a parameter from a descriptor +( + GrB_Desc_Value *val, // value of the parameter + GrB_Descriptor desc, // descriptor to query; NULL means defaults + GrB_Desc_Field field // parameter to query +) ; + +GrB_Info GxB_Desc_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + ... // value to change it to +) ; + +GrB_Info GxB_Desc_set_INT32 // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Desc_set_FP64 // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + double value // value to change it to +) ; + +GrB_Info GxB_Desc_get // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL means defaults + GrB_Desc_Field field, // parameter to query + ... // value of the parameter +) ; + +GrB_Info GxB_Desc_get_INT32 // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL is ok + GrB_Desc_Field field, // parameter to query + int32_t *value // return value of the descriptor +) ; + +GrB_Info GxB_Desc_get_FP64 // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL is ok + GrB_Desc_Field field, // parameter to query + double *value // return value of the descriptor +) ; GrB_Info GrB_Descriptor_free // free a descriptor ( @@ -700,12 +745,32 @@ GB_GLOBAL GrB_Type // GrB_Type_new: create a new type //------------------------------------------------------------------------------ -GrB_Info GrB_Type_new // create a new GraphBLAS type +// GrB_Type_new is implemented both as a macro and a function. Both are +// user-callable. The default is to use the macro, since this allows the name +// of the type to be saved as a string, for subsequent error reporting by +// GrB_error. + +#undef GrB_Type_new +#undef GrM_Type_new + +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 ) ; +// 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 + +// GrB_Type_new as a user-callable macro, which allows the name of the ctype +// to be added to the new type. The type_defn is unknown. +#define GrB_Type_new(utype, sizeof_ctype) \ + GxB_Type_new(utype, sizeof_ctype, GB_STR(sizeof_ctype), NULL) +#define GrM_Type_new(utype, sizeof_ctype) \ + GxB_Type_new(utype, sizeof_ctype, GB_STR(sizeof_ctype), NULL) + // 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 @@ -735,16 +800,22 @@ GrB_Info GxB_Type_new // create a new named GraphBLAS type 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_name // return the name of a GraphBLAS type +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Type type +) ; + +GrB_Info GxB_Type_size // determine the size of the type +( + size_t *size, // the sizeof the type + const GrB_Type type // type to determine the sizeof +) ; 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"). + GrB_Type *type, // built-in type, or NULL if user-defined const char *type_name // array of size at least GxB_MAX_NAME_LEN ) ; @@ -949,16 +1020,23 @@ GB_GLOBAL GrB_UnaryOp 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_new creates a user-defined unary op, with an automatic +// detection of the operator name. +#undef GrB_UnaryOp_new +#undef GrM_UnaryOp_new +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 ) ; +#define GrB_UnaryOp_new(op,f,z,x) \ + GxB_UnaryOp_new(op,f,z,x, GB_STR(f), NULL) +#define GrM_UnaryOp_new(op,f,z,x) \ + GxM_UnaryOp_new(op,f,z,x, GB_STR(f), NULL) -// GxB_UnaryOp_new creates a named and defined user-defined unary op. +// GxB_UnaryOp_new creates a named 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 @@ -969,11 +1047,29 @@ GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator 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) ; +// GxB_UnaryOp_ztype is historical. Use GxB_UnaryOp_ztype_name instead. +GrB_Info GxB_UnaryOp_ztype // return the type of z +( + GrB_Type *ztype, // return type of output z + GrB_UnaryOp unaryop // unary operator +) ; +GrB_Info GxB_UnaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_UnaryOp unaryop // unary operator +) ; + +// GxB_UnaryOp_xtype is historical. Use GxB_UnaryOp_xtype_name instead. +GrB_Info GxB_UnaryOp_xtype // return the type of x +( + GrB_Type *xtype, // return type of input x + GrB_UnaryOp unaryop // unary operator +) ; +GrB_Info GxB_UnaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_UnaryOp unaryop // unary operator +) ; GrB_Info GrB_UnaryOp_free // free a user-created unary operator ( @@ -1385,8 +1481,11 @@ GB_GLOBAL GrB_BinaryOp GxB_IGNORE_DUP ; 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_new creates a user-defined binary op, with an automatic +// detection of the operator name. +#undef GrB_BinaryOp_new +#undef GrM_BinaryOp_new +GrB_Info GRB (BinaryOp_new) ( GrB_BinaryOp *binaryop, // handle for the new binary operator GxB_binary_function function, // pointer to the binary function @@ -1394,8 +1493,12 @@ GrB_Info GrB_BinaryOp_new GrB_Type xtype, // type of input x GrB_Type ytype // type of input y ) ; +#define GrB_BinaryOp_new(op,f,z,x,y) \ + GxB_BinaryOp_new(op,f,z,x,y, GB_STR(f), NULL) +#define GrM_BinaryOp_new(op,f,z,x,y) \ + GxM_BinaryOp_new(op,f,z,x,y, GB_STR(f), NULL) -// GxB_BinaryOp_new creates a named and defined user-defined binary op. +// GxB_BinaryOp_new creates a named user-defined binary op. GrB_Info GxB_BinaryOp_new ( GrB_BinaryOp *op, // handle for the new binary operator @@ -1407,13 +1510,41 @@ GrB_Info GxB_BinaryOp_new 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) ; +// NOTE: GxB_BinaryOp_ztype is historical. Use GxB_BinaryOp_ztype_name instead. +GrB_Info GxB_BinaryOp_ztype // return the type of z +( + GrB_Type *ztype, // return type of output z + GrB_BinaryOp binaryop // binary operator to query +) ; +GrB_Info GxB_BinaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; + +// NOTE: GxB_BinaryOp_xtype is historical. Use GxB_BinaryOp_xtype_name instead. +GrB_Info GxB_BinaryOp_xtype // return the type of x +( + GrB_Type *xtype, // return type of input x + GrB_BinaryOp binaryop // binary operator to query +) ; +GrB_Info GxB_BinaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; + +// NOTE: GxB_BinaryOp_ytype is historical. Use GxB_BinaryOp_ytype_name instead. +GrB_Info GxB_BinaryOp_ytype // return the type of y +( + GrB_Type *ytype, // return type of input y + GrB_BinaryOp binaryop // binary operator to query +) ; +GrB_Info GxB_BinaryOp_ytype_name // return the type_name of y +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; GrB_Info GrB_BinaryOp_free // free a user-created binary operator ( @@ -1424,7 +1555,8 @@ GrB_Info GrB_BinaryOp_free // free a user-created binary operator // GxB_SelectOp: select operators (DEPRECATED: do not use) //============================================================================== -// historical; use GrB_select and GrB_IndexUnaryOp instead: +// GrB_select and GrB_IndexUnaryOp should be used instead of GxB_select. + 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, @@ -1451,9 +1583,12 @@ 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_IndexUnaryOp_new creates a user-defined unary op, with an automatic +// detection of the operator name. +#undef GrB_IndexUnaryOp_new +#undef GrM_IndexUnaryOp_new -GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op +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 @@ -1462,6 +1597,11 @@ GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op GrB_Type ytype // type of input y (the scalar) ) ; +#define GrB_IndexUnaryOp_new(op,f,z,x,y) \ + GxB_IndexUnaryOp_new(op,f,z,x,y, GB_STR(f), NULL) +#define GrM_IndexUnaryOp_new(op,f,z,x,y) \ + GxM_IndexUnaryOp_new(op,f,z,x,y, GB_STR(f), NULL) + GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp ( GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator @@ -1473,10 +1613,26 @@ GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp 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 GxB_IndexUnaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // IndexUnary operator +) ; + +// For TRIL, TRIU, DIAG, OFFDIAG, COLLE, COLGT, ROWLE, and ROWGT, +// the xtype_name is an empty string (""), since these functions do not depend +// on the type of the matrix input. +GrB_Info GxB_IndexUnaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // select operator +) ; + +GrB_Info GxB_IndexUnaryOp_ytype_name // return the type_name of the scalary y +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // select operator +) ; GrB_Info GrB_IndexUnaryOp_free // free a user-created IndexUnaryOp ( @@ -1678,12 +1834,14 @@ GrB_Info GrB_Monoid_new_UDT // create a monoid with a user-defined type // Type-generic method for creating a new monoid: /* + 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 ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -1816,6 +1974,7 @@ GrB_Info GxB_Monoid_terminal_new_UDT // create a monoid with a user type // Type-generic method for creating a new monoid with a terminal value: /* + GrB_Info GxB_Monoid_terminal_new // create a monoid ( GrB_Monoid *monoid, // handle of monoid to create @@ -1823,6 +1982,7 @@ GrB_Info GxB_Monoid_terminal_new // create a monoid identity, // identity value of the monoid terminal // terminal value of the monoid ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -1835,10 +1995,25 @@ GrB_Info GxB_Monoid_terminal_new // create a monoid (monoid, op, identity, terminal) #endif -// 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_Monoid_operator // return the monoid operator +( + GrB_BinaryOp *op, // returns the binary op of the monoid + GrB_Monoid monoid // monoid to query +) ; + +GrB_Info GxB_Monoid_identity // return the monoid identity +( + void *identity, // returns the identity of the monoid + GrB_Monoid monoid // monoid to query +) ; + +GrB_Info GxB_Monoid_terminal // return the monoid terminal +( + bool *has_terminal, // true if the monoid has a terminal value + void *terminal, // returns the terminal of the monoid, + // unmodified if has_terminal is false + GrB_Monoid monoid // monoid to query +) ; GrB_Info GrB_Monoid_free // free a user-created monoid ( @@ -1858,9 +2033,17 @@ GrB_Info GrB_Semiring_new // create a semiring GrB_BinaryOp multiply // multiply operator of the semiring ) ; -// 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) ; +GrB_Info GxB_Semiring_add // return the add monoid of a semiring +( + GrB_Monoid *add, // returns add monoid of the semiring + GrB_Semiring semiring // semiring to query +) ; + +GrB_Info GxB_Semiring_multiply // return multiply operator of a semiring +( + GrB_BinaryOp *multiply, // returns multiply operator of the semiring + GrB_Semiring semiring // semiring to query +) ; GrB_Info GrB_Semiring_free // free a user-created semiring ( @@ -1871,6 +2054,9 @@ GrB_Info GrB_Semiring_free // free a user-created semiring // GrB_Scalar: a GraphBLAS scalar //============================================================================== +// GxB_Scalar has become GrB_Scalar. The older name GxB_Scalar is kept as +// historical, but GrB_Scalar should be used instead. + typedef struct GB_Scalar_opaque *GxB_Scalar ; // historical: use GrB_Scalar typedef struct GB_Scalar_opaque *GrB_Scalar ; // use this instead @@ -1900,9 +2086,18 @@ GrB_Info GrB_Scalar_nvals // get the number of entries in a GrB_Scalar const GrB_Scalar s // GrB_Scalar to query ) ; -// 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) ; +// NOTE: GxB_Scalar_type is historical. Use GxB_Scalar_type_name instead. +GrB_Info GxB_Scalar_type // get the type of a GrB_Scalar +( + GrB_Type *type, // returns the type of the GrB_Scalar + const GrB_Scalar s // GrB_Scalar to query +) ; +GrB_Info GxB_Scalar_type_name // return the name of the type of a scalar +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Scalar s // GrB_Scalar to query +) ; GrB_Info GxB_Scalar_memoryUsage // return # of bytes used for a scalar ( @@ -2031,11 +2226,13 @@ GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) ; // user-defined type. /* + 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 @@ -2047,7 +2244,6 @@ GrB_Info GrB_Scalar_setElement // s = x ) \ (s, x) -// historical; use GrB_Scalar_setElement instead: #define GxB_Scalar_setElement(s,x) GrB_Scalar_setElement (s, x) #endif @@ -2178,7 +2374,6 @@ GrB_Info GrB_Scalar_extractElement // x = s ) \ (x, s) -// historical; use GrB_Scalar_extractElement instead: #define GxB_Scalar_extractElement(x,s) GrB_Scalar_extractElement (x, s) #endif @@ -2222,9 +2417,18 @@ GrB_Info GrB_Vector_nvals // get the number of entries in a vector const GrB_Vector v // vector to query ) ; -// 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) ; +// NOTE: GxB_Vector_type is historical. Use GxB_Vector_type_name instead. +GrB_Info GxB_Vector_type // get the type of a vector +( + GrB_Type *type, // returns the type of the vector + const GrB_Vector v // vector to query +) ; +GrB_Info GxB_Vector_type_name // return the name of the type of a vector +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Vector v // vector to query +) ; GrB_Info GxB_Vector_memoryUsage // return # of bytes used for a vector ( @@ -2388,6 +2592,7 @@ GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples // for a user-defined type. /* + GrB_Info GrB_Vector_build // build a vector from (I,X) tuples ( GrB_Vector w, // vector to build @@ -2396,6 +2601,7 @@ GrB_Info GrB_Vector_build // build a vector from (I,X) tuples GrB_Index nvals, // number of tuples const GrB_BinaryOp dup // binary function to assemble duplicates ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -2524,12 +2730,14 @@ GrB_Info GrB_Vector_setElement_Scalar // w(i) = x // 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 @@ -2659,12 +2867,14 @@ GrB_Info GrB_Vector_extractElement_Scalar // x = v(i) // 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 ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -2825,6 +3035,7 @@ GrB_Info GrB_Vector_extractTuples_UDT // [I,~,X] = find (v) // for a user-defined type. /* + GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) ( GrB_Index *I, // array for returning row indices of tuples @@ -2832,6 +3043,7 @@ GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) 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 @@ -2890,9 +3102,18 @@ GrB_Info GrB_Matrix_nvals // get the number of entries in a matrix const GrB_Matrix A // matrix to query ) ; -// 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) ; +// NOTE: GxB_Matrix_type is historical. Use GxB_Matrix_type_name instead. +GrB_Info GxB_Matrix_type // get the type of a matrix +( + GrB_Type *type, // returns the type of the matrix + const GrB_Matrix A // matrix to query +) ; +GrB_Info GxB_Matrix_type_name // return the name of the type of a matrix +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Matrix A // matrix to query +) ; GrB_Info GxB_Matrix_memoryUsage // return # of bytes used for a matrix ( @@ -3071,6 +3292,7 @@ GrB_Info GxB_Matrix_build_Scalar // build a matrix from (I,J,scalar) tuples // for a user-defined type. /* + GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples ( GrB_Matrix C, // matrix to build @@ -3080,6 +3302,7 @@ GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples GrB_Index nvals, // number of tuples const GrB_BinaryOp dup // binary function to assemble duplicates ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -3223,6 +3446,7 @@ GrB_Info GrB_Matrix_setElement_Scalar // C (i,j) = x // user-defined type. /* + GrB_Info GrB_Matrix_setElement // C (i,j) = x ( GrB_Matrix C, // matrix to modify @@ -3230,6 +3454,7 @@ GrB_Info GrB_Matrix_setElement // C (i,j) = x GrB_Index i, // row index GrB_Index j // column index ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -3374,6 +3599,7 @@ GrB_Info GrB_Matrix_extractElement_Scalar // x = A(i,j) // for a user-defined type. /* + GrB_Info GrB_Matrix_extractElement // x = A(i,j) ( *x, // extracted scalar @@ -3381,6 +3607,7 @@ GrB_Info GrB_Matrix_extractElement // x = A(i,j) GrB_Index i, // row index GrB_Index j // column index ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -3557,6 +3784,7 @@ GrB_Info GrB_Matrix_extractTuples_UDT // [I,J,X] = find (A) // for a user-defined type. /* + GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) ( GrB_Index *I, // array for returning row indices of tuples @@ -3565,6 +3793,7 @@ GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) 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 @@ -3604,7 +3833,7 @@ GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) // 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 +// type of C. Any settings made to C by GxB_Matrix_Option_set (format by row // or by column, bitmap switch, hyper switch, and sparsity control) are // unchanged. @@ -3662,7 +3891,7 @@ GrB_Info GrB_Matrix_diag // build a diagonal matrix from a vector // 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 +// C by GxB_Matrix_Option_set (format by row or by column, bitmap switch, hyper // switch, and sparsity control) are unchanged. GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector @@ -3687,7 +3916,7 @@ GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector // 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. +// GxB_Vector_Option_set (bitmap switch and sparsity control) are unchanged. GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector ( @@ -3702,58 +3931,60 @@ GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector //============================================================================== // 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 +// on its matrices. The GxB_*Option* 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. +// GxB_Matrix_Option_set: sets an option for a specific matrix +// GxB_Matrix_Option_get: queries the current option of a specific matrix +// GxB_Vector_Option_set: sets an option for a specific vector +// GxB_Vector_Option_get: queries the current option of a specific vector +// GxB_Global_Option_set: sets an option for all future matrices +// GxB_Global_Option_get: queries current option for all future matrices + typedef enum // for global options or matrix options { //------------------------------------------------------------ - // GrB_get / GrB_set for GrB_Matrix and GrB_GLOBAL: + // for GxB_Matrix_Option_get/set and GxB_Global_Option_get/set: //------------------------------------------------------------ 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 + GxB_FORMAT = 7002, // CSR/CSC format: GxB_BY_ROW or GxB_BY_COL //------------------------------------------------------------ - // GrB_get for GrB_GLOBAL: + // for GxB_Global_Option_get only: //------------------------------------------------------------ - 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_MODE = 7003, // mode passed to GrB_init + GxB_LIBRARY_NAME = 7004, // name of the library (char *) + GxB_LIBRARY_VERSION = 7005, // library version (3 int's) 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_VERSION = 7012, // API version (3 int's) 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_get / GrB_set for GrB_GLOBAL: + // for GxB_Global_Option_get/set only: //------------------------------------------------------------ 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_BURBLE = 7019, // diagnostic output + GxB_BURBLE = 7019, // diagnostic output (bool *) GxB_PRINTF = 7020, // printf function diagnostic output GxB_FLUSH = 7021, // flush function diagnostic output GxB_MEMORY_POOL = 7022, // no longer used @@ -3771,18 +4002,27 @@ typedef enum // for global options or matrix options GxB_JIT_ERROR_LOG = 7033, // CPU JIT: error log file //------------------------------------------------------------ - // GrB_get for GrB_Matrix: + // for GxB_Matrix_Option_get only: //------------------------------------------------------------ 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: + // for GxB_Matrix_Option_get/set only: //------------------------------------------------------------ GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below + //------------------------------------------------------------ + // memory functions (GxB_Global_Option_get only): + //------------------------------------------------------------ + + GxB_MALLOC_FUNCTION = 7037, + GxB_CALLOC_FUNCTION = 7038, + GxB_REALLOC_FUNCTION = 7039, + GxB_FREE_FUNCTION = 7040, + } GxB_Option_Field ; // for GxB_JIT_C_CONTROL: @@ -3796,7 +4036,7 @@ typedef enum } GxB_JIT_Control ; -// GxB_FORMAT is historical, but it can be by row or by column: +// GxB_FORMAT can be by row or by column: typedef enum { GxB_BY_ROW = 0, // CSR: compressed sparse row format @@ -3829,7 +4069,7 @@ GB_GLOBAL const double GxB_HYPER_DEFAULT ; // the default sparsity control is any format: #define GxB_AUTO_SPARSITY GxB_ANY_SPARSITY -// GrB_set (A, scontrol, GxB_SPARSITY_CONTROL) provides hints +// GxB_Matrix_Option_set (A, GxB_SPARSITY_CONTROL, scontrol) provides hints // about which data structure GraphBLAS should use for the matrix A: // // GxB_AUTO_SPARSITY: GraphBLAS selects automatically. @@ -3852,11 +4092,11 @@ GB_GLOBAL const double GxB_HYPER_DEFAULT ; // 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 +// GxB_Matrix_Option_get (A, GxB_SPARSITY_STATUS, &sparsity) 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 +// GxB_Matrix_Option_get (A, GxB_SPARSITY_CONTROL, &scontrol) returns the hint // for how A should be stored (hypersparse, sparse, bitmap, or full, or any // combination). @@ -3887,6 +4127,183 @@ GB_GLOBAL const double GxB_HYPER_DEFAULT ; GB_GLOBAL const double GxB_ALWAYS_HYPER, GxB_NEVER_HYPER ; +GrB_Info GxB_Matrix_Option_set // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + GxB_Option_Field field, // option to change + ... // value to change it to +) ; + +GrB_Info GxB_Matrix_Option_set_INT32 // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + GxB_Option_Field field, // option to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Matrix_Option_set_FP64 // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + GxB_Option_Field field, // option to change + double value // value to change it to +) ; + +GrB_Info GxB_Matrix_Option_get // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + ... // return value of the matrix option +) ; + +GrB_Info GxB_Matrix_Option_get_INT32 // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + int32_t *value // return value of the matrix option +) ; + +GrB_Info GxB_Matrix_Option_get_FP64 // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + double *value // return value of the matrix option +) ; + +GrB_Info GxB_Vector_Option_set // set an option in a vector +( + GrB_Vector A, // vector to modify + GxB_Option_Field field, // option to change + ... // value to change it to +) ; + +GrB_Info GxB_Vector_Option_set_INT32 // set an option in a vector +( + GrB_Vector v, // vector to modify + GxB_Option_Field field, // option to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Vector_Option_set_FP64 // set an option in a vector +( + GrB_Vector v, // vector to modify + GxB_Option_Field field, // option to change + double value // value to change it to +) ; + +GrB_Info GxB_Vector_Option_get // gets the current option of a vector +( + GrB_Vector A, // vector to query + GxB_Option_Field field, // option to query + ... // return value of the vector option +) ; + +GrB_Info GxB_Vector_Option_get_INT32 // gets the current option of a vector +( + GrB_Vector v, // vector to query + GxB_Option_Field field, // option to query + int32_t *value // return value of the vector option +) ; + +GrB_Info GxB_Vector_Option_get_FP64 // gets the current option of a vector +( + GrB_Vector v, // vector to query + GxB_Option_Field field, // option to query + double *value // return value of the vector option +) ; + +// GxB_Global_Option_set controls the global defaults used when a new matrix is +// created. GrB_init defines the following initial settings: +// +// GxB_Global_Option_set (GxB_HYPER_SWITCH, GxB_HYPER_DEFAULT) ; +// GxB_Global_Option_set (GxB_BITMAP_SWITCH, NULL) ; +// GxB_Global_Option_set (GxB_FORMAT, GxB_FORMAT_DEFAULT) ; +// +// The compile-time constants GxB_HYPER_DEFAULT and GxB_FORMAT_DEFAULT are +// equal to 0.0625 and GxB_BY_ROW, by default. That is, by default, all new +// matrices are held by row in CSR format. If a matrix has fewer than n/16 +// columns, it can be converted to hypersparse structure. If it has more than +// n/8 columns, it can be converted to a sparse structure. Modifying these +// global settings via GxB_Global_Option_set has no effect on matrices already +// created. + +GrB_Info GxB_Global_Option_set // set a global default option +( + GxB_Option_Field field, // option to change + ... // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_INT32 // set a global default option +( + GxB_Option_Field field, // option to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_FP64 // set a global default option +( + GxB_Option_Field field, // option to change + double value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_FP64_ARRAY // set a global default option +( + GxB_Option_Field field, // option to change + double *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_INT64_ARRAY // set a global default option +( + GxB_Option_Field field, // option to change + int64_t *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_CHAR // set a global default option +( + GxB_Option_Field field, // option to change + const char *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_FUNCTION // set a global default option +( + GxB_Option_Field field, // option to change + void *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_get // gets the current global default option +( + GxB_Option_Field field, // option to query + ... // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_INT32 // gets the current global option +( + GxB_Option_Field field, // option to query + int32_t *value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_FP64 // gets the current global option +( + GxB_Option_Field field, // option to query + double *value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_INT64 // gets the current global option +( + GxB_Option_Field field, // option to query + int64_t *value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_CHAR // gets the current global option +( + GxB_Option_Field field, // option to query + const char **value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_FUNCTION // gets the current global option +( + GxB_Option_Field field, // option to query + void **value // return value of the global option +) ; + //============================================================================== // GxB_Context: for managing computational resources //============================================================================== @@ -3919,6 +4336,48 @@ GrB_Info GxB_Context_free // free a Context GxB_Context *Context // handle of Context to free ) ; +GrB_Info GxB_Context_set_INT32 // set a parameter in a Context +( + GxB_Context Context, // Context to modify + GxB_Context_Field field, // parameter to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Context_set_FP64 // set a parameter in a Context +( + GxB_Context Context, // Context to modify + GxB_Context_Field field, // parameter to change + double value // value to change it to +) ; + +GrB_Info GxB_Context_set // set a parameter in a Context +( + GxB_Context Context, // Context to modify + GxB_Context_Field field, // parameter to change + ... // value to change it to +) ; + +GrB_Info GxB_Context_get_INT32 // get a parameter of a Context +( + GxB_Context Context, // Context to query + GxB_Context_Field field, // parameter to query + int32_t *value // return value from the Context +) ; + +GrB_Info GxB_Context_get_FP64 // get a parameter in a Context +( + GxB_Context Context, // Context to query + GxB_Context_Field field, // parameter to query + double *value // return value from the Context +) ; + +GrB_Info GxB_Context_get // get a parameter in a Context +( + GxB_Context Context, // Context to query + GxB_Context_Field field, // parameter to query + ... // return value of the descriptor +) ; + GrB_Info GxB_Context_engage // engage a Context ( GxB_Context Context // Context to engage @@ -3930,41 +4389,152 @@ GrB_Info GxB_Context_disengage // disengage a Context ) ; //============================================================================== -// GxB_set and GxB_get: historical; use GrB_set and GrB_get instead +// GxB_set and GxB_get //============================================================================== -// 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, ...) ; +// The simplest way to set/get a value of a GrB_Descriptor is with +// the generic GxB_set and GxB_get functions: + +// GxB_set (desc, field, value) ; +// GxB_get (desc, field, &value) ; + +// GxB_set and GxB_get are generic methods that and set or query the options in +// a GrB_Matrix, a GrB_Descriptor, or in the global options. They can be used +// with the following syntax. + +// To set/get the global options: +// +// GxB_set (GxB_HYPER_SWITCH, double h) ; +// GxB_set (GxB_HYPER_SWITCH, GxB_ALWAYS_HYPER) ; +// GxB_set (GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; +// GxB_get (GxB_HYPER_SWITCH, double *h) ; +// +// double b [GxB_NBITMAP_SWITCH] ; +// GxB_set (GxB_BITMAP_SWITCH, b) ; +// GxB_set (GxB_BITMAP_SWITCH, NULL) ; // set defaults +// GxB_get (GxB_BITMAP_SWITCH, b) ; +// +// GxB_set (GxB_FORMAT, GxB_BY_ROW) ; +// GxB_set (GxB_FORMAT, GxB_BY_COL) ; +// GxB_get (GxB_FORMAT, GxB_Format_Value *s) ; +// +// GxB_set (GxB_NTHREADS, nthreads_max) ; +// GxB_get (GxB_NTHREADS, int *nthreads_max) ; +// +// GxB_set (GxB_CHUNK, double chunk) ; +// GxB_get (GxB_CHUNK, double *chunk) ; +// +// GxB_set (GxB_BURBLE, bool burble) ; +// GxB_get (GxB_BURBLE, bool *burble) ; +// +// GxB_set (GxB_PRINTF, void *printf_function) ; +// GxB_get (GxB_PRINTF, void **printf_function) ; +// +// GxB_set (GxB_FLUSH, void *flush_function) ; +// GxB_get (GxB_FLUSH, void **flush_function) ; + +// GxB_set (GxB_JIT_C_COMPILER_NAME, const char *compiler) ; +// GxB_get (GxB_JIT_C_COMPILER_NAME, const char **compiler) ; +// GxB_set (GxB_JIT_C_COMPILER_FLAGS, const char *flags) ; +// GxB_get (GxB_JIT_C_COMPILER_FLAGS, const char **flags) ; +// GxB_set (GxB_JIT_C_LINKER_FLAGS, const char *flags) ; +// GxB_get (GxB_JIT_C_LINKER_FLAGS, const char **flags) ; +// GxB_set (GxB_JIT_CACHE_PATH, const char *cache_path) ; +// GxB_get (GxB_JIT_CACHE_PATH, const char **cache_path) ; +// GxB_set (GxB_JIT_C_CONTROL, int control) ; +// GxB_get (GxB_JIT_C_CONTROL, int *control) ; + +// To set/get the GxB_CONTEXT_WORLD options: These have the same effect as +// the global set/get for NTHREADS and CHUNK, listed above. +// +// GxB_set (GxB_CONTEXT_WORLD, GxB_NTHREADS, nthreads_max) ; +// GxB_get (GxB_CONTEXT_WORLD, GxB_NTHREADS, int *nthreads_max) ; +// +// GxB_set (GxB_CONTEXT_WORLD, GxB_CHUNK, double chunk) ; +// GxB_get (GxB_CONTEXT_WORLD, GxB_CHUNK, double *chunk) ; + +// To set/get a Context option: +// +// GxB_set (GxB_Context Context, GxB_NTHREADS, nthreads_max) ; +// GxB_get (GxB_Context Context, GxB_NTHREADS, int *nthreads_max) ; +// +// GxB_set (GxB_Context Context, GxB_CHUNK, double chunk) ; +// GxB_get (GxB_Context Context, GxB_CHUNK, double *chunk) ; + +// To get global options that can be queried but not modified: +// +// GxB_get (GxB_MODE, GrB_Mode *mode) ; + +// To set/get a matrix option: +// +// GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, double h) ; +// GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, GxB_ALWAYS_HYPER) ; +// GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; +// GxB_get (GrB_Matrix A, GxB_HYPER_SWITCH, double *h) ; +// +// GxB_set (GrB_Matrix A, GxB_BITMAP_SWITCH, double b) ; +// GxB_get (GrB_Matrix A, GxB_BITMAP_SWITCH, double *b) ; +// +// GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_ROW) ; +// GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_COL) ; +// GxB_get (GrB_Matrix A, GxB_FORMAT, GxB_Format_Value *s) ; +// +// GxB_set (GrB_Matrix A, GxB_SPARSITY_CONTROL, GxB_AUTO_SPARSITY) ; +// GxB_set (GrB_Matrix A, GxB_SPARSITY_CONTROL, scontrol) ; +// GxB_get (GrB_Matrix A, GxB_SPARSITY_CONTROL, int *scontrol) ; +// +// GxB_get (GrB_Matrix A, GxB_SPARSITY_STATUS, int *sparsity) ; + +// To set/get a vector option or status: +// +// GxB_set (GrB_Vector v, GxB_BITMAP_SWITCH, double b) ; +// GxB_get (GrB_Vector v, GxB_BITMAP_SWITCH, double *b) ; +// +// GxB_set (GrB_Vector v, GxB_FORMAT, GxB_BY_ROW) ; +// GxB_set (GrB_Vector v, GxB_FORMAT, GxB_BY_COL) ; +// GxB_get (GrB_Vector v, GxB_FORMAT, GxB_Format_Value *s) ; +// +// GxB_set (GrB_Vector v, GxB_SPARSITY_CONTROL, GxB_AUTO_SPARSITY) ; +// GxB_set (GrB_Vector v, GxB_SPARSITY_CONTROL, scontrol) ; +// GxB_get (GrB_Vector v, GxB_SPARSITY_CONTROL, int *scontrol) ; +// +// GxB_get (GrB_Vector v, GxB_SPARSITY_STATUS, int *sparsity) ; + +// To set/get a descriptor field: +// +// GxB_set (GrB_Descriptor d, GrB_OUTP, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_OUTP, GrB_REPLACE) ; +// GxB_get (GrB_Descriptor d, GrB_OUTP, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GrB_MASK, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_MASK, GrB_COMP) ; +// GxB_set (GrB_Descriptor d, GrB_MASK, GrB_STRUCTURE) ; +// GxB_set (GrB_Descriptor d, GrB_MASK, GrB_COMP + GrB_STRUCTURE) ; +// GxB_get (GrB_Descriptor d, GrB_MASK, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GrB_INP0, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_INP0, GrB_TRAN) ; +// GxB_get (GrB_Descriptor d, GrB_INP0, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GrB_INP1, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_INP1, GrB_TRAN) ; +// GxB_get (GrB_Descriptor d, GrB_INP1, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_GUSTAVSON) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_HASH) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_SAXPY) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_DOT) ; +// GxB_get (GrB_Descriptor d, GrB_AxB_METHOD, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GxB_SORT, int sort) ; +// GxB_get (GrB_Descriptor d, GxB_SORT, int *sort) ; +// +// GxB_set (GrB_Descriptor d, GxB_COMPRESSION, int method) ; +// GxB_get (GrB_Descriptor d, GxB_COMPRESSION, int *method) ; +// +// GxB_set (GrB_Descriptor d, GxB_IMPORT, int method) ; +// GxB_get (GrB_Descriptor d, GxB_IMPORT, int *method) ; #if GxB_STDC_VERSION >= 201112L #define GxB_set(arg1,...) \ @@ -3994,518 +4564,6 @@ GrB_Info GxB_Context_get (GxB_Context, GxB_Context_Field, ...) ; (arg1, __VA_ARGS__) #endif -//============================================================================== -// GrB_set and GrB_get -//============================================================================== - -typedef struct GB_Global_opaque *GrB_Global ; -GB_GLOBAL const GrB_Global GrB_GLOBAL ; - -typedef enum -{ - - //-------------------------------------------------------------------------- - // GrB enums in the C API - //-------------------------------------------------------------------------- - - // 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 - - // all objects, including GrB_GLOBAL: - GrB_NAME = 10, // name of the object, as a string - - // 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_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize?): - GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation - - // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize?): - GrB_ELTYPE_CODE = 102, // a GrB_Type_code (see below) - GrB_ELTYPE_STRING = 106, // name of the type - - // GrB_*Op, GrB_Monoid, and GrB_Semiring: - GrB_INPUT1TYPE_CODE = 103, // GrB_Type_code - GrB_INPUT2TYPE_CODE = 104, - GrB_OUTPUTTYPE_CODE = 105, - GrB_INPUT1TYPE_STRING = 107, // name of the type, as a string - GrB_INPUT2TYPE_STRING = 108, - GrB_OUTPUTTYPE_STRING = 109, - - // GrB_Type (readable only): - GrB_SIZE = 110, // size of the type - - //-------------------------------------------------------------------------- - // SuiteSparse extensions: - //-------------------------------------------------------------------------- - - // 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_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_Semiring only: - GxB_SEMIRING_MONOID = 7046, // semiring monoid - GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op -} -GrB_Field ; - -typedef enum -{ - GrB_ROWMAJOR = 0, - GrB_COLMAJOR = 1, - GrB_BOTH = 2, - GrB_UNKNOWN = 3, -} -GrB_Orientation ; - -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_get: get a scalar, string, enum, size, or void * from an object -//------------------------------------------------------------------------------ - -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_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_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 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_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_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_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_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_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_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_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_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__) - -//------------------------------------------------------------------------------ -// 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 - -#endif - //============================================================================== // GrB_free: free any GraphBLAS object //============================================================================== @@ -9193,11 +9251,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 \ @@ -10752,7 +10805,7 @@ GrB_Info GrB_Matrix_exportHint // suggest the best export format fread (blob, sizeof (uint8_t), blob_size, f) ; fclose (f) ; char type_name [GxB_MAX_NAME_LEN] ; - GrB_get (blob, type_name, GxB_JIT_C_NAME, blob_size) ; + GxB_deserialize_type_name (type_name, blob, blob_size) ; printf ("blob type is: %s\n", type_name) ; GrB_Type user_type = NULL ; if (strncmp (type_name, "myquaternion", GxB_MAX_NAME_LEN) == 0) @@ -10907,8 +10960,23 @@ GrB_Info GxB_Vector_deserialize // deserialize blob into a GrB_Vector const GrB_Descriptor desc // to control # of threads used ) ; -// historical; use GrB_get with GxB_JIT_C_NAME instead. -GrB_Info GxB_deserialize_type_name (char *, const void *, GrB_Index) ; +// GxB_deserialize_type_name extracts the type_name of the GrB_Type of the +// GrB_Matrix or GrB_Vector held in a serialized blob. On input, type_name +// must point to a user-owned char array of size at least GxB_MAX_NAME_LEN (it +// must not point into the blob itself). On output, type_name will contain a +// null-terminated string with the corresponding C type name. If the blob +// holds a matrix of a built-in type, the name is returned as "bool" for +// GrB_BOOL, "uint8_t" for GrB_UINT8, "float complex" for GxB_FC32, etc. +// See GxB_Type_name to convert this name into a GrB_Type. +GrB_Info GxB_deserialize_type_name // return the type name of a blob +( + // output: + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + // input, not modified: + const void *blob, // the blob + GrB_Index blob_size // size of the blob +) ; //============================================================================== // GxB_Vector_sort and GxB_Matrix_sort: sort a matrix or vector diff --git a/Config/GraphBLAS.pc.in b/Config/GraphBLAS.pc.in index 9c6a50daee..05d5dfb76b 100644 --- a/Config/GraphBLAS.pc.in +++ b/Config/GraphBLAS.pc.in @@ -17,3 +17,4 @@ Requires.private: @GRAPHBLAS_STATIC_MODULES@ Libs: -L${libdir} -lgraphblas Libs.private: @GRAPHBLAS_STATIC_LIBS@ Cflags: -I${includedir} +Cflags.private: -DGB_STATIC diff --git a/Config/GraphBLASConfig.cmake.in b/Config/GraphBLASConfig.cmake.in index 3b552e8287..130fe22adc 100644 --- a/Config/GraphBLASConfig.cmake.in +++ b/Config/GraphBLASConfig.cmake.in @@ -74,6 +74,11 @@ set ( _target_shared SuiteSparse::GraphBLAS ) set ( _target_static SuiteSparse::GraphBLAS_static ) set ( _var_prefix "GRAPHBLAS" ) +if ( NOT @BUILD_SHARED_LIBS@ AND NOT TARGET ${_target_shared} ) + # make sure there is always an import target without suffix ) + add_library ( ${_target_shared} ALIAS ${_target_static} ) +endif ( ) + get_target_property ( ${_var_prefix}_INCLUDE_DIR ${_target_shared} INTERFACE_INCLUDE_DIRECTORIES ) if ( ${_var_prefix}_INCLUDE_DIR ) # First item in SuiteSparse targets contains the "main" header directory. diff --git a/Config/README.md.in b/Config/README.md.in index 90a2430e5c..3a416e0cba 100644 --- a/Config/README.md.in +++ b/Config/README.md.in @@ -128,9 +128,9 @@ PreJIT: a folder for JIT kernels that are to be integrated into the Versions v5.2.0 and earlier conform to the version 1.3.0 (Sept 25, 2019) of the GraphBLAS C API Specification. Versions v6.0.0 and later conform to the -version 2.0.0 (Nov, 2021) of the GraphBLAS C API Specification. Versions -9.0.0 and later conform to the v2.1.0 C API. This library also includes -several additional functions and features as extensions to the spec. +version 2.0.0 (Nov, 2021) of the GraphBLAS C API Specification. This library +also includes several additional functions and features as extensions to the +spec. All functions, objects, and macros with the prefix GxB are extensions to the spec. Functions, objects, and macros with prefix GB must not be accessed @@ -225,9 +225,9 @@ Thanks for packaging SuiteSparse! Here are some suggestions: To cite this package, please use the following: - T. Davis, Algorithm 10xx: SuiteSparse:GraphBLAS: parallel graph - algorithms in the language of sparse linear algebra, ACM Trans on - Mathematical Software, to appear, 2023. + T. A. Davis. Algorithm 1037: SuiteSparse:GraphBLAS: Parallel Graph + Algorithms in the Language of Sparse Linear Algebra. ACM Trans. Math. + Softw. 49, 3, Article 28 (September 2023), 30 pages. https://doi.org/10.1145/3577195 T. Davis, Algorithm 1000: SuiteSparse:GraphBLAS: graph algorithms in diff --git a/Demo/Output/gauss_demo.out b/Demo/Output/gauss_demo.out index df86ba0b8b..af441d5155 100644 --- a/Demo/Output/gauss_demo.out +++ b/Demo/Output/gauss_demo.out @@ -2,36 +2,89 @@ Gauss demo. Note that all transposes are array transposes, not matrix (conjugate) transposes. - GraphBLAS Context: GxB_CONTEXT_WORLD - Context.nthreads: 8 + GraphBLAS Context: World + Context.nthreads: 40 Context.chunk: 65536 JIT configuration: ------------------ -JIT C compiler: [/usr/bin/gcc] +JIT C compiler: [/usr/bin/cc] JIT C flags: [ -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC ] JIT C link flags: [ -shared ] -JIT C libraries: [ -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so] +JIT C libraries: [ -lm -ldl -lgomp -lpthread] JIT C preface: [] -JIT cache: [/home/davis/.SuiteSparse/GraphBLAS/8.0.0] +JIT cache: [/home/faculty/d/davis/.SuiteSparse/GrB8.3.0] +JIT C control: [4] +JIT C control: [4] reset ------------------------------------- JIT C preface (revised): // kernel generated by gauss_demo.c #include - [ GxB_Type_new (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/b4/libGB_jit__user_type__0__gauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.0696 sec ] + [ GxB_Type_new (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.583 sec ] GraphBLAS type: BadGauss user-defined: [gauss] size: 4 typedef struct { int32_t real ; } gauss ; - [ GxB_Type_new (jit: type changed) (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/b4/libGB_jit__user_type__0__gauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.0515 sec ] + [ GxB_Type_new (jit: type changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.6 sec ] GraphBLAS type: Gauss user-defined: [gauss] size: 8 typedef struct { int32_t real ; int32_t imag ; } gauss ; - [ GxB_Type_new (jit: type ok) - 5.29e-06 sec ] + [ GxB_Type_new + 7.53e-06 sec ] GraphBLAS type: Gauss user-defined: [gauss] size: 8 typedef struct { int32_t real ; int32_t imag ; } gauss ; - [ GxB_BinaryOp_new (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/1b/libGB_jit__user_op__0__addgauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.0564 sec ] + [ GxB_BinaryOp_new (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.608 sec ] GraphBLAS BinaryOp: BadAddGauss (user-defined): z=addgauss(x,y) GraphBLAS type: ztype user-defined: [gauss] size: 8 @@ -45,8 +98,25 @@ void addgauss (gauss *z, const gauss *x, const gauss *y) z->real = x->real + y->real ; z->imag = -911 ; } - [ GxB_BinaryOp_new (jit: op changed) (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/1b/libGB_jit__user_op__0__addgauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.063 sec ] + [ GxB_BinaryOp_new (jit: op changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.596 sec ] GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) GraphBLAS type: ztype user-defined: [gauss] size: 8 @@ -60,8 +130,8 @@ void addgauss (gauss *z, const gauss *x, const gauss *y) z->real = x->real + y->real ; z->imag = x->imag + y->imag ; } - [ GxB_BinaryOp_new (jit: op ok) - 3.27e-06 sec ] + [ GxB_BinaryOp_new + 6.59e-06 sec ] GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) GraphBLAS type: ztype user-defined: [gauss] size: 8 @@ -146,12 +216,12 @@ row 1: ( 2, 2) ( 2, 1) ( 2, 0) ( 2, -1) row 2: ( 3, 2) ( 3, 1) ( 3, 0) ( 3, -1) row 3: ( 4, 2) ( 4, 1) ( 4, 0) ( 4, -1) - [ GrB_reduce (A bitmap) (jit: load) - 5.75e-05 sec ] + [ GrB_reduce (A bitmap) work:16 gpus:0 (jit: load) + 0.00023 sec ] sum (A) = (39,6) [ GrB_mxm C=A*B, saxpy (B = B*B, anz: 15 bnz: 15) (bitmap saxpy) (jit: load) (bitmap to full) - 9.17e-05 sec ] + 0.000294 sec ] =============== Gauss A = A^2 matrix: @@ -162,8 +232,8 @@ row 1: ( 18, 10) ( 18, 8) ( 20, 0) ( 22, -8) row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) - [ GrB_reduce (A full) (jit: load) - 3.59e-05 sec ] + [ GrB_reduce (A full) work:16 gpus:0 (jit: load) + 0.000164 sec ] sum (A^2) = (387,46) @@ -176,11 +246,12 @@ row 2: . . . . row 3: . . . . [ GxB_set (full to sparse) - 4.51e-06 sec ] + 2.09e-05 sec ] [ GxB_set (hyper to sparse) - 3.22e-06 sec ] - [ GrB_mxm (iso mask: struct) (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = Sf'*Sf) nthreads 1 ntasks 1 (jit: load) (sparse to bitmap) - 7.75e-05 sec ] + 1.1e-05 sec ] + [ GrB_mxm (iso mask: struct) (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = Sf'*Sf) work:16 GPUs:0 Not using cuda path. +nthreads 1 ntasks 1 (jit: load) (sparse to bitmap) (jit: load) + 0.000475 sec ] =============== Gauss C = diag(AA') matrix: @@ -192,11 +263,11 @@ row 2: . . (2893, 768) . row 3: . . . (5108,1456) [ GxB_set - 1.69e-07 sec ] + 7.67e-07 sec ] [ GxB_set (hyper to sparse) - 1.62e-06 sec ] + 8.94e-06 sec ] [ GrB_select (A dense) - 1.69e-05 sec ] + 3.06e-05 sec ] Gauss D matrix @@ -207,7 +278,7 @@ row 2: . . ( 30, 0) . row 3: . . . ( 42, -16) [ GrB_mxm C=A*B, colscale (Sf=Sf*S) (jit: load) - 4.63e-05 sec ] + 0.000186 sec ] =============== Gauss C = D*A matrix: @@ -219,9 +290,9 @@ row 2: ( 810, 480) ( 840, 360) ( 900, 0) ( 960,-360) row 3: (1864, 348) (1852, 64) (1680,-640) (1508,-1344) [ GxB_set - 1.23e-07 sec ] + 4.31e-07 sec ] [ GxB_set (sparse to bitmap) - 2.44e-06 sec ] + 1.29e-05 sec ] Gauss D matrix (bitmap) @@ -242,7 +313,7 @@ row 3: . . . ( 42, -16) (3,3) [user-defined value] [ GxB_set (bitmap to sparse) - 4.22e-06 sec ] + 1.43e-05 sec ] Gauss D matrix (back to sparse) @@ -263,7 +334,7 @@ row 3: . . . ( 42, -16) (3,3) [user-defined value] [ GrB_mxm C=A*B, rowscale (Sf=S*Sf) (jit: load) - 4.5e-05 sec ] + 0.000181 sec ] =============== Gauss C = A*D matrix: @@ -275,7 +346,7 @@ row 2: ( 179, 252) ( 408, 440) ( 900, 0) (1152,-1016) row 3: ( 236, 342) ( 556, 592) (1200, 0) (1508,-1344) [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar - 1.45e-05 sec ] + 4.1e-05 sec ] =============== Gauss C = (1,-2) matrix: @@ -297,7 +368,7 @@ row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) [ GrB_mxm C=A'*B, dot_product (dot4: F += Sf'*Sf) (jit: load) (C in place) - 4.39e-05 sec ] + 0.000185 sec ] =============== Gauss C += A*A' matrix: @@ -309,7 +380,7 @@ row 2: ( 918, 58) (1943, 476) (2894, 766) (3845,1056) row 3: (1221, 88) (2581, 658) (3845,1056) (5109,1454) [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar - 4.84e-06 sec ] + 2.16e-05 sec ] =============== Gauss B = (1,-2) matrix: @@ -321,7 +392,7 @@ row 2: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) row 3: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) [ GrB_mxm C=A*B, saxpy (saxpy4: F += Sf*F) (coarse, threads: 1) (jit: load) (C in place) - 5.1e-05 sec ] + 0.000194 sec ] =============== Gauss C += B*A: @@ -333,7 +404,7 @@ row 2: (1112, -70) (2110, 327) (2989, 566) (3868, 805) row 3: (1415, -40) (2748, 509) (3940, 856) (5132,1203) [ GrB_mxm C=A*B, saxpy (saxpy5: F += F*Sf) (jit: load) (C in place) - 4.18e-05 sec ] + 0.000177 sec ] =============== Gauss C += A*B: @@ -345,7 +416,7 @@ row 2: (1261,-288) (2259, 109) (3138, 348) (4017, 587) row 3: (1615,-330) (2948, 219) (4140, 566) (5332, 913) [ GrB_apply (shallow-op) (jit: load) - 4.27e-05 sec ] + 0.000171 sec ] =============== Gauss C = (1,-2) + A: @@ -357,7 +428,7 @@ row 2: ( 28, 14) ( 29, 10) ( 31, -2) ( 33, -14) row 3: ( 37, 20) ( 39, 14) ( 41, -2) ( 43, -18) [ GrB_apply (shallow-op) (jit: load) - 3.71e-05 sec ] + 0.000152 sec ] =============== Gauss C = A*(1,-2): @@ -369,7 +440,7 @@ row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: load) (full to sparse) - 5.88e-05 sec ] + 0.00019 sec ] =============== Gauss C = A'*(1,-2): @@ -381,7 +452,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: load) (full to sparse) - 3.92e-05 sec ] + 0.000176 sec ] =============== Gauss C = (1,-2)*A': @@ -402,7 +473,7 @@ void realgauss (int32_t *z, const gauss *x) (*z) = x->real ; } [ GrB_apply (shallow-op) (jit: load) - 3.85e-05 sec ] + 0.00016 sec ] 4x4 GraphBLAS int32_t matrix, full by row R, 16 entries, memory: 280 bytes @@ -435,7 +506,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_apply (transpose-op) (transpose) (bitmap/full transpose) (jit: load) - 3.78e-05 sec ] + 0.000193 sec ] 4x4 GraphBLAS int32_t matrix, full by row R, 16 entries, memory: 280 bytes @@ -458,6 +529,7 @@ row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) (3,3) 10 + =============== C size: 4-by-4 @@ -467,7 +539,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_apply (shallow-op) (jit: load) - 3.69e-05 sec ] + 0.00017 sec ] R = ijgauss (C) @@ -491,8 +563,8 @@ R = ijgauss (C) (3,2) 10 (3,3) 11 - [ GrB_Matrix_extractTuples (A full) - 1.09e-05 sec ] + [ GrB_Matrix_extractTuples (A full) (jit: load) + 0.000162 sec ] R (0,0) = 18 R (0,1) = 38 R (0,2) = 58 @@ -520,7 +592,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_transpose (transpose) (bitmap/full transpose) (jit: load) - 3.99e-05 sec ] + 0.000164 sec ] =============== C = C' @@ -532,9 +604,9 @@ row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) [ GxB_set (in-place transpose) (transpose) - 5.67e-06 sec ] - [ GxB_Matrix_concat (sparse concat) (transpose) (bitmap/full transpose) (jit: run) (transpose) (transpose) (1-thread bucket transpose) (jit: load) (transpose) (1-thread bucket transpose) (jit: run) (transpose) (transpose) (bitmap/full transpose) (jit: run) - 6.61e-05 sec ] + 1.71e-05 sec ] + [ GxB_Matrix_concat (sparse concat) (transpose) (bitmap/full transpose) (transpose) (transpose) (1-thread bucket transpose) (jit: load) (transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) (jit: load) (jit: load) (jit: load) + 0.000687 sec ] =============== Z = [C D ; E E ; D C] @@ -841,8 +913,8 @@ row 255: . . . ( 42, -16) ( 80, -50) ( 70, -60 (254,7) [user-defined value] (255,7) [user-defined value] - [ GxB_Matrix_split (sparse/hyper split) - 1.29e-05 sec ] + [ GxB_Matrix_split (sparse/hyper split) (jit: load) + 0.000201 sec ] =============== C Tile from Z: @@ -1440,9 +1512,9 @@ row 127: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) (127,4) [user-defined value] [ GxB_set (in-place transpose) (transpose) - 2.97e-06 sec ] - [ GxB_Matrix_concat (bitmap concat) (transpose) (bitmap/full transpose) (jit: run) (transpose) (transpose) (1-thread bucket transpose) (jit: run) (transpose) (1-thread bucket transpose) (jit: run) (transpose) (transpose) (bitmap/full transpose) (jit: run) - 2.75e-05 sec ] + 7.88e-06 sec ] + [ GxB_Matrix_concat (bitmap concat) (transpose) (bitmap/full transpose) (jit: load) (transpose) (jit: load) (transpose) (1-thread bucket transpose) (jit: load) (transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) + 0.000361 sec ] =============== Z = [C D ; E E ; D C] @@ -1509,8 +1581,8 @@ row 15: . . . ( 42, -16) ( 80, -50) ( 70, -60) (14,7) [user-defined value] (15,7) [user-defined value] - [ GxB_Matrix_split (bitmap split) - 6.21e-06 sec ] + [ GxB_Matrix_split (bitmap split) (jit: load) + 0.000117 sec ] =============== C Tile from Z: @@ -1628,7 +1700,7 @@ row 7: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) (7,4) [user-defined value] [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: load) - 4.73e-05 sec ] + 0.000118 sec ] =============== C = C + ciso @@ -1640,9 +1712,9 @@ row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) [ GxB_set - 9.13e-08 sec ] - [ GxB_Matrix_split (full split) - 4.33e-06 sec ] + 2.73e-07 sec ] + [ GxB_Matrix_split (full split) (jit: load) + 0.000108 sec ] =============== S Tile from C: @@ -1726,8 +1798,8 @@ row 1: ( 39, -28) ( 35, -30) ( 21, -42) ( 7, -54) row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: paused) (generic C(:,:)+=x assign) - 6.87e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1.47e-05 sec ] =============== C = C + ciso (JIT paused): @@ -1748,8 +1820,8 @@ row 1: ( 40, -30) ( 36, -32) ( 22, -44) ( 8, -56) row 2: ( 61, -42) ( 54, -48) ( 32, -64) ( 10, -80) row 3: ( 82, -54) ( 72, -64) ( 42, -84) ( 12,-104) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: paused) (generic C(:,:)+=x assign) - 4.99e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1e-05 sec ] =============== C = C * ciso (JIT paused): @@ -1761,8 +1833,8 @@ row 2: ( -23,-164) ( -42,-156) ( -96,-128) (-150,-100) row 3: ( -26,-218) ( -56,-208) (-126,-168) (-196,-128) JIT: run (may not load or compile) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: run) - 4.02e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar + 7.75e-06 sec ] =============== C = C + ciso (JIT run): @@ -1773,8 +1845,8 @@ row 1: ( -19,-112) ( -27,-106) ( -65, -90) (-103, -74) row 2: ( -22,-166) ( -41,-158) ( -95,-130) (-149,-102) row 3: ( -25,-220) ( -55,-210) (-125,-170) (-195,-130) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: not loaded) (generic C(:,:)+=x assign) - 4.72e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1e-05 sec ] =============== C = C * ciso (JIT not loaded): @@ -1787,7 +1859,7 @@ row 3: (-465,-170) (-475,-100) (-465, 80) (-455, 260) JIT: on [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: load) - 4.01e-05 sec ] + 0.000112 sec ] =============== C = C * ciso (full JIT): diff --git a/Demo/Output/gauss_demo1.out b/Demo/Output/gauss_demo1.out new file mode 100644 index 0000000000..90a7cb21a3 --- /dev/null +++ b/Demo/Output/gauss_demo1.out @@ -0,0 +1,2399 @@ +Gauss demo. Note that all transposes are array transposes, +not matrix (conjugate) transposes. + + + GraphBLAS Context: World + Context.nthreads: 40 + Context.chunk: 65536 +JIT configuration: ------------------ +JIT C compiler: [/usr/bin/cc] +JIT C flags: [ -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC ] +JIT C link flags: [ -shared ] +JIT C libraries: [ -lm -ldl -lgomp -lpthread] +JIT C preface: [] +JIT cache: [/home/faculty/d/davis/.SuiteSparse/GrB8.3.0] +JIT C control: [4] +JIT C control: [4] reset +------------------------------------- + +JIT C preface (revised): +// kernel generated by gauss_demo.c +#include + + [ GxB_Type_new (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.598 sec ] + GraphBLAS type: BadGauss user-defined: [gauss] size: 4 + typedef struct { int32_t real ; } gauss ; + [ GxB_Type_new (jit: type changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.595 sec ] + GraphBLAS type: Gauss user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + [ GxB_Type_new + 1.03e-05 sec ] + GraphBLAS type: Gauss user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + [ GxB_BinaryOp_new (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.608 sec ] + + GraphBLAS BinaryOp: BadAddGauss (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = -911 ; +} + [ GxB_BinaryOp_new (jit: op changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.624 sec ] + + GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + [ GxB_BinaryOp_new + 7.3e-06 sec ] + + GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + + GraphBLAS Monoid: AddMonoid (user-defined): + GraphBLAS BinaryOp: monoid->op (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + identity: [ [user-defined value] ] + + GraphBLAS BinaryOp: MultGauss (user-defined): z=multgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void multgauss (gauss *z, const gauss *x, const gauss *y) +{ + int32_t zreal = x->real * y->real - x->imag * y->imag ; + int32_t zimag = x->real * y->imag + x->imag * y->real ; + z->real = zreal ; + z->imag = zimag ; +} + + GraphBLAS Semiring: GaussSemiring (user-defined): (addgauss_multgauss) + GraphBLAS Monoid: semiring->add (user-defined): + GraphBLAS BinaryOp: monoid->op (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + identity: [ [user-defined value] ] + + GraphBLAS BinaryOp: semiring->multiply (user-defined): z=multgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void multgauss (gauss *z, const gauss *x, const gauss *y) +{ + int32_t zreal = x->real * y->real - x->imag * y->imag ; + int32_t zimag = x->real * y->imag + x->imag * y->real ; + z->real = zreal ; + z->imag = zimag ; +} +(iso wait:C (setElement:to non-iso) 0 zombies, 1 pending) + +=============== Gauss A matrix: + +size: 4-by-4 +row 0: . ( 1, 1) ( 1, 0) ( 1, -1) +row 1: ( 2, 2) ( 2, 1) ( 2, 0) ( 2, -1) +row 2: ( 3, 2) ( 3, 1) ( 3, 0) ( 3, -1) +row 3: ( 4, 2) ( 4, 1) ( 4, 0) ( 4, -1) + + [ GrB_reduce (A bitmap) work:16 gpus:0 (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/30e2328e57edb8cc +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/30e2328e57edb8cc' +[ 50%] Building C object CMakeFiles/GB_jit__reduce__83feee2__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/cc/GB_jit__reduce__83feee2__addgauss.c.o +[100%] Linking C shared library libGB_jit__reduce__83feee2__addgauss.so +[100%] Built target GB_jit__reduce__83feee2__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/30e2328e57edb8cc' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/cc/libGB_jit__reduce__83feee2__addgauss.so + + 0.667 sec ] + +sum (A) = (39,6) + [ GrB_mxm C=A*B, saxpy (B = B*B, anz: 15 bnz: 15) (bitmap saxpy) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e335728df7d8fc68 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e335728df7d8fc68' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/68/GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e335728df7d8fc68' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/68/libGB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.so +(bitmap to full) + 0.774 sec ] + + +=============== Gauss A = A^2 matrix: + +size: 4-by-4 +row 0: ( 9, 4) ( 9, 1) ( 9, -2) ( 9, -5) +row 1: ( 18, 10) ( 18, 8) ( 20, 0) ( 22, -8) +row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) +row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) + + [ GrB_reduce (A full) work:16 gpus:0 (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/216cc7a07453b1ee +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/216cc7a07453b1ee' +[ 50%] Building C object CMakeFiles/GB_jit__reduce__83feee3__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/ee/GB_jit__reduce__83feee3__addgauss.c.o +[100%] Linking C shared library libGB_jit__reduce__83feee3__addgauss.so +[100%] Built target GB_jit__reduce__83feee3__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/216cc7a07453b1ee' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/ee/libGB_jit__reduce__83feee3__addgauss.so + + 0.708 sec ] + +sum (A^2) = (387,46) + + +Gauss C empty matrix +size: 4-by-4 +row 0: . . . . +row 1: . . . . +row 2: . . . . +row 3: . . . . + + [ GxB_set (full to sparse) + 1.35e-05 sec ] + [ GxB_set (hyper to sparse) + 8.36e-06 sec ] + [ GrB_mxm (iso mask: struct) (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = Sf'*Sf) work:16 GPUs:0 Not using cuda path. +nthreads 1 ntasks 1 (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/67a80190c429079f +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/67a80190c429079f' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/9f/GB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/67a80190c429079f' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/9f/libGB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.so +(sparse to bitmap) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/be2424ff0149b586 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/be2424ff0149b586' +[ 50%] Building C object CMakeFiles/GB_jit__convert_s2b__0002ee0eed__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/86/GB_jit__convert_s2b__0002ee0eed__gauss.c.o +[100%] Linking C shared library libGB_jit__convert_s2b__0002ee0eed__gauss.so +[100%] Built target GB_jit__convert_s2b__0002ee0eed__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/be2424ff0149b586' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/86/libGB_jit__convert_s2b__0002ee0eed__gauss.so + + 1.32 sec ] + + +=============== Gauss C = diag(AA') matrix: + +size: 4-by-4 +row 0: ( 278, -36) . . . +row 1: . (1304, 296) . . +row 2: . . (2893, 768) . +row 3: . . . (5108,1456) + + [ GxB_set + 1.61e-06 sec ] + [ GxB_set (hyper to sparse) + 9.37e-06 sec ] + [ GrB_select (A dense) + 3.26e-05 sec ] + + +Gauss D matrix +size: 4-by-4 +row 0: ( 9, 4) . . . +row 1: . ( 18, 8) . . +row 2: . . ( 30, 0) . +row 3: . . . ( 42, -16) + + [ GrB_mxm C=A*B, colscale (Sf=Sf*S) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/dd2129670608a0a3 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/dd2129670608a0a3' +[ 50%] Building C object CMakeFiles/GB_jit__colscale__0100eee0eee45__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/a3/GB_jit__colscale__0100eee0eee45__multgauss.c.o +[100%] Linking C shared library libGB_jit__colscale__0100eee0eee45__multgauss.so +[100%] Built target GB_jit__colscale__0100eee0eee45__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/dd2129670608a0a3' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/a3/libGB_jit__colscale__0100eee0eee45__multgauss.so + + 0.637 sec ] + + +=============== Gauss C = D*A matrix: + +size: 4-by-4 +row 0: ( 65, 72) ( 77, 45) ( 89, 18) ( 101, -9) +row 1: ( 244, 324) ( 260, 288) ( 360, 160) ( 460, 32) +row 2: ( 810, 480) ( 840, 360) ( 900, 0) ( 960,-360) +row 3: (1864, 348) (1852, 64) (1680,-640) (1508,-1344) + + [ GxB_set + 9.27e-07 sec ] + [ GxB_set (sparse to bitmap) + 1.75e-05 sec ] + + +Gauss D matrix (bitmap) +size: 4-by-4 +row 0: ( 9, 4) . . . +row 1: . ( 18, 8) . . +row 2: . . ( 30, 0) . +row 3: . . . ( 42, -16) + + + 4x4 GraphBLAS gauss matrix, bitmap by row + sparsity control: bitmap only + D, 4 entries, memory: 360 bytes + + (0,0) [user-defined value] + (1,1) [user-defined value] + (2,2) [user-defined value] + (3,3) [user-defined value] + + [ GxB_set (bitmap to sparse) + 2.67e-05 sec ] + + +Gauss D matrix (back to sparse) +size: 4-by-4 +row 0: ( 9, 4) . . . +row 1: . ( 18, 8) . . +row 2: . . ( 30, 0) . +row 3: . . . ( 42, -16) + + + 4x4 GraphBLAS gauss matrix, sparse by row + sparsity control: sparse only + D, 4 entries, memory: 320 bytes + + (0,0) [user-defined value] + (1,1) [user-defined value] + (2,2) [user-defined value] + (3,3) [user-defined value] + + [ GrB_mxm C=A*B, rowscale (Sf=S*Sf) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/96b50768cfd669a8 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/96b50768cfd669a8' +[ 50%] Building C object CMakeFiles/GB_jit__rowscale__0100eee0eee45__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/a8/GB_jit__rowscale__0100eee0eee45__multgauss.c.o +[100%] Linking C shared library libGB_jit__rowscale__0100eee0eee45__multgauss.so +[100%] Built target GB_jit__rowscale__0100eee0eee45__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/96b50768cfd669a8' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/a8/libGB_jit__rowscale__0100eee0eee45__multgauss.so + + 0.634 sec ] + + +=============== Gauss C = A*D matrix: + +size: 4-by-4 +row 0: ( 65, 72) ( 154, 90) ( 270, -60) ( 298,-354) +row 1: ( 122, 162) ( 260, 288) ( 600, 0) ( 796,-688) +row 2: ( 179, 252) ( 408, 440) ( 900, 0) (1152,-1016) +row 3: ( 236, 342) ( 556, 592) (1200, 0) (1508,-1344) + + [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar + 3.38e-05 sec ] + + +=============== Gauss C = (1,-2) matrix: + +size: 4-by-4 +row 0: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 1: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 2: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 3: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) + + + +=============== Gauss A matrix: + +size: 4-by-4 +row 0: ( 9, 4) ( 9, 1) ( 9, -2) ( 9, -5) +row 1: ( 18, 10) ( 18, 8) ( 20, 0) ( 22, -8) +row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) +row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) + + [ GrB_mxm C=A'*B, dot_product (dot4: F += Sf'*Sf) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7acb8bd141ca27c9 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7acb8bd141ca27c9' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/c9/GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7acb8bd141ca27c9' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/c9/libGB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.so +(C in place) + 0.678 sec ] + + +=============== Gauss C += A*A' matrix: + +size: 4-by-4 +row 0: ( 279, -38) ( 615, 28) ( 918, 58) (1221, 88) +row 1: ( 615, 28) (1305, 294) (1943, 476) (2581, 658) +row 2: ( 918, 58) (1943, 476) (2894, 766) (3845,1056) +row 3: (1221, 88) (2581, 658) (3845,1056) (5109,1454) + + [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar + 2.18e-05 sec ] + + +=============== Gauss B = (1,-2) matrix: + +size: 4-by-4 +row 0: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 1: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 2: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 3: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) + + [ GrB_mxm C=A*B, saxpy (saxpy4: F += Sf*F) (coarse, threads: 1) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5301828568d7f863 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5301828568d7f863' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/63/GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5301828568d7f863' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/63/libGB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.so +(C in place) + 1.01 sec ] + + +=============== Gauss C += B*A: + +size: 4-by-4 +row 0: ( 473,-166) ( 782,-121) (1013,-142) (1244,-163) +row 1: ( 809,-100) (1472, 145) (2038, 276) (2604, 407) +row 2: (1112, -70) (2110, 327) (2989, 566) (3868, 805) +row 3: (1415, -40) (2748, 509) (3940, 856) (5132,1203) + + [ GrB_mxm C=A*B, saxpy (saxpy5: F += F*Sf) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/c94d1f86a5825b56 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/c94d1f86a5825b56' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/56/GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/c94d1f86a5825b56' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/56/libGB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.so +(C in place) + 0.647 sec ] + + +=============== Gauss C += A*B: + +size: 4-by-4 +row 0: ( 505,-240) ( 814,-195) (1045,-216) (1276,-237) +row 1: ( 907,-246) (1570, -1) (2136, 130) (2702, 261) +row 2: (1261,-288) (2259, 109) (3138, 348) (4017, 587) +row 3: (1615,-330) (2948, 219) (4140, 566) (5332, 913) + + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/3b6448d781104419 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/3b6448d781104419' +[ 50%] Building C object CMakeFiles/GB_jit__apply_bind1st__0000eee0efec1__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/19/GB_jit__apply_bind1st__0000eee0efec1__addgauss.c.o +[100%] Linking C shared library libGB_jit__apply_bind1st__0000eee0efec1__addgauss.so +[100%] Built target GB_jit__apply_bind1st__0000eee0efec1__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/3b6448d781104419' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/19/libGB_jit__apply_bind1st__0000eee0efec1__addgauss.so + + 0.615 sec ] + + +=============== Gauss C = (1,-2) + A: + +size: 4-by-4 +row 0: ( 10, 2) ( 10, -1) ( 10, -4) ( 10, -7) +row 1: ( 19, 8) ( 19, 6) ( 21, -2) ( 23, -10) +row 2: ( 28, 14) ( 29, 10) ( 31, -2) ( 33, -14) +row 3: ( 37, 20) ( 39, 14) ( 41, -2) ( 43, -18) + + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/42813a1e14cb43c9 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/42813a1e14cb43c9' +[ 50%] Building C object CMakeFiles/GB_jit__apply_bind2nd__0000eee0eefc4__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/c9/GB_jit__apply_bind2nd__0000eee0eefc4__multgauss.c.o +[100%] Linking C shared library libGB_jit__apply_bind2nd__0000eee0eefc4__multgauss.so +[100%] Built target GB_jit__apply_bind2nd__0000eee0eefc4__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/42813a1e14cb43c9' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/c9/libGB_jit__apply_bind2nd__0000eee0eefc4__multgauss.so + + 0.655 sec ] + + +=============== Gauss C = A*(1,-2): + +size: 4-by-4 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/37d33aa629f415d3 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/37d33aa629f415d3' +[ 50%] Building C object CMakeFiles/GB_jit__trans_bind2nd__0000eee0eef44__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d3/GB_jit__trans_bind2nd__0000eee0eef44__multgauss.c.o +[100%] Linking C shared library libGB_jit__trans_bind2nd__0000eee0eef44__multgauss.so +[100%] Built target GB_jit__trans_bind2nd__0000eee0eef44__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/37d33aa629f415d3' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d3/libGB_jit__trans_bind2nd__0000eee0eef44__multgauss.so +(full to sparse) + 0.668 sec ] + + +=============== Gauss C = A'*(1,-2): + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/07d1cb825d4304d3 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/07d1cb825d4304d3' +[ 50%] Building C object CMakeFiles/GB_jit__trans_bind1st__0000eee0efe41__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d3/GB_jit__trans_bind1st__0000eee0efe41__multgauss.c.o +[100%] Linking C shared library libGB_jit__trans_bind1st__0000eee0efe41__multgauss.so +[100%] Built target GB_jit__trans_bind1st__0000eee0efe41__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/07d1cb825d4304d3' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d3/libGB_jit__trans_bind1st__0000eee0efe41__multgauss.so +(full to sparse) + 0.673 sec ] + + +=============== Gauss C = (1,-2)*A': + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + + GraphBLAS UnaryOp: RealGauss (user-defined): z=realgauss(x) + GraphBLAS type: ztype int32_t size: 4 + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void realgauss (int32_t *z, const gauss *x) +{ + (*z) = x->real ; +} + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5c78101d6e73dc21 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5c78101d6e73dc21' +[ 50%] Building C object CMakeFiles/GB_jit__apply_unop__00006e06ef__realgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__apply_unop__00006e06ef__realgauss.c.o +[100%] Linking C shared library libGB_jit__apply_unop__00006e06ef__realgauss.so +[100%] Built target GB_jit__apply_unop__00006e06ef__realgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5c78101d6e73dc21' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/21/libGB_jit__apply_unop__00006e06ef__realgauss.so + + 0.621 sec ] + + 4x4 GraphBLAS int32_t matrix, full by row + R, 16 entries, memory: 280 bytes + + (0,0) 17 + (0,1) 38 + (0,2) 59 + (0,3) 80 + (1,0) 11 + (1,1) 34 + (1,2) 52 + (1,3) 70 + (2,0) 5 + (2,1) 20 + (2,2) 30 + (2,3) 40 + (3,0) -1 + (3,1) 6 + (3,2) 8 + (3,3) 10 + + + +=============== R = RealGauss (C') + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_apply (transpose-op) (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b799fc2c5b29ec49 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b799fc2c5b29ec49' +[ 50%] Building C object CMakeFiles/GB_jit__trans_unop__08006e06ef__realgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/49/GB_jit__trans_unop__08006e06ef__realgauss.c.o +[100%] Linking C shared library libGB_jit__trans_unop__08006e06ef__realgauss.so +[100%] Built target GB_jit__trans_unop__08006e06ef__realgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b799fc2c5b29ec49' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/49/libGB_jit__trans_unop__08006e06ef__realgauss.so + + 0.631 sec ] + + 4x4 GraphBLAS int32_t matrix, full by row + R, 16 entries, memory: 280 bytes + + (0,0) 17 + (0,1) 11 + (0,2) 5 + (0,3) -1 + (1,0) 38 + (1,1) 34 + (1,2) 20 + (1,3) 6 + (2,0) 59 + (2,1) 52 + (2,2) 30 + (2,3) 8 + (3,0) 80 + (3,1) 70 + (3,2) 40 + (3,3) 10 + + + +=============== C + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/4e606820337e573c +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/4e606820337e573c' +[ 50%] Building C object CMakeFiles/GB_jit__apply_unop__07fe8ee8ef__ijgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/3c/GB_jit__apply_unop__07fe8ee8ef__ijgauss.c.o +[100%] Linking C shared library libGB_jit__apply_unop__07fe8ee8ef__ijgauss.so +[100%] Built target GB_jit__apply_unop__07fe8ee8ef__ijgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/4e606820337e573c' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/3c/libGB_jit__apply_unop__07fe8ee8ef__ijgauss.so + + 0.626 sec ] + +R = ijgauss (C) + + 4x4 GraphBLAS int64_t matrix, full by row + R, 16 entries, memory: 344 bytes + + (0,0) 18 + (0,1) 38 + (0,2) 58 + (0,3) 78 + (1,0) 13 + (1,1) 35 + (1,2) 52 + (1,3) 69 + (2,0) 8 + (2,1) 22 + (2,2) 31 + (2,3) 40 + (3,0) 3 + (3,1) 9 + (3,2) 10 + (3,3) 11 + + [ GrB_Matrix_extractTuples (A full) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5660a671ca40c48b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5660a671ca40c48b' +[ 50%] Building C object CMakeFiles/GB_jit__apply_unop__0002bb0b8f.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/8b/GB_jit__apply_unop__0002bb0b8f.c.o +[100%] Linking C shared library libGB_jit__apply_unop__0002bb0b8f.so +[100%] Built target GB_jit__apply_unop__0002bb0b8f +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5660a671ca40c48b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/8b/libGB_jit__apply_unop__0002bb0b8f.so + + 0.6 sec ] +R (0,0) = 18 +R (0,1) = 38 +R (0,2) = 58 +R (0,3) = 78 +R (1,0) = 13 +R (1,1) = 35 +R (1,2) = 52 +R (1,3) = 69 +R (2,0) = 8 +R (2,1) = 22 +R (2,2) = 31 +R (2,3) = 40 +R (3,0) = 3 +R (3,1) = 9 +R (3,2) = 10 +R (3,3) = 11 + + +=============== C + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_transpose (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/20f5326f3ffc493d +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/20f5326f3ffc493d' +[ 50%] Building C object CMakeFiles/GB_jit__trans_unop__0802ee0eef__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/3d/GB_jit__trans_unop__0802ee0eef__gauss.c.o +[100%] Linking C shared library libGB_jit__trans_unop__0802ee0eef__gauss.so +[100%] Built target GB_jit__trans_unop__0802ee0eef__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/20f5326f3ffc493d' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/3d/libGB_jit__trans_unop__0802ee0eef__gauss.so + + 0.626 sec ] + + +=============== C = C' + +size: 4-by-4 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + [ GxB_set (in-place transpose) (transpose) + 2.9e-05 sec ] + [ GxB_Matrix_concat (sparse concat) (transpose) (bitmap/full transpose) (transpose) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f6daeb95a8060316 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f6daeb95a8060316' +[ 50%] Building C object CMakeFiles/GB_jit__trans_unop__0802ee0ee5__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/16/GB_jit__trans_unop__0802ee0ee5__gauss.c.o +[100%] Linking C shared library libGB_jit__trans_unop__0802ee0ee5__gauss.so +[100%] Built target GB_jit__trans_unop__0802ee0ee5__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f6daeb95a8060316' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/16/libGB_jit__trans_unop__0802ee0ee5__gauss.so +(transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/48b856264c49fbf7 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/48b856264c49fbf7' +[ 50%] Building C object CMakeFiles/GB_jit__concat_sparse__0802ee0ee7__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/f7/GB_jit__concat_sparse__0802ee0ee7__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_sparse__0802ee0ee7__gauss.so +[100%] Built target GB_jit__concat_sparse__0802ee0ee7__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/48b856264c49fbf7' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/f7/libGB_jit__concat_sparse__0802ee0ee7__gauss.so +(jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b74773f44d3a63e0 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b74773f44d3a63e0' +[ 50%] Building C object CMakeFiles/GB_jit__concat_sparse__0802ee0ee4__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/e0/GB_jit__concat_sparse__0802ee0ee4__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_sparse__0802ee0ee4__gauss.so +[100%] Built target GB_jit__concat_sparse__0802ee0ee4__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b74773f44d3a63e0' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/e0/libGB_jit__concat_sparse__0802ee0ee4__gauss.so +(jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ca722575fc658dc5 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ca722575fc658dc5' +[ 50%] Building C object CMakeFiles/GB_jit__concat_sparse__0802ee0ee5__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/c5/GB_jit__concat_sparse__0802ee0ee5__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_sparse__0802ee0ee5__gauss.so +[100%] Built target GB_jit__concat_sparse__0802ee0ee5__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ca722575fc658dc5' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/c5/libGB_jit__concat_sparse__0802ee0ee5__gauss.so + + 2.63 sec ] + + +=============== Z = [C D ; E E ; D C] +size: 256-by-8 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) ( 9, 4) . . . +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) . ( 18, 8) . . +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) . . ( 30, 0) . +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) . . . ( 42, -16) +row 4: . . . . . . . . +row 5: . . . . . . . . +row 6: . . . . . . . . +row 7: . . . . . . . . +row 8: . . . . . . . . +row 9: . . . . . . . . +row 10: . . . . . . . . +row 11: . . . . . . . . +row 12: . . . . . . . . +row 13: . . . . . . . . +row 14: . . . . . . . . +row 15: . . . . . . . . +row 16: . . . . . . . . +row 17: . . . . . . . . +row 18: . . . . . . . . +row 19: . . . . . . . . +row 20: . . . . . . . . +row 21: . . . . . . . . +row 22: . . . . . . . . +row 23: . . . . . . . . +row 24: . . . . . . . . +row 25: . . . . . . . . +row 26: . . . . . . . . +row 27: . . . . . . . . +row 28: . . . . . . . . +row 29: . . . . . . . . +row 30: . . . . . . . . +row 31: . . . . . . . . +row 32: . . . . . . . . +row 33: . . . . . . . . +row 34: . . . . . . . . +row 35: . . . . . . . . +row 36: . . . . . . . . +row 37: . . . . . . . . +row 38: . . . . . . . . +row 39: . . . . . . . . +row 40: . . . . . . . . +row 41: . . . . . . . . +row 42: . . . . . . . . +row 43: . . . . . . . . +row 44: . . . . . . . . +row 45: . . . . . . . . +row 46: . . . . . . . . +row 47: . . . . . . . . +row 48: . . . . . . . . +row 49: . . . . . . . . +row 50: . . . . . . . . +row 51: . . . . . . . . +row 52: . . . . . . . . +row 53: . . . . . . . . +row 54: . . . . . . . . +row 55: . . . . . . . . +row 56: . . . . . . . . +row 57: . . . . . . . . +row 58: . . . . . . . . +row 59: . . . . . . . . +row 60: . . . . . . . . +row 61: . . . . . . . . +row 62: . . . . . . . . +row 63: . . . . . . . . +row 64: . . . . . . . . +row 65: . . . . . . . . +row 66: . . . . . . . . +row 67: . . . . . . . . +row 68: . . . . . . . . +row 69: . . . . . . . . +row 70: . . . . . . . . +row 71: . . . . . . . . +row 72: . . . . . . . . +row 73: . . . . . . . . +row 74: . . . . . . . . +row 75: . . . . . . . . +row 76: . . . . . . . . +row 77: . . . . . . . . +row 78: . . . . . . . . +row 79: . . . . . . . . +row 80: . . . . . . . . +row 81: . . . . . . . . +row 82: . . . . . . . . +row 83: . . . . . . . . +row 84: . . . . . . . . +row 85: . . . . . . . . +row 86: . . . . . . . . +row 87: . . . . . . . . +row 88: . . . . . . . . +row 89: . . . . . . . . +row 90: . . . . . . . . +row 91: . . . . . . . . +row 92: . . . . . . . . +row 93: . . . . . . . . +row 94: . . . . . . . . +row 95: . . . . . . . . +row 96: . . . . . . . . +row 97: . . . . . . . . +row 98: . . . . . . . . +row 99: . . . . . . . . +row 100: . . . . . . . . +row 101: . . . . . . . . +row 102: . . . . . . . . +row 103: . . . . . . . . +row 104: . . . . . . . . +row 105: . . . . . . . . +row 106: . . . . . . . . +row 107: . . . . . . . . +row 108: . . . . . . . . +row 109: . . . . . . . . +row 110: . . . . . . . . +row 111: . . . . . . . . +row 112: . . . . . . . . +row 113: . . . . . . . . +row 114: . . . . . . . . +row 115: . . . . . . . . +row 116: . . . . . . . . +row 117: . . . . . . . . +row 118: . . . . . . . . +row 119: . . . . . . . . +row 120: . . . . . . . . +row 121: . . . . . . . . +row 122: . . . . . . . . +row 123: . . . . . . . . +row 124: . . . . . . . . +row 125: . . . . . . . . +row 126: . . . . . . . . +row 127: . . . . . . . . +row 128: . . . . . . . . +row 129: . . . . . . . . +row 130: . . . . . . . . +row 131: . . . . . . . . +row 132: . . . . . . . . +row 133: . . . . . . . . +row 134: . . . . . . . . +row 135: . . . . . . . . +row 136: . . . . . . . . +row 137: . . . . . . . . +row 138: . . . . . . . . +row 139: . . . . . . . . +row 140: . . . . . . . . +row 141: . . . . . . . . +row 142: . . . . . . . . +row 143: . . . . . . . . +row 144: . . . . . . . . +row 145: . . . . . . . . +row 146: . . . . . . . . +row 147: . . . . . . . . +row 148: . . . . . . . . +row 149: . . . . . . . . +row 150: . . . . . . . . +row 151: . . . . . . . . +row 152: . . . . . . . . +row 153: . . . . . . . . +row 154: . . . . . . . . +row 155: . . . . . . . . +row 156: . . . . . . . . +row 157: . . . . . . . . +row 158: . . . . . . . . +row 159: . . . . . . . . +row 160: . . . . . . . . +row 161: . . . . . . . . +row 162: . . . . . . . . +row 163: . . . . . . . . +row 164: . . . . . . . . +row 165: . . . . . . . . +row 166: . . . . . . . . +row 167: . . . . . . . . +row 168: . . . . . . . . +row 169: . . . . . . . . +row 170: . . . . . . . . +row 171: . . . . . . . . +row 172: . . . . . . . . +row 173: . . . . . . . . +row 174: . . . . . . . . +row 175: . . . . . . . . +row 176: . . . . . . . . +row 177: . . . . . . . . +row 178: . . . . . . . . +row 179: . . . . . . . . +row 180: . . . . . . . . +row 181: . . . . . . . . +row 182: . . . . . . . . +row 183: . . . . . . . . +row 184: . . . . . . . . +row 185: . . . . . . . . +row 186: . . . . . . . . +row 187: . . . . . . . . +row 188: . . . . . . . . +row 189: . . . . . . . . +row 190: . . . . . . . . +row 191: . . . . . . . . +row 192: . . . . . . . . +row 193: . . . . . . . . +row 194: . . . . . . . . +row 195: . . . . . . . . +row 196: . . . . . . . . +row 197: . . . . . . . . +row 198: . . . . . . . . +row 199: . . . . . . . . +row 200: . . . . . . . . +row 201: . . . . . . . . +row 202: . . . . . . . . +row 203: . . . . . . . . +row 204: . . . . . . . . +row 205: . . . . . . . . +row 206: . . . . . . . . +row 207: . . . . . . . . +row 208: . . . . . . . . +row 209: . . . . . . . . +row 210: . . . . . . . . +row 211: . . . . . . . . +row 212: . . . . . . . . +row 213: . . . . . . . . +row 214: . . . . . . . . +row 215: . . . . . . . . +row 216: . . . . . . . . +row 217: . . . . . . . . +row 218: . . . . . . . . +row 219: . . . . . . . . +row 220: . . . . . . . . +row 221: . . . . . . . . +row 222: . . . . . . . . +row 223: . . . . . . . . +row 224: . . . . . . . . +row 225: . . . . . . . . +row 226: . . . . . . . . +row 227: . . . . . . . . +row 228: . . . . . . . . +row 229: . . . . . . . . +row 230: . . . . . . . . +row 231: . . . . . . . . +row 232: . . . . . . . . +row 233: . . . . . . . . +row 234: . . . . . . . . +row 235: . . . . . . . . +row 236: . . . . . . . . +row 237: . . . . . . . . +row 238: . . . . . . . . +row 239: . . . . . . . . +row 240: . . . . . . . . +row 241: . . . . . . . . +row 242: . . . . . . . . +row 243: . . . . . . . . +row 244: . . . . . . . . +row 245: . . . . . . . . +row 246: . . . . . . . . +row 247: . . . . . . . . +row 248: . . . . . . . . +row 249: . . . . . . . . +row 250: . . . . . . . . +row 251: . . . . . . . . +row 252: ( 9, 4) . . . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 253: . ( 18, 8) . . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 254: . . ( 30, 0) . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 255: . . . ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 256x8 GraphBLAS gauss matrix, sparse by col + Z, 40 entries, memory: 928 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (252,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (253,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + (254,2) [user-defined value] + (0,3) [user-defined value] + (1,3) [user-defined value] + (2,3) [user-defined value] + (3,3) [user-defined value] + (255,3) [user-defined value] + (0,4) [user-defined value] + (252,4) [user-defined value] + (253,4) [user-defined value] + (254,4) [user-defined value] + (255,4) [user-defined value] + (1,5) [user-defined value] + (252,5) [user-defined value] + (253,5) [user-defined value] + (254,5) [user-defined value] + (255,5) [user-defined value] + (2,6) [user-defined value] + (252,6) [user-defined value] + (253,6) [user-defined value] + (254,6) [user-defined value] + (255,6) [user-defined value] + (3,7) [user-defined value] + (252,7) [user-defined value] + (253,7) [user-defined value] + (254,7) [user-defined value] + (255,7) [user-defined value] + + [ GxB_Matrix_split (sparse/hyper split) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bc6fbb55201f367c +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bc6fbb55201f367c' +[ 50%] Building C object CMakeFiles/GB_jit__split_sparse__0802ee0ee5__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/7c/GB_jit__split_sparse__0802ee0ee5__gauss.c.o +[100%] Linking C shared library libGB_jit__split_sparse__0802ee0ee5__gauss.so +[100%] Built target GB_jit__split_sparse__0802ee0ee5__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bc6fbb55201f367c' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/7c/libGB_jit__split_sparse__0802ee0ee5__gauss.so + + 0.647 sec ] + + +=============== C Tile from Z: + +size: 128-by-3 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) +row 4: . . . +row 5: . . . +row 6: . . . +row 7: . . . +row 8: . . . +row 9: . . . +row 10: . . . +row 11: . . . +row 12: . . . +row 13: . . . +row 14: . . . +row 15: . . . +row 16: . . . +row 17: . . . +row 18: . . . +row 19: . . . +row 20: . . . +row 21: . . . +row 22: . . . +row 23: . . . +row 24: . . . +row 25: . . . +row 26: . . . +row 27: . . . +row 28: . . . +row 29: . . . +row 30: . . . +row 31: . . . +row 32: . . . +row 33: . . . +row 34: . . . +row 35: . . . +row 36: . . . +row 37: . . . +row 38: . . . +row 39: . . . +row 40: . . . +row 41: . . . +row 42: . . . +row 43: . . . +row 44: . . . +row 45: . . . +row 46: . . . +row 47: . . . +row 48: . . . +row 49: . . . +row 50: . . . +row 51: . . . +row 52: . . . +row 53: . . . +row 54: . . . +row 55: . . . +row 56: . . . +row 57: . . . +row 58: . . . +row 59: . . . +row 60: . . . +row 61: . . . +row 62: . . . +row 63: . . . +row 64: . . . +row 65: . . . +row 66: . . . +row 67: . . . +row 68: . . . +row 69: . . . +row 70: . . . +row 71: . . . +row 72: . . . +row 73: . . . +row 74: . . . +row 75: . . . +row 76: . . . +row 77: . . . +row 78: . . . +row 79: . . . +row 80: . . . +row 81: . . . +row 82: . . . +row 83: . . . +row 84: . . . +row 85: . . . +row 86: . . . +row 87: . . . +row 88: . . . +row 89: . . . +row 90: . . . +row 91: . . . +row 92: . . . +row 93: . . . +row 94: . . . +row 95: . . . +row 96: . . . +row 97: . . . +row 98: . . . +row 99: . . . +row 100: . . . +row 101: . . . +row 102: . . . +row 103: . . . +row 104: . . . +row 105: . . . +row 106: . . . +row 107: . . . +row 108: . . . +row 109: . . . +row 110: . . . +row 111: . . . +row 112: . . . +row 113: . . . +row 114: . . . +row 115: . . . +row 116: . . . +row 117: . . . +row 118: . . . +row 119: . . . +row 120: . . . +row 121: . . . +row 122: . . . +row 123: . . . +row 124: . . . +row 125: . . . +row 126: . . . +row 127: . . . + + + 128x3 GraphBLAS gauss matrix, sparse by col + CTiles [k], 12 entries, memory: 440 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 128-by-5 +row 0: ( -1, -23) ( 9, 4) . . . +row 1: ( 6, -52) . ( 18, 8) . . +row 2: ( 8, -76) . . ( 30, 0) . +row 3: ( 10,-100) . . . ( 42, -16) +row 4: . . . . . +row 5: . . . . . +row 6: . . . . . +row 7: . . . . . +row 8: . . . . . +row 9: . . . . . +row 10: . . . . . +row 11: . . . . . +row 12: . . . . . +row 13: . . . . . +row 14: . . . . . +row 15: . . . . . +row 16: . . . . . +row 17: . . . . . +row 18: . . . . . +row 19: . . . . . +row 20: . . . . . +row 21: . . . . . +row 22: . . . . . +row 23: . . . . . +row 24: . . . . . +row 25: . . . . . +row 26: . . . . . +row 27: . . . . . +row 28: . . . . . +row 29: . . . . . +row 30: . . . . . +row 31: . . . . . +row 32: . . . . . +row 33: . . . . . +row 34: . . . . . +row 35: . . . . . +row 36: . . . . . +row 37: . . . . . +row 38: . . . . . +row 39: . . . . . +row 40: . . . . . +row 41: . . . . . +row 42: . . . . . +row 43: . . . . . +row 44: . . . . . +row 45: . . . . . +row 46: . . . . . +row 47: . . . . . +row 48: . . . . . +row 49: . . . . . +row 50: . . . . . +row 51: . . . . . +row 52: . . . . . +row 53: . . . . . +row 54: . . . . . +row 55: . . . . . +row 56: . . . . . +row 57: . . . . . +row 58: . . . . . +row 59: . . . . . +row 60: . . . . . +row 61: . . . . . +row 62: . . . . . +row 63: . . . . . +row 64: . . . . . +row 65: . . . . . +row 66: . . . . . +row 67: . . . . . +row 68: . . . . . +row 69: . . . . . +row 70: . . . . . +row 71: . . . . . +row 72: . . . . . +row 73: . . . . . +row 74: . . . . . +row 75: . . . . . +row 76: . . . . . +row 77: . . . . . +row 78: . . . . . +row 79: . . . . . +row 80: . . . . . +row 81: . . . . . +row 82: . . . . . +row 83: . . . . . +row 84: . . . . . +row 85: . . . . . +row 86: . . . . . +row 87: . . . . . +row 88: . . . . . +row 89: . . . . . +row 90: . . . . . +row 91: . . . . . +row 92: . . . . . +row 93: . . . . . +row 94: . . . . . +row 95: . . . . . +row 96: . . . . . +row 97: . . . . . +row 98: . . . . . +row 99: . . . . . +row 100: . . . . . +row 101: . . . . . +row 102: . . . . . +row 103: . . . . . +row 104: . . . . . +row 105: . . . . . +row 106: . . . . . +row 107: . . . . . +row 108: . . . . . +row 109: . . . . . +row 110: . . . . . +row 111: . . . . . +row 112: . . . . . +row 113: . . . . . +row 114: . . . . . +row 115: . . . . . +row 116: . . . . . +row 117: . . . . . +row 118: . . . . . +row 119: . . . . . +row 120: . . . . . +row 121: . . . . . +row 122: . . . . . +row 123: . . . . . +row 124: . . . . . +row 125: . . . . . +row 126: . . . . . +row 127: . . . . . + + + 128x5 GraphBLAS gauss matrix, sparse by col + CTiles [k], 8 entries, memory: 392 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,2) [user-defined value] + (2,3) [user-defined value] + (3,4) [user-defined value] + + + +=============== C Tile from Z: + +size: 128-by-3 +row 0: . . . +row 1: . . . +row 2: . . . +row 3: . . . +row 4: . . . +row 5: . . . +row 6: . . . +row 7: . . . +row 8: . . . +row 9: . . . +row 10: . . . +row 11: . . . +row 12: . . . +row 13: . . . +row 14: . . . +row 15: . . . +row 16: . . . +row 17: . . . +row 18: . . . +row 19: . . . +row 20: . . . +row 21: . . . +row 22: . . . +row 23: . . . +row 24: . . . +row 25: . . . +row 26: . . . +row 27: . . . +row 28: . . . +row 29: . . . +row 30: . . . +row 31: . . . +row 32: . . . +row 33: . . . +row 34: . . . +row 35: . . . +row 36: . . . +row 37: . . . +row 38: . . . +row 39: . . . +row 40: . . . +row 41: . . . +row 42: . . . +row 43: . . . +row 44: . . . +row 45: . . . +row 46: . . . +row 47: . . . +row 48: . . . +row 49: . . . +row 50: . . . +row 51: . . . +row 52: . . . +row 53: . . . +row 54: . . . +row 55: . . . +row 56: . . . +row 57: . . . +row 58: . . . +row 59: . . . +row 60: . . . +row 61: . . . +row 62: . . . +row 63: . . . +row 64: . . . +row 65: . . . +row 66: . . . +row 67: . . . +row 68: . . . +row 69: . . . +row 70: . . . +row 71: . . . +row 72: . . . +row 73: . . . +row 74: . . . +row 75: . . . +row 76: . . . +row 77: . . . +row 78: . . . +row 79: . . . +row 80: . . . +row 81: . . . +row 82: . . . +row 83: . . . +row 84: . . . +row 85: . . . +row 86: . . . +row 87: . . . +row 88: . . . +row 89: . . . +row 90: . . . +row 91: . . . +row 92: . . . +row 93: . . . +row 94: . . . +row 95: . . . +row 96: . . . +row 97: . . . +row 98: . . . +row 99: . . . +row 100: . . . +row 101: . . . +row 102: . . . +row 103: . . . +row 104: . . . +row 105: . . . +row 106: . . . +row 107: . . . +row 108: . . . +row 109: . . . +row 110: . . . +row 111: . . . +row 112: . . . +row 113: . . . +row 114: . . . +row 115: . . . +row 116: . . . +row 117: . . . +row 118: . . . +row 119: . . . +row 120: . . . +row 121: . . . +row 122: . . . +row 123: . . . +row 124: ( 9, 4) . . +row 125: . ( 18, 8) . +row 126: . . ( 30, 0) +row 127: . . . + + + 128x3 GraphBLAS gauss matrix, sparse by col + CTiles [k], 3 entries, memory: 296 bytes + + (124,0) [user-defined value] + (125,1) [user-defined value] + (126,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 128-by-5 +row 0: . . . . . +row 1: . . . . . +row 2: . . . . . +row 3: . . . . . +row 4: . . . . . +row 5: . . . . . +row 6: . . . . . +row 7: . . . . . +row 8: . . . . . +row 9: . . . . . +row 10: . . . . . +row 11: . . . . . +row 12: . . . . . +row 13: . . . . . +row 14: . . . . . +row 15: . . . . . +row 16: . . . . . +row 17: . . . . . +row 18: . . . . . +row 19: . . . . . +row 20: . . . . . +row 21: . . . . . +row 22: . . . . . +row 23: . . . . . +row 24: . . . . . +row 25: . . . . . +row 26: . . . . . +row 27: . . . . . +row 28: . . . . . +row 29: . . . . . +row 30: . . . . . +row 31: . . . . . +row 32: . . . . . +row 33: . . . . . +row 34: . . . . . +row 35: . . . . . +row 36: . . . . . +row 37: . . . . . +row 38: . . . . . +row 39: . . . . . +row 40: . . . . . +row 41: . . . . . +row 42: . . . . . +row 43: . . . . . +row 44: . . . . . +row 45: . . . . . +row 46: . . . . . +row 47: . . . . . +row 48: . . . . . +row 49: . . . . . +row 50: . . . . . +row 51: . . . . . +row 52: . . . . . +row 53: . . . . . +row 54: . . . . . +row 55: . . . . . +row 56: . . . . . +row 57: . . . . . +row 58: . . . . . +row 59: . . . . . +row 60: . . . . . +row 61: . . . . . +row 62: . . . . . +row 63: . . . . . +row 64: . . . . . +row 65: . . . . . +row 66: . . . . . +row 67: . . . . . +row 68: . . . . . +row 69: . . . . . +row 70: . . . . . +row 71: . . . . . +row 72: . . . . . +row 73: . . . . . +row 74: . . . . . +row 75: . . . . . +row 76: . . . . . +row 77: . . . . . +row 78: . . . . . +row 79: . . . . . +row 80: . . . . . +row 81: . . . . . +row 82: . . . . . +row 83: . . . . . +row 84: . . . . . +row 85: . . . . . +row 86: . . . . . +row 87: . . . . . +row 88: . . . . . +row 89: . . . . . +row 90: . . . . . +row 91: . . . . . +row 92: . . . . . +row 93: . . . . . +row 94: . . . . . +row 95: . . . . . +row 96: . . . . . +row 97: . . . . . +row 98: . . . . . +row 99: . . . . . +row 100: . . . . . +row 101: . . . . . +row 102: . . . . . +row 103: . . . . . +row 104: . . . . . +row 105: . . . . . +row 106: . . . . . +row 107: . . . . . +row 108: . . . . . +row 109: . . . . . +row 110: . . . . . +row 111: . . . . . +row 112: . . . . . +row 113: . . . . . +row 114: . . . . . +row 115: . . . . . +row 116: . . . . . +row 117: . . . . . +row 118: . . . . . +row 119: . . . . . +row 120: . . . . . +row 121: . . . . . +row 122: . . . . . +row 123: . . . . . +row 124: . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 125: . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 126: . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 127: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 128x5 GraphBLAS gauss matrix, sparse by col + CTiles [k], 17 entries, memory: 536 bytes + + (127,0) [user-defined value] + (124,1) [user-defined value] + (125,1) [user-defined value] + (126,1) [user-defined value] + (127,1) [user-defined value] + (124,2) [user-defined value] + (125,2) [user-defined value] + (126,2) [user-defined value] + (127,2) [user-defined value] + (124,3) [user-defined value] + (125,3) [user-defined value] + (126,3) [user-defined value] + (127,3) [user-defined value] + (124,4) [user-defined value] + (125,4) [user-defined value] + (126,4) [user-defined value] + (127,4) [user-defined value] + + [ GxB_set (in-place transpose) (transpose) + 1.6e-05 sec ] + [ GxB_Matrix_concat (bitmap concat) (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/0c3e9de2e5d73a82 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/0c3e9de2e5d73a82' +[ 50%] Building C object CMakeFiles/GB_jit__concat_bitmap__0802ee0eeb__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/82/GB_jit__concat_bitmap__0802ee0eeb__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_bitmap__0802ee0eeb__gauss.so +[100%] Built target GB_jit__concat_bitmap__0802ee0eeb__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/0c3e9de2e5d73a82' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/82/libGB_jit__concat_bitmap__0802ee0eeb__gauss.so +(transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/068b643968f6613c +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/068b643968f6613c' +[ 50%] Building C object CMakeFiles/GB_jit__concat_bitmap__0802ee0ee8__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/3c/GB_jit__concat_bitmap__0802ee0ee8__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_bitmap__0802ee0ee8__gauss.so +[100%] Built target GB_jit__concat_bitmap__0802ee0ee8__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/068b643968f6613c' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/3c/libGB_jit__concat_bitmap__0802ee0ee8__gauss.so +(transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e363064d750a735e +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e363064d750a735e' +[ 50%] Building C object CMakeFiles/GB_jit__concat_bitmap__0802ee0ee9__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/5e/GB_jit__concat_bitmap__0802ee0ee9__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_bitmap__0802ee0ee9__gauss.so +[100%] Built target GB_jit__concat_bitmap__0802ee0ee9__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e363064d750a735e' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/5e/libGB_jit__concat_bitmap__0802ee0ee9__gauss.so +(transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) + 1.97 sec ] + + +=============== Z = [C D ; E E ; D C] +size: 16-by-8 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) ( 9, 4) . . . +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) . ( 18, 8) . . +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) . . ( 30, 0) . +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) . . . ( 42, -16) +row 4: . . . . . . . . +row 5: . . . . . . . . +row 6: . . . . . . . . +row 7: . . . . . . . . +row 8: . . . . . . . . +row 9: . . . . . . . . +row 10: . . . . . . . . +row 11: . . . . . . . . +row 12: ( 9, 4) . . . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 13: . ( 18, 8) . . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 14: . . ( 30, 0) . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 15: . . . ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 16x8 GraphBLAS gauss matrix, bitmap by col + Z, 40 entries, memory: 1.3 KB + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (12,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (13,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + (14,2) [user-defined value] + (0,3) [user-defined value] + (1,3) [user-defined value] + (2,3) [user-defined value] + (3,3) [user-defined value] + (15,3) [user-defined value] + (0,4) [user-defined value] + (12,4) [user-defined value] + (13,4) [user-defined value] + (14,4) [user-defined value] + (15,4) [user-defined value] + (1,5) [user-defined value] + (12,5) [user-defined value] + (13,5) [user-defined value] + (14,5) [user-defined value] + (15,5) [user-defined value] + (2,6) [user-defined value] + (12,6) [user-defined value] + (13,6) [user-defined value] + (14,6) [user-defined value] + (15,6) [user-defined value] + (3,7) [user-defined value] + (12,7) [user-defined value] + (13,7) [user-defined value] + (14,7) [user-defined value] + (15,7) [user-defined value] + + [ GxB_Matrix_split (bitmap split) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f5d9f01d1b2c9447 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f5d9f01d1b2c9447' +[ 50%] Building C object CMakeFiles/GB_jit__split_bitmap__0802ee0eea__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/47/GB_jit__split_bitmap__0802ee0eea__gauss.c.o +[100%] Linking C shared library libGB_jit__split_bitmap__0802ee0eea__gauss.so +[100%] Built target GB_jit__split_bitmap__0802ee0eea__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f5d9f01d1b2c9447' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/47/libGB_jit__split_bitmap__0802ee0eea__gauss.so + + 0.614 sec ] + + +=============== C Tile from Z: + +size: 8-by-3 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) +row 4: . . . +row 5: . . . +row 6: . . . +row 7: . . . + + + 8x3 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 12 entries, memory: 432 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 8-by-5 +row 0: ( -1, -23) ( 9, 4) . . . +row 1: ( 6, -52) . ( 18, 8) . . +row 2: ( 8, -76) . . ( 30, 0) . +row 3: ( 10,-100) . . . ( 42, -16) +row 4: . . . . . +row 5: . . . . . +row 6: . . . . . +row 7: . . . . . + + + 8x5 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 8 entries, memory: 576 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,2) [user-defined value] + (2,3) [user-defined value] + (3,4) [user-defined value] + + + +=============== C Tile from Z: + +size: 8-by-3 +row 0: . . . +row 1: . . . +row 2: . . . +row 3: . . . +row 4: ( 9, 4) . . +row 5: . ( 18, 8) . +row 6: . . ( 30, 0) +row 7: . . . + + + 8x3 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 3 entries, memory: 432 bytes + + (4,0) [user-defined value] + (5,1) [user-defined value] + (6,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 8-by-5 +row 0: . . . . . +row 1: . . . . . +row 2: . . . . . +row 3: . . . . . +row 4: . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 5: . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 6: . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 7: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 8x5 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 17 entries, memory: 576 bytes + + (7,0) [user-defined value] + (4,1) [user-defined value] + (5,1) [user-defined value] + (6,1) [user-defined value] + (7,1) [user-defined value] + (4,2) [user-defined value] + (5,2) [user-defined value] + (6,2) [user-defined value] + (7,2) [user-defined value] + (4,3) [user-defined value] + (5,3) [user-defined value] + (6,3) [user-defined value] + (7,3) [user-defined value] + (4,4) [user-defined value] + (5,4) [user-defined value] + (6,4) [user-defined value] + (7,4) [user-defined value] + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bcb251ed7f212866 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bcb251ed7f212866' +[ 50%] Building C object CMakeFiles/GB_jit__subassign_22__1000eee0eec8__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/66/GB_jit__subassign_22__1000eee0eec8__addgauss.c.o +[100%] Linking C shared library libGB_jit__subassign_22__1000eee0eec8__addgauss.so +[100%] Built target GB_jit__subassign_22__1000eee0eec8__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bcb251ed7f212866' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/66/libGB_jit__subassign_22__1000eee0eec8__addgauss.so + + 0.639 sec ] + + +=============== C = C + ciso + +size: 4-by-4 +row 0: ( 18, -16) ( 12, -19) ( 6, -22) ( 0, -25) +row 1: ( 39, -28) ( 35, -30) ( 21, -42) ( 7, -54) +row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) +row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) + + [ GxB_set + 6.48e-07 sec ] + [ GxB_Matrix_split (full split) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b25a3ffd809024d5 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b25a3ffd809024d5' +[ 50%] Building C object CMakeFiles/GB_jit__split_full__0802ee0eef__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d5/GB_jit__split_full__0802ee0eef__gauss.c.o +[100%] Linking C shared library libGB_jit__split_full__0802ee0eef__gauss.so +[100%] Built target GB_jit__split_full__0802ee0eef__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b25a3ffd809024d5' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d5/libGB_jit__split_full__0802ee0eef__gauss.so + + 0.612 sec ] + + +=============== S Tile from C: + +size: 1-by-2 +row 0: ( 18, -16) ( 12, -19) + + + 1x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 2 entries, memory: 232 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + + + +=============== S Tile from C: + +size: 1-by-2 +row 0: ( 6, -22) ( 0, -25) + + + 1x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 2 entries, memory: 232 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + + + +=============== S Tile from C: + +size: 3-by-2 +row 0: ( 39, -28) ( 35, -30) +row 1: ( 60, -40) ( 53, -46) +row 2: ( 81, -52) ( 71, -62) + + + 3x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 6 entries, memory: 264 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + (1,0) [user-defined value] + (1,1) [user-defined value] + (2,0) [user-defined value] + (2,1) [user-defined value] + + + +=============== S Tile from C: + +size: 3-by-2 +row 0: ( 21, -42) ( 7, -54) +row 1: ( 31, -62) ( 9, -78) +row 2: ( 41, -82) ( 11,-102) + + + 3x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 6 entries, memory: 264 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + (1,0) [user-defined value] + (1,1) [user-defined value] + (2,0) [user-defined value] + (2,1) [user-defined value] + +JIT: paused + + +=============== C: + +size: 4-by-4 +row 0: ( 18, -16) ( 12, -19) ( 6, -22) ( 0, -25) +row 1: ( 39, -28) ( 35, -30) ( 21, -42) ( 7, -54) +row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) +row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 3.18e-05 sec ] + + +=============== C = C + ciso (JIT paused): + +size: 4-by-4 +row 0: ( 19, -18) ( 13, -21) ( 7, -24) ( 1, -27) +row 1: ( 40, -30) ( 36, -32) ( 22, -44) ( 8, -56) +row 2: ( 61, -42) ( 54, -48) ( 32, -64) ( 10, -80) +row 3: ( 82, -54) ( 72, -64) ( 42, -84) ( 12,-104) + + + +=============== C: + +size: 4-by-4 +row 0: ( 19, -18) ( 13, -21) ( 7, -24) ( 1, -27) +row 1: ( 40, -30) ( 36, -32) ( 22, -44) ( 8, -56) +row 2: ( 61, -42) ( 54, -48) ( 32, -64) ( 10, -80) +row 3: ( 82, -54) ( 72, -64) ( 42, -84) ( 12,-104) + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1.81e-05 sec ] + + +=============== C = C * ciso (JIT paused): + +size: 4-by-4 +row 0: ( -17, -56) ( -29, -47) ( -41, -38) ( -53, -29) +row 1: ( -20,-110) ( -28,-104) ( -66, -88) (-104, -72) +row 2: ( -23,-164) ( -42,-156) ( -96,-128) (-150,-100) +row 3: ( -26,-218) ( -56,-208) (-126,-168) (-196,-128) + +JIT: run (may not load or compile) + [ GrB_assign (pending: 0) Method 22: (C full) += scalar + 1.4e-05 sec ] + + +=============== C = C + ciso (JIT run): + +size: 4-by-4 +row 0: ( -16, -58) ( -28, -49) ( -40, -40) ( -52, -31) +row 1: ( -19,-112) ( -27,-106) ( -65, -90) (-103, -74) +row 2: ( -22,-166) ( -41,-158) ( -95,-130) (-149,-102) +row 3: ( -25,-220) ( -55,-210) (-125,-170) (-195,-130) + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1.76e-05 sec ] + + +=============== C = C * ciso (JIT not loaded): + +size: 4-by-4 +row 0: (-132, -26) (-126, 7) (-120, 40) (-114, 73) +row 1: (-243, -74) (-239, -52) (-245, 40) (-251, 132) +row 2: (-354,-122) (-357, -76) (-355, 60) (-353, 196) +row 3: (-465,-170) (-475,-100) (-465, 80) (-455, 260) + +JIT: on + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7a164201169278d1 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7a164201169278d1' +[ 50%] Building C object CMakeFiles/GB_jit__subassign_22__1000eee0eec8__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d1/GB_jit__subassign_22__1000eee0eec8__multgauss.c.o +[100%] Linking C shared library libGB_jit__subassign_22__1000eee0eec8__multgauss.so +[100%] Built target GB_jit__subassign_22__1000eee0eec8__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7a164201169278d1' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d1/libGB_jit__subassign_22__1000eee0eec8__multgauss.so + + 0.627 sec ] + + +=============== C = C * ciso (full JIT): + +size: 4-by-4 +row 0: (-184, 238) (-112, 259) ( -40, 280) ( 32, 301) +row 1: (-391, 412) (-343, 426) (-165, 530) ( 13, 634) +row 2: (-598, 586) (-509, 638) (-235, 770) ( 39, 902) +row 3: (-805, 760) (-675, 850) (-305,1010) ( 65,1170) + diff --git a/Demo/Output/import_demo.out b/Demo/Output/import_demo.out index 40e4c92eed..13be0e9b98 100644 --- a/Demo/Output/import_demo.out +++ b/Demo/Output/import_demo.out @@ -4,7 +4,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -40,7 +40,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -76,7 +76,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -112,7 +112,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -150,7 +150,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -186,7 +186,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -222,7 +222,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -258,7 +258,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -296,7 +296,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -332,7 +332,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -368,7 +368,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -404,7 +404,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -442,7 +442,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 @@ -478,7 +478,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 @@ -514,7 +514,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 @@ -550,7 +550,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 diff --git a/Demo/Output/openmp_demo.out b/Demo/Output/openmp_demo.out index da6ccd0671..7c05985184 100644 --- a/Demo/Output/openmp_demo.out +++ b/Demo/Output/openmp_demo.out @@ -1,26 +1,26 @@ Demo: ../build/openmp_demo: User threads in this program are OpenMP threads. -================= worker 1 starts: +================= worker 0 starts: ================= worker 6 starts: -================= worker 4 starts: - ================= worker 3 starts: -================= worker 7 starts: +================= worker 1 starts: + +================= worker 2 starts: ================= worker 5 starts: -================= worker 2 starts: +================= worker 4 starts: -================= worker 0 starts: +================= worker 7 starts: ------------------ worker 1 intentional error: +----------------- worker 0 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1001 out of range; must be < 6 +Row index 1000 out of range; must be < 6 ----------------- worker 4 intentional error: GraphBLAS error: GrB_INVALID_INDEX @@ -42,97 +42,61 @@ GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) Row index 1007 out of range; must be < 6 ------------------ worker 0 intentional error: +----------------- worker 2 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1000 out of range; must be < 6 +Row index 1002 out of range; must be < 6 ----------------- worker 5 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) Row index 1005 out of range; must be < 6 ------------------ worker 2 intentional error: +----------------- worker 1 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1002 out of range; must be < 6 - ------------------ worker 4 is done: - - 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes - - (0,0) 101004 - (0,1) 102004 - (0,2) 103004 - (0,3) 104004 - (0,4) 105004 - (0,5) 106004 - (1,0) 201004 - (1,1) 202004 - (1,2) 203004 - (1,3) 204004 - (1,4) 205004 - (1,5) 206004 - (2,0) 301004 - (2,1) 302004 - (2,2) 303004 - (2,3) 304004 - (2,4) 305004 - (2,5) 306004 - (3,0) 401004 - (3,1) 402004 - (3,2) 403004 - (3,3) 404004 - (3,4) 405004 - (3,5) 406004 - (4,0) 501004 - (4,1) 502004 - (4,2) 503004 - (4,3) 504004 - (4,4) 505004 - ... +Row index 1001 out of range; must be < 6 ------------------ worker 3 is done: +----------------- worker 0 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101003 - (0,1) 102003 - (0,2) 103003 - (0,3) 104003 - (0,4) 105003 - (0,5) 106003 - (1,0) 201003 - (1,1) 202003 - (1,2) 203003 - (1,3) 204003 - (1,4) 205003 - (1,5) 206003 - (2,0) 301003 - (2,1) 302003 - (2,2) 303003 - (2,3) 304003 - (2,4) 305003 - (2,5) 306003 - (3,0) 401003 - (3,1) 402003 - (3,2) 403003 - (3,3) 404003 - (3,4) 405003 - (3,5) 406003 - (4,0) 501003 - (4,1) 502003 - (4,2) 503003 - (4,3) 504003 - (4,4) 505003 + (0,0) 101000 + (0,1) 102000 + (0,2) 103000 + (0,3) 104000 + (0,4) 105000 + (0,5) 106000 + (1,0) 201000 + (1,1) 202000 + (1,2) 203000 + (1,3) 204000 + (1,4) 205000 + (1,5) 206000 + (2,0) 301000 + (2,1) 302000 + (2,2) 303000 + (2,3) 304000 + (2,4) 305000 + (2,5) 306000 + (3,0) 401000 + (3,1) 402000 + (3,2) 403000 + (3,3) 404000 + (3,4) 405000 + (3,5) 406000 + (4,0) 501000 + (4,1) 502000 + (4,2) 503000 + (4,3) 504000 + (4,4) 505000 ... ----------------- worker 1 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101001 (0,1) 102001 @@ -165,88 +129,78 @@ Row index 1002 out of range; must be < 6 (4,4) 505001 ... ------------------ worker 4 error should be same: -GraphBLAS error: GrB_INVALID_INDEX -function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1004 out of range; must be < 6 - ------------------ worker 2 is done: +----------------- worker 5 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101002 - (0,1) 102002 - (0,2) 103002 - (0,3) 104002 - (0,4) 105002 - (0,5) 106002 - (1,0) 201002 - (1,1) 202002 - (1,2) 203002 - (1,3) 204002 - (1,4) 205002 - (1,5) 206002 - (2,0) 301002 - (2,1) 302002 - (2,2) 303002 - (2,3) 304002 - (2,4) 305002 - (2,5) 306002 - (3,0) 401002 - (3,1) 402002 - (3,2) 403002 - (3,3) 404002 - (3,4) 405002 - (3,5) 406002 - (4,0) 501002 - (4,1) 502002 - (4,2) 503002 - (4,3) 504002 - (4,4) 505002 + (0,0) 101005 + (0,1) 102005 + (0,2) 103005 + (0,3) 104005 + (0,4) 105005 + (0,5) 106005 + (1,0) 201005 + (1,1) 202005 + (1,2) 203005 + (1,3) 204005 + (1,4) 205005 + (1,5) 206005 + (2,0) 301005 + (2,1) 302005 + (2,2) 303005 + (2,3) 304005 + (2,4) 305005 + (2,5) 306005 + (3,0) 401005 + (3,1) 402005 + (3,2) 403005 + (3,3) 404005 + (3,4) 405005 + (3,5) 406005 + (4,0) 501005 + (4,1) 502005 + (4,2) 503005 + (4,3) 504005 + (4,4) 505005 ... ------------------ worker 0 is done: +----------------- worker 6 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101000 - (0,1) 102000 - (0,2) 103000 - (0,3) 104000 - (0,4) 105000 - (0,5) 106000 - (1,0) 201000 - (1,1) 202000 - (1,2) 203000 - (1,3) 204000 - (1,4) 205000 - (1,5) 206000 - (2,0) 301000 - (2,1) 302000 - (2,2) 303000 - (2,3) 304000 - (2,4) 305000 - (2,5) 306000 - (3,0) 401000 - (3,1) 402000 - (3,2) 403000 - (3,3) 404000 - (3,4) 405000 - (3,5) 406000 - (4,0) 501000 - (4,1) 502000 - (4,2) 503000 - (4,3) 504000 - (4,4) 505000 + (0,0) 101006 + (0,1) 102006 + (0,2) 103006 + (0,3) 104006 + (0,4) 105006 + (0,5) 106006 + (1,0) 201006 + (1,1) 202006 + (1,2) 203006 + (1,3) 204006 + (1,4) 205006 + (1,5) 206006 + (2,0) 301006 + (2,1) 302006 + (2,2) 303006 + (2,3) 304006 + (2,4) 305006 + (2,5) 306006 + (3,0) 401006 + (3,1) 402006 + (3,2) 403006 + (3,3) 404006 + (3,4) 405006 + (3,5) 406006 + (4,0) 501006 + (4,1) 502006 + (4,2) 503006 + (4,3) 504006 + (4,4) 505006 ... ------------------ worker 2 error should be same: -GraphBLAS error: GrB_INVALID_INDEX -function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1002 out of range; must be < 6 - ----------------- worker 1 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) @@ -255,7 +209,7 @@ Row index 1001 out of range; must be < 6 ----------------- worker 7 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101007 (0,1) 102007 @@ -288,51 +242,51 @@ Row index 1001 out of range; must be < 6 (4,4) 505007 ... ------------------ worker 3 error should be same: +----------------- worker 0 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1003 out of range; must be < 6 +Row index 1000 out of range; must be < 6 ------------------ worker 5 is done: +----------------- worker 2 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101005 - (0,1) 102005 - (0,2) 103005 - (0,3) 104005 - (0,4) 105005 - (0,5) 106005 - (1,0) 201005 - (1,1) 202005 - (1,2) 203005 - (1,3) 204005 - (1,4) 205005 - (1,5) 206005 - (2,0) 301005 - (2,1) 302005 - (2,2) 303005 - (2,3) 304005 - (2,4) 305005 - (2,5) 306005 - (3,0) 401005 - (3,1) 402005 - (3,2) 403005 - (3,3) 404005 - (3,4) 405005 - (3,5) 406005 - (4,0) 501005 - (4,1) 502005 - (4,2) 503005 - (4,3) 504005 - (4,4) 505005 + (0,0) 101002 + (0,1) 102002 + (0,2) 103002 + (0,3) 104002 + (0,4) 105002 + (0,5) 106002 + (1,0) 201002 + (1,1) 202002 + (1,2) 203002 + (1,3) 204002 + (1,4) 205002 + (1,5) 206002 + (2,0) 301002 + (2,1) 302002 + (2,2) 303002 + (2,3) 304002 + (2,4) 305002 + (2,5) 306002 + (3,0) 401002 + (3,1) 402002 + (3,2) 403002 + (3,3) 404002 + (3,4) 405002 + (3,5) 406002 + (4,0) 501002 + (4,1) 502002 + (4,2) 503002 + (4,3) 504002 + (4,4) 505002 ... ------------------ worker 0 error should be same: +----------------- worker 6 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1000 out of range; must be < 6 +Row index 1006 out of range; must be < 6 ----------------- worker 7 error should be same: GraphBLAS error: GrB_INVALID_INDEX @@ -344,51 +298,97 @@ GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) Row index 1005 out of range; must be < 6 ------------------ worker 6 is done: +----------------- worker 2 error should be same: +GraphBLAS error: GrB_INVALID_INDEX +function: GrB_Matrix_setElement_INT32 (C, row, col, x) +Row index 1002 out of range; must be < 6 + +----------------- worker 4 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101006 - (0,1) 102006 - (0,2) 103006 - (0,3) 104006 - (0,4) 105006 - (0,5) 106006 - (1,0) 201006 - (1,1) 202006 - (1,2) 203006 - (1,3) 204006 - (1,4) 205006 - (1,5) 206006 - (2,0) 301006 - (2,1) 302006 - (2,2) 303006 - (2,3) 304006 - (2,4) 305006 - (2,5) 306006 - (3,0) 401006 - (3,1) 402006 - (3,2) 403006 - (3,3) 404006 - (3,4) 405006 - (3,5) 406006 - (4,0) 501006 - (4,1) 502006 - (4,2) 503006 - (4,3) 504006 - (4,4) 505006 + (0,0) 101004 + (0,1) 102004 + (0,2) 103004 + (0,3) 104004 + (0,4) 105004 + (0,5) 106004 + (1,0) 201004 + (1,1) 202004 + (1,2) 203004 + (1,3) 204004 + (1,4) 205004 + (1,5) 206004 + (2,0) 301004 + (2,1) 302004 + (2,2) 303004 + (2,3) 304004 + (2,4) 305004 + (2,5) 306004 + (3,0) 401004 + (3,1) 402004 + (3,2) 403004 + (3,3) 404004 + (3,4) 405004 + (3,5) 406004 + (4,0) 501004 + (4,1) 502004 + (4,2) 503004 + (4,3) 504004 + (4,4) 505004 ... ------------------ worker 6 error should be same: +----------------- worker 3 is done: + + 6x6 GraphBLAS double matrix, full by row + A, 36 entries, memory: 504 bytes + + (0,0) 101003 + (0,1) 102003 + (0,2) 103003 + (0,3) 104003 + (0,4) 105003 + (0,5) 106003 + (1,0) 201003 + (1,1) 202003 + (1,2) 203003 + (1,3) 204003 + (1,4) 205003 + (1,5) 206003 + (2,0) 301003 + (2,1) 302003 + (2,2) 303003 + (2,3) 304003 + (2,4) 305003 + (2,5) 306003 + (3,0) 401003 + (3,1) 402003 + (3,2) 403003 + (3,3) 404003 + (3,4) 405003 + (3,5) 406003 + (4,0) 501003 + (4,1) 502003 + (4,2) 503003 + (4,3) 504003 + (4,4) 505003 + ... + +----------------- worker 4 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1006 out of range; must be < 6 +Row index 1004 out of range; must be < 6 + +----------------- worker 3 error should be same: +GraphBLAS error: GrB_INVALID_INDEX +function: GrB_Matrix_setElement_INT32 (C, row, col, x) +Row index 1003 out of range; must be < 6 ---- Leader prints matrix 0 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101000 (0,1) 102000 @@ -424,7 +424,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 1 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101001 (0,1) 102001 @@ -460,7 +460,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 2 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101002 (0,1) 102002 @@ -496,7 +496,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 3 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101003 (0,1) 102003 @@ -532,7 +532,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 4 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101004 (0,1) 102004 @@ -568,7 +568,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 5 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101005 (0,1) 102005 @@ -604,7 +604,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 6 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101006 (0,1) 102006 @@ -640,7 +640,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 7 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101007 (0,1) 102007 diff --git a/Demo/Output/wildtype_demo.out b/Demo/Output/wildtype_demo.out index cdf36412fc..24fc339563 100644 --- a/Demo/Output/wildtype_demo.out +++ b/Demo/Output/wildtype_demo.out @@ -1,5 +1,5 @@ [ GxB_Type_new - 9.86e-06 sec ] + 9.21e-06 sec ] GraphBLAS type: WildType user-defined: [wildtype] size: 192 typedef struct { double stuff [4][4] ; char whatstuff [64] ; } wildtype ; WildType size: 192 @@ -11,8 +11,8 @@ a wildtype scalar: scalar1 [this is from scalar1] 100.0 101.0 102.0 103.0 200.0 201.0 202.0 203.0 300.0 301.0 302.0 303.0 -(iso wait:C (setElement:to non-iso) 0 zombies, 1 pending) [ GrB_transpose (wait:A 0 zombies, 2 pending) (build) (jit: load) add:(H<.>=H+H) (jit: load) (hyper to sparse) (transpose) (builder transpose) (jit: run) (hyper to sparse) - 0.000947 sec ] +(iso wait:C (setElement:to non-iso) 0 zombies, 1 pending) [ GrB_transpose (wait:A 0 zombies, 2 pending) (build) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/de/GB_jit__build__02eeeee__wildtype.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/de/GB_jit__build__02eeeee__wildtype.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/de/libGB_jit__build__02eeeee__wildtype.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/de/GB_jit__build__02eeeee__wildtype.o -lm -ldl -lgomp -lpthread ") add:(H<.>=H+H) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/77/GB_jit__add__1002e0e0eee00__wildtype.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/77/GB_jit__add__1002e0e0eee00__wildtype.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/77/libGB_jit__add__1002e0e0eee00__wildtype.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/77/GB_jit__add__1002e0e0eee00__wildtype.o -lm -ldl -lgomp -lpthread ") (hyper to sparse) (transpose) (builder transpose) (hyper to sparse) + 0.535 sec ] a wildtype scalar: got scalar2 = C(7,2) [this is A(2,7)] 0.0 1.0 2.0 3.0 @@ -139,7 +139,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,7) [user-defined value] [ GrB_Matrix_nvals - 7.73e-07 sec ] + 1.3e-06 sec ] ============= printing the WildType matrix: input A (10-by-10 with 3 entries) @@ -183,8 +183,8 @@ Printing the matrix with GxB_Matrix_fprint: row: 4 col: 2 [user-defined value] pending operator: implicit 2nd - [ GrB_Matrix_nvals (wait:A 0 zombies, 2 pending) (build) (jit: run) add:(H<.>=H+H) (jit: run) (hyper to sparse) - 3.68e-05 sec ] + [ GrB_Matrix_nvals (wait:A 0 zombies, 2 pending) (build) add:(H<.>=H+H) (hyper to sparse) + 0.000289 sec ] ============= printing the WildType matrix: input B (10-by-10 with 3 entries) @@ -213,8 +213,8 @@ a wildtype scalar: [here is B(7,5)] -2.5 -1.5 -0.5 0.5 ============= that was the WildType matrix input B - [ GrB_mxm C=A*B, saxpy (S = S*S, anz: 3 bnz: 3) axbwork 8 (intensity: 1.14 workspace/(nnz(A)+nnz(B)): 1.43) (nthreads 1 coarse: 1) (sparse saxpy) (jit: load) - 0.000114 sec ] + [ GrB_mxm C=A*B, saxpy (S = S*S, anz: 3 bnz: 3) axbwork 8 (intensity: 1.14 workspace/(nnz(A)+nnz(B)): 1.43) (nthreads 1 coarse: 1) (sparse saxpy) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/21/libGB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.o -lm -ldl -lgomp -lpthread ") + 0.963 sec ] Printing the matrix with GxB_Matrix_fprint: @@ -227,7 +227,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,5) [user-defined value] [ GrB_Matrix_nvals - 8.48e-08 sec ] + 3.43e-07 sec ] ============= printing the WildType matrix: output C (10-by-10 with 4 entries) @@ -274,15 +274,16 @@ The mask matrix M: iso value: 1 pending tuples: 4 max pending: 256 zombies: 0 pending tuples: - GraphBLAS type: int32_t size: 4 + GraphBLAS type: bool size: 1 row: 2 col: 2 row: 2 col: 3 row: 3 col: 2 row: 3 col: 3 pending operator: implicit 2nd - [ GrB_mxm (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = S'*S) nthreads 1 ntasks 1 (jit: load) - 9.23e-05 sec ] + [ GrB_mxm (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = S'*S) Not using cuda path: type size not supported +nthreads 1 ntasks 1 (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/0f/GB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/0f/GB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/0f/libGB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/0f/GB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.o -lm -ldl -lgomp -lpthread ") + 0.563 sec ] Printing the matrix with GxB_Matrix_fprint: @@ -295,7 +296,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,3) [user-defined value] [ GrB_Matrix_nvals - 6.89e-08 sec ] + 3.2e-07 sec ] ============= printing the WildType matrix: output C (10-by-10 with 4 entries) @@ -332,24 +333,26 @@ a wildtype scalar: [this was added] -13424304.0 -2565388.0 6850828.0 16267044.0 ============= that was the WildType matrix output C - [ GrB_reduce (jit: load) - 4.75e-05 sec ] + [ GrB_reduce Not using cuda path: type size not supported +(jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b7/GB_jit__reduce__03feee1__wildadd.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b7/GB_jit__reduce__03feee1__wildadd.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b7/libGB_jit__reduce__03feee1__wildadd.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b7/GB_jit__reduce__03feee1__wildadd.o -lm -ldl -lgomp -lpthread ") + 0.24 sec ] a wildtype scalar: sum (first time) [this was added] -111773.5 269.5 93412.5 583455.5 -49510798.5 271594.5 43367587.5 319487980.5 -92402621.5 2801413.5 85075148.5 622622583.5 -149241466.8 471094.8 130123106.2 959972867.8 - [ GrB_reduce (jit: run) - 3.14e-06 sec ] + [ GrB_reduce Not using cuda path: type size not supported + + 1.59e-05 sec ] a wildtype scalar: sum (again) [this was added] -111773.5 269.5 93412.5 583455.5 -49510798.5 271594.5 43367587.5 319487980.5 -92402621.5 2801413.5 85075148.5 622622583.5 -149241466.8 471094.8 130123106.2 959972867.8 - [ GxB_set (transpose) (in-place transpose) (transpose) (1-thread bucket transpose) (jit: load) - 6.21e-05 sec ] + [ GxB_set (transpose) (in-place transpose) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/6c/GB_jit__trans_unop__0802ee0ee5__wildtype.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/6c/GB_jit__trans_unop__0802ee0ee5__wildtype.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/6c/libGB_jit__trans_unop__0802ee0ee5__wildtype.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/6c/GB_jit__trans_unop__0802ee0ee5__wildtype.o -lm -ldl -lgomp -lpthread ") + 0.216 sec ] C is now stored by column, but it looks just the same to the GraphBLAS user application. The difference is opaque, in the @@ -366,7 +369,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,3) [user-defined value] [ GrB_Matrix_nvals - 5.63e-08 sec ] + 2.43e-07 sec ] ============= printing the WildType matrix: output C (10-by-10 with 4 entries) @@ -412,7 +415,7 @@ Printing the matrix with GxB_Matrix_fprint: The matrix D is not wild enough to print. [ GrB_apply (shallow-op) - 1.25e-05 sec ] + 2.92e-05 sec ] 10x10 GraphBLAS int64_t matrix, sparse by row E (positional i), 3 entries, memory: 352 bytes @@ -422,7 +425,7 @@ The matrix D is not wild enough to print. (3,7) 3 [ GrB_apply (shallow-op) - 3.55e-06 sec ] + 1.15e-05 sec ] 10x10 GraphBLAS int64_t matrix, sparse by row E (positional j), 3 entries, memory: 352 bytes @@ -432,7 +435,7 @@ The matrix D is not wild enough to print. (3,7) 7 [ GrB_eWiseAdd - 3.09e-06 sec ] + 6.52e-06 sec ] This is supposed to fail, as a demo of GrB_error: GraphBLAS error: GrB_DOMAIN_MISMATCH diff --git a/Demo/Program/gauss_demo.c b/Demo/Program/gauss_demo.c index bbaab05dcc..ec6d3747ac 100644 --- a/Demo/Program/gauss_demo.c +++ b/Demo/Program/gauss_demo.c @@ -141,26 +141,31 @@ void ijgauss (int64_t *z, const gauss *x, GrB_Index i, GrB_Index j, // since the matrix is small. #undef OK -#define OK(x) \ -{ \ - if (!(x)) \ - { \ - printf ("info: %d error! Line %d\n", info, __LINE__) ; \ - fflush (stdout) ; \ - abort ( ) ; \ - } \ +#define OK(x) \ +{ \ + if (!(x)) \ + { \ + printf ("info: %d error! File %s, Line %d\n", \ + info, __FILE__, __LINE__) ; \ + fprintf (stderr, "info: %d error! File %s, Line %d\n", \ + info, __FILE__, __LINE__) ; \ + fflush (stdout) ; \ + fflush (stderr) ; \ + abort ( ) ; \ + } \ } #undef TRY #define TRY(method) \ { \ - GrB_Info info = method ; \ + info = (method) ; \ OK (info == GrB_SUCCESS) ; \ } void printgauss (GrB_Matrix A, char *name) { // print the matrix + GrB_Info info = GrB_SUCCESS ; GrB_Index m, n ; TRY (GrB_Matrix_nrows (&m, A)) ; TRY (GrB_Matrix_ncols (&n, A)) ; @@ -171,7 +176,7 @@ void printgauss (GrB_Matrix A, char *name) for (int j = 0 ; j < n ; j++) { gauss a ; - GrB_Info info = GrB_Matrix_extractElement_UDT (&a, A, i, j) ; + info = GrB_Matrix_extractElement_UDT (&a, A, i, j) ; if (info == GrB_NO_VALUE) { printf (" . ") ; @@ -193,11 +198,19 @@ void printgauss (GrB_Matrix A, char *name) int main (void) { + fprintf (stderr, "\ngauss_demo:\n") ; + // start GraphBLAS - GrB_Info info ; + GrB_Info info = GrB_SUCCESS ; TRY (GrB_init (GrB_NONBLOCKING)) ; TRY (GxB_Global_Option_set (GxB_BURBLE, true)) ; + + // try using cmake to build all JIT kernels, just as a test. This setting + // is ignored by Windows (for MSVC it is treated as always true, and for + // MINGW it is treated as always false). Only Linux and Mac can change + // this setting. TRY (GxB_Global_Option_set (GxB_JIT_USE_CMAKE, true)) ; + printf ("Gauss demo. Note that all transposes are array transposes,\n" "not matrix (conjugate) transposes.\n\n") ; @@ -205,9 +218,10 @@ int main (void) // TRY (GxB_Global_Option_set (GxB_JIT_ERROR_LOG, "/tmp/grb_jit_errors.txt")) ; // try changing the cache path -// TRY (GxB_Global_Option_set (GxB_JIT_CACHE_PATH, "/home/faculty/d/davis/mycache")) ; +// TRY (GxB_Global_Option_set (GxB_JIT_CACHE_PATH, +// "/home/faculty/d/davis/mycache")) ; - TRY (GxB_Context_fprint (GxB_CONTEXT_WORLD, "World", GxB_COMPLETE, stdout)) ; + TRY (GxB_Context_fprint (GxB_CONTEXT_WORLD, "World", GxB_COMPLETE, stdout)); char *compiler, *cache, *flags, *link, *libraries, *preface ; int control ; TRY (GxB_Global_Option_get (GxB_JIT_C_COMPILER_NAME, &compiler)) ; @@ -227,9 +241,11 @@ int main (void) printf ("JIT C control: [%d]\n", control) ; TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_ON)) ; TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &control)) ; + int save = control ; printf ("JIT C control: [%d] reset\n", control) ; printf ("-------------------------------------\n\n") ; + // revise the header for each JIT kernel; this is not required but appears // here just as a demo of the feature. TRY (GxB_Global_Option_set (GxB_JIT_C_PREFACE, @@ -259,6 +275,12 @@ int main (void) OK (sizeof_gauss == sizeof (badgauss)) ; GrB_Type_free (&BadGauss) ; + // the JIT should have been successful, unless it was originally off + #define OK_JIT \ + TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &control)) ; \ + OK (control == save) ; + OK_JIT + // 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 @@ -281,6 +303,7 @@ int main (void) TRY (GxB_Type_size (&sizeof_gauss, Gauss)) ; // printf ("sizeof_gauss %lu %lu\n", sizeof_gauss, sizeof (gauss)) ; OK (sizeof_gauss == sizeof (gauss)) ; + OK_JIT } // create the BadAddGauss operator; use a NULL function pointer to test the @@ -300,6 +323,7 @@ int main (void) 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 // JIT. Causes an intentional name collision because of reusing the name @@ -321,6 +345,7 @@ int main (void) Gauss, Gauss, Gauss)) ; } TRY (GxB_BinaryOp_fprint (AddGauss, "AddGauss", GxB_COMPLETE, stdout)) ; + OK_JIT } // printf ("JIT: off\n") ; @@ -370,14 +395,17 @@ int main (void) // a = sum (A) TRY (GrB_Matrix_reduce_UDT (&a, NULL, AddMonoid, A, NULL)) ; printf ("\nsum (A) = (%d,%d)\n", a.real, a.imag) ; + OK_JIT // A = A*A TRY (GrB_mxm (A, NULL, NULL, GaussSemiring, A, A, NULL)) ; printgauss (A, "\n=============== Gauss A = A^2 matrix:\n") ; + OK_JIT // a = sum (A) TRY (GrB_Matrix_reduce_UDT (&a, NULL, AddMonoid, A, NULL)) ; printf ("\nsum (A^2) = (%d,%d)\n", a.real, a.imag) ; + OK_JIT // C = A*A' where A and D are sparse GrB_Matrix C ; @@ -387,6 +415,7 @@ int main (void) TRY (GxB_Matrix_Option_set (D, GxB_SPARSITY_CONTROL, GxB_SPARSE)) ; TRY (GrB_mxm (C, D, NULL, GaussSemiring, A, A, GrB_DESC_T1)) ; printgauss (C, "\n=============== Gauss C = diag(AA') matrix:\n") ; + OK_JIT // C = D*A GrB_Matrix_free (&D) ; @@ -397,6 +426,7 @@ int main (void) printgauss (D, "\nGauss D matrix") ; TRY (GrB_mxm (C, NULL, NULL, GaussSemiring, D, A, NULL)) ; printgauss (C, "\n=============== Gauss C = D*A matrix:\n") ; + OK_JIT // convert D to bitmap then back to sparse TRY (GxB_Matrix_Option_set (D, GxB_SPARSITY_CONTROL, GxB_SPARSE)) ; @@ -406,10 +436,12 @@ int main (void) TRY (GxB_Matrix_Option_set (D, GxB_SPARSITY_CONTROL, GxB_SPARSE)) ; printgauss (D, "\nGauss D matrix (back to sparse)") ; TRY (GxB_Matrix_fprint (D, "D", GxB_COMPLETE, stdout)) ; + OK_JIT // C = A*D TRY (GrB_mxm (C, NULL, NULL, GaussSemiring, A, D, NULL)) ; printgauss (C, "\n=============== Gauss C = A*D matrix:\n") ; + OK_JIT // C = (1,2) then C += A*A' where C is full gauss ciso ; @@ -421,6 +453,7 @@ int main (void) printgauss (A, "\n=============== Gauss A matrix:\n") ; TRY (GrB_mxm (C, NULL, AddGauss, GaussSemiring, A, A, GrB_DESC_T1)) ; printgauss (C, "\n=============== Gauss C += A*A' matrix:\n") ; + OK_JIT // C += B*A where B is full and A is sparse GrB_Matrix B ; @@ -430,30 +463,36 @@ int main (void) printgauss (B, "\n=============== Gauss B = (1,-2) matrix:\n") ; TRY (GrB_mxm (C, NULL, AddGauss, GaussSemiring, B, A, NULL)) ; printgauss (C, "\n=============== Gauss C += B*A:\n") ; + OK_JIT // C += A*B where B is full and A is sparse TRY (GrB_mxm (C, NULL, AddGauss, GaussSemiring, A, B, NULL)) ; printgauss (C, "\n=============== Gauss C += A*B:\n") ; + OK_JIT // C = ciso+A TRY (GrB_Matrix_apply_BinaryOp1st_UDT (C, NULL, NULL, AddGauss, (void *) &ciso, A, NULL)) ; printgauss (C, "\n=============== Gauss C = (1,-2) + A:\n") ; + OK_JIT // C = A*ciso TRY (GrB_Matrix_apply_BinaryOp2nd_UDT (C, NULL, NULL, MultGauss, A, (void *) &ciso, NULL)) ; printgauss (C, "\n=============== Gauss C = A*(1,-2):\n") ; + OK_JIT // C = A'*ciso TRY (GrB_Matrix_apply_BinaryOp2nd_UDT (C, NULL, NULL, MultGauss, A, (void *) &ciso, GrB_DESC_T0)) ; printgauss (C, "\n=============== Gauss C = A'*(1,-2):\n") ; + OK_JIT // C = ciso*A' TRY (GrB_Matrix_apply_BinaryOp1st_UDT (C, NULL, NULL, MultGauss, (void *) &ciso, A, GrB_DESC_T1)) ; printgauss (C, "\n=============== Gauss C = (1,-2)*A':\n") ; + OK_JIT // create the RealGauss unary op GrB_UnaryOp RealGauss ; @@ -462,14 +501,19 @@ int main (void) TRY (GxB_UnaryOp_fprint (RealGauss, "RealGauss", GxB_COMPLETE, stdout)) ; GrB_Matrix R ; TRY (GrB_Matrix_new (&R, GrB_INT32, 4, 4)) ; + OK_JIT + // R = RealGauss (C) TRY (GrB_Matrix_apply (R, NULL, NULL, RealGauss, C, NULL)) ; TRY (GxB_Matrix_fprint (R, "R", GxB_COMPLETE, stdout)) ; + OK_JIT + // R = RealGauss (C') printgauss (C, "\n=============== R = RealGauss (C')\n") ; TRY (GrB_Matrix_apply (R, NULL, NULL, RealGauss, C, GrB_DESC_T0)) ; TRY (GxB_Matrix_fprint (R, "R", GxB_COMPLETE, stdout)) ; GrB_Matrix_free (&R) ; + OK_JIT // create the IJGauss IndexUnaryOp GrB_IndexUnaryOp IJGauss ; @@ -488,10 +532,13 @@ int main (void) { printf ("R (%d,%d) = %g\n", (int) I [k], (int) J [k], X [k]) ; } + OK_JIT + // C = C' printgauss (C, "\n=============== C\n") ; TRY (GrB_transpose (C, NULL, NULL, C, NULL)) ; printgauss (C, "\n=============== C = C'\n") ; + OK_JIT for (int trial = 0 ; trial <= 1 ; trial++) { @@ -508,6 +555,7 @@ int main (void) TRY (GxB_Matrix_concat (Z, (GrB_Matrix *) Tiles, 3, 2, NULL)) ; printgauss (Z, "\n=============== Z = [C D ; E E ; D C]") ; TRY (GxB_Matrix_fprint (Z, "Z", GxB_COMPLETE, stdout)) ; + OK_JIT GrB_Matrix CTiles [4] ; GrB_Index Tile_nrows [2] ; @@ -517,6 +565,7 @@ int main (void) Tile_ncols [0] = 3 ; Tile_ncols [1] = 5 ; TRY (GxB_Matrix_split (CTiles, 2, 2, Tile_nrows, Tile_ncols, Z, NULL)) ; + OK_JIT for (int k = 0 ; k < 4 ; k++) { @@ -524,6 +573,7 @@ int main (void) TRY (GxB_Matrix_fprint (CTiles [k], "CTiles [k]", GxB_COMPLETE, stdout)) ; GrB_Matrix_free (& (CTiles [k])) ; + OK_JIT } GrB_Matrix_free (&Z) ; @@ -532,11 +582,13 @@ int main (void) // try using cmake instead of a direct compile/link command TRY (GxB_Global_Option_set (GxB_JIT_USE_CMAKE, true)) ; + OK_JIT // C += ciso TRY (GrB_Matrix_assign_UDT (C, NULL, AddGauss, (void *) &ciso, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; printgauss (C, "\n=============== C = C + ciso\n") ; + OK_JIT // split the full matrix C TRY (GxB_Matrix_Option_set (C, GxB_SPARSITY_CONTROL, GxB_FULL)) ; @@ -544,6 +596,7 @@ int main (void) GrB_Index Tile_nrows [2] = { 1, 3 } ; GrB_Index Tile_ncols [2] = { 2, 2 } ; TRY (GxB_Matrix_split (STiles, 2, 2, Tile_nrows, Tile_ncols, C, NULL)) ; + OK_JIT for (int k = 0 ; k < 4 ; k++) { @@ -551,57 +604,64 @@ int main (void) TRY (GxB_Matrix_fprint (STiles [k], "STiles [k]", GxB_COMPLETE, stdout)) ; GrB_Matrix_free (& (STiles [k])) ; + OK_JIT } // pause the JIT printf ("JIT: paused\n") ; TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_PAUSE)) ; + TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &control)) ; + save = control ; + OK_JIT // C += ciso printgauss (C, "\n=============== C: \n") ; TRY (GrB_Matrix_assign_UDT (C, NULL, AddGauss, (void *) &ciso, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; printgauss (C, "\n=============== C = C + ciso (JIT paused):\n") ; + OK_JIT // C *= ciso printgauss (C, "\n=============== C: \n") ; TRY (GrB_Matrix_assign_UDT (C, NULL, MultGauss, (void *) &ciso, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; printgauss (C, "\n=============== C = C * ciso (JIT paused):\n") ; + OK_JIT // re-enable the JIT, but not to compile anything new - printf ("JIT: run (may not load or compile)\n") ; + printf ("JIT: run (the JIT can only run, not load or compile)\n") ; TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_RUN)) ; + TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &control)) ; + save = control ; + OK_JIT // C += ciso, using the previous loaded JIT kernel TRY (GrB_Matrix_assign_UDT (C, NULL, AddGauss, (void *) &ciso, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; printgauss (C, "\n=============== C = C + ciso (JIT run):\n") ; + OK_JIT // C *= ciso, but using generic since it is not compiled TRY (GrB_Matrix_assign_UDT (C, NULL, MultGauss, (void *) &ciso, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; printgauss (C, "\n=============== C = C * ciso (JIT not loaded):\n") ; + OK_JIT // re-enable the JIT entirely 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)) ; + save = control ; + OK_JIT // C *= ciso, compiling a new JIT kernel if needed TRY (GrB_Matrix_assign_UDT (C, NULL, MultGauss, (void *) &ciso, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; printgauss (C, "\n=============== C = C * ciso (full JIT):\n") ; + OK_JIT gauss result ; TRY (GrB_Matrix_extractElement_UDT (&result, C, 3, 3)) ; - if (result.real == 65 && result.imag == 1170) - { - fprintf (stderr, "gauss_demo: all tests pass\n") ; - } - else - { - fprintf (stderr, "gauss_demo: test failure\n") ; - } // free everything and finalize GraphBLAS GrB_Matrix_free (&A) ; @@ -616,6 +676,19 @@ int main (void) GrB_Monoid_free (&AddMonoid) ; GrB_BinaryOp_free (&MultGauss) ; GrB_Semiring_free (&GaussSemiring) ; + OK_JIT GrB_finalize ( ) ; + + // return result + bool ok = (result.real == 65 && result.imag == 1170) ; + if (ok) + { + fprintf (stderr, "gauss_demo: all tests pass\n") ; + } + else + { + fprintf (stderr, "gauss_demo: test failure\n") ; + } + return (ok ? 0 : 1) ; } diff --git a/Demo/Program/simple_demo.c b/Demo/Program/simple_demo.c index c562106ccb..4739e80c27 100644 --- a/Demo/Program/simple_demo.c +++ b/Demo/Program/simple_demo.c @@ -9,7 +9,7 @@ /* A simple test that illustrates the use of simple_rand. - This test does not require C11, nor GraphBLAS. It only tests the + This test does not require ANSI C11, nor GraphBLAS. It only tests the simple_* Demo functions. The output of this test should look like the following. The random numbers should be the same. On a Mac OSX system: diff --git a/Demo/Program/wildtype_demo.c b/Demo/Program/wildtype_demo.c index af10b941f3..aa5cd95c46 100644 --- a/Demo/Program/wildtype_demo.c +++ b/Demo/Program/wildtype_demo.c @@ -189,9 +189,7 @@ void wildmult (wildtype *z, const wildtype *x, const wildtype *y) //------------------------------------------------------------------------------ #define LINE \ -"----------------------------------------------------------------------------\n" -#define LINE2 \ -"============================================================================\n" +"--------------------------------------------------------\n" int main (void) { @@ -208,17 +206,7 @@ int main (void) GxB_Global_Option_set (GxB_BURBLE, true) ; int nthreads ; GxB_Global_Option_get (GxB_GLOBAL_NTHREADS, &nthreads) ; - fprintf (stderr, "wildtype demo: nthreads %d\n", nthreads) ; - - /* via #defines: - fprintf (stderr, LINE2 "SuiteSparse:GraphBLAS Version %d.%d.%d, %s\n" LINE2 - "%s" LINE "License: %s" LINE "GraphBLAS API Version %d.%d.%d, %s" - " (http://graphblas.org)\n%s" LINE2, GxB_IMPLEMENTATION_MAJOR, - GxB_IMPLEMENTATION_MINOR, GxB_IMPLEMENTATION_SUB, - GxB_IMPLEMENTATION_DATE, GxB_IMPLEMENTATION_ABOUT, - GxB_IMPLEMENTATION_LICENSE, GxB_SPEC_MAJOR, GxB_SPEC_MINOR, - GxB_SPEC_SUB, GxB_SPEC_DATE, GxB_SPEC_ABOUT) ; - */ + fprintf (stderr, "\n" LINE "wildtype_demo: nthreads: %d\n", nthreads ) ; char *library ; GxB_Global_Option_get (GxB_LIBRARY_NAME, &library) ; int version [3] ; GxB_Global_Option_get (GxB_LIBRARY_VERSION, version) ; @@ -233,9 +221,9 @@ int main (void) char *api_about ; GxB_Global_Option_get (GxB_API_ABOUT, &api_about) ; char *api_url ; GxB_Global_Option_get (GxB_API_URL, &api_url) ; - fprintf (stderr, LINE2 "%s Version %d.%d.%d, %s\n" LINE2 "%s" + fprintf (stderr, LINE "%s Version %d.%d.%d, %s\n" LINE "%s" "(%s)\n" LINE "License:\n%s" LINE "GraphBLAS API Version %d.%d.%d, %s" - " (%s)\n%s" LINE2, + " (%s)\n%s" LINE, library, version [0], version [1], version [2], date, about, url, license, api_ver [0], api_ver [1], api_ver [2], api_date, api_url, api_about) ; @@ -460,5 +448,6 @@ int main (void) GrB_Type_free (&WildType) ; GrB_finalize ( ) ; + fprintf (stderr, "\n" LINE) ; } diff --git a/Demo/demo b/Demo/demo index 4b9d2e55cf..db8d2fa7aa 100755 --- a/Demo/demo +++ b/Demo/demo @@ -3,14 +3,14 @@ # SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -../build/simple_demo > simple_demo.out -../build/complex_demo > complex_demo_out.m -../build/complex_demo 1 > complex_demo_out2.m -../build/openmp_demo > openmp_demo.out +../build/simple_demo > ../build/simple_demo.out +../build/complex_demo > ../build/complex_demo_out.m +../build/complex_demo 1 > ../build/complex_demo_out2.m +../build/openmp_demo > ../build/openmp_demo.out -../build/import_demo < Matrix/west0067 > import_demo.out -../build/wildtype_demo > wildtype_demo.out +../build/import_demo < Matrix/west0067 > ../build/import_demo.out +../build/wildtype_demo > ../build/wildtype_demo.out -../build/gauss_demo > gauss_demo1.out -../build/gauss_demo > gauss_demo.out +../build/gauss_demo > ../build/gauss_demo1.out +../build/gauss_demo > ../build/gauss_demo.out exit 0 diff --git a/Demo/vdemo b/Demo/vdemo index 798584ecaa..1835a942ff 100755 --- a/Demo/vdemo +++ b/Demo/vdemo @@ -6,19 +6,19 @@ # V="valgrind --error-limit=no --tool=memcheck -q --log-file=valgrind_%p.log --leak-check=full --show-leak-kinds=all" V="valgrind --error-limit=no --tool=memcheck -q --log-file=valgrind_%p.log" -$V ../build/simple_demo > simple_demo.out -$V ../build/complex_demo > complex_demo_out.m -$V ../build/complex_demo 1 > complex_demo_out2.m -$V ../build/openmp_demo > openmp_demo.out +$V ../build/simple_demo > ../build/simple_demo.out +$V ../build/complex_demo > ../build/complex_demo_out.m +$V ../build/complex_demo 1 > ../build/complex_demo_out2.m +$V ../build/openmp_demo > ../build/openmp_demo.out -$V ../build/import_demo < Matrix/west0067 > import_demo.out -$V ../build/wildtype_demo > wildtype_demo.out +$V ../build/import_demo < Matrix/west0067 > ../build/import_demo.out +$V ../build/wildtype_demo > ../build/wildtype_demo.out $V ../build/gauss_demo echo "Comparing output:" -diff Output/simple_demo.out simple_demo.out -diff Output/complex_demo_out.m complex_demo_out.m -diff Output/wildtype_demo.out wildtype_demo.out +diff Output/simple_demo.out ../build/simple_demo.out +diff Output/complex_demo_out.m ../build/complex_demo_out.m +diff Output/wildtype_demo.out ../build/wildtype_demo.out exit 0 diff --git a/Doc/ChangeLog b/Doc/ChangeLog index c545d78299..f642e72681 100644 --- a/Doc/ChangeLog +++ b/Doc/ChangeLog @@ -1,27 +1,9 @@ -Oct 13, 2023: version 9.0.0 - - * GrB_get/GrB_set: new functions from the v2.1 C API. - * GrB_Type_new, GrB_UnaryOp_new, GrB_IndexUnaryOp_new: no longer macros, - since GrB_set can be used to set the names of the operators. These - methods no longer extract the name, so the default name is now the - empty string. This is because GrB_get/set can only set these names - once. This is a non-compatible change of behaviour for these 3 - methods, so SuiteSprase:GraphBLAS must become v9.0.0. - * historical methods: many methods are replaced by GrB_get and GrB_set. - They remain in SuiteSparse:GraphBLAS but have been declared historical. - Terse prototypes exist in GraphBLAS.h, and any discussion is removed - from the User Guide: GxB_get, GxB_set, and the methods they call, and - many more. Use GrB_get/set in place those methods, and for: - GxB_*type_name, GxB_*type, GxB_Monoid_operator, GxB_Monoid_identity, - GxB_Monoid_terminal, GxB_Semiring_add, GxB_Semiring_multiply. Use - GrB_STORAGE_ORIENTATION_HINT in place of GxB_FORMAT. - * hyper_hash: constructed only if the # of non-empty vectors in a - hypersparse matrix is large (> 1024, by default) +Dec 30, 2023: version 8.3.0 + + * major change to build system: by Markus Mützel Oct 7, 2023: version 8.2.1 - * (50) bug fix: remove undefined behavior in Source/GB_add.c with - Cnvec_nonempty, caught by Yves Vandreissche, Intel * (49) bug fix: GrB_mxm saxpy4 and saxpy5 had incorrectly handling of typecasting in v8.0.0 to v8.2.0 (caught by Erik Welch) * cross-compiler support: replace check_c_source_runs with _compiles, @@ -122,7 +104,7 @@ Version 7.4.1, Jan 9, 2023 Version 7.4.0, Dec 23, 2022 - * added non-va_arg methods: va_arg-based GxB_get/set methods are C11 + * added non-va_arg methods: va_arg-based GxB_get/set methods are ANSI C11 but cause issues for cffi in Python. As a temporary workaround, new methods have been added that do not use va_arg. The existing GxB_get/set methods are not changed. The new methods are not in the @@ -635,7 +617,7 @@ Version 3.1.2, Dec 16, 2019 B is a standard matrix with one or more empty vectors. * (14) bug fix for @GrB interface: A(58) and A(:) were conflated. * compiler port: changes to allow GraphBLAS to be compiled with older - compilers (pre C11), and Microsoft Visual Studio. + compilers (pre ANSI C11), and Microsoft Visual Studio. Version 3.1.1, Oct 21, 2019 @@ -736,7 +718,7 @@ Version 2.3.0, Feb 25, 2019 * added GxB_init: GrB_init with malloc/calloc/realloc/free redefinition * _Generic: compilers differ on _Generic(x,int:,const int:). gcc, clang, icc 18.0.0 treat int and const int the same; icc 18.0.3 treats them - as different. This is a result of an ambiguity in the C11 + as different. This is a result of an ambiguity in the ANSI C11 specification. Minor update so that the use of _Generic(...) is compatible with all compilers. * early exit: for GrB_reduce @@ -790,7 +772,7 @@ Version 2.2.0 (BETA4), Nov 28, 2018 Kronecker matrix generator * minor changes for gcc -Wall -Wpedantic -Wextra, and icc -w3: to fix or silence warnings. In a few cases, prior versions were relying on - extensions to the C11 standard in gcc, clang, xlc. The extensions + extensions to the ANSI C11 standard in gcc, clang, xlc. The extensions are widely supported but best avoided anway. Version 2.2.0 (BETA3), Nov 23, 2018 diff --git a/Doc/GrB_get_set.tex b/Doc/GrB_get_set.tex deleted file mode 100644 index a0254aa76f..0000000000 --- a/Doc/GrB_get_set.tex +++ /dev/null @@ -1,1657 +0,0 @@ - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{GraphBLAS Options ({\sf GrB\_get} and {\sf GrB\_set})} -\label{options} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The latest v2.1 C API adds a pair of methods, \verb'GrB_get' and \verb'GrB_set' -that allows the user to query GraphBLAS objects and change their state. These -two methods are polymorphic wrappers for a suite of methods for each object. -They replace the \verb'GxB_get' and \verb'GxB_set' methods in -SuiteSparse:GraphBLAS v8.* and earlier. - -The general polymorphic signatures of these methods are given below: - -{\footnotesize -\begin{verbatim} - GrB_Info GrB_get (object, value, GrB_Field field) ; - GrB_Info GrB_set (object, value, GrB_Field field) ; - GrB_Info GrB_set (object, void *value, GrB_Field field, size_t s) ; \end{verbatim}} - -\noindent -where \verb'object' can be any GraphBLAS object. The \verb'value' can be a -\verb'GrB_Scalar', an \verb'int32_t' (or a pointer to \verb'int32_t' for -\verb'GrB_get'), a string (\verb'char *'), or a \verb'void *' pointer. In the -latter case, \verb'GrB_set' requires an additional parameter (\verb'size_t s') -that specifies the size of the object pointed to by \verb'void *value'. - -The non-polymorphic names have the following format, where \verb'[OBJ]' -is any GraphBLAS object. - -{\footnotesize -\begin{verbatim} - GrB_Info GrB_[OBJ]_get_[KIND] (object, value, GrB_Field field) ; - GrB_Info GrB_[OBJ]_set_[KIND] (object, value, GrB_Field field) ; - GrB_Info GrB_[OBJ]_set_VOID (object, void *value, GrB_Field field, size_t s) ; \end{verbatim}} - -The \verb'[KIND]' suffix defines the type of second parameter, and can be: - \verb'Scalar' (for \verb'GrB_Scalar'), - \verb'String' (for \verb'char *'), - \verb'INT32' (for \verb'int32_t'), and - \verb'SIZE' (for \verb'size_t *' for \verb'GrB_get' only), and - \verb'VOID' (for \verb'void *'). - -The tables below list all the valid fields that can be used for each object. -Each table contains four columns: (1) the \verb'GrB_Field', -(2) a column labelled R/W, (3) a column defining the C type, and a description. -For the R/W column: - -\begin{itemize} -\item If the R/W column of a table is R, then the value can be read by \verb'GrB_get' - but not written by \verb'GrB_set'. -\item R/W means that both \verb'GrB_get' and \verb'GrB_set' can be used any number of times, - with different values. -\item R/W1 means that \verb'GrB_get' can be done multiple times, - but \verb'GrB_set' can be used only once. - Subsequent calls to \verb'GrB_set' return the error code \verb'GrB_ALREADY_SET'. -\item W means that only \verb'GrB_set' can be used (any number of times), - but \verb'GrB_get' cannot be done. -\end{itemize} - -The second parameter (\verb'value') of \verb'GrB_get' and \verb'GrB_set' can take on several -different C types, and it can also be a \verb'GrB_Scalar' that holds a value -with the given C type (or that can be typecasted to the given C type): - -\begin{itemize} -\item \verb'int32_t': - For \verb'GrB_set' the \verb'value' parameter is \verb'int32_t'. - For \verb'GrB_get' the \verb'value' parameter is \verb'int32_t *.' - The following example sets the global number of threads, and then - retrieves that \verb'value' into \verb'nthreads'. - - {\footnotesize - \begin{verbatim} - GrB_set (GrB_GLOBAL, 8, GxB_NTHREADS) ; - int32_t nthreads ; - GrB_get (GrB_GLOBAL, &nthreads, GxB_NTHREADS) ; - printf ("nthreads: %d\n", nthreads) ; \end{verbatim} } - - A \verb'GrB_Scalar' can also be used for an \verb'int32_t' \verb'value'. - For \verb'GrB_set', the scalar must not be empty. - Here is the same example but using a \verb'GrB_Scalar' instead: - - {\footnotesize - \begin{verbatim} - GrB_Scalar s ; - GrB_Scalar_new (s, GrB_INT32) ; - GrB_Scalar_setElement (s, 8) ; - GrB_set (GrB_GLOBAL, s, GxB_NTHREADS) ; - GrB_get (GrB_GLOBAL, s, GxB_NTHREADS) ; - int32_t nthreads ; - GrB_Scalar_extractElement (&nthreads, s) ; - printf ("nthreads: %d\n", nthreads) ; \end{verbatim} } - -\item \verb'char *': - The \verb'value' parameter is \verb'char *' for both \verb'GrB_get' and - \verb'GrB_set'. A \verb'GrB_Scalar' cannot be used. The size of the - string required for \verb'GrB_get' is given by using a \verb'size_t *' - parameter with the same field. For example: - - {\footnotesize - \begin{verbatim} - size_t len ; - GrB_get (GrB_GLOBAL, &len, GrB_NAME) ; - char *name = malloc (len) ; - GrB_get (GrB_GLOBAL, name, GrB_NAME) ; - printf ("The library is: %s\n", name) ; - free (name) ; \end{verbatim} } - - To get the current JIT C compiler and then set it to something else: - - {\footnotesize - \begin{verbatim} - size_t len ; - GrB_get (GrB_GLOBAL, &len, GxB_JIT_C_COMPILER_NAME) ; - char *compiler = malloc (len) ; - GrB_get (GrB_GLOBAL, compiler, GxB_JIT_C_COMPILER_NAME) ; - printf ("The current JIT compiler is: %s\n", compiler) ; - GrB_set (GrB_GLOBAL, "gcc", GxB_JIT_C_COMPILER_NAME) ; - GrB_get (GrB_GLOBAL, &len, GxB_JIT_C_COMPILER_NAME) ; - char *new_compiler = malloc (len) ; - GrB_get (GrB_GLOBAL, new_compiler, GxB_JIT_C_COMPILER_NAME) ; - printf ("The new JIT compiler is: %s\n", new_compiler) ; - free (compiler) ; - free (new_compiler) ; \end{verbatim} } - -\item Other scalar data types (typically \verb'double'): - Only a \verb'GrB_Scalar' can be used. When using \verb'GrB_set' with a - \verb'GrB_Scalar', the scalar cannot be empty. For example, to get then - set the global \verb'GxB_HYPER_SWITCH' parameter to 0.3: - - {\footnotesize - \begin{verbatim} - GrB_Scalar s ; - GrB_Scalar_new (s, GrB_FP64) ; - GrB_get (GrB_GLOBAL, s, GxB_HYPER_SWITCH) ; - double hs ; - GrB_Scalar_extractElement (&hs, s) ; - printf ("current hyper_switch: %g\n", hs) ; - GrB_Scalar_setElement (s, 0.3) ; - GrB_set (GrB_GLOBAL, s, GxB_HYPER_SWITCH) ; \end{verbatim} } - -\item \verb'void *': - This type is used for all other cases. - For \verb'GrB_get', the array must have the right size, just like a - \verb'char *' string. Use the same field first, but with - \verb'size_t *value' as the second parameter to obtain the size of the - \verb'void *' array, then use \verb'GrB_get' with a \verb'void *' array of - the right size. In some cases, the size is always the same. For example, - to query the operator of a monoid: - - {\footnotesize - \begin{verbatim} - GrB_BinaryOp op ; - GrB_get (GrB_PLUS_MONOID_FP64, (void *) &op, GxB_MONOID_OPERATOR) ; - assert (op == GrB_PLUS_FP64) ; \end{verbatim} } - - For \verb'GrB_set', a fourth parameter is required to tell GraphBLAS the - size of the input array. - -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Enum types for get/set: {\sf GrB\_Field}, {\sf GrB\_Orientation}, -and {\sf GrB\_Type\_Code}} -\label{get_set_enums} -%------------------------------------------------------------------------------- - -The get/set methods share a \verb'GrB_Field' enum type to specify which -component of the object is to be set or retrieved. -fields. - -{\footnotesize -\begin{verbatim} -typedef enum -{ - // 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 - - // all objects, including GrB_GLOBAL: - GrB_NAME = 10, // name of the object, as a string - - // 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_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize?): - GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation - - // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize?): - GrB_ELTYPE_CODE = 102, // a GrB_Type_code (see below) - GrB_ELTYPE_STRING = 106, // name of the type - - // GrB_*Op, GrB_Monoid, and GrB_Semiring: - GrB_INPUT1TYPE_CODE = 103, // GrB_Type_code - GrB_INPUT2TYPE_CODE = 104, - GrB_OUTPUTTYPE_CODE = 105, - GrB_INPUT1TYPE_STRING = 107, // name of the type, as a string - GrB_INPUT2TYPE_STRING = 108, - GrB_OUTPUTTYPE_STRING = 109, - - // GrB_Type (readable only): - GrB_SIZE = 110, // size of the type - - // 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_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_Semiring only: - GxB_SEMIRING_MONOID = 7046, // semiring monoid - GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op -} -GrB_Field ; - -#define GxB_NTHREADS 7086 -#define GxB_CHUNK 7087 - -typedef enum // more SuiteSparse extensions for GrB_Field: -{ - - // 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) - - // GrB_get for GrB_GLOBAL: - 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_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_get/GrB_set for GrB_GLOBAL: - GxB_GLOBAL_NTHREADS = GxB_NTHREADS, // max number of threads to use - GxB_GLOBAL_CHUNK = GxB_CHUNK, // chunk size for small problems. - GxB_BURBLE = 7019, // diagnostic output (bool *) - GxB_PRINTF = 7020, // printf function diagnostic output - GxB_FLUSH = 7021, // flush function diagnostic output - GxB_PRINT_1BASED = 7023, // print matrices as 0-based or 1-based - 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_get for GrB_Matrix: - GxB_SPARSITY_STATUS = 7034, // hyper, sparse, bitmap or full (1,2,4,8) - - // GrB_get/GrB_set for GrB_Matrix: - GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below - -} GxB_Option_Field ; - -typedef enum -{ - GrB_ROWMAJOR = 0, - GrB_COLMAJOR = 1, - GrB_BOTH = 2, - GrB_UNKNOWN = 3, -} -GrB_Orientation ; - -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 ; \end{verbatim}} - - -%------------------------------------------------------------------------------- -\subsection{Global Options ({\sf GrB\_Global})} -\label{get_set_global} -%------------------------------------------------------------------------------- - -A single object \verb'GrB_GLOBAL' whose type is \verb'GrB_Global' is used to -denote global settings to read or modify. To use it with \verb'GrB_get' and -\verb'GrB_set', pass in \verb'GrB_GLOBAL' as the first parameter. - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Global g, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Global g, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Global g, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Global g, size_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Global g, void * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Global g, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Global g, char * value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Global g, int32_t value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Global g, void * value, GrB_Field f, size_t s) ; -\end{verbatim} -}\end{mdframed} - - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.5in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_LIBRARY_VER_MAJOR' & R & \verb'int32_t'& major version of the library \\ -\verb'GrB_LIBRARY_VER_MINOR' & R & \verb'int32_t'& minor version of the library \\ -\verb'GrB_LIBRARY_VER_PATCH' & R & \verb'int32_t'& patch version of the library \\ -\verb'GrB_API_VER_MAJOR' & R & \verb'int32_t'& major version of the API \\ -\verb'GrB_API_VER_MINOR' & R & \verb'int32_t'& major version of the API \\ -\verb'GrB_API_VER_PATCH' & R & \verb'int32_t'& major version of the API \\ -\verb'GrB_BLOCKING_MODE' & R & \verb'int32_t'& blocking mode (\verb'GrB_BLOCKING' \newline - or \verb'GrB_NONBLOCKING') \\ -\verb'GxB_LIBRARY_OPENMP' & R & \verb'int32_t'& if OpenMP is in use (true/false) \\ -\hline -\end{tabular} -} -\vspace{0.05in} - -\vspace{0.1in} -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.5in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_STORAGE_ORIENTATION_HINT' & R/W & \verb'int32_t'& see \verb'GrB_Orientation': default - format for matrices. \\ -% Matrices are held by row, unless this -% value is set to \verb'GrB_COLMAJOR'. \\ -\verb'GxB_NTHREADS' & R/W & \verb'int32_t'& number of OpenMP threads used. \newline - See Section~\ref{omp_parallelism}. \\ -% \verb'GxB_GPU_ID' & R/W & \verb'int32_t'& which GPU to use \\ -\verb'GxB_BURBLE' & R/W & \verb'int32_t'& diagnostic output (true/false). \newline - See Section~\ref{diag}. \\ -\verb'GxB_PRINT_1BASED' & R/W & \verb'int32_t'& matrices printed as 1-based or 0-based \\ -\verb'GxB_JIT_C_CONTROL' & R/W & \verb'int32_t'& see Section~\ref{jit} \\ -\verb'GxB_JIT_USE_CMAKE' & R/W & \verb'int32_t'& see Section~\ref{jit} \\ -\hline -\verb'GxB_HYPER_SWITCH' & R/W & \verb'double' & global hypersparsity control. \newline - See Section~\ref{hypersparse}. \\ -\verb'GxB_HYPER_HASH' & R/W & \verb'int64_t' & global hypersparsity (hyper-hash) - control \\ -\verb'GxB_CHUNK' & R/W & \verb'double' & global chunk size for parallel task creation. - See Section~\ref{omp_parallelism}. \\ -\hline -\verb'GrB_NAME' & R & \verb'char *' & name of the library \newline - (\verb'"SuiteSparse:GraphBLAS"') \\ -\verb'GxB_LIBRARY_DATE' & R & \verb'char *' & library release date \\ -\verb'GxB_LIBRARY_ABOUT' & R & \verb'char *' & details about the library \\ -\verb'GxB_LIBRARY_LICENSE' & R & \verb'char *' & license of the library \\ -\verb'GxB_LIBRARY_COMPILE_DATE' & R & \verb'char *' & date the library was compiled \\ -\verb'GxB_LIBRARY_COMPILE_TIME' & R & \verb'char *' & time the library was compiled \\ -\verb'GxB_LIBRARY_URL' & R & \verb'char *' & URL for the library \\ -\verb'GxB_API_DATE' & R & \verb'char *' & C API release date \\ -\verb'GxB_API_ABOUT' & R & \verb'char *' & about the C API \\ -\verb'GxB_API_URL' & R & \verb'char *' & URL for the C API \\ -\verb'GxB_COMPILER_NAME' & R & \verb'char *' & name of the compiler used to compile the library \\ -\hline -\verb'GxB_JIT_C_COMPILER_NAME' & R/W & \verb'char *' & See Section~\ref{jit} \\ -\verb'GxB_JIT_C_COMPILER_FLAGS' & R/W & \verb'char *' & " \\ -\verb'GxB_JIT_C_LINKER_FLAGS' & R/W & \verb'char *' & " \\ -\verb'GxB_JIT_C_LIBRARIES' & R/W & \verb'char *' & " \\ -\verb'GxB_JIT_C_CMAKE_LIBS' & R/W & \verb'char *' & " \\ -\verb'GxB_JIT_C_PREFACE' & R/W & \verb'char *' & " \\ -\verb'GxB_JIT_ERROR_LOG' & R/W & \verb'char *' & " \\ -\verb'GxB_JIT_CACHE_PATH' & R/W & \verb'char *' & " \\ -\hline -\end{tabular} -} - -\vspace{0.1in} -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.5in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\verb'GxB_BITMAP_SWITCH' & R/W & \verb'void *' & \verb'double' array of size \newline - \verb'GxB_NBITMAP_SWITCH'. \newline - See Section~\ref{bitmap_switch}. \\ -\verb'GxB_COMPILER_VERSION' & R & \verb'void *' & \verb'int32_t' array of size 3. - The version of the compiler used to - compile the library. \\ -\verb'GxB_PRINTF' & W & \verb'void *' & pointer to \verb'printf' function for diagnostic output. - See Section~\ref{diag}. \\ -\verb'GxB_FLUSH' & W & \verb'void *' & pointer to \verb'flush' function for diagnostic output. - See Section~\ref{diag}. \\ -\verb'GxB_MALLOC_FUNCTION' & R & \verb'void *' & malloc function \\ -\verb'GxB_CALLOC_FUNCTION' & R & \verb'void *' & calloc function \\ -\verb'GxB_REALLOC_FUNCTION' & R & \verb'void *' & realloc function \\ -\verb'GxB_FREE_FUNCTION' & R & \verb'void *' & free function \\ -\hline -\end{tabular} -} - -% \newpage -%------------------------------------------------------------------------------- -\subsubsection{Global diagnostic settings} -\label{diag} -%------------------------------------------------------------------------------- - -\verb'GrB_set (GrB_GLOBAL, ..., GxB_BURBLE)' controls the burble setting. It can also be -controlled via \verb'GrB.burble(b)' in the MATLAB/Octave interface. - -{\footnotesize -\begin{verbatim} - GrB_set (GrB_GLOBAL, true, GxB_BURBLE) ; // enable burble - GrB_set (GrB_GLOBAL, false, GxB_BURBLE) ; // disable burble \end{verbatim}} - -If enabled, SuiteSparse:GraphBLAS reports which internal kernels it uses, and -how much time is spent. If you see the word \verb'generic', it means that -SuiteSparse:GraphBLAS was unable to use its JIT kernels, or its faster kernels -in \verb'Source/FactoryKernels', but used a generic kernel that relies on -function pointers. This is done for user-defined types and operators when they -cannot be used in the JIT, and when typecasting is performed. Generic kernels -are typically slower than the JIT kernels or kernels in -\verb'Source/FactoryKernels'. - -If you see a lot of \verb'wait' statements, it may mean that a lot of time is -spent finishing a matrix or vector. This may be the result of an inefficient -use of the \verb'setElement' and \verb'assign' methods. If this occurs you -might try changing the sparsity format of a vector or matrix to -\verb'GxB_BITMAP', assuming there's enough space for it. - -The following setting allows the user application to change the -function used to print diagnostic output: - -{\small -\begin{verbatim} - GrB_set (GrB_GLOBAL, (void *) printf, GxB_PRINTF, sizeof (void *)) ; \end{verbatim} } - -This also controls the output of the -\verb'GxB_*print' functions. By default this parameter is \verb'NULL', in -which case the C11 \verb'printf' function is used. The parameter is a -function pointer with the same signature as the C11 \verb'printf' -function. The MATLAB/Octave interface to GraphBLAS sets it to \verb'mexPrintf' -so that GraphBLAS can print to the MATLAB/Octave Command Window. - -After each call to the \verb'printf' function, an optional -\verb'flush' function is called, which is \verb'NULL' by default. If -\verb'NULL', the function is not used. This can be changed with: - -{\small -\begin{verbatim} - GrB_set (GrB_GLOBAL, (void *) flush, GxB_FLUSH, sizeof (void *)) ; \end{verbatim} } - -The \verb'flush' function takes no -arguments, and returns an \verb'int' which is 0 if successful, or any nonzero -value on failure (the same output as the C11 \verb'fflush' function, -except that \verb'flush' has no inputs). - -%------------------------------------------------------------------------------- -\subsubsection{OpenMP parallelism} -%------------------------------------------------------------------------------- -\label{omp_parallelism} - -SuiteSparse:GraphBLAS is a parallel library, based on OpenMP. By -default, all GraphBLAS operations will use up to the maximum number of threads -specified by the \verb'omp_get_max_threads' OpenMP function. For small -problems, GraphBLAS may choose to use fewer threads, using two parameters: the -maximum number of threads to use (which may differ from the -\verb'omp_get_max_threads' value), and a parameter called the \verb'chunk'. -Suppose \verb'work' is a measure of the work an operation needs to perform (say -the number of entries in the two input matrices for \verb'GrB_eWiseAdd'). No -more than \verb'floor(work/chunk)' threads will be used (or one thread if the -ratio is less than 1). - -\verb'GxB_NTHREADS' controls how many threads a method uses. - By default (if set to zero, or \verb'GrB_DEFAULT'), all available threads - are used. The maximum available threads is controlled by the global - setting, which is \verb'omp_get_max_threads ( )' by default. If set to - some positive integer \verb'nthreads' less than this maximum, at most - \verb'nthreads' threads will be used. - -\verb'GxB_CHUNK' is a \verb'double' value that controls how many threads - a method uses for small problems. -The default \verb'chunk' value is 65,536, but this may change in future -versions, or it may be modified when GraphBLAS is installed on a particular -machine. - -Both parameters can be set in two ways: - -\begin{itemize} - -\item Globally: If the following methods are used, then all subsequent -GraphBLAS operations will use these settings. Note the typecast, -\verb'(double)' \verb'chunk'. This is necessary if a literal constant such as -\verb'20000' is passed as this argument. The type of the constant must be -\verb'double'. - - {\footnotesize - \begin{verbatim} - int32_t nthreads_max = 40 ; - GrB_set (GrB_GLOBAL, nthreads_max, GxB_NTHREADS) ; - GrB_Scalar_new (&s, GrB_FP64) ; - GrB_Scalar_setElement (s, (double) 20000) ; - GrB_set (GrB_GLOBAL, s, GxB_CHUNK) ; \end{verbatim} } - -\item Context: this object can be used to choose a different number of -threads used in calls to GraphBLAS from different user threads, exploiting -nested parallelism. Refer to Section~\ref{context}. If a thread has engaged a -context object, it ignores the global settings for \verb'GxB_NTHREADS' and -\verb'GxB_CHUNK', and uses the settings in its own context instead. - -\end{itemize} - -The smaller of \verb'nthreads_max' and \verb'floor(work/chunk)' is used for any -given GraphBLAS operation, except that a single thread is used if this value is -zero or less. - -If either parameter is set to \verb'GrB_DEFAULT', then default values are used. -The default for \verb'nthreads_max' is the return value from -\verb'omp_get_max_threads', and the default chunk size is currently 65,536. - -If a descriptor value for either parameter is left at its default, or set to -\verb'GrB_DEFAULT', then the global setting is used. This global setting may -have been modified from its default, and this modified value will be used. - -For example, suppose \verb'omp_get_max_threads' reports 8 threads. If \newline -\verb'GrB_set (GrB_GLOBAL, 4, GxB_NTHREADS)' is used, then the global setting is four -threads, not eight. - -GraphBLAS may be compiled without OpenMP, by setting \verb'-DNOPENMP=1'. -The library will be thread-safe, with one exception. \verb'GrB_wait' is -intended to provide thread-safety by flushing the cache of one user thread -so the object can be safely read by another thread. This is accomplished -with \verb'pragma omp flush', but if OpenMP is not available, this does -nothing. If OpenMP is not available or \verb'-DNOPEMP=1' is used, then -user applications need to ensure their own thread safety when one user thread -computes a result that is then read by another thread. - -You can query GraphBLAS at run-time to ask if it was compiled with OpenMP: - -{\small -\begin{verbatim} - bool have_openmp ; - GrB_get (GrB_GLOBAL, &have_openmp, GxB_LIBRARY_OPENMP) ; - if (!have_openmp) printf ("GraphBLAS not compiled with OpenMP\n") : \end{verbatim}} - -Compiling GraphBLAS without OpenMP is not recommended for installation in a -package manager (Linux, conda-forge, spack, brew, vcpkg, etc). - -%------------------------------------------------------------------------------- -\subsubsection{Other global options} -%------------------------------------------------------------------------------- - -\verb'GrB_BLOCKING_MODE' can only be queried by \verb'GrB_get'; it cannot be -modified by \verb'GrB_set'. The mode is the value passed to \verb'GrB_init' -(blocking or non-blocking). - -All threads in the same user application share the same global options, -including hypersparsity, bitmap options, and CSR/CSC format determined by -\verb'GrB_set', and the blocking mode determined by \verb'GrB_init'. -Specific format and hypersparsity parameters of each matrix are specific to -that matrix and can be independently changed. - -The \verb'GrB_LIBRARY_*' and \verb'GxB_LIBRARY_*' options can be used to query -the current implementation of SuiteSparse:GraphBLAS. The \verb'GrB_API_*' and -\verb'GxB_API_*' options can be used to query the current GraphBLAS C API -Specification. - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_Type} Options} -\label{get_set_type} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Type t, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Type t, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Type t, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Type t, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Type t, char * value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.85in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_ELTYPE_CODE' & R & \verb'int32_t'& type code (see \verb'GrB_Type_Code') \\ -\verb'GrB_SIZE' & R & \verb'int32_t'& \verb'sizeof' the type \\ -\verb'GrB_SIZE' & R & \verb'uint64_t'& \verb'sizeof' the type - (as a \verb'GrB_Scalar') \\ -\hline -\verb'GrB_NAME' & R/W1 & \verb'char *' & % GrB_ALREADY_SET (type) - name of the type. For built-in types, this returns the GraphBLAS - name (\verb'"GrB_FP32"' for \verb'GrB_FP32', for example). - For user-defined types, the name can be any string of any length. It is - not used by the JIT. It can be set at most once. \\ -\verb'GxB_JIT_C_NAME' & R/W1 & \verb'char *' & - This must be a valid name of a C type to enable its use in the JIT. For - built-in types, this returns the C name of the type (\verb'"float"' for - \verb'GrB_FP32', for example). The length of the name can be at most - \verb'GxB_MAX_NAME_LEN', including the \verb'nul' terminating byte. It can - be set at most once. \\ -\verb'GxB_JIT_C_DEFINITION' & R/W1 & \verb'char *' & - type definition, as a C \verb'typedef'; - built-in types return an empty string. - It can be set at most once. \\ -\hline -\end{tabular} -} - -Built-in types cannot be modified by \verb'GrB_set'. User-defined types can be -used without setting their name or definition, but they can be used in JIT -kernels only when both the JIT C name and the definition are set. - -To use the JIT, all operators, monoids, and semirings that access this type -must be defined after the user-defined type has been given both a name and a -definition. GraphBLAS can use an operator that uses a type without a name, -but it cannot use the JIT, even if the type is given a name later on after -the operator is created. - -The size of the type can be returned as an \verb'int32_t' C scalar, or as a -\verb'GrB_Scalar', normally of type \verb'GrB_INT32' (according to the v2.1 C -API). Typecasting of the value of the size is done as needed, if the scalar -has a different type. A \verb'GrB_Scalar' of type \verb'GrB_UINT64' is perhaps -safest (as shown in the example below), since it allows arbitrary type sizes to -be handled. In practice, SuiteSparse:GraphBLAS would currently not work with -types larger than \verb'INT32_MAX', so either method will work. All three of -the examples below return the size of \verb'GrB_FP32' as \verb'sizeof (float)': - -{\footnotesize -\begin{verbatim} - int32_t size ; - GrB_get (GrB_FP32, &size, GrB_SIZE) ; - assert (size == sizeof (float)) ; - - GrB_Scalar t ; - GrB_Scalar_new (&t, GrB_INT32) ; - GrB_get (GrB_FP32, t, GrB_SIZE) ; - GrB_Scalar_extractElement (&size, t) ; - assert (size == sizeof (float)) ; - - uint64_t size2 ; - GrB_Scalar s ; - GrB_Scalar_new (&s, GrB_UINT64) ; - GrB_get (GrB_FP32, s, GrB_SIZE) ; - GrB_Scalar_extractElement (&size2, s) ; - assert (size2 == sizeof (float)) ; \end{verbatim}} - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_UnaryOp} Options} -\label{get_set_unop} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_UnaryOp op, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_UnaryOp op, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_UnaryOp op, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_UnaryOp op, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_UnaryOp op, char * value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.8in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_INPUT1TYPE_CODE' & R & \verb'int32_t'& input type code (see \verb'GrB_Type_code') \\ -\verb'GrB_OUTPUTTYPE_CODE' & R & \verb'int32_t'& output type code \\ -\verb'GrB_INPUT1TYPE_STRING' & R & \verb'char *' & name of the input type \\ -\verb'GrB_OUTPUTTYPE_STRING' & R & \verb'char *' & name of the output type \\ -\hline -\verb'GrB_NAME' & R/W1 & \verb'char *' & % GrB_ALREADY_SET (unop) - name of the operator. For built-in operators, this returns the GraphBLAS - name (\verb'"GrB_LNOT"' for \verb'GrB_LNOT', for example). - For user-defined operators, the name can be any string of any length. It - is not used by the JIT. It can be set at most once. \\ -\verb'GxB_JIT_C_NAME' & R/W1 & \verb'char *' & - This must be a valid name of a C function to enable its use in the JIT. - The length of the name can be at most \verb'GxB_MAX_NAME_LEN', including - the \verb'nul' terminating byte. It can be set at most once. \\ -\verb'GxB_JIT_C_DEFINITION' & R/W1 & \verb'char *' & - definition for a user-defined operator, as a C function; built-in operators - return an empty string. It can be set at most once. \\ -\hline -\end{tabular} -} - -Built-in operators cannot be modified by \verb'GrB_set'. User-defined -operators can be used without setting their name or definition, but they can be -used in JIT kernels only when both the JIT C name and the definition are set. - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_IndexUnaryOp} Options} -\label{get_set_idxunop} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_IndexUnaryOp op, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_IndexUnaryOp op, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_IndexUnaryOp op, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_IndexUnaryOp op, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_IndexUnaryOp op, char * value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.8in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_INPUT1TYPE_CODE' & R & \verb'int32_t'& 1st input type code (see \verb'GrB_Type_code') \\ -\verb'GrB_INPUT2TYPE_CODE' & R & \verb'int32_t'& 2nd input type code \\ -\verb'GrB_OUTPUTTYPE_CODE' & R & \verb'int32_t'& output type code \\ -\verb'GrB_INPUT1TYPE_STRING' & R & \verb'char *' & name of the 1st input type \\ -\verb'GrB_INPUT2TYPE_STRING' & R & \verb'char *' & name of the 2nd input type \\ -\verb'GrB_OUTPUTTYPE_STRING' & R & \verb'char *' & name of the output type \\ -\hline -\verb'GrB_NAME' & R/W1 & \verb'char *' & % GrB_ALREADY_SET (idxunop) - name of the operator. For built-in operators, this returns the GraphBLAS - name (\verb'"GrB_TRIL"' for \verb'GrB_TRIL', for example). - For user-defined operators, the name can be any string of any length. It - is not used by the JIT. It can be set at most once. \\ -\verb'GxB_JIT_C_NAME' & R/W1 & \verb'char *' & - This must be a valid name of a C function to enable its use in the JIT. - The length of the name can be at most \verb'GxB_MAX_NAME_LEN', including - the \verb'nul' terminating byte. It can be set at most once. \\ -\verb'GxB_JIT_C_DEFINITION' & R/W1 & \verb'char *' & - definition for a user-defined operator, as a C function; built-in operators - return an empty string. It can be set at most once. \\ -\hline -\end{tabular} -} - -Built-in operators cannot be modified by \verb'GrB_set'. User-defined -operators can be used without setting their name or definition, but they can be -used in JIT kernels only when both the JIT C name and the definition are set. - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_BinaryOp} Options} -\label{get_set_binop} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_BinaryOp op, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_BinaryOp op, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_BinaryOp op, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_BinaryOp op, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_BinaryOp op, char * value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.8in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_INPUT1TYPE_CODE' & R & \verb'int32_t'& 1st input type code (see \verb'GrB_Type_code') \\ -\verb'GrB_INPUT2TYPE_CODE' & R & \verb'int32_t'& 2nd input type code \\ -\verb'GrB_OUTPUTTYPE_CODE' & R & \verb'int32_t'& output type code \\ -\verb'GrB_INPUT1TYPE_STRING' & R & \verb'char *' & name of the 1st input type \\ -\verb'GrB_INPUT2TYPE_STRING' & R & \verb'char *' & name of the 2nd input type \\ -\verb'GrB_OUTPUTTYPE_STRING' & R & \verb'char *' & name of the output type \\ -\hline -\verb'GrB_NAME' & R/W1 & \verb'char *' & % GrB_ALREADY_SET (binop) - name of the operator. For built-in operators, this returns the GraphBLAS - name (\verb'"GrB_LOR"' for \verb'GrB_LOR', for example). - For user-defined operators, the name can be any string of any length. It - is not used by the JIT. It can be set at most once. \\ -\verb'GxB_JIT_C_NAME' & R/W1 & \verb'char *' & - This must be a valid name of a C function to enable its use in the JIT. - The length of the name can be at most \verb'GxB_MAX_NAME_LEN', including - the \verb'nul' terminating byte. It can be set at most once. \\ -\verb'GxB_JIT_C_DEFINITION' & R/W1 & \verb'char *' & - definition for a user-defined operator, as a C function; built-in operators - return an empty string. It can be set at most once. \\ -\hline -\end{tabular} -} - -Built-in operators cannot be modified by \verb'GrB_set'. User-defined -operators can be used without setting their name or definition, but they can be -used in JIT kernels only when both the JIT C name and the definition are set. - -To use the JIT, all monoids and semirings that access this binary operator must -be defined after the user-defined operator has been given both a name and a -definition. GraphBLAS can use a monoid or semiring that uses a binary operator -without a name, but it cannot use the JIT, even if the operator is given a name -later on after the operator is created. - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_Monoid} Options} -\label{get_set_monoid} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Monoid monoid, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Monoid monoid, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Monoid monoid, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Monoid monoid, size_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Monoid monoid, void * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Monoid monoid, char * value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.5in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_INPUT1TYPE_CODE' & R & \verb'int32_t'& 1st input type code \newline - (see \verb'GrB_Type_code') \\ -\verb'GrB_INPUT2TYPE_CODE' & R & \verb'int32_t'& 2nd input type code \\ -\verb'GrB_OUTPUTTYPE_CODE' & R & \verb'int32_t'& output type code \\ -\verb'GrB_INPUT1TYPE_STRING' & R & \verb'char *' & name of the 1st input type \\ -\verb'GrB_INPUT2TYPE_STRING' & R & \verb'char *' & name of the 2nd input type \\ -\verb'GrB_OUTPUTTYPE_STRING' & R & \verb'char *' & name of the output type \\ -\hline -\verb'GrB_NAME' & R/W1 & \verb'char *' & % GrB_ALREADY_SET (monoid) - name of the monoid. For built-in monoids, this returns the GraphBLAS - name (\verb'"GrB_LOR_MONOID_BOOL"' for \verb'GrB_LOR_MONOID_BOOL', for example). - For user-defined monoids, the name can be any string of any length. It is - not used by the JIT. It can be set at most once. \\ -\hline -\verb'GxB_MONOID_IDENTITY' & R & \verb'GrB_Scalar' & - identity value of the monoid. The type of the \verb'GrB_Scalar' - must match the monoid type exactly. \\ -\verb'GxB_MONOID_TERMINAL' & R & \verb'GrB_Scalar' & - terminal value of a terminal monoid. The type of the \verb'GrB_Scalar' - must match the monoid type exactly. If the monoid is not terminal, - the \verb'GrB_Scalar' is returned with no entry. \\ -\hline -\verb'GxB_MONOID_OPERATOR' & R & \verb'void *' & - binary operator of the monoid, as a \verb'GrB_BinaryOp' \\ -\hline -\end{tabular} -} - -Built-in monoids cannot be modified by \verb'GrB_set'. - -For \verb'GxB_MONOID_OPERATOR', -the \verb'op' is returned as an alias, not as a new object. For example, -if a monoid is created with a user-defined binary operator, the following usage -returns a shallow copy of the operator: - - {\footnotesize - \begin{verbatim} - GrB_BinaryOp binop ; - GrB_BinaryOp_new (&binop, func, GrB_BOOL, GrB_BOOL, GrB_BOOL) ; - GrB_Monoid monoid ; - GrB_Monoid_new (&monoid, binop, (bool) false) ; \end{verbatim} } - -With the above objects defined, the following two code snippets do the same thing: - - {\footnotesize - \begin{verbatim} - // getting an alias to the binary operator directly: - GrB_BinaryOp op ; - op = binop ; \end{verbatim} } - - {\footnotesize - \begin{verbatim} - // getting an alias to the binary operator using GrB_get: - GrB_BinaryOp op ; - GrB_get (monoid, (void *) &op, GxB_MONOID_OPERATOR) ; - assert (op == binop) ; \end{verbatim} } - -As a result, it is not valid to free both the \verb'op' and the \verb'binop', -since they are the same object. This usage returns the built-in \verb'GrB_LOR' -operator of the corresponding built-in monoid: - - {\footnotesize - \begin{verbatim} - GrB_BinaryOp op ; - GrB_get (GrB_LOR_MONOID, (void *) &op, GxB_MONOID_OPERATOR) ; - assert (op == GrB_LOR) ; \end{verbatim} } - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_Semiring} Options} -\label{get_set_semiring} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Semiring semiring, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Semiring semiring, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Semiring semiring, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Semiring semiring, size_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Semiring semiring, void * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Semiring semiring, GrB_Scalar value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.8in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_INPUT1TYPE_CODE' & R & \verb'int32_t'& 1st input type code (see \verb'GrB_Type_code') - of the multiplicative operator \\ -\verb'GrB_INPUT2TYPE_CODE' & R & \verb'int32_t'& 2nd input type code - of the multiplicative operator \\ -\verb'GrB_OUTPUTTYPE_CODE' & R & \verb'int32_t'& output type code - of the multiplicative operator, - and the monoid type. \\ -\verb'GrB_INPUT1TYPE_STRING' & R & \verb'char *' & name of the 1st input type - of the multiplicative operator \\ -\verb'GrB_INPUT2TYPE_STRING' & R & \verb'char *' & name of the 2nd input type - of the multiplicative operator \\ -\verb'GrB_OUTPUTTYPE_STRING' & R & \verb'char *' & name of the output type - of the multiplicative operator, - and the monoid type. \\ -\hline -\verb'GrB_NAME' & R/W1 & \verb'char *' & % GrB_ALREADY_SET (semiring) - name of the semiring. For built-in semirings, this returns the GraphBLAS - name (\verb'"GrB_LOR_LAND_SEMIRING_BOOL"' for \verb'GrB_LOR_LAND_SEMIRING_BOOL', - for example). For user-defined semirings, the name can be any string of any - length. It is not used by the JIT. It can be set at most once. \\ -\hline -\end{tabular} -} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.5in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GxB_MONOID_IDENTITY' & R & \verb'GrB_Scalar' & - identity value of the monoid. The type of the \verb'GrB_Scalar' - must match the monoid type exactly. \\ -\verb'GxB_MONOID_TERMINAL' & R & \verb'GrB_Scalar' & - terminal value of a terminal monoid. The type of the \verb'GrB_Scalar' - must match the monoid type exactly. If the monoid is not terminal, - the \verb'GrB_Scalar' is returned with no entry. \\ -\hline -\verb'GxB_MONOID_OPERATOR' & R & \verb'void *' & - binary operator of the monoid, as a \verb'GrB_BinaryOp'; - See Section~\ref{get_set_monoid} \\ -\verb'GxB_SEMIRING_MONOID' & R & \verb'void *' & - monoid of the semiring, as a \verb'GrB_Monoid' \\ -\verb'GxB_SEMIRING_MULTIPLY' & R & \verb'void *' & - multiplicative operator of the semiring, as a \verb'GrB_BinaryOp' \\ -\hline -\end{tabular} -} - -Built-in semirings cannot be modified by \verb'GrB_set'. - -The \verb'GxB_SEMIRING_MONOID' option returns the \verb'GrB_Monoid' of the -semiring. The \verb'GxB_SEMIRING_MULTIPLY' option returns the -\verb'GrB_BinaryOp' for the multiplicative operator of the semiring. For -example: - - {\footnotesize - \begin{verbatim} - // getting an alias to the monoid and multiply operator using GrB_get: - GrB_BinaryOp op ; - GrB_Monoid mon ; - GrB_Semiring semiring = GrB_PLUS_TIMES_FP32 ; - GrB_get (semiring, (void *) &mon, GxB_SEMIRING_MONOID) ; - GrB_get (semiring, (void *) &op, GxB_SEMIRING_MULTIPLY) ; - assert (op == GrB_TIMES_FP32) ; - assert (mon == GrB_PLUS_MONOID_FP32) ; \end{verbatim} } - -The binary op and monoid returned are aliases, not new objects. - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_Matrix} Options} -\label{get_set_matrix} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Matrix A, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Matrix A, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Matrix A, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Matrix A, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Matrix A, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Matrix A, char * value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Matrix A, int32_t value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.2in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_STORAGE_ORIENTATION_HINT' & R/W & \verb'int32_t'& See \verb'GrB_Orientation', \newline - and Section~\ref{storage_orientation}. \\ -\verb'GrB_ELTYPE_CODE' & R & \verb'int32_t'& matrix type \\ -\verb'GxB_SPARSITY_CONTROL' & R/W & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\verb'GxB_SPARSITY_STATUS' & R & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\hline -\verb'GrB_NAME' & R/W & \verb'char *' & name of the matrix. - This can be set any number of times. \\ -\verb'GrB_ELTYPE_STRING' & R & \verb'char *' & name of the type of the matrix. \\ -\verb'GxB_JIT_C_NAME' & R & \verb'char *' & JIT C name of the type of the matrix. \\ -\hline -\verb'GxB_HYPER_SWITCH' & R/W & \verb'double' & See Section~\ref{hypersparse} \\ -\verb'GxB_BITMAP_SWITCH' & R/W & \verb'double' & See Section~\ref{bitmap_switch} \\ -\hline -\end{tabular} -} - -%------------------------------------------------------------------------------- -\subsubsection{Storing a matrix by row or by column} -\label{storage_orientation} -%------------------------------------------------------------------------------- - -The GraphBLAS \verb'GrB_Matrix' is entirely opaque to the user application, and -the GraphBLAS API does not specify how the matrix should be stored. However, -choices made in how the matrix is represented in a particular implementation, -such as SuiteSparse:GraphBLAS, can have a large impact on performance. - -Many graph algorithms are just as fast in any format, but some algorithms are -much faster in one format or the other. For example, suppose the user -application stores a directed graph as a matrix \verb'A', with the edge $(i,j)$ -represented as the value \verb'A(i,j)', and the application makes many accesses -to the $i$th row of the matrix, with \verb'GrB_Col_extract' -\verb'(w,...,A,GrB_ALL,...,i,desc)' with the transposed descriptor -(\verb'GrB_INP0' set to \verb'GrB_TRAN'). If the matrix is stored by column -this can be extremely slow, just like the expression \verb'w=A(i,:)' in MATLAB, -where \verb'i' is a scalar. Since this is a typical use-case in graph -algorithms, the default format in SuiteSparse:GraphBLAS is to store its -matrices by row, in Compressed Sparse Row format (CSR). - -MATLAB stores its sparse matrices by column, in ``non-hypersparse'' format, in -what is called the Compressed Sparse Column format, or CSC for short. An -\verb'm'-by-\verb'n' matrix in MATLAB is represented as a set of \verb'n' -column vectors, each with a sorted list of row indices and values of the -nonzero entries in that column. As a result, \verb'w=A(:,j)' is very fast in -MATLAB, since the result is already held in the data structure a single list, -the $j$th column vector. However, \verb'w=A(i,:)' is very slow in MATLAB, -since every column in the matrix has to be searched to see if it contains row -\verb'i'. In MATLAB, if many such accesses are made, it is much better to -transpose the matrix (say \verb"AT=A'") and then use \verb"w=AT(:,i)" instead. -This can have a dramatic impact on the performance of MATLAB. - -Likewise, if \verb'u' is a very sparse column vector and \verb'A' is stored by -column, then \verb"w=u'*A" (via \verb'GrB_vxm') is slower than \verb'w=A*u' -(via \verb'GrB_mxv'). The opposite is true if the matrix is stored by row. - -SuiteSparse:GraphBLAS stores its matrices by row, by default (with one -exception described below). However, it can also be instructed to store any -selected matrices, or all matrices, by column instead (just like MATLAB), so -that \verb'w=A(:,j)' (via \verb'GrB_Col_extract') is very fast. The change in -data format has no effect on the result, just the time and memory usage. To -use a column-oriented format by default, the following can be done in a user -application that tends to access its matrices by column. - - {\footnotesize - \begin{verbatim} - GrB_init (...) ; - // just after GrB_init: do the following: - GrB_set (GrB_GLOBAL, GrB_COLMAJOR, GrB_STORAGE_ORIENTATION_HINT) ; \end{verbatim} } - -If this is done, and no other \verb'GrB_set' calls are made with \newline -\verb'GrB_STORAGE_ORIENATION_HINT', all matrices will be stored by column. -The default format is \verb'GrB_ROWMAJOR'. - -All vectors (\verb'GrB_Vector') are held by column, and this cannot be changed. - -By default, matrices of size \verb'm-by-1' are held by column, regardless of -the global setting described above. Matrices of size \verb'1-by-n' with -\verb'n' not equal to 1 are held by row, regardless of the global setting. -The global setting only affects matrices with both \verb'm > 1' and \verb'n > 1'. -Empty matrices (\verb'0-by-0') are also controlled by the global setting. - -After creating a matrix with \verb'GrB_Matrix_new (&A, ...)', -its format can be changed arbitrarily with: - - {\footnotesize - \begin{verbatim} - GrB_set (A, GrB_COLMAJOR, GrB_STORAGE_ORIENTATION_HINT) ; - GrB_set (A, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT) ; \end{verbatim} } - -If set to other values (\verb'GrB_BOTH' or \verb'GrB_UNKNOWN'), the -format is changed to \verb'GrB_ROWMAJOR'. - -With this setting, even an \verb'm-by-1' matrix can then be changed to be held -by row, for example. Likewise, once a \verb'1-by-n' matrix is created, it can -be converted to column-oriented format. - -%------------------------------------------------------------------------------- -\subsubsection{Hypersparse matrices} -\label{hypersparse} -%------------------------------------------------------------------------------- - -MATLAB can store an \verb'm'-by-\verb'n' matrix with a very large value of -\verb'm', since a CSC data structure takes $O(n+|{\bf A}|)$ memory, independent -of \verb'm', where $|{\bf A}|$ is the number of nonzeros in the matrix. It -cannot store a matrix with a huge \verb'n', and this structure is also -inefficient when $|{\bf A}|$ is much smaller than \verb'n'. In contrast, -SuiteSparse:GraphBLAS can store its matrices in {\em hypersparse} format, -taking only $O(|{\bf A}|)$ memory, independent of how it is stored (by row or -by column) and independent of both \verb'm' and \verb'n' -\cite{BulucGilbert08,BulucGilbert12}. - -In both the CSR and CSC formats, the matrix is held as a set of sparse vectors. -In non-hypersparse format, the set of sparse vectors is itself dense; all -vectors are present, even if they are empty. For example, an -\verb'm'-by-\verb'n' matrix in non-hypersparse CSC format contains \verb'n' -sparse vectors. Each column vector takes at least one integer to represent, -even for a column with no entries. This allows for quick lookup for a -particular vector, but the memory required is $O(n+|{\bf A}|)$. With a -hypersparse CSC format, the set of vectors itself is sparse, and columns with -no entries take no memory at all. The drawback of the hypersparse format is -that finding an arbitrary column vector \verb'j', such as for the computation -\verb'C=A(:,j)', takes $O(\log k)$ time if there $k \le n$ vectors in the data -structure. One advantage of the hypersparse structure is the memory required -for an \verb'm'-by-\verb'n' hypersparse CSC matrix is only $O(|{\bf A}|)$, -independent of \verb'm' and \verb'n'. Algorithms that must visit all non-empty -columns of a matrix are much faster when working with hypersparse matrices, -since empty columns can be skipped. - -The \verb'hyper_switch' parameter controls the hypersparsity of the internal -data structure for a matrix. The parameter is typically in the range 0 to 1. -The default is \verb'hyper_switch' = \verb'GxB_HYPER_DEFAULT', which is an -\verb'extern' \verb'const' \verb'double' value, currently set to 0.0625, or -1/16. This default ratio may change in the future. - -The \verb'hyper_switch' determines how the matrix is converted between the -hypersparse and non-hypersparse formats. Let $n$ be the number of columns of a -CSC matrix, or the number of rows of a CSR matrix. The matrix can have at most -$n$ non-empty vectors. - -Let $k$ be the actual number of non-empty vectors. That is, for the CSC -format, $k \le n$ is the number of columns that have at least one entry. Let -$h$ be the value of \verb'hyper_switch'. - -If a matrix is currently hypersparse, it can be converted to non-hypersparse if -the either condition $n \le 1$ or $k > 2nh$ holds, or both. Otherwise, it -stays hypersparse. Note that if $n \le 1$ the matrix is always stored as -non-hypersparse. - -If currently non-hypersparse, it can be converted to hypersparse if -both conditions $n > 1$ and $k \le nh$ hold. Otherwise, it stays -non-hypersparse. Note that if $n \le 1$ the matrix always remains -non-hypersparse. - -The default value of \verb'hyper_switch' is assigned at startup by -\verb'GrB_init', and can then be modified globally with \verb'GrB_set'. All -new matrices are created with the same \verb'hyper_switch', determined by the -global value. Once a particular matrix \verb'A' has been constructed, its -hypersparsity ratio can be modified from the default with: - - {\footnotesize - \begin{verbatim} - double hyper_switch = 0.2 ; - GrB_set (A, hyper_switch, GxB_HYPER_SWITCH) ; \end{verbatim}} - -To force a matrix to always be non-hypersparse, use \verb'hyper_switch' equal to -\verb'GxB_NEVER_HYPER'. To force a matrix to always stay hypersparse, set -\verb'hyper_switch' to \verb'GxB_ALWAYS_HYPER'. - -A \verb'GrB_Matrix' can thus be held in one of four formats: any combination of -hyper/non-hyper and CSR/CSC. All \verb'GrB_Vector' objects are always stored -in non-hypersparse CSC format. - -A new matrix created via \verb'GrB_Matrix_new' starts with $k=0$ and is created -in hypersparse form by default unless $n \le 1$ or if $h<0$, where $h$ is the -global \verb'hyper_switch' value. The matrix is created in either -\verb'GrB_ROWMAJOR' or \verb'GrB_COLMAJOR' format, as determined by the last call -to -\verb'GrB_set(GrB_GLOBAL,' \verb'..., GrB_STORAGE_ORIENTATION_HINT,...)' or \verb'GrB_init'. - -A new matrix \verb'C' created via \verb'GrB_dup (&C,A)' inherits the CSR/CSC -format, hypersparsity format, and \verb'hyper_switch' from \verb'A'. - -%------------------------------------------------------------------------------- -\subsubsection{Bitmap matrices} -\label{bitmap_switch} -%------------------------------------------------------------------------------- - -By default, SuiteSparse:GraphBLAS switches between all four formats -(hypersparse, sparse, bitmap, and full) automatically. Let $d = |{\bf A}|/mn$ -for an $m$-by-$n$ matrix $\bf A$ with $|{\bf A}|$ entries. If the matrix is -currently in sparse or hypersparse format, and is modified so that $d$ exceeds -a given threshold, it is converted into bitmap format. The default threshold -is controlled by the \verb'GxB_BITMAP_SWITCH' setting, which can be set -globally, or for a particular matrix or vector. - -The default value of the switch to bitmap format depends on $\min(m,n)$, for a -matrix of size $m$-by-$n$. For the global setting, the bitmap switch is a -\verb'double' array of size \verb'GxB_NBITMAP_SWITCH'. The defaults are given -below: - -\vspace{0.2in} -{\small -\begin{tabular}{lll} -parameter & default & matrix sizes \\ -\hline -\verb'bitmap_switch [0]' & 0.04 & $\min(m,n) = 1$ (and all vectors) \\ -\verb'bitmap_switch [1]' & 0.05 & $\min(m,n) = 2$ \\ -\verb'bitmap_switch [2]' & 0.06 & $\min(m,n) = 3$ to 4 \\ -\verb'bitmap_switch [3]' & 0.08 & $\min(m,n) = 5$ to 8 \\ -\verb'bitmap_switch [4]' & 0.10 & $\min(m,n) = 9$ to 16\\ -\verb'bitmap_switch [5]' & 0.20 & $\min(m,n) = 17$ to 32\\ -\verb'bitmap_switch [6]' & 0.30 & $\min(m,n) = 33$ to 64 \\ -\verb'bitmap_switch [7]' & 0.40 & $\min(m,n) > 64$ \\ -\end{tabular} -} -\vspace{0.2in} - -That is, by default a \verb'GrB_Vector' is held in bitmap format if its density -exceeds 4\%. To change the global settings, do the following: - -{\footnotesize -\begin{verbatim} - double bswitch [GxB_NBITMAP_SWITCH] = { 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 } ; - GrB_set (GrB_GLOBAL, (void *) bswitch, GxB_BITMAP_SWITCH, - GxB_NBITMAP_SWITCH * sizeof (double)) ; -\end{verbatim} -} - -If the matrix is currently in bitmap format, it is converted to full if all -entries are present, or to sparse/hypersparse if $d$ drops below $b/2$, if its -bitmap switch is $b$. A matrix or vector with $d$ between $b/2$ and $b$ -remains in its current format. - -%------------------------------------------------------------------------------- -\subsubsection{Sparsity status} -\label{sparsity_status} -%------------------------------------------------------------------------------- - -The sparsity status of a matrix can be queried with the following, which -returns a value of \verb'GxB_HYPERSPARSE' (1), \verb'GxB_SPARSE' (2), -\verb'GxB_BITMAP' (4), or \verb'GxB_FULL' (8). - -{\footnotesize -\begin{verbatim} - int32_t sparsity ; - GrB_get (A, &sparsity, GxB_SPARSITY_STATUS) ; \end{verbatim}} - -The sparsity format of a matrix can be controlled with the field set to -\verb'GxB_SPARSITY_CONTROL', for which the \verb'value' can be any mix (a sum or bitwise -or) of \verb'GxB_HYPERSPARSE', \verb'GxB_SPARSE', \verb'GxB_BITMAP', and -\verb'GxB_FULL'. By default, a matrix or vector can be held in any format, -with the default setting \verb'GxB_AUTO_SPARSITY', which is equal to -\verb'GxB_HYPERSPARSE' + \verb'GxB_SPARSE' + \verb'GxB_BITMAP' + -\verb'GxB_FULL' (15). To enable a matrix to take on just \verb'GxB_SPARSE' or -\verb'GxB_FULL' formats, but not \verb'GxB_HYPERSPARSE' or \verb'GxB_BITMAP', -for example, use the following: - -{\footnotesize -\begin{verbatim} - GrB_set (A, GxB_SPARSE + GxB_FULL, GxB_SPARSITY_CONTROL) ; \end{verbatim}} - -In this case, SuiteSparse:GraphBLAS will hold the matrix in sparse format -(\verb'CSR' or \verb'CSC', depending on its -\verb'GrB_STORAGE_ORIENTATION_HINT'), unless all entries are present, in which -case it will be converted to full format. - -Only the least significant 4 bits of the sparsity control are considered, so -the formats can be bitwise negated. For example, to allow for any format -except full: - -{\footnotesize -\begin{verbatim} - GrB_set (A, ~GxB_FULL, GxB_SPARSITY_CONTROL) ; \end{verbatim}} - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_Vector} Options} -\label{get_set_vector} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Vector v, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Vector v, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Vector v, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Vector v, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Vector v, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Vector v, char * value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Vector v, int32_t value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{3in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_ELTYPE_CODE' & R & \verb'int32_t'& vector type \\ -\verb'GxB_SPARSITY_CONTROL' & R/W & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\verb'GxB_SPARSITY_STATUS' & R & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\hline -\verb'GrB_NAME' & R/W & \verb'char *' & name of the vector. \\ -% This can be set any number of times. \\ -\verb'GrB_ELTYPE_STRING' & R & \verb'char *' & name of the type of the vector. \\ -\verb'GxB_JIT_C_NAME' & R & \verb'char *' & JIT C name of the type of the vector. \\ -\hline -\verb'GxB_BITMAP_SWITCH' & R/W & \verb'double' & See Section~\ref{bitmap_switch} \\ -\hline -\end{tabular} -} - -See Section~\ref{get_set_matrix}; a \verb'GrB_Vector' is treated as if it were -an $n$-by-1 matrix, and is always in column major form. It is never -hypersparse. - -%------------------------------------------------------------------------------- -% \newpage -\subsection{{\sf GrB\_Scalar} Options} -\label{get_set_scalar} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Scalar s, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Scalar s, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Scalar s, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Scalar s, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Scalar s, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Scalar s, char * value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Scalar s, int32_t value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{3in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline - -\verb'GrB_ELTYPE_CODE' & R & \verb'int32_t'& scalar type \\ -\verb'GxB_SPARSITY_STATUS' & R & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\hline -\verb'GrB_NAME' & R/W & \verb'char *' & name of the scalar. \\ -% This can be set any number of times. \\ -\verb'GrB_ELTYPE_STRING' & R & \verb'char *' & name of the type of the scalar. \\ -\verb'GxB_JIT_C_NAME' & R & \verb'char *' & JIT C name of the type of the scalar. \\ -\hline -\end{tabular} -} -\vspace{0.1in} - -See Section~\ref{get_set_matrix}; a \verb'GrB_Scalar' is treated as if it were -a 1-by-1 matrix, and is always in column major form. It is never hypersparse. - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GrB\_Descriptor} Options} -\label{get_set_descriptor} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GrB_Descriptor desc, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Descriptor desc, char * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Descriptor desc, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GrB_Descriptor desc, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GrB_Descriptor desc, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Descriptor desc, char * value, GrB_Field f) ; -GrB_Info GrB_set (GrB_Descriptor desc, int32_t value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{3.3in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_OUTP' & R/W & \verb'int32_t'& \verb'GrB_DEFAULT' or \verb'GrB_REPLACE' \\ -\verb'GrB_MASK' & R/W & \verb'int32_t'& \verb'GrB_DEFAULT', \verb'GrB_COMP', \verb'GrB_STRUCTURE', or - \newline \verb'GrB_COMP_STRUCTURE' \\ -\verb'GrB_INP0' & R/W & \verb'int32_t'& \verb'GrB_DEFAULT' or \verb'GrB_TRAN' \\ -\verb'GrB_INP1' & R/W & \verb'int32_t'& \verb'GrB_DEFAULT' or \verb'GrB_TRAN' \\ -\verb'GxB_AxB_METHOD' & R/W & \verb'int32_t'& Method used by \verb'GrB_mxm' (\verb'GrB_DEFAULT', \newline - \verb'GxB_AxB_GUSTAVSON'. \verb'GxB_AxB_HASH', \newline - \verb'GxB_AxB_SAXPY', or \verb'GxB_AxB_DOT'). \\ -\verb'GxB_SORT' & R/W & \verb'int32_t'& if true, \verb'GrB_mxm' returns its output in sorted form. \\ -\verb'GxB_COMPRESSION' & R/W & \verb'int32_t'& compression method for serialize methods. \\ -\verb'GxB_IMPORT' & R/W & \verb'int32_t'& \verb'GxB_FAST_IMPORT' or \verb'GxB_SECURE_IMPORT' for \verb'GxB*_pack*' methods. \\ -\hline -\verb'GrB_NAME' & R/W & \verb'char *' & name of the descriptor. - This can be set any number of times for user-defined descriptors. Built-in - descriptors have the same name as the variable name (\verb'"GrB_DESC_T1"' - for the \verb'GrB_DESC_T1' descriptor, for example) \\ -\hline -\end{tabular} -} - -The following table describes each option. -See Section~\ref{descriptor} for more details. - -\vspace{0.2in} -\noindent -{\footnotesize -\begin{tabular}{|l|p{2.4in}|p{2.2in}|} -\hline -Descriptor & Default & Non-default \\ -field & & \\ -\hline - -\verb'GrB_OUTP' - & \verb'GrB_DEFAULT': - The output matrix is not cleared. The operation computes - ${\bf C \langle M \rangle = C \odot T}$. - & \verb'GrB_REPLACE': - After computing ${\bf Z=C\odot T}$, - the output {\bf C} is cleared of all entries. - Then ${\bf C \langle M \rangle = Z}$ is performed. \\ - -\hline - -\verb'GrB_MASK' - & \verb'GrB_DEFAULT': - The Mask is not complemented. \verb'Mask(i,j)=1' means the value $C_{ij}$ - can be modified by the operation, while \verb'Mask(i,j)=0' means the value - $C_{ij}$ shall not be modified by the operation. - & \verb'GrB_COMP': - The Mask is complemented. \verb'Mask(i,j)=0' means the value $C_{ij}$ - can be modified by the operation, while \verb'Mask(i,j)=1' means the value - $C_{ij}$ shall not be modified by the operation. \\ - & - & \verb'GrB_STRUCTURE': - The values of the Mask are ignored. If \verb'Mask(i,j)' is an entry - in the \verb'Mask' matrix, it is treated as if \verb'Mask(i,j)=1'. - The two options \verb'GrB_COMP' and \verb'GrB_STRUCTURE' can be - combined, with two subsequent calls, or with a single call with the setting - \verb'GrB_COMP+GrB_STRUCTURE'. \\ - -\hline - -\verb'GrB_INP0' - & \verb'GrB_DEFAULT': - The first input is not transposed prior to using it in the operation. - & \verb'GrB_TRAN': - The first input is transposed prior to using it in the operation. Only - matrices are transposed, never vectors. \\ - -\hline - -\verb'GrB_INP1' - & \verb'GrB_DEFAULT': - The second input is not transposed prior to using it in the operation. - & \verb'GrB_TRAN': - The second input is transposed prior to using it in the operation. Only - matrices are transposed, never vectors. \\ - -\hline - -\verb'GxB_AxB_METHOD' - & \verb'GrB_DEFAULT': - The method for \verb'C=A*B' is selected automatically. - & \verb'GxB_AxB_'{\em method}: The selected method is used to compute - \verb'C=A*B'. \\ - -\hline - -\verb'GxB_SORT' - & \verb'GrB_DEFAULT': - The computation of \verb'C=A*B' may leave \verb'C' in a jumbled state; - \verb'GrB_wait' will finalize the matrix. - & any nonzero value: \verb'C=A*B' always returns \verb'C' in final, - sorted form. \\ - -\hline - -\verb'GxB_COMPRESION' - & \verb'GrB_DEFAULT': - Serialize methods will use the default method, ZSTD (level 1) - & See Section~\ref{serialize_deserialize} \\ - -\hline - -\verb'GxB_IMPORT' - & \verb'GrB_DEFAULT': fast import - & \verb'GxB_SECURE_IMPORT': secure import \\ - -\hline -\end{tabular} -} - - -%------------------------------------------------------------------------------- -\newpage -\subsection{{\sf GxB\_Context} Options} -\label{get_set_context} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (GxB_Context Context, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_get (GxB_Context Context, char * value, GrB_Field f) ; -GrB_Info GrB_get (GxB_Context Context, int32_t * value, GrB_Field f) ; -GrB_Info GrB_get (GxB_Context Context, size_t * value, GrB_Field f) ; - -GrB_Info GrB_set (GxB_Context Context, GrB_Scalar value, GrB_Field f) ; -GrB_Info GrB_set (GxB_Context Context, char * value, GrB_Field f) ; -GrB_Info GrB_set (GxB_Context Context, int32_t value, GrB_Field f) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{3.5in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GxB_NTHREADS' & R/W & \verb'int32_t' & number of OpenMP threads to use; - See Section~\ref{omp_parallelism} \\ -\verb'GxB_CHUNK' & R/W & \verb'double' & chunk factor for task creation; - See Section~\ref{omp_parallelism} \\ -\hline -\verb'GrB_NAME' & R/W & \verb'char *' & name of the context. - This can be set any number of times for user-defined contexts. Built-in - contexts have the same name as the variable name (\verb'"GxB_CONTEXT_WORLD"' - for the \verb'GxB_CONTEXT_WORLD' context, for example) \\ -\hline -\end{tabular} -} - -NOTE: the non-polymorphic names for this method are -\verb'GxB_Context_get_[KIND]' and \verb'GxB_Context_set_[KIND]', where -\verb'KIND' can be: - \verb'Scalar' (for \verb'GrB_Scalar'), - \verb'String' (for \verb'char *'), - \verb'INT' (for \verb'int32_t'), and - \verb'SIZE' (for \verb'size_t *' for \verb'GrB_get' only), and - \verb'VOID' (for \verb'void *'). -The non-polymorphic suffix of \verb'INT' is used here instead of -\verb'INT32' because \verb'GxB_Context_*_INT32' appear as historical methods -in version v8.0 and earlier, which are now deprecated. - -For the \verb'int32_t' type, the use of the polymorphic \verb'GrB_set' and -\verb'GrB_get' accesses the correct version of this method. When using -non-polymorphic methods, the use of \verb'GxB_Context_get_INT' and -\verb'GxB_Context_set_INT' is recommended. - -%------------------------------------------------------------------------------- -\newpage -\subsection{Options for inspecting a serialized blob} -\label{get_set_blob} -%------------------------------------------------------------------------------- - -\begin{mdframed}[userdefinedwidth=6.5in] -{\footnotesize -\begin{verbatim} -GrB_Info GrB_get (const void *blob, GrB_Scalar value, GrB_Field f, size_t blobsize) ; -GrB_Info GrB_get (const void *blob, char * value, GrB_Field f, size_t blobsize) ; -GrB_Info GrB_get (const void *blob, int32_t * value, GrB_Field f, size_t blobsize) ; -GrB_Info GrB_get (const void *blob, size_t * value, GrB_Field f, size_t blobsize) ; -\end{verbatim} -}\end{mdframed} - -\noindent -{\small -\begin{tabular}{|l|l|l|p{2.2in}|} -\hline -\verb'GrB_Field' & R/W & C type & description \\ -\hline -\verb'GrB_STORAGE_ORIENTATION_HINT' & R & \verb'int32_t'& See \verb'GrB_Orientation', \newline - and Section~\ref{storage_orientation}. \\ -\verb'GrB_ELTYPE_CODE' & R & \verb'int32_t'& type of matrix in the blob \\ -\verb'GxB_SPARSITY_CONTROL' & R & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\verb'GxB_SPARSITY_STATUS' & R & \verb'int32_t'& See Section~\ref{sparsity_status} \\ -\hline -\verb'GrB_NAME' & R & \verb'char *' & name of the matrix in the blob. \\ -\verb'GrB_ELTYPE_STRING' & R & \verb'char *' & name of the type of the matrix in the blob. \\ -\verb'GxB_JIT_C_NAME' & R & \verb'char *' & JIT C name of the type of the matrix in the blob. \\ -\hline -\verb'GxB_HYPER_SWITCH' & R & \verb'double' & See Section~\ref{hypersparse} \\ -\verb'GxB_BITMAP_SWITCH' & R & \verb'double' & See Section~\ref{bitmap_switch} \\ -\hline -\end{tabular} -} - -The \verb'GrB_Matrix_serialize' and \verb'GxB_Matrix_serialize' methods create -a {\em blob} as a single array of bytes that contains all content of a -\verb'GrB_Matrix'. These \verb'GrB_get' methods can query a blob for the same -values that can be queried for a \verb'GrB_Matrix'. The blob cannot be -modified by \verb'GrB_set'. - -Note that these \verb'GrB_get' methods add a fourth parameter, the size of -the blob. All other \verb'GrB_get' methods have just three parameters: -the object, the value, and the field. - diff --git a/Doc/GraphBLAS_API_version.tex b/Doc/GraphBLAS_API_version.tex index 684c69e3c9..12852497bd 100644 --- a/Doc/GraphBLAS_API_version.tex +++ b/Doc/GraphBLAS_API_version.tex @@ -1,3 +1,3 @@ % GraphBLAS C API Specification version, at graphblas.org -2.1.0 -(Oct 7, 2023)% +2.0.0 +(Nov 15, 2021)% diff --git a/Doc/GraphBLAS_UserGuide.bib b/Doc/GraphBLAS_UserGuide.bib index 404ad3958d..5e162513e2 100644 --- a/Doc/GraphBLAS_UserGuide.bib +++ b/Doc/GraphBLAS_UserGuide.bib @@ -182,7 +182,6 @@ @article{Davis23 keywords = {Graph algorithms, GraphBLAS, sparse matrices} } - @book{Higham, author={Higham, N.}, title={Accuracy and Stability of Numerical Algorithms}, diff --git a/Doc/GraphBLAS_UserGuide.pdf b/Doc/GraphBLAS_UserGuide.pdf index 573ed74400..b522e81cf6 100644 Binary files a/Doc/GraphBLAS_UserGuide.pdf and b/Doc/GraphBLAS_UserGuide.pdf differ diff --git a/Doc/GraphBLAS_UserGuide.tex b/Doc/GraphBLAS_UserGuide.tex index 642401d89d..1746b43492 100644 --- a/Doc/GraphBLAS_UserGuide.tex +++ b/Doc/GraphBLAS_UserGuide.tex @@ -1,5 +1,5 @@ \documentclass[12pt]{article} -\batchmode +% \batchmode \usepackage{url} \urlstyle{sf} \usepackage[svgnames]{xcolor} @@ -84,8 +84,6 @@ Version 8.0 adds several new features, in particular a JIT for compiling kernels at run-time, and a new \verb'GxB_Context' object. See Sections~\ref{context} and \ref{jit} for details. -Version 9.0 adds the \verb'GrB_get' and \verb'GrB_set' methods; -see Section~\ref{options}. \end{abstract} @@ -630,7 +628,7 @@ \subsection{Typecasting} %====================================================== types, and it follows the rules of the ANSI C language (not MATLAB) wherever the rules of ANSI C are well-defined. -However, unlike MATLAB, the C11 language specification states that the +However, unlike MATLAB, the ANSI C11 language specification states that the results of typecasting a \verb'float' or \verb'double' to an integer type is not always defined. In SuiteSparse:GraphBLAS, whenever C leaves the result undefined the rules used in MATLAB are followed. In particular \verb'+Inf' @@ -749,14 +747,16 @@ \subsection{Notation and list of GraphBLAS operations} %======================== \newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Interfaces to MATLAB, Octave, Python, Julia, Go, Java, ...} %%%%%%%%%%% +\section{Interfaces to MATLAB, Octave, Python, Julia, Java} %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% The MATLAB/Octave interface to SuiteSparse:GraphBLAS is included with this distribution, described in Section~\ref{octave}. -Python, Julia, Go, and Java interfaces are available. -These are not part of the SuiteSparse:GraphBLAS distribution. -See the links below. +It is fully polished, and fully tested, but does have +some limitations that will be addressed in future releases. +Two Python interfaces are now available, as is a +Julia interface. These are not part of the SuiteSparse:GraphBLAS distribution. +See the links below (see Sections \ref{python} and \ref{julia}). %=============================================================================== \subsection{MATLAB/Octave Interface} @@ -844,21 +844,6 @@ \subsection{Julia Interface} allow inputs to a function or mexFunction to be modified, so any pending work must be finished before a matrix can be used as input. -%=============================================================================== -\subsection{Go Interface} -%=============================================================================== -\label{go} - -Pascal Costanza (Intel) has a Go interface to GraphBLAS and LAGraph: -\begin{itemize} -\item forGraphBLASGo: \url{https://github.com/intel/forGraphBLASGo}, which -is almost a complete wrapper for SuiteSparse:GraphBLAS. -Documentation is at \url{https://pkg.go.dev/github.com/intel/forGraphBLASGo}. -\item forLAGraphGo: \url{https://github.com/intel/forLAGraphGo}, which is in -progress. Documentation is at -\url{https://pkg.go.dev/github.com/intel/forLAGraphGo}. -\end{itemize} - %=============================================================================== \subsection{Java Interface} %=============================================================================== @@ -1185,7 +1170,7 @@ \subsection{{\sf GrB\_init:} initialize GraphBLAS} %============================ When the user application is finished, exactly one user thread must call \verb'GrB_finalize', after which no user thread may call any \verb'GrB_*' or \verb'GxB_*' function. -The mode of a GraphBLAS session can be queried with \verb'GrB_get'; +The mode of a GraphBLAS session can be queried with \verb'GxB_get'; see Section~\ref{options} for details. %=============================================================================== @@ -1214,7 +1199,7 @@ \subsection{{\sf GrB\_getVersion:} determine the C API Version} %=============== \verb'GrB_getVersion' thus provides a run-time access of the version of the C API Specification supported by the library. -% \newpage +\newpage %=============================================================================== \subsection{{\sf GxB\_init:} initialize with alternate malloc} %================ %=============================================================================== @@ -1227,10 +1212,10 @@ \subsection{{\sf GxB\_init:} initialize with alternate malloc} %================ ( GrB_Mode mode, // blocking or non-blocking mode // pointers to memory management functions. - void * (* user_malloc_func ) (size_t), - void * (* user_calloc_func ) (size_t, size_t), - void * (* user_realloc_func ) (void *, size_t), - void (* user_free_func ) (void *) + 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 *) ) ; \end{verbatim} }\end{mdframed} @@ -1243,16 +1228,16 @@ \subsection{{\sf GxB\_init:} initialize with alternate malloc} %================ Sections \ref{serialize_deserialize} and \ref{pack_unpack}, since they require the user application and GraphBLAS to use the same memory manager. -\verb'user_calloc_func' and \verb'user_realloc_func' are optional, and -may be \verb'NULL'. If \verb'NULL', then the \verb'user_malloc_func' is + +\verb'user_calloc_function' and \verb'user_realloc_function' are optional, and +may be \verb'NULL'. If \verb'NULL', then the \verb'user_malloc_function' is relied on instead, for all memory allocations. -These functions can only be set once, when GraphBLAS starts. -They can be queried using \verb'GrB_get' (see -Section~\ref{get_set_global}). -Either + +These functions can only be set once, when GraphBLAS starts. Either \verb'GrB_init' or \verb'GxB_init' must be called before any other GraphBLAS operation, but not both. The functions passed to \verb'GxB_init' must be thread-safe. + The following usage is identical to \verb'GrB_init(mode)': {\footnotesize @@ -1299,7 +1284,6 @@ \subsection{{\sf GrB\_Info:} status code returned by GraphBLAS} %=============== \verb'GrB_DIMENSION_MISMATCH' & -6 & matrix dimensions do not match \\ \verb'GrB_OUTPUT_NOT_EMPTY' & -7 & output matrix already has values in it \\ \verb'GrB_NOT_IMPLEMENTED' & -8 & not implemented in SS:GrB \\ -\verb'GrB_ALREADY_SET' & -9 & field already written to \\ \verb'GrB_PANIC' & -101 & unrecoverable error \\ \verb'GrB_OUT_OF_MEMORY' & -102 & out of memory \\ \verb'GrB_INSUFFICIENT_SPACE' & -103 & output array not large enough \\ @@ -1352,7 +1336,10 @@ \subsection{{\sf GrB\_error:} get more details on the last error} %============= SuiteSparse:GraphBLAS reports many helpful details via \verb'GrB_error'. For example, if a row or column index is out of bounds, the report will state what those bounds are. If a matrix dimension is incorrect, the mismatching -dimensions will be provided. Refer to +dimensions will be provided. \verb'GrB_BinaryOp_new', \verb'GrB_UnaryOp_new', +and \verb'GrB_IndexUnaryOp_new' record the name the function passed to them, and +\verb'GrB_Type_new' records the name of its type parameter, and these are +printed if the user-defined types and operators are used incorrectly. Refer to the output of the example programs in the \verb'Demo' and \verb'Test' folder, which intentionally generate errors to illustrate the use of \verb'GrB_error'. @@ -1399,11 +1386,10 @@ \section{GraphBLAS Objects and their Methods} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \label{objects} -GraphBLAS defines eleven different objects to represent matrices, vectors, +GraphBLAS defines ten different objects to represent matrices, vectors, scalars, data types, operators (binary, unary, and index-unary), monoids, -semirings, a {\em descriptor} object used to specify optional parameters -that modify the behavior of a GraphBLAS operation, and a {\em context} -object for controlling computational resources. +semirings, and a {\em descriptor} object used to specify optional parameters +that modify the behavior of a GraphBLAS operation. The GraphBLAS API makes a distinction between {\em methods} and {\em operations}. A method is a function that works on a GraphBLAS object, creating @@ -1427,7 +1413,6 @@ \section{GraphBLAS Objects and their Methods} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \verb'GrB_Vector' & a 1D sparse column vector of any type \\ \verb'GrB_Scalar' & a scalar of any type \\ \verb'GrB_Descriptor'& a collection of parameters that modify an operation \\ -\verb'GxB_Context' & allocating computational resources \\ \hline \end{tabular} } @@ -1482,7 +1467,7 @@ \subsection{The GraphBLAS type: {\sf GrB\_Type}} %============================== } \vspace{0.2in} -The C11 definitions of \verb'float complex' and \verb'double complex' +The ANSI C11 definitions of \verb'float complex' and \verb'double complex' are not always available. The \verb'GraphBLAS.h' header defines them as \verb'GxB_FC32_t' and \verb'GxB_FC64_t', respectively. @@ -1512,8 +1497,8 @@ \subsection{The GraphBLAS type: {\sf GrB\_Type}} %============================== \verb'GxB_Type_new' & create a user-defined type, with name and definition & \ref{type_new_named} \\ \verb'GrB_Type_wait' & wait for a user-defined type & \ref{type_wait} \\ -\verb'GrB_get' & get properties of a type & \ref{get_set_type} \\ -\verb'GrB_set' & set the type name/definitition & \ref{get_set_type} \\ +\verb'GxB_Type_size' & return the size of a type & \ref{type_size} \\ +\verb'GxB_Type_name' & return the name of a type & \ref{type_name} \\ \verb'GxB_Type_from_name'& return the type from its name & \ref{type_from_name} \\ \verb'GrB_Type_free' & free a user-defined type & \ref{type_free} \\ \hline @@ -1547,7 +1532,7 @@ \subsubsection{{\sf GrB\_Type\_new:} create a user-defined type} requirement on the C type is that \verb'sizeof(ctype)' is valid in C, and that the type reside in a contiguous block of memory so that it can be moved with \verb'memcpy'. For example, to create a user-defined type called -\verb'Complex' for double-precision complex values using the C11 +\verb'Complex' for double-precision complex values using the ANSI C11 \verb'double complex' type, the following can be used. A complete example can be found in the \verb'usercomplex.c' and \verb'usercomplex.h' files in the \verb'Demo' folder. @@ -1639,19 +1624,6 @@ \subsubsection{{\sf GxB\_Type\_new:} create a user-defined type (with name and d valid strings for C types but would not have a reliable way to determine the size of the type. -The above example is identical to the following usage, except that -\verb'GrB_Type_new' requires \verb'sizeof_ctype' to be nonzero, and equal -to the size of the C type. - - {\footnotesize - \begin{verbatim} - typedef struct { float x [4][4] ; int color ; } myquaternion ; - GrB_Type MyQtype ; - GxB_Type_new (&MyQtype, sizeof (myquaternion)) ; - GrB_set (MyQtype, "myquaternion", GxB_JIT_C_NAME) ; - GrB_set (MyQtype, "typedef struct { float x [4][4] ; int color ; } myquaternion ;" - GxB_JIT_C_DEFINITION) ; \end{verbatim}} - %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Type\_wait:} wait for a type} %------------------------------------------------------------------------------- @@ -1672,6 +1644,71 @@ \subsubsection{{\sf GrB\_Type\_wait:} wait for a type} non-blocking mode to delay its creation. Currently, SuiteSparse:GraphBLAS currently does nothing except to ensure that \verb'type' is valid. +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Type\_size:} return the size of a type} +%------------------------------------------------------------------------------- +\label{type_size} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Type_size // determine the size of the type +( + size_t *size, // the sizeof the type + GrB_Type type // type to determine the sizeof +) ; +\end{verbatim} +}\end{mdframed} + +This function acts just like \verb'sizeof(type)' in the C language. For +example \verb'GxB_Type_size (&s, GrB_INT32)' sets \verb's' to 4, the same as +\verb'sizeof(int32_t)'. + +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Type\_name:} return the name of a type} +%------------------------------------------------------------------------------- +\label{type_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Type_name // return the name of a GraphBLAS type +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Type type +) ; +\end{verbatim} +}\end{mdframed} + +Returns the name of a type, as a string. For built-in types, the name is +the same as the C type. For example, \verb'GxB_Type_name(type_name,GrB_FP32)' +returns the name as \verb'"float"'. The following table lists the +names of the 13 built-in types. + +\vspace{0.2in} +{\small +\begin{tabular}{ll} +\hline +Type name & GraphBLAS type \\ +\hline + \verb'"bool"' & \verb'GrB_BOOL' \\ + \verb'"int8_t"' & \verb'GrB_INT8' \\ + \verb'"int16_t"' & \verb'GrB_INT16' \\ + \verb'"int32_t"' & \verb'GrB_INT32' \\ + \verb'"int64_t"' & \verb'GrB_INT64' \\ + \verb'"uint8_t"' & \verb'GrB_UINT8' \\ + \verb'"uint16_t"' & \verb'GrB_UINT16' \\ + \verb'"uint32_t"' & \verb'GrB_UINT32' \\ + \verb'"uint64_t"' & \verb'GrB_UINT64' \\ + \verb'"float"' & \verb'GrB_FP32' \\ + \verb'"double"' & \verb'GrB_FP64' \\ + \verb'"float complex"' & \verb'GxB_FC32' \\ + \verb'"double complex"' & \verb'GxB_FC64' \\ +\hline +\end{tabular}} + \newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GxB\_Type\_from\_name:} return the type from its name} @@ -1689,15 +1726,9 @@ \subsubsection{{\sf GxB\_Type\_from\_name:} return the type from its name} \end{verbatim} }\end{mdframed} -Returns the built-in type from the corresponding name of the type. The following -examples both return \verb'type' as \verb'GrB_BOOL'. - -{\footnotesize -\begin{verbatim} - GxB_Type_from_name (&type, "bool") ; - GxB_Type_from_name (&type, "GrB_BOOL") ; }\end{verbatim} } - -If the name is from a user-defined type, the \verb'type' is returned as +Returns the built-in type from the corresponding name of the type. For +example, \verb'GxB_Type_from_name (&type, "bool")' returns \verb'GrB_BOOL'. If +the name is from a user-defined type, the \verb'type' is returned as \verb'NULL'. This is not an error condition. The user application must itself do this translation since GraphBLAS does not keep a registry of all user-defined types. @@ -1721,12 +1752,10 @@ \subsubsection{{\sf GxB\_Type\_from\_name:} return the type from its name} // later on, to query the type of A: size_t typesize ; - GrB_Scalar_new (s, GrB_UINT64) ; - GrB_get (type, s, GrB_SIZE) ; - GrB_Scalar_extractElement (&typesize, GrB_UINT64) ; + GxB_Type_size (&typesize, type) ; // works for any type GrB_Type atype ; char atype_name [GxB_MAX_NAME_LEN] ; - GrB_get (A, atype_name, GrB_ELTYPE_STRING) ; + GxB_Matrix_type_name (atype_name, A) ; GxB_Type_from_name (&atype, atype_name) ; if (atype == NULL) { @@ -1736,6 +1765,7 @@ \subsubsection{{\sf GxB\_Type\_from\_name:} return the type from its name} else { ... this is now an error ... the type of A is unknown. } }\end{verbatim} } +\newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Type\_free:} free a user-defined type} %------------------------------------------------------------------------------- @@ -1951,7 +1981,7 @@ \subsection{GraphBLAS unary operators: {\sf GrB\_UnaryOp}, $z=f(x)$} %========== User-defined positional operators cannot be defined by \verb'GrB_UnaryOp_new'. \verb'GxB_FREXPX' and \verb'GxB_FREXPE' return the mantissa and exponent, -respectively, from the C11 \verb'frexp' function. The exponent is +respectively, from the ANSI C11 \verb'frexp' function. The exponent is returned as a floating-point value, not an integer. The operators \verb'GxB_EXPM1_FC*' and \verb'GxB_LOG1P_FC*' for complex @@ -1987,8 +2017,8 @@ \subsection{GraphBLAS unary operators: {\sf GrB\_UnaryOp}, $z=f(x)$} %========== \verb'GrB_UnaryOp_new' & create a user-defined unary operator & \ref{unaryop_new} \\ \verb'GxB_UnaryOp_new' & create a named user-defined unary operator & \ref{unaryop_new_named} \\ \verb'GrB_UnaryOp_wait' & wait for a user-defined unary operator & \ref{unaryop_wait} \\ -\verb'GrB_get' & get properties of an operator & \ref{get_set_unop} \\ -\verb'GrB_set' & set the operator name/definition & \ref{get_set_unop} \\ +\verb'GxB_UnaryOp_ztype_name' & return the name of the type of the output $z$ for $z=f(x)$ & \ref{unaryop_ztype_name} \\ +\verb'GxB_UnaryOp_xtype_name' & return the name of the type of the input $x$ for $z=f(x)$ & \ref{unaryop_xtype_name} \\ \verb'GrB_UnaryOp_free' & free a user-defined unary operator & \ref{unaryop_free} \\ \hline \end{tabular} @@ -2084,19 +2114,6 @@ \subsubsection{{\sf GxB\_UnaryOp\_new:} create a named user-defined unary operat function. If the JIT is disabled and the \verb'function' is \verb'NULL', this method returns \verb'GrB_NULL_POINTER'. -The above example is identical to the following usage, except that -\verb'GrB_UnaryOp_new' requires a non-NULL function pointer. - - {\footnotesize - \begin{verbatim} - void square (double *z, double *x) { (*z) = (*x) * (*x) ; } ; - ... - GrB_Type Square ; - GrB_UnaryOp_new (&Square, square, GrB_FP64, GrB_FP64) ; - GrB_set (Square, "square", GxB_JIT_C_NAME) ; - GrB_set (Square, "void square (double *z, double *x) { (*z) = (*x) * (*x) ; } ;", - GxB_JIT_C_DEFINITION) ; \end{verbatim}} - % \newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_UnaryOp\_wait:} wait for a unary operator} @@ -2119,6 +2136,45 @@ \subsubsection{{\sf GrB\_UnaryOp\_wait:} wait for a unary operator} SuiteSparse:GraphBLAS currently does nothing except to ensure that the \verb'unaryop' is valid. +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_UnaryOp\_ztype\_name:} return the name of the type of $z$} +%------------------------------------------------------------------------------- +\label{unaryop_ztype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_UnaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_UnaryOp unaryop // unary operator +) ; +\end{verbatim} +}\end{mdframed} + +\verb'GxB_UnaryOp_ztype_name' returns the name of the \verb'ztype' of the unary +operator, which is the type of $z$ in the function $z=f(x)$. + +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_UnaryOp\_xtype\_name:} return the name of the type of $x$} +%------------------------------------------------------------------------------- +\label{unaryop_xtype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_UnaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_UnaryOp unaryop // unary operator +) ; +\end{verbatim} +}\end{mdframed} + +\verb'GxB_UnaryOp_xtype_name' returns the name of the \verb'xtype' of the unary +operator, which is the type of $x$ in the function $z=f(x)$. + % \newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_UnaryOp\_free:} free a user-defined unary operator} @@ -2299,7 +2355,7 @@ \subsection{GraphBLAS binary operators: {\sf GrB\_BinaryOp}, $z=f(x,y)$} %====== \vspace{0.2in} The following operators are defined for real floating-point types only (\verb'GrB_FP32' and \verb'GrB_FP64'). -They are identical to the C11 functions of the same name. The last one in the table constructs +They are identical to the ANSI C11 functions of the same name. The last one in the table constructs the corresponding complex type. \vspace{0.2in} @@ -2312,10 +2368,10 @@ \subsection{GraphBLAS binary operators: {\sf GrB\_BinaryOp}, $z=f(x,y)$} %====== \hline \verb'GxB_ATAN2_'$F$ & $F \times F \rightarrow F$ & $z = \tan^{-1}(y/x)$ & 4-quadrant arc tangent \\ \verb'GxB_HYPOT_'$F$ & $F \times F \rightarrow F$ & $z = \sqrt{x^2+y^2}$ & hypotenuse \\ -\verb'GxB_FMOD_'$F$ & $F \times F \rightarrow F$ & & C11 \verb'fmod' \\ -\verb'GxB_REMAINDER_'$F$ & $F \times F \rightarrow F$ & & C11 \verb'remainder' \\ -\verb'GxB_LDEXP_'$F$ & $F \times F \rightarrow F$ & & C11 \verb'ldexp' \\ -\verb'GxB_COPYSIGN_'$F$ & $F \times F \rightarrow F$ & & C11 \verb'copysign' \\ +\verb'GxB_FMOD_'$F$ & $F \times F \rightarrow F$ & & ANSI C11 \verb'fmod' \\ +\verb'GxB_REMAINDER_'$F$ & $F \times F \rightarrow F$ & & ANSI C11 \verb'remainder' \\ +\verb'GxB_LDEXP_'$F$ & $F \times F \rightarrow F$ & & ANSI C11 \verb'ldexp' \\ +\verb'GxB_COPYSIGN_'$F$ & $F \times F \rightarrow F$ & & ANSI C11 \verb'copysign' \\ \hline \verb'GxB_CMPLX_'$F$ & $F \times F \rightarrow Z$ & $z = x + y \times i$ & complex from real \& imag \\ \hline @@ -2459,8 +2515,9 @@ \subsection{GraphBLAS binary operators: {\sf GrB\_BinaryOp}, $z=f(x,y)$} %====== \verb'GrB_BinaryOp_new' & create a user-defined binary operator & \ref{binaryop_new} \\ \verb'GxB_BinaryOp_new' & create a named user-defined binary operator & \ref{binaryop_new_named} \\ \verb'GrB_BinaryOp_wait' & wait for a user-defined binary operator & \ref{binaryop_wait} \\ -\verb'GrB_get' & get properties of an operator & \ref{get_set_binop} \\ -\verb'GrB_set' & set the operator name/definition & \ref{get_set_binop} \\ +\verb'GxB_BinaryOp_ztype_name' & return the type of the output $z$ for $z=f(x,y)$ & \ref{binaryop_ztype_name} \\ +\verb'GxB_BinaryOp_xtype_name' & return the type of the input $x$ for $z=f(x,y)$ & \ref{binaryop_xtype_name} \\ +\verb'GxB_BinaryOp_ytype_name' & return the type of the input $y$ for $z=f(x,y)$ & \ref{binaryop_ytype_name} \\ \verb'GrB_BinaryOp_free' & free a user-defined binary operator & \ref{binaryop_free} \\ \hline \end{tabular} @@ -2555,20 +2612,6 @@ \subsubsection{{\sf GxB\_BinaryOp\_new:} create a named user-defined binary oper If the JIT is disabled and the \verb'function' is \verb'NULL', this method returns \verb'GrB_NULL_POINTER'. -The above example is identical to the following usage, except that -\verb'GrB_BinaryOp_new' requires a non-NULL function pointer. - -{\footnotesize -\begin{verbatim} -void absdiff (double *z, double *x, double *y) { (*z) = fabs ((*x) - (*y)) ; } ; -... -GrB_Type AbsDiff ; -GrB_BinaryOp_new (&AbsDiff, absdiff, GrB_FP64, GrB_FP64, GrB_FP64) ; -GrB_set (AbsDiff, "absdiff", GxB_JIT_C_NAME) ; -GrB_set (AbsDiff, - "void absdiff (double *z, double *x, double *y) { (*z) = fabs ((*x) - (*y)) ; }", - GxB_JIT_C_DEFINITION) ;\end{verbatim}} - %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_BinaryOp\_wait:} wait for a binary operator} %------------------------------------------------------------------------------- @@ -2590,6 +2633,67 @@ \subsubsection{{\sf GrB\_BinaryOp\_wait:} wait for a binary operator} SuiteSparse:GraphBLAS currently does nothing for except to ensure that the \verb'binaryop' is valid. +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_BinaryOp\_ztype\_name:} return the name of the type of $z$} +%------------------------------------------------------------------------------- +\label{binaryop_ztype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_BinaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_BinaryOp_ztype_name' +returns name of the \verb'ztype' of the binary operator, which is the +type of $z$ in the function $z=f(x,y)$. + +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_BinaryOp\_xtype\_name:} return the name of the type of $x$} +%------------------------------------------------------------------------------- +\label{binaryop_xtype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_BinaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; +\end{verbatim} +}\end{mdframed} + +\verb'GxB_BinaryOp_xtype_name' +returns name of the \verb'xtype' of the binary operator, which is the +type of $x$ in the function $z=f(x,y)$. + +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_BinaryOp\_ytype\_name:} return the name of the type of $y$} +%------------------------------------------------------------------------------- +\label{binaryop_ytype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_BinaryOp_ytype_name // return the type_name of y +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_BinaryOp_ytype_name' +returns name of the \verb'ytype' of the binary operator, which is the +type of $y$ in the function $z=f(x,y)$. + %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_BinaryOp\_free:} free a user-defined binary operator} %------------------------------------------------------------------------------- @@ -2692,7 +2796,7 @@ \subsection{GraphBLAS IndexUnaryOp operators: {\sf GrB\_IndexUnaryOp}} %======== 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 of type ytype + const void *y // input scalar y ) ; \end{verbatim}} The following built-in operators are available. Operators that do not depend @@ -2753,8 +2857,9 @@ \subsection{GraphBLAS IndexUnaryOp operators: {\sf GrB\_IndexUnaryOp}} %======== \verb'GrB_IndexUnaryOp_new' & create a user-defined index-unary operator & \ref{idxunop_new} \\ \verb'GxB_IndexUnaryOp_new' & create a named user-defined index-unary operator & \ref{idxunop_new_named} \\ \verb'GrB_IndexUnaryOp_wait' & wait for a user-defined index-unary operator & \ref{idxunop_wait} \\ -\verb'GrB_get' & get properties of an operator & \ref{get_set_idxunop} \\ -\verb'GrB_set' & set the operator name/definition & \ref{get_set_idxunop} \\ +\verb'GrB_IndexUnaryOp_ztype_name' & return the type of the output $z$ & \ref{idxunop_ztype_name} \\ +\verb'GrB_IndexUnaryOp_xtype_name' & return the type of the input $x$ & \ref{idxunop_xtype_name} \\ +\verb'GrB_IndexUnaryOp_ytype_name' & return the type of the scalar $y$ & \ref{idxunop_ytype_name} \\ \verb'GrB_IndexUnaryOp_free' & free a user-defined index-unary operator & \ref{idxunop_free} \\ \hline \end{tabular} @@ -2829,45 +2934,6 @@ \subsubsection{{\sf GxB\_IndexUnaryOp\_new:} create a named user-defined index-u The two strings \verb'idxop_name' and \verb'idxop_defn' are optional, but are required to enable the JIT compilation of kernels that use this operator. -The strings can also be set the \verb'GrB_set' after the operator is created -with \verb'GrB_IndexUnaryOp_new'. For example: - -{\footnotesize -\begin{verbatim} - void banded_idx - ( - bool *z, - const int64_t *x, // unused - int64_t i, - int64_t j, - const int64_t *thunk - ) - { - // d = abs (j-i) - int64_t d = j-i ; - if (d < 0) d = -d ; - (*z) = (d <= *thunk) ; - } - - #define BANDED_IDX_DEFN \ - "void banded_idx \n" \ - "( \n" \ - " bool *z, \n" \ - " const int64_t *x, // unused \n" \ - " int64_t i, \n" \ - " int64_t j, \n" \ - " const int64_t *thunk \n" \ - ") \n" \ - "{ \n" \ - " int64_t d = j-i ; \n" \ - " if (d < 0) d = -d ; \n" \ - " (*z) = (d <= *thunk) ; \n" \ - "}" - - GxB_IndexUnaryOp_new (&Banded, - (GxB_index_unary_function) banded_idx, - GrB_BOOL, GrB_INT64, GrB_INT64, - "banded_idx", BANDED_IDX_DEFN)) ;\end{verbatim}} If JIT compilation is enabled, or if the corresponding JIT kernel has been copied into the \verb'PreJIT' folder, the \verb'function' may be \verb'NULL'. @@ -2875,21 +2941,6 @@ \subsubsection{{\sf GxB\_IndexUnaryOp\_new:} create a named user-defined index-u function. If the JIT is disabled and the \verb'function' is \verb'NULL', this method returns \verb'GrB_NULL_POINTER'. -The above example is identical to the following usage -except that \verb'GrB_IndexUnaryOp_new' requires a non-NULL function pointer. -The \verb'banded_idx' function is defined the same as above. - -{\footnotesize -\begin{verbatim} - void banded_idx ... see above - #define BANDED_IDX_DEFN ... see above - - GrB_IndexUnaryOp_new (&Banded, - (GxB_index_unary_function) banded_idx, - GrB_BOOL, GrB_INT64, GrB_INT64) ; - GrB_set (Banded, "banded_idx", GxB_JIT_C_NAME)) ; - GrB_set (Banded, BANDED_IDX_DEFN, GxB_JIT_C_DEFINITION)) ;\end{verbatim}} - %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_IndexUnaryOp\_wait:} wait for an index-unary operator} %------------------------------------------------------------------------------- @@ -2912,6 +2963,66 @@ \subsubsection{{\sf GrB\_IndexUnaryOp\_wait:} wait for an index-unary operator} \verb'op' is valid. \newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_IndexUnaryOp\_ztype\_name:} return the name of the type of $z$} +%------------------------------------------------------------------------------- +\label{idxunop_ztype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_IndexUnaryOp_ztype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // index-unary operator +) ; +\end{verbatim} +}\end{mdframed} + +\verb'GrB_IndexUnaryOp_ztype_name' returns the \verb'ztype' of the index-unary +operator, which is the type of $z$ in the function $z=f(x,i,j,y)$. + +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_IndexUnaryOp\_xtype\_name:} return the name of the type of $x$} +%------------------------------------------------------------------------------- +\label{idxunop_xtype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_IndexUnaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // index-unary operator +) ; +\end{verbatim} +}\end{mdframed} + +\verb'GrB_IndexUnaryOp_xtype_name' returns the \verb'xtype' of the index-unary +operator, which is the type of $x$ in the function $z=f(x,i,j,y)$. +This input is used for the entry \verb'A(i,j)' of a matrix or \verb'v(i)' of a +vector. + +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_IndexUnaryOp\_ytype\_name:} return the name of the type of scalar $y$} +%------------------------------------------------------------------------------- +\label{idxunop_ytype_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_IndexUnaryOp_ytype_name // return the type_name of the scalar y +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // index-unary operator +) ; +\end{verbatim} +}\end{mdframed} + +\verb'GrB_IndexUnaryOp_ytype_name' returns the \verb'ytype' of the index-unary +operator, which is the type of the scalar y in the function $z=f(x,i,j,y)$. + %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_IndexUnaryOp\_free:} free a user-defined index-unary operator} %------------------------------------------------------------------------------- @@ -3057,8 +3168,9 @@ \subsection{GraphBLAS monoids: {\sf GrB\_Monoid}} %============================= \verb'GrB_Monoid_new' & create a user-defined monoid & \ref{monoid_new} \\ \verb'GrB_Monoid_wait' & wait for a user-defined monoid & \ref{monoid_wait} \\ \verb'GxB_Monoid_terminal_new' & create a monoid that has a terminal value & \ref{monoid_terminal_new} \\ -\verb'GrB_get' & get properties of a monoid & \ref{get_set_monoid} \\ -\verb'GrB_set' & set the monoid name & \ref{get_set_monoid} \\ +\verb'GxB_Monoid_operator' & return the monoid operator & \ref{monoid_operator} \\ +\verb'GxB_Monoid_identity' & return the monoid identity value & \ref{monoid_identity} \\ +\verb'GxB_Monoid_terminal' & return the monoid terminal value (if any) & \ref{monoid_terminal} \\ \verb'GrB_Monoid_free' & free a monoid & \ref{monoid_free} \\ \hline \end{tabular} @@ -3187,6 +3299,77 @@ \subsubsection{{\sf GxB\_Monoid\_terminal\_new:} create a monoid with terminal} based on this user-defined operator with a terminal value of zero and an identity of \verb'+INFINITY'. +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Monoid\_operator:} return the monoid operator} +%------------------------------------------------------------------------------- +\label{monoid_operator} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Monoid_operator // return the monoid operator +( + GrB_BinaryOp *op, // returns the binary op of the monoid + GrB_Monoid monoid // monoid to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Monoid_operator' returns the binary operator of the monoid. + +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Monoid\_identity:} return the monoid identity} +%------------------------------------------------------------------------------- +\label{monoid_identity} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Monoid_identity // return the monoid identity +( + void *identity, // returns the identity of the monoid + GrB_Monoid monoid // monoid to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Monoid_identity' returns the identity value of the monoid. The +\verb'void *' pointer, \verb'identity', must be non-\verb'NULL' and must point +to a memory space of size at least equal to the size of the type of the +\verb'monoid'. The type size can be obtained via \verb'GxB_Monoid_operator' to +return the monoid additive operator, then \verb'GxB_BinaryOp_ztype' to obtain +the \verb'ztype', followed by \verb'GxB_Type_size' to get its size. + +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Monoid\_terminal:} return the monoid terminal value} +%------------------------------------------------------------------------------- +\label{monoid_terminal} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Monoid_terminal // return the monoid terminal +( + bool *has_terminal, // true if the monoid has a terminal value + void *terminal, // returns the terminal of the monoid + GrB_Monoid monoid // monoid to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Monoid_terminal' returns the terminal value of the monoid (if any). +The \verb'void *' pointer, \verb'terminal', must be non-\verb'NULL' and must +point to a memory space of size at least equal to the size of the type of the +\verb'monoid'. The type size can be obtained via \verb'GxB_Monoid_operator' to +return the monoid additive operator, then \verb'GxB_BinaryOp_ztype' to obtain +the \verb'ztype', followed by \verb'GxB_Type_size' to get its size. + +If the monoid has a terminal value, then \verb'has_terminal' is \verb'true', +and its value is returned in the \verb'terminal' parameter. If it has no +terminal value, then \verb'has_terminal' is \verb'false', and the +\verb'terminal' parameter is not modified. + % \newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Monoid\_free:} free a monoid} @@ -3237,8 +3420,8 @@ \subsection{GraphBLAS semirings: {\sf GrB\_Semiring}} %========================= \hline \verb'GrB_Semiring_new' & create a user-defined semiring & \ref{semiring_new} \\ \verb'GrB_Semiring_wait' & wait for a user-defined semiring & \ref{semiring_wait} \\ -\verb'GrB_get' & get properties of a semiring & \ref{get_set_semiring} \\ -\verb'GrB_set' & set the semiring name & \ref{get_set_semiring} \\ +\verb'GxB_Semiring_add' & return the additive monoid of a semiring & \ref{semiring_add} \\ +\verb'GxB_Semiring_multiply' & return the binary operator of a semiring & \ref{semiring_multiply} \\ \verb'GrB_Semiring_free' & free a semiring & \ref{semiring_free} \\ \hline \end{tabular} @@ -3389,6 +3572,44 @@ \subsubsection{{\sf GrB\_Semiring\_wait:} wait for a semiring} SuiteSparse:GraphBLAS currently does nothing except to ensure that the \verb'semiring' is valid. +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Semiring\_add:} return the additive monoid of a semiring} +%------------------------------------------------------------------------------- +\label{semiring_add} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Semiring_add // return the add monoid of a semiring +( + GrB_Monoid *add, // returns add monoid of the semiring + GrB_Semiring semiring // semiring to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Semiring_add' returns the additive monoid of a semiring. + +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Semiring\_multiply:} return multiply operator of a semiring} +%------------------------------------------------------------------------------- +\label{semiring_multiply} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Semiring_multiply // return multiply operator of a semiring +( + GrB_BinaryOp *multiply, // returns multiply operator of the semiring + GrB_Semiring semiring // semiring to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Semiring_multiply' returns the binary multiplicative operator of a +semiring. + %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Semiring\_free:} free a semiring} %------------------------------------------------------------------------------- @@ -3436,8 +3657,7 @@ \subsection{GraphBLAS scalars: {\sf GrB\_Scalar}} %============================= \verb'GrB_Scalar_dup' & copy a scalar & \ref{scalar_dup} \\ \verb'GrB_Scalar_clear' & clear a scalar of its entry & \ref{scalar_clear} \\ \verb'GrB_Scalar_nvals' & return number of entries in a scalar & \ref{scalar_nvals} \\ -\verb'GrB_get' & get properties of a scalar & \ref{get_set_scalar} \\ -\verb'GrB_set' & set properties of a scalar & \ref{get_set_scalar} \\ +\verb'GxB_Scalar_type_name' & return name of the type of a scalar & \ref{scalar_type_name} \\ \verb'GrB_Scalar_setElement' & set the single entry of a scalar & \ref{scalar_setElement} \\ \verb'GrB_Scalar_extractElement' & get the single entry from a scalar & \ref{scalar_extractElement} \\ \verb'GxB_Scalar_memoryUsage' & memory used by a scalar & \ref{scalar_memusage} \\ @@ -3534,7 +3754,6 @@ \subsubsection{{\sf GrB\_Scalar\_dup:} copy a scalar} Then \verb's' and \verb't' are two different scalars that currently have the same value, but they do not depend on each other. Modifying one has no effect on the other. -The \verb'GrB_NAME' is copied into the new scalar. %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Scalar\_clear:} clear a scalar of its entry} @@ -3579,6 +3798,26 @@ \subsubsection{{\sf GrB\_Scalar\_nvals:} return the number of entries in a scala (short for ``number of nonzeros'') in MATLAB is better described as ``number of entries'' in GraphBLAS. +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Scalar\_type\_name:} return name of the type of a scalar} +%------------------------------------------------------------------------------- +\label{scalar_type_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Scalar_type_name // return the name of the type of a scalar +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Scalar s // GrB_Scalar to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Scalar_type_name' returns the name of the type of a scalar. +Analogous to \verb'type = class (s)' in MATLAB. + %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Scalar\_setElement:} set the single entry of a scalar} %------------------------------------------------------------------------------- @@ -3691,8 +3930,7 @@ \subsection{GraphBLAS vectors: {\sf GrB\_Vector}} %============================= \verb'GrB_Vector_clear' & clear a vector of all entries & \ref{vector_clear} \\ \verb'GrB_Vector_size' & size of a vector & \ref{vector_size} \\ \verb'GrB_Vector_nvals' & number of entries in a vector & \ref{vector_nvals} \\ -\verb'GrB_get' & get properties of a vector & \ref{get_set_vector} \\ -\verb'GrB_set' & set properties of a vector & \ref{get_set_vector} \\ +\verb'GxB_Vector_type_name' & name of the type of a vector & \ref{vector_type_name} \\ \verb'GrB_Vector_build' & build a vector from tuples & \ref{vector_build} \\ \verb'GxB_Vector_build_Scalar' & build a vector from tuples & \ref{vector_build_Scalar} \\ \verb'GrB_Vector_setElement' & add an entry to a vector & \ref{vector_setElement} \\ @@ -3831,7 +4069,6 @@ \subsubsection{{\sf GrB\_Vector\_dup:} copy a vector} Then \verb'w' and \verb'u' are two different vectors that currently have the same set of values, but they do not depend on each other. Modifying one has no effect on the other. -The \verb'GrB_NAME' is copied into the new vector. %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Vector\_clear:} clear a vector of all entries} @@ -3896,6 +4133,27 @@ \subsubsection{{\sf GrB\_Vector\_nvals:} return the number of entries in GraphBLAS need not be zero and \verb'nnz' (short for ``number of nonzeros'') in MATLAB is better described as ``number of entries'' in GraphBLAS. +% \newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Vector\_type\_name:} return name of the type of a vector} +%------------------------------------------------------------------------------- +\label{vector_type_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Vector_type_name // return the name of the type of a vector +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Vector v // vector to query +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GxB_Vector_type_name' returns the name of the type of a vector. +Analogous to \verb'type = class (v)' in MATLAB. + \newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Vector\_build:} build a vector from a set of tuples} @@ -4134,7 +4392,7 @@ \subsubsection{{\sf GxB\_Vector\_diag:} extract a diagonal from a matrix} $-m+1$. Any existing entries in \verb'v' are discarded. The type of \verb'v' is preserved, so that if the type of \verb'A' and \verb'v' differ, the entries are typecasted into the type of \verb'v'. Any settings made to \verb'v' by -\verb'GrB_set' (bitmap switch and sparsity control) are +\verb'GxB_Vector_Option_set' (bitmap switch and sparsity control) are unchanged. \newpage @@ -4222,8 +4480,7 @@ \subsection{GraphBLAS matrices: {\sf GrB\_Matrix}} %============================ \verb'GrB_Matrix_nrows' & number of rows of a matrix & \ref{matrix_nrows} \\ \verb'GrB_Matrix_ncols' & number of columns of a matrix & \ref{matrix_ncols} \\ \verb'GrB_Matrix_nvals' & number of entries in a matrix & \ref{matrix_nvals} \\ -\verb'GrB_get' & get properties of a matrix & \ref{get_set_matrix} \\ -\verb'GrB_set' & set properties of a matrix & \ref{get_set_matrix} \\ +\verb'GxB_Matrix_type_name' & type of a matrix & \ref{matrix_type_name} \\ \verb'GrB_Matrix_build' & build a matrix from tuples & \ref{matrix_build} \\ \verb'GxB_Matrix_build_Scalar' & build a matrix from tuples & \ref{matrix_build_Scalar} \\ \verb'GrB_Matrix_setElement' & add an entry to a matrix & \ref{matrix_setElement} \\ @@ -4324,16 +4581,15 @@ \subsubsection{{\sf GrB\_Matrix\_new:} create a matrix} sparse matrices of any type. By default, matrices of size \verb'nrows-by-1' are held by column, regardless -of the global setting controlled by \verb'GrB_set (GrB_GLOBAL, ...,' \newline -\verb'GrB_STORAGE_ORIENTATION_HINT)', for any value of \verb'nrows'. Matrices -of size \verb'1-by-ncols' with \verb'ncols' not equal to 1 are held by row, -regardless of this global setting. The global setting only affects matrices -with both \verb'm > 1' and \verb'n > 1'. Empty matrices (\verb'0-by-0') are -also controlled by the global setting. +of the global setting controlled by \verb'GxB_set (GxB_FORMAT, ...)', for any +value of \verb'nrows'. Matrices of size \verb'1-by-ncols' with \verb'ncols' +not equal to 1 are held by row, regardless of this global setting. The global +setting only affects matrices with both \verb'm > 1' and \verb'n > 1'. Empty +matrices (\verb'0-by-0') are also controlled by the global setting. Once a matrix is created, its format (by-row or by-column) can be arbitrarily -changed with \verb'GrB_set (A, fmt, GrB_STORAGE_ORIENTATION_HINT)' -with \verb'fmt' equal to \verb'GrB_COLMAJOR' or \verb'GrB_ROWMAJOR'. +changed with \verb'GxB_set (A, GxB_FORMAT, fmt)' with \verb'fmt' equal to +\verb'GxB_BY_COL' or \verb'GxB_BY_ROW'. \begin{alert} {\bf SPEC:} \verb'nrows' and/or \verb'ncols' may be zero, @@ -4407,7 +4663,6 @@ \subsubsection{{\sf GrB\_Matrix\_dup:} copy a matrix} Then \verb'C' and \verb'A' are two different matrices that currently have the same set of values, but they do not depend on each other. Modifying one has no effect on the other. -The \verb'GrB_NAME' is copied into the new matrix. %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Matrix\_clear:} clear a matrix of all entries} @@ -4490,6 +4745,25 @@ \subsubsection{{\sf GrB\_Matrix\_nvals:} return the number of entries in MATLAB is better described as ``number of entries'' in GraphBLAS. \newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Matrix\_type\_name:} return name of the type of a matrix} +%------------------------------------------------------------------------------- +\label{matrix_type_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Matrix_type_name // return the name of the type of a matrix +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Matrix A // matrix to query +) ; +\end{verbatim} } \end{mdframed} + +\verb'GxB_Matrix_type_name' returns the name of the type of a matrix, like +\verb'type=class(A)' in MATLAB. + %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Matrix\_build:} build a matrix from a set of tuples} %------------------------------------------------------------------------------- @@ -4580,7 +4854,7 @@ \subsubsection{{\sf GrB\_Matrix\_build:} build a matrix from a set of tuples} The parameter \verb'X' is a pointer to any C equivalent built-in type, or a \verb'void *' pointer. The \verb'GrB_Matrix_build' function uses the -\verb'_Generic' feature of C11 to detect the type of pointer passed as the +\verb'_Generic' feature of ANSI C11 to detect the type of pointer passed as the parameter \verb'X'. If \verb'X' is a pointer to a built-in type, then the function can do the right typecasting. If \verb'X' is a \verb'void *' pointer, then it can only assume \verb'X' to be a pointer to a user-defined type that is @@ -4661,7 +4935,7 @@ \subsubsection{{\sf GrB\_Matrix\_setElement:} add an entry to a matrix} The scalar \verb'x' is typecasted into the type of \verb'C'. Any value can be passed to this function and its type will be detected, via the \verb'_Generic' -feature of C11. For a user-defined type, \verb'x' is a \verb'void *' +feature of ANSI C11. For a user-defined type, \verb'x' is a \verb'void *' pointer that points to a memory space holding a single entry of this user-defined type. This user-defined type must exactly match the user-defined type of \verb'C' since no typecasting is done between user-defined types. @@ -4697,7 +4971,7 @@ \subsubsection{{\sf GrB\_Matrix\_setElement:} add an entry to a matrix} do not access the existing entries may also be done without forcing the updates to be assembled, namely \verb'GrB_Matrix_clear' (which erases all pending updates), \verb'GrB_Matrix_free', \verb'GrB_Matrix_ncols', -\verb'GrB_Matrix_nrows', \verb'GrB_get', and of course +\verb'GrB_Matrix_nrows', \verb'GxB_Matrix_type', and of course \verb'GrB_Matrix_setElement' itself. All other methods and operations cause the updates to be assembled. Future versions of SuiteSparse:GraphBLAS may extend this list. @@ -4996,7 +5270,7 @@ \subsubsection{{\sf GxB\_Matrix\_concat:} concatenate matrices } The type of \verb'C' is unchanged, and all matrices $A_{i,j}$ are typecasted into the type of \verb'C'. Any settings made to \verb'C' by -\verb'GrB_set' (format by row or by column, bitmap switch, hyper +\verb'GxB_Matrix_Option_set' (format by row or by column, bitmap switch, hyper switch, and sparsity control) are unchanged. %------------------------------------------------------------------------------- @@ -5089,7 +5363,7 @@ \subsubsection{{\sf GxB\_Matrix\_diag:} build a diagonal matrix} existing entries in \verb'C' are discarded. The type of \verb'C' is preserved, so that if the type of \verb'C' and \verb'v' differ, the entries are typecasted into the type of \verb'C'. Any settings made to \verb'C' by -\verb'GrB_set' (format by row or by column, bitmap switch, hyper +\verb'GxB_Matrix_Option_set' (format by row or by column, bitmap switch, hyper switch, and sparsity control) are unchanged. %------------------------------------------------------------------------------- @@ -5109,7 +5383,6 @@ \subsubsection{{\sf GxB\_Matrix\_iso:} query iso status of a matrix} Returns the true if the matrix is iso-valued, false otherwise. -\newpage %------------------------------------------------------------------------------- \subsubsection{{\sf GxB\_Matrix\_memoryUsage:} memory used by a matrix} %------------------------------------------------------------------------------- @@ -5167,14 +5440,9 @@ \subsection{Serialize/deserialize methods} process over an MPI channel, or operated on in any other way that moves the bytes around. The contents of the array cannot be interpreted except by deserialization back into a vector or matrix, by the same library (and -sometimes the same version) that created the blob. - -All versions of SuiteSparse:GraphBLAS that implement -serialization/deserialization use essentially the same format for the blob, so -the library versions are compatible with each other. Version v9.0.0 adds the -\verb'GrB_NAME' and \verb'GrB_ELTYPE_STRING' to the blob in an upward -compatible manner, so that older versions of SS:GraphBLAS can read the blobs -created by v9.0.0; they simply ignore those components. +sometimes the same version) that created the blob. Currently, all versions of +SuiteSparse:GraphBLAS that implement serialization/deserialization use the same +format for the blob, so the library versions are compatible with each other. There are two forms of serialization: \verb'GrB*serialize' and \verb'GxB*serialize'. For the \verb'GrB' form, the blob must first be @@ -5183,7 +5451,7 @@ \subsection{Serialize/deserialize methods} By default, ZSTD (level 1) compression is used for serialization, but other options can be selected via the descriptor: -\verb'GrB_set (desc, method, GxB_COMPRESSION)', where \verb'method' is an +\verb'GxB_set (desc, GxB_COMPRESSION, method)', where \verb'method' is an integer selected from the following options: \vspace{0.2in} @@ -5208,14 +5476,14 @@ \subsection{Serialize/deserialize methods} {\footnotesize \begin{verbatim} - GrB_set (desc, GxB_COMPRESSION_LZ4HC + 6, GxB_COMPRESSION) ; \end{verbatim}} + GxB_set (desc, GxB_COMPRESSION, GxB_COMPRESSION_LZ4HC + 6) ; \end{verbatim}} The ZSTD method can be specified as level 1 to 19, with 1 being the default. To compress with ZSTD at level 6, use: {\footnotesize \begin{verbatim} - GrB_set (desc, GxB_COMPRESSION_ZSTD + 6, GxB_COMPRESSION) ; \end{verbatim}} + GxB_set (desc, GxB_COMPRESSION, GxB_COMPRESSION_ZSTD + 6) ; \end{verbatim}} Deserialization of untrusted data is a common security problem; see \url{https://cwe.mitre.org/data/definitions/502.html}. The deserialization @@ -5252,7 +5520,7 @@ \subsection{Serialize/deserialize methods} \verb'GrB_Matrix_deserialize' & deserialize a matrix & \ref{matrix_deserialize} \\ \verb'GxB_Matrix_deserialize' & deserialize a matrix & \ref{matrix_deserialize_GxB} \\ \hline -\verb'GrB_get' & get blob properties & \ref{get_set_blob} \\ +\verb'GrB_deserialize_type_name' & return the name of type of the blob & \ref{deserialize_type_name} \\ \hline \end{tabular} } @@ -5395,10 +5663,10 @@ \subsubsection{{\sf GxB\_Vector\_deserialize:} deserialize a vector} see Section \ref{matrix_deserialize_GxB} for more information. The blob is allocated with the \verb'malloc' function passed to -\verb'GxB_init', or the C11 \verb'malloc' if \verb'GrB_init' was used +\verb'GxB_init', or the ANSI C11 \verb'malloc' if \verb'GrB_init' was used to initialize GraphBLAS. The blob must be freed by the matching \verb'free' method, either the \verb'free' function passed to \verb'GxB_init' or -the C11 \verb'free' if \verb'GrB_init' was used. +the ANSI C11 \verb'free' if \verb'GrB_init' was used. %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Matrix\_serializeSize:} return size of serialized matrix} @@ -5481,10 +5749,10 @@ \subsubsection{{\sf GxB\_Matrix\_serialize:} serialize a matrix} compression is used, but other options can be selected via the descriptor. The blob is allocated with the \verb'malloc' function passed to -\verb'GxB_init', or the C11 \verb'malloc' if \verb'GrB_init' was used +\verb'GxB_init', or the ANSI C11 \verb'malloc' if \verb'GrB_init' was used to initialize GraphBLAS. The blob must be freed by the matching \verb'free' method, either the \verb'free' function passed to \verb'GxB_init' or -the C11 \verb'free' if \verb'GrB_init' was used. +the ANSI C11 \verb'free' if \verb'GrB_init' was used. \newpage %------------------------------------------------------------------------------- @@ -5514,12 +5782,11 @@ \subsubsection{{\sf GrB\_Matrix\_deserialize:} deserialize a matrix} blob, constructed by either \verb'GrB_Matrix_serialize' or \verb'GxB_Matrix_serialize'. -% extended in the v2.1 C API (type may be NULL): -The \verb'type' may be \verb'NULL' if the blob holds a serialized matrix with a -built-in type. In this case, the type is determined automatically. For -user-defined types, the \verb'type' must match the type of the matrix in the -blob. The \verb'GrB_get' method can be used to query the blob for the name of -this type. +\begin{alert} +{\bf SPEC:} The specification requires the \verb'type' to always be non-NULL. +As an extension, SuiteSparse:GraphBLAS allows \verb'type' to be NULL if +the blob contains a serialized matrix with a built-in type. +\end{alert} %------------------------------------------------------------------------------- \subsubsection{{\sf GxB\_Matrix\_deserialize:} deserialize a matrix} @@ -5547,6 +5814,33 @@ \subsubsection{{\sf GxB\_Matrix\_deserialize:} deserialize a matrix} Identical to \verb'GrB_Matrix_deserialize'. +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_deserialize\_type\_name:} name of the type of a blob} +%------------------------------------------------------------------------------- +\label{deserialize_type_name} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_deserialize_type_name // return the type name of a blob +( + // output: + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + // input, not modified: + const void *blob, // the blob + GrB_Index blob_size // size of the blob +) ; +\end{verbatim} +} \end{mdframed} + +\verb'GrB_deserialize_type_name' returns the name of type of the matrix or +vector serialized into the blob. This method works for any blob, from +% \verb'GrB_Vector_serialize', +\verb'GxB_Vector_serialize', +\verb'GrB_Matrix_serialize', or \verb'GxB_Matrix_serialize'. + \newpage %=============================================================================== \subsection{GraphBLAS pack/unpack: using move semantics} %======== @@ -5662,7 +5956,7 @@ \subsection{GraphBLAS pack/unpack: using move semantics} %======== {\footnotesize \begin{verbatim} - GrB_set (desc, GxB_SECURE_IMPORT, GxB_IMPORT) ; \end{verbatim}} + GxB_set (desc, GxB_IMPORT, GxB_SECURE_IMPORT) ; \end{verbatim}} The table below lists the methods presented in this section. @@ -5987,7 +6281,7 @@ \subsubsection{{\sf GxB\_Matrix\_pack\_CSR:} pack a CSR matrix} \verb'GxB_Matrix_pack_CSR' packs a matrix from 3 user arrays in CSR format. In the resulting \verb'GrB_Matrix A', the \verb'CSR' format is a sparse matrix -with a format (\verb'GrB_STORAGE_ORIENTATION_HINT') of \verb'GrB_ROWMAJOR'. +with a format (\verb'GxB_FORMAT') of \verb'GxB_BY_ROW'. The \verb'GrB_Matrix A' must exist on input with the right type and dimensions. No typecasting is done. @@ -7000,8 +7294,8 @@ \subsection{GraphBLAS import/export: using copy semantics} %==================== \begin{verbatim} typedef enum { - GrB_CSR_FORMAT = 0, // CSR format (equiv to GxB_SPARSE with GrB_ROWMAJOR) - GrB_CSC_FORMAT = 1, // CSC format (equiv to GxB_SPARSE with GrB_COLMAJOR) + 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 ; \end{verbatim}} @@ -7049,7 +7343,7 @@ \subsubsection{{\sf GrB\_Matrix\_import:} import a matrix} The matrix can be imported in one of three different formats: \begin{packed_itemize} - \item \verb'GrB_CSR_FORMAT': % CSR format (equiv to GxB_SPARSE with GrB_ROWMAJOR) + \item \verb'GrB_CSR_FORMAT': % CSR format (equiv to GxB_SPARSE with GxB_BY_ROW) Compressed-row format. \verb'Ap' is an array of size \verb'nrows+1'. The arrays \verb'Ai' and \verb'Ax' are of size \verb'nvals = Ap [nrows]', and \verb'Ap[0]' must be zero. @@ -7058,7 +7352,7 @@ \subsubsection{{\sf GrB\_Matrix\_import:} import a matrix} the same locations in \verb'Ax'. The column indices need not be in any particular order. - \item \verb'GrB_CSC_FORMAT': % CSC format (equiv to GxB_SPARSE with GrB_COLMAJOR) + \item \verb'GrB_CSC_FORMAT': % CSC format (equiv to GxB_SPARSE with GxB_BY_COL) Compressed-column format. \verb'Ap' is an array of size \verb'ncols+1'. The arrays \verb'Ai' and \verb'Ax' are of size \verb'nvals = Ap [ncols]', and \verb'Ap[0]' must be zero. @@ -7075,12 +7369,12 @@ \subsubsection{{\sf GrB\_Matrix\_import:} import a matrix} column index \verb'Ap[k]', and value \verb'Ax[k]'. The tuples can appear any order, but no duplicates are permitted. -% \item \verb'GrB_DENSE_ROW_FORMAT': % FullR format (GxB_FULL with GrB_ROWMAJOR) +% \item \verb'GrB_DENSE_ROW_FORMAT': % FullR format (GxB_FULL with GxB_BY_ROW) % Dense matrix format, held by row. Only the \verb'Ax' array is used, of % size \verb'nrows*ncols'. % It holds the matrix in dense format, in row major order. % -% \item \verb'GrB_DENSE_COL_FORMAT': % FullC format (GxB_FULL with GrB_ROWMAJOR) +% \item \verb'GrB_DENSE_COL_FORMAT': % FullC format (GxB_FULL with GxB_BY_ROW) % Dense matrix format, held by column. Only the \verb'Ax' array is used, of % size \verb'nrows*ncols'. % It holds the matrix in dense format, in column major order. @@ -7176,15 +7470,15 @@ \subsubsection{{\sf GrB\_Matrix\_exportHint:} determine best export format} format of the \verb'GrB_Matrix': \begin{packed_itemize} -\item \verb'GxB_SPARSE', \verb'GrB_ROWMAJOR': export as \verb'GrB_CSR_FORMAT' -\item \verb'GxB_SPARSE', \verb'GrB_COLMAJOR': export as \verb'GrB_CSC_FORMAT' +\item \verb'GxB_SPARSE', \verb'GxB_BY_ROW': export as \verb'GrB_CSR_FORMAT' +\item \verb'GxB_SPARSE', \verb'GxB_BY_COL': export as \verb'GrB_CSC_FORMAT' \item \verb'GxB_HYPERSPARSE': export as \verb'GrB_COO_FORMAT' -\item \verb'GxB_BITMAP', \verb'GrB_ROWMAJOR': export as \verb'GrB_CSR_FORMAT' -\item \verb'GxB_BITMAP', \verb'GrB_COLMAJOR': export as \verb'GrB_CSC_FORMAT' -%\item \verb'GxB_FULL', \verb'GrB_ROWMAJOR': export as \verb'GrB_DENSE_ROW_FORMAT' -%\item \verb'GxB_FULL', \verb'GrB_COLMAJOR': export as \verb'GrB_DENSE_COL_FORMAT' -\item \verb'GxB_FULL', \verb'GrB_ROWMAJOR': export as \verb'GrB_CSR_FORMAT' -\item \verb'GxB_FULL', \verb'GrB_COLMAJOR': export as \verb'GrB_CSC_FORMAT' +\item \verb'GxB_BITMAP', \verb'GxB_BY_ROW': export as \verb'GrB_CSR_FORMAT' +\item \verb'GxB_BITMAP', \verb'GxB_BY_COL': export as \verb'GrB_CSC_FORMAT' +%\item \verb'GxB_FULL', \verb'GxB_BY_ROW': export as \verb'GrB_DENSE_ROW_FORMAT' +%\item \verb'GxB_FULL', \verb'GxB_BY_COL': export as \verb'GrB_DENSE_COL_FORMAT' +\item \verb'GxB_FULL', \verb'GxB_BY_ROW': export as \verb'GrB_CSR_FORMAT' +\item \verb'GxB_FULL', \verb'GxB_BY_COL': export as \verb'GrB_CSC_FORMAT' \end{packed_itemize} \newpage @@ -7309,7 +7603,7 @@ \subsection{GraphBLAS descriptors: {\sf GrB\_Descriptor}} %===================== typedef enum { // for all GrB_Descriptor fields: - GrB_DEFAULT = 0, // default behavior of the method + 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: @@ -7414,7 +7708,7 @@ \subsection{GraphBLAS descriptors: {\sf GrB\_Descriptor}} %===================== \begin{itemize} - \item \verb'GrB_DEFAULT' means that a method is selected automatically. + \item \verb'GxB_DEFAULT' means that a method is selected automatically. \item \verb'GxB_AxB_SAXPY': select any saxpy-based method: \verb'GxB_AxB_GUSTAVSON', and/or @@ -7475,7 +7769,7 @@ \subsection{GraphBLAS descriptors: {\sf GrB\_Descriptor}} %===================== unjumbled form, or provided as input to a method that requires it to not be jumbled, then sorting it during the matrix multiplication is faster. By default, these methods leave the result in jumbled form (a {\em lazy - sort}), if \verb'GxB_SORT' is set to zero (\verb'GrB_DEFAULT'). A nonzero + sort}), if \verb'GxB_SORT' is set to zero (\verb'GxB_DEFAULT'). A nonzero value will inform the matrix multiplication to sort its result, instead. \item \verb'GxB_COMPRESSION' selects the compression method for serialization. @@ -7490,7 +7784,7 @@ \subsection{GraphBLAS descriptors: {\sf GrB\_Descriptor}} %===================== {\footnotesize \begin{verbatim} - GrB_set (desc, GxB_SECURE_IMPORT, GxB_IMPORT) ; \end{verbatim}} + GxB_set (desc, GxB_IMPORT, GxB_SECURE_IMPORT) ; \end{verbatim}} \end{itemize} @@ -7504,8 +7798,9 @@ \subsection{GraphBLAS descriptors: {\sf GrB\_Descriptor}} %===================== \hline \verb'GrB_Descriptor_new' & create a descriptor & \ref{descriptor_new} \\ \verb'GrB_Descriptor_wait' & wait for a descriptor & \ref{descriptor_wait} \\ -\verb'GrB_get' & get a parameter from a descriptor & \ref{get_set_descriptor} \\ -\verb'GrB_set' & set a parameter in a descriptor & \ref{get_set_descriptor} \\ +\verb'GrB_Descriptor_set' & set a parameter in a descriptor & \ref{descriptor_set} \\ +\verb'GxB_Desc_set' & set a parameter in a descriptor & \ref{desc_set} \\ +\verb'GxB_Desc_get' & get a parameter from a descriptor & \ref{desc_get} \\ \verb'GrB_Descriptor_free' & free a descriptor & \ref{descriptor_free} \\ \hline \end{tabular} @@ -7552,6 +7847,139 @@ \subsubsection{{\sf GrB\_Descriptor\_wait:} wait for a descriptor} exploit non-blocking mode to delay its creation. Currently, SuiteSparse:GraphBLAS does nothing except to ensure that \verb'd' is valid. +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GrB\_Descriptor\_set:} set a parameter in a descriptor} +%------------------------------------------------------------------------------- +\label{descriptor_set} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GrB_Descriptor_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + GrB_Desc_Value val // value to change it to +) ; +\end{verbatim} } \end{mdframed} + +\verb'GrB_Descriptor_set' sets a descriptor field (\verb'GrB_OUTP', +\verb'GrB_MASK', \verb'GrB_INP0', \verb'GrB_INP1', or \verb'GxB_AxB_METHOD') to +a particular value. +If an error occurs, \verb'GrB_error(&err,desc)' returns details about the error. + +\vspace{0.2in} +\noindent +{\footnotesize +\begin{tabular}{|l|p{2.4in}|p{2.2in}|} +\hline +Descriptor & Default & Non-default \\ +field & & \\ +\hline + +\verb'GrB_OUTP' + & \verb'GxB_DEFAULT': + The output matrix is not cleared. The operation computes + ${\bf C \langle M \rangle = C \odot T}$. + & \verb'GrB_REPLACE': + After computing ${\bf Z=C\odot T}$, + the output {\bf C} is cleared of all entries. + Then ${\bf C \langle M \rangle = Z}$ is performed. \\ + +\hline + +\verb'GrB_MASK' + & \verb'GxB_DEFAULT': + The Mask is not complemented. \verb'Mask(i,j)=1' means the value $C_{ij}$ + can be modified by the operation, while \verb'Mask(i,j)=0' means the value + $C_{ij}$ shall not be modified by the operation. + & \verb'GrB_COMP': + The Mask is complemented. \verb'Mask(i,j)=0' means the value $C_{ij}$ + can be modified by the operation, while \verb'Mask(i,j)=1' means the value + $C_{ij}$ shall not be modified by the operation. \\ + & + & \verb'GrB_STRUCTURE': + The values of the Mask are ignored. If \verb'Mask(i,j)' is an entry + in the \verb'Mask' matrix, it is treated as if \verb'Mask(i,j)=1'. + The two options \verb'GrB_COMP' and \verb'GrB_STRUCTURE' can be + combined, with two subsequent calls, or with a single call with the setting + \verb'GrB_COMP+GrB_STRUCTURE'. \\ + +\hline + +\verb'GrB_INP0' + & \verb'GxB_DEFAULT': + The first input is not transposed prior to using it in the operation. + & \verb'GrB_TRAN': + The first input is transposed prior to using it in the operation. Only + matrices are transposed, never vectors. \\ + +\hline + +\verb'GrB_INP1' + & \verb'GxB_DEFAULT': + The second input is not transposed prior to using it in the operation. + & \verb'GrB_TRAN': + The second input is transposed prior to using it in the operation. Only + matrices are transposed, never vectors. \\ + +\hline + +\verb'GrB_AxB_METHOD' + & \verb'GxB_DEFAULT': + The method for \verb'C=A*B' is selected automatically. + & \verb'GxB_AxB_'{\em method}: The selected method is used to compute + \verb'C=A*B'. \\ + +\hline +\end{tabular} +} + +\newpage +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Desc\_set:} set a parameter in a descriptor} +%------------------------------------------------------------------------------- +\label{desc_set} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Desc_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + ... // value to change it to +) ; +\end{verbatim} } \end{mdframed} + +\verb'GxB_Desc_set' is like \verb'GrB_Descriptor_set', except that the type of +the third parameter can vary with the field. This function can modify all +descriptor settings, including those that do not have the type +\verb'GrB_Desc_Value'. See also \verb'GxB_set' described in +Section~\ref{options}. If an error occurs, \verb'GrB_error(&err,desc)' returns +details about the error. + +%------------------------------------------------------------------------------- +\subsubsection{{\sf GxB\_Desc\_get:} get a parameter from a descriptor} +%------------------------------------------------------------------------------- +\label{desc_get} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Desc_get // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL means defaults + GrB_Desc_Field field, // parameter to query + ... // value of the parameter +) ; +\end{verbatim} } \end{mdframed} + +\verb'GxB_Desc_get' returns the value of a single field in a descriptor. The +type of the third parameter is a pointer to a variable type, whose type depends +on the field. See also \verb'GxB_get' described in Section~\ref{options}. + %------------------------------------------------------------------------------- \subsubsection{{\sf GrB\_Descriptor\_free:} free a descriptor} %------------------------------------------------------------------------------- @@ -7870,8 +8298,8 @@ \section{{\sf GxB\_Context:} controlling computational resources} %============= single threaded, with all parallelism is inside GraphBLAS itself. The object is also not needed if the user application is multi-threaded, but all user threads create the same number of threads inside GraphBLAS (say each using a -single thread). In that case, \verb'GrB_set(GrB_GLOBAL,1,GxB_NTHREADS)' -can be used (for example). +single thread). In that case, \verb'GxB_set(GxB_NTHREADS,1)' can be used (for +example). However, suppose the user application creates 5 threads of its own, on a machine with 16 cores, and each thread wants to use a different number of @@ -7882,22 +8310,40 @@ \section{{\sf GxB\_Context:} controlling computational resources} %============= The default context is \verb'GxB_CONTEXT_WORLD', which is not created by the user application but it can be modified. If a user thread does not create its own context, then its computational resources are determine by this -\verb'GxB_CONTEXT_WORLD' object. The following \verb'GrB_set/get' methods -access this global object without naming it directly (where \verb'chunk' -is a \verb'GrB_Scalar' of type \verb'GrB_FP64' or \verb'GrB_FP32'): +\verb'GxB_CONTEXT_WORLD' object. The following \verb'GxB_set/get' methods +access this global object without naming it directly: + + \begin{itemize} + \item \verb'GxB_set (GxB_NTHREADS, nthreads)' + \item \verb'GxB_get (GxB_NTHREADS, &nthreads)' + \item \verb'GxB_set (GxB_CHUNK, chunk)' + \item \verb'GxB_get (GxB_CHUNK, &chunk)' + \end{itemize} + +Those four operations above are identical to the same set/get operations on the +the world context: + + \begin{itemize} + \item \verb'GxB_Context_set (GxB_CONTEXT_WORLD, GxB_NTHREADS, nthreads)' + \item \verb'GxB_Context_get (GxB_CONTEXT_WORLD, GxB_NTHREADS, &nthreads)' + \item \verb'GxB_Context_set (GxB_CONTEXT_WORLD, GxB_CHUNK, chunk)' + \item \verb'GxB_Context_get (GxB_CONTEXT_WORLD, GxB_CHUNK, &chunk)' + \end{itemize} + +Or, a \verb'NULL' context can be used, which also modifies the world context: \begin{itemize} - \item \verb'GrB_set (GrB_GLOBAL, nthreads, GxB_NTHREADS)' - \item \verb'GrB_get (GrB_GLOBAL, &nthreads, GxB_NTHREADS)' - \item \verb'GrB_set (GrB_GLOBAL, chunk, GxB_CHUNK)' - \item \verb'GrB_get (GrB_GLOBAL, chunk, GxB_CHUNK)' + \item \verb'GxB_Context_set (NULL, GxB_NTHREADS, nthreads)' + \item \verb'GxB_Context_get (NULL, GxB_NTHREADS, &nthreads)' + \item \verb'GxB_Context_set (NULL, GxB_CHUNK, chunk)' + \item \verb'GxB_Context_get (NULL, GxB_CHUNK, &chunk)' \end{itemize} The above methods control the OpenMP threads used by all user threads in the user application. To allow each user thread to control its own OpenMP threading, each user thread needs to create its own Context object via \verb'GxB_Context_new'. Next, the user thread must {\em engage} this context -via \verb'GxB_Context_engage'; all subsequent calls to GraphBLAS from this +via \verb'GxB_Context_engate'; all subsequent calls to GraphBLAS from this particular user thread will then use the number of OpenMP threads dictated by this particular context. @@ -7922,7 +8368,7 @@ \section{{\sf GxB\_Context:} controlling computational resources} %============= // each user thread constructs its own context GxB_Context Context = NULL ; GxB_Context_new (&Context) ; - GrB_set (Context, ninner, GxB_NTHREADS) ; + GxB_Context_set (Context, GxB_NTHREADS, ninner) ; GxB_Context_engage (Context) ; // kth user thread builds kth matrix with ninner threads @@ -7957,8 +8403,8 @@ \section{{\sf GxB\_Context:} controlling computational resources} %============= GraphBLAS function & purpose & Section \\ \hline \verb'GxB_Context_new' & create a context & \ref{context_new} \\ -\verb'GrB_get' & get a value from a context & \ref{get_set_context} \\ -\verb'GrB_set' & set a value in a context & \ref{get_set_context} \\ +\verb'GxB_Context_set' & set an value in a context & \ref{context_set} \\ +\verb'GxB_Context_get' & get an value from a context & \ref{context_get} \\ \verb'GxB_Context_engage' & engage a context & \ref{context_engage} \\ \verb'GxB_Context_disengage' & disengage a context & \ref{context_disengage} \\ \verb'GxB_Context_fprint' & check/print a context & \ref{context_print} \\ @@ -7983,10 +8429,66 @@ \subsection{{\sf GxB\_Context\_new:} create a new context} \end{verbatim} } \end{mdframed} A new context is created and initialized with the current global settings for -\verb'GxB_NTHREADS' and \verb'GxB_CHUNK'. See \verb'GrB_get'. +\verb'GxB_NTHREADS' and \verb'GxB_CHUNK'. See \verb'GxB_Global_Option_get'. The context object will not have an effect on any calls to GraphBLAS until it is {\em engaged} by a user thread. +\newpage +%------------------------------------------------------------------------------- +\subsection{{\sf GxB\_Context\_set:} change a setting in a context} +%------------------------------------------------------------------------------- +\label{context_set} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Context_set // set a parameter in a context +( + GxB_Context Context // context to modify + GxB_Context_Field field, // field to modify + ... +) ; +\end{verbatim} } \end{mdframed} + +The \verb'GxB_Context_Field' parameter can currently take on one of two +values, given by the following definition: + +{\footnotesize +\begin{verbatim} +typedef enum +{ + GxB_CONTEXT_NTHREADS = GxB_NTHREADS, // max number of threads to use. + // If <= 0, then one thread is used. + GxB_CONTEXT_CHUNK = GxB_CHUNK, // chunk size for small problems. + // If < 1, then the default is used. +} +GxB_Context_Field ; +\end{verbatim} +} + +For example, \verb'GxB_set (Context, GxB_NTHREADS, 4)' sets the number of +threads in the \verb'Context' to 4. + +%------------------------------------------------------------------------------- +\subsection{{\sf GxB\_Context\_get:} get a setting from a context} +%------------------------------------------------------------------------------- +\label{context_get} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_Context_get // get a parameter in a context +( + GxB_Context Context // context to query + GxB_Context_Field field, // field to query + ... +) ; +\end{verbatim} } \end{mdframed} + +For example, \verb'GxB_get (Context, GxB_NTHREADS, &nthreads)' returns the +number of threads set in the \verb'Context', returning the result in the +\verb'int32_t' scalar, \verb'nthreads'. + \newpage %------------------------------------------------------------------------------- \subsection{{\sf GxB\_Context\_engage:} engaging context} @@ -8152,8 +8654,8 @@ \subsection{Using the JIT} folder after calling \verb'GrB_init'. It can also modify the C compiler and its flags, and can control when and how the JIT is used. These changes are -made via \verb'GrB_set', and can be queried via -\verb'GrB_get'; refer to Section~\ref{options} for details, and +made via \verb'GxB_Global_Option_set', and can be queried via +\verb'GxB_Global_Option_get'; refer to Section~\ref{options} for details, and the \verb'GxB_JIT_*' settings: \vspace{0.15in} @@ -8188,14 +8690,14 @@ \subsection{Using the JIT} definition when the kernel was compiled, then the compiled kernel is discarded and recompiled. The stale kernel is overwritten with the new one, so there is no need to for the user to take any action to delete the stale kernel from the -cache path. If the cache path is changed via \verb'GrB_set', compiled kernels +cache path. If the cache path is changed via \verb'GxB_set', compiled kernels in the old cache folder are not copied over. New ones are compiled instead. %---------------------------------------- \subsubsection{\sf GxB\_JIT\_C\_CONTROL} %---------------------------------------- -The usage of the CPU JIT can be controlled via \verb'GrB_get/set' using the +The usage of the CPU JIT can be controlled via \verb'GxB_get/set' using the \verb'GxB_JIT_C_CONTROL' setting. If the JIT is enabled at compile time, the initial setting is \verb'GxB_JIT_ON'. If the JIT is disabled at compile time (via \verb'NJIT'), the initial setting is \verb'GxB_JIT_RUN', so that any @@ -8203,10 +8705,10 @@ \subsubsection{\sf GxB\_JIT\_C\_CONTROL} disable the JIT and clear all loaded JIT kernels from memory, use: \begin{verbatim} - GrB_set (GrB_GLOBAL, GxB_JIT_OFF, GxB_JIT_C_CONTROL) ; + GxB_set (GxB_JIT_C_CONTROL, GxB_JIT_OFF) ; \end{verbatim} -The above call to \verb'GrB_set' does not clear any PreJIT kernels, however, +The above call to \verb'GxB_set' does not clear any PreJIT kernels, however, since those are integral components of the single compiled GraphBLAS library and cannot be cleared (see Section~\ref{prejit}). It also does not clear any compiled user functions, created by the JIT for \verb'GxB_*Op_new' when the @@ -8235,7 +8737,7 @@ \subsubsection{\sf GxB\_JIT\_C\_CONTROL} listed above. If the application tries to set the control to \verb'GxB_JIT_LOAD' or \verb'GxB_JIT_ON', the setting is changed to \verb'GxB_JIT_RUN' instead. This is not an error condition. The resulting -setting can be queried via \verb'GrB_get', if desired. +setting can be queried via \verb'GxB_get', if desired. The JIT control setting can be also changed by GraphBLAS itself, based on following error conditions. These changes affect all kernels, not just the @@ -8244,7 +8746,7 @@ \subsubsection{\sf GxB\_JIT\_C\_CONTROL} generic kernels instead. It would return \verb'GrB_OUT_OF_MEMORY' for the last case below. The error is also reported if the \verb'GxB_BURBLE' is enabled. If the JIT is disabled through any of these errors, it can be detected by -\verb'GrB_get' to read the \verb'GxB_JIT_C_CONTROL' state. +\verb'GxB_get' to read the \verb'GxB_JIT_C_CONTROL' state. \begin{itemize} @@ -8371,11 +8873,21 @@ \subsubsection{\sf GxB\_JIT\_USE\_CMAKE} \label{use_cmake} Two methods are provided for compiling the JIT kernels: cmake, and a direct -compiler/link command. On Windows, only cmake may be used, and this setting -is ignored (it is always true). On Linux or Mac, the default is false since -a direct compile/link is faster. However, it is possible that some compilers -are not handled properly with this method, so cmake can also be used on those -platforms by setting the value of \verb'GxB_JIT_USE_CMAKE' to true. +compiler/link command. + +On Linux or Mac, or the default is false since a direct compile/link is faster. +However, it is possible that some compilers are not handled properly with this +method, so cmake can also be used on those platforms by setting the value of +\verb'GxB_JIT_USE_CMAKE' to true. + +On Windows with MS Visual Studio, only cmake may be used, and this setting is +ignored (it is always true). Direct compilation without cmake on Windows with +MSVC is not yet available. + +When using MINGW on Windows the opposite is true: cmake may not be used, and +this setting ignored (it is always false). The only option is to use a direct +compile instead of using cmake. Using cmake to build kernels when using MINGW +on Windows is not yet available. Normally the same version of cmake should be used to compile both GraphBLAS and the JIT kernels. However, compiling GraphBLAS itself requires cmake v3.16 or @@ -8578,7 +9090,7 @@ \subsection{Mixing JIT kernels: MATLAB and Apple Silicon} Silicon, the MATLAB JIT kernels are compiled as x86 binaries and executed inside MATLAB via Rosetta. The pure C installation may compile native Arm64 binaries for its JIT kernels. Do not mix the two. In this case, set another -cache path for MATLAB using \verb'GrB.jit' in MATLAB, or using \verb'GrB_set' +cache path for MATLAB using \verb'GrB.jit' in MATLAB, or using \verb'GxB_set' in the C interface for your native Arm64 binaries. %------------------------------------------------------------------------------- @@ -8628,8 +9140,1203 @@ \subsubsection{Better performance for multithreaded user programs:} \newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\input{GrB_get_set.tex} +\section{SuiteSparse:GraphBLAS Options} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\label{options} + +SuiteSparse:GraphBLAS includes two type-generic methods, \verb'GxB_set' and +\verb'GxB_get', that set and query various options and parameters settings, +including a generic way to set values in the \verb'GrB_Descriptor' object. +Using these methods, the user application can provide hints to +SuiteSparse:GraphBLAS on how it should store and operate on its matrices. +These hints have no effect on the results of any GraphBLAS operation (except +perhaps floating-point roundoff differences), but they can have a great impact +on the amount of time or memory taken. + +\begin{note} +{\bf NOTE:} In the next release, \verb'GxB_get' and \verb'GxB_set' will be +replaced by \verb'GrB_*_get' and \verb'GrB_*_set', using the v2.1 C API +Specification. +\end{note} + +%------------------------------------------------------------------------------- +\subsection{{\sf GxB\_set}: overview} +%------------------------------------------------------------------------------- + +\begin{itemize} + +\item \verb'GxB_set (field, value)' sets global options. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_HYPER_SWITCH' & \verb'double' & hypersparsity control (0 to 1) \\ +\verb'GxB_BITMAP_SWITCH' & \verb'double [8]' & bitmap control \\ +\verb'GxB_FORMAT' & \verb'int' & \verb'GxB_BY_ROW' + or \verb'GxB_BY_COL' \\ +\verb'GxB_GLOBAL_NTHREADS' & \verb'int' & number of threads to use \\ +\verb'GxB_NTHREADS' & \verb'int' & number of threads to use \\ +\verb'GxB_GLOBAL_CHUNK' & \verb'double' & chunk size \\ +\verb'GxB_CHUNK' & \verb'double' & chunk size \\ +\verb'GxB_BURBLE' & \verb'int' & diagnostic output \\ +\verb'GxB_PRINTF' & see below & diagnostic output \\ +\verb'GxB_FLUSH' & see below & diagnostic output \\ +\verb'GxB_PRINT_1BASED' & \verb'int' & for printing matrices/vectors \\ +\hline +\verb'GxB_JIT_C_COMPILER_NAME' & \verb'char *' & C compiler for JIT kernels \\ +\verb'GxB_JIT_C_COMPILER_FLAGS'& \verb'char *' & flags for the C compiler \\ +\verb'GxB_JIT_C_LINKER_FLAGS' & \verb'char *' & link flags for the C compiler \\ +\verb'GxB_JIT_C_LIBRARIES' & \verb'char *' & libraries to link against \\ +\verb'GxB_JIT_C_CMAKE_LIBS' & \verb'char *' & libraries to link against \\ +\verb'GxB_JIT_C_PREFACE' & \verb'char *' & C code as preface to JIT kernels \\ +\verb'GxB_JIT_C_CONTROL' & see Section \ref{jit} & CPU JIT control \\ +\verb'GxB_JIT_USE_CMAKE' & see Section \ref{jit} & CPU JIT: use cmake \\ +\verb'GxB_JIT_ERROR_LOG' & \verb'char *' & error log file \\ +\verb'GxB_JIT_CACHE_PATH' & \verb'char *' & folder with compiled kernels \\ +\hline +\end{tabular} +} + +\item \verb'GxB_set (GrB_Matrix A, field, value)' provides hints to + SuiteSparse: GraphBLAS on how to store a particular matrix. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_HYPER_SWITCH' & \verb'double' & hypersparsity control (0 to 1) \\ +\verb'GxB_BITMAP_SWITCH' & \verb'double' & bitmap control (0 to 1) \\ +\verb'GxB_FORMAT' & \verb'int' & \verb'GxB_BY_ROW' + or \verb'GxB_BY_COL' \\ +\verb'GxB_SPARSITY_CONTROL' & \verb'int' & 0 to 15 \\ +\hline +\end{tabular} +} + +\item \verb'GxB_set (GrB_Vector v, field, value)' provides hints to + SuiteSparse: GraphBLAS on how to store a particular vector. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_BITMAP_SWITCH' & \verb'double' & bitmap control (0 to 1) \\ +\verb'GxB_SPARSITY_CONTROL' & \verb'int' & 0 to 15 \\ +\hline +\end{tabular} +} + +\item \verb'GxB_set (GrB_Descriptor desc, field, value)' sets + the value of a field in a \verb'GrB_Descriptor'. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GrB_OUTP' & \verb'GrB_Desc_Value' & replace option \\ +\verb'GrB_MASK' & \verb'GrB_Desc_Value' & mask option \\ +\verb'GrB_INP0' & \verb'GrB_Desc_Value' & transpose input 0 \\ +\verb'GrB_INP1' & \verb'GrB_Desc_Value' & transpose input 1 \\ +\verb'GxB_AxB_METHOD' & \verb'int' & method for matrix multiply \\ +\verb'GxB_SORT' & \verb'int' & lazy vs aggressive sort \\ +\verb'GxB_COMPRESSION' & \verb'int' & compression for serialization \\ +\verb'GxB_IMPORT' & \verb'GrB_Desc_Value' & trust data on import/pack \\ +\hline +\end{tabular} +} + +\item \verb'GxB_set (GxB_Context desc, field, value)' sets + the value of a field in a \verb'GxB_Context'. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_NTHREADS' & \verb'int' & number of threads to use \\ +\verb'GxB_CHUNK' & \verb'double' & chunk size \\ +\hline +\end{tabular} +} + +\end{itemize} + +%------------------------------------------------------------------------------- +\subsection{{\sf GxB\_get}: overview} +%------------------------------------------------------------------------------- + +\verb'GxB_get' queries a \verb'GrB_Descriptor', a \verb'GrB_Matrix', +a \verb'GrB_Vector', or the global options. + +\begin{itemize} + +\item \verb'GxB_get (field, &value)' retrieves the value of a global option. +NOTE: the \verb'const char *' values returned by \verb'GxB_get' are pointers +to memory spaces ``owned'' by the GraphBLAS library. Do not modify them. +Subsequent calls to GraphBLAS (particularly setting the JIT control strings) +can change those strings. The user application must copy those strings into +its own memory space if the strings are to be kept. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_HYPER_SWITCH' & \verb'double' & hypersparsity control (0 to 1) \\ +\verb'GxB_BITMAP_SWITCH' & \verb'double [8]' & bitmap control \\ +\verb'GxB_FORMAT' & \verb'int' & \verb'GxB_BY_ROW' or \verb'GxB_BY_COL' \\ +\verb'GxB_GLOBAL_NTHREADS' & \verb'int' & number of threads to use \\ +\verb'GxB_NTHREADS' & \verb'int' & number of threads to use \\ +\verb'GxB_GLOBAL_CHUNK' & \verb'double' & chunk size \\ +\verb'GxB_CHUNK' & \verb'double' & chunk size \\ +\verb'GxB_BURBLE' & \verb'int' & diagnostic output \\ +\verb'GxB_PRINTF' & see below & diagnostic output \\ +\verb'GxB_FLUSH' & see below & diagnostic output \\ +\verb'GxB_PRINT_1BASED' & \verb'int' & for printing matrices/vectors \\ +\hline +\verb'GxB_JIT_C_COMPILER_NAME' & \verb'const char *' & C compiler for JIT kernels \\ +\verb'GxB_JIT_C_COMPILER_FLAGS'& \verb'const char *' & flags for the C compiler \\ +\verb'GxB_JIT_C_LINKER_FLAGS' & \verb'const char *' & link flags for the C compiler \\ +\verb'GxB_JIT_C_LIBRARIES' & \verb'const char *' & libraries to link against \\ +\verb'GxB_JIT_C_CMAKE_LIBS' & \verb'const char *' & libraries to link against \\ +\verb'GxB_JIT_C_PREFACE' & \verb'const char *' & C code as preface to JIT kernels \\ +\verb'GxB_JIT_C_CONTROL' & see Section \ref{jit} & CPU JIT control \\ +\verb'GxB_JIT_USE_CMAKE' & see Section \ref{jit} & CPU JIT: use cmake \\ +\verb'GxB_JIT_ERROR_LOG' & \verb'const char *' & error log file \\ +\verb'GxB_JIT_CACHE_PATH' & \verb'const char *' & folder with compiled kernels \\ +\hline +\verb'GxB_MODE' & \verb'int' & blocking/non-blocking \\ +\verb'GxB_LIBRARY_NAME' & \verb'const char *' & name of library \\ +\verb'GxB_LIBRARY_VERSION' & \verb'int [3]' & library version \\ +\verb'GxB_LIBRARY_DATE' & \verb'const char *' & release date \\ +\verb'GxB_LIBRARY_ABOUT' & \verb'const char *' & about the library \\ +\verb'GxB_LIBRARY_LICENSE' & \verb'const char *' & license \\ +\verb'GxB_LIBRARY_COMPILE_DATE' & \verb'const char *' & date of compilation \\ +\verb'GxB_LIBRARY_COMPILE_TIME' & \verb'const char *' & time of compilation \\ +\verb'GxB_LIBRARY_OPENMP' & \verb'bool' & true if compiled with OpenMP\\ +\verb'GxB_LIBRARY_URL' & \verb'const char *' & url of library \\ +\verb'GxB_API_VERSION' & \verb'int [3]' & C API version \\ +\verb'GxB_API_DATE' & \verb'const char *' & C API date \\ +\verb'GxB_API_ABOUT' & \verb'const char *' & about the C API \\ +\verb'GxB_API_URL' & \verb'const char *' & \verb'http://graphblas.org' \\ +\verb'GxB_COMPILER_NAME' & \verb'const char *' & C compiler name \\ +\verb'GxB_COMPILER_VERSION' & \verb'int [3]' & C compiler version \\ +\hline +\end{tabular} +} + +\newpage +\item \verb'GxB_get (GrB_Matrix A, field, &value)' retrieves the current + value of an option from a particular matrix \verb'A'. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_HYPER_SWITCH' & \verb'double' & hypersparsity control (0 to 1) \\ +\verb'GxB_BITMAP_SWITCH' & \verb'double' & bitmap control (0 to 1) \\ +\verb'GxB_FORMAT' & \verb'int' & \verb'GxB_BY_ROW' + or \verb'GxB_BY_COL' \\ +\verb'GxB_SPARSITY_CONTROL' & \verb'int' & 0 to 15 \\ +\verb'GxB_SPARSITY_STATUS' & \verb'int' & 1, 2, 4, or 8 \\ +\hline +\end{tabular} +} + +\item \verb'GxB_get (GrB_Vector A, field, &value)' retrieves the current + value of an option from a particular vector \verb'v'. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_BITMAP_SWITCH' & \verb'double' & bitmap control (0 to 1) \\ +\verb'GxB_FORMAT' & \verb'int' & \verb'GxB_BY_ROW' + or \verb'GxB_BY_COL' \\ +\verb'GxB_SPARSITY_CONTROL' & \verb'int' & 0 to 15 \\ +\verb'GxB_SPARSITY_STATUS' & \verb'int' & 1, 2, 4, or 8 \\ +\hline +\end{tabular} +} + +\item \verb'GxB_get (GrB_Descriptor desc, field, &value)' retrieves the value + of a field in a descriptor. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GrB_OUTP' & \verb'GrB_Desc_Value' & replace option \\ +\verb'GrB_MASK' & \verb'GrB_Desc_Value' & mask option \\ +\verb'GrB_INP0' & \verb'GrB_Desc_Value' & transpose input 0 \\ +\verb'GrB_INP1' & \verb'GrB_Desc_Value' & transpose input 1 \\ +\verb'GxB_AxB_METHOD' & \verb'int' & method for matrix multiply \\ +\verb'GxB_SORT' & \verb'int' & lazy vs aggressive sort \\ +\verb'GxB_COMPRESSION' & \verb'int' & compression for serialization \\ +\verb'GxB_IMPORT' & \verb'GrB_Desc_Value' & trust data on import/pack \\ +\hline +\end{tabular} +} + +\item \verb'GxB_get (GxB_Context desc, field, value)' retrieves + the value of a field in a \verb'GxB_Context'. + +{\footnotesize +\begin{tabular}{lll} +field & value & description \\ +\hline +\verb'GxB_NTHREADS' & \verb'int' & number of threads to use \\ +\verb'GxB_CHUNK' & \verb'double' & chunk size \\ +\hline +\end{tabular} +} + +\end{itemize} + +%------------------------------------------------------------------------------- +\newpage +\subsection{OpenMP parallelism} +%------------------------------------------------------------------------------- +\label{omp_parallelism} + +SuiteSparse:GraphBLAS is a parallel library, based on OpenMP. By +default, all GraphBLAS operations will use up to the maximum number of threads +specified by the \verb'omp_get_max_threads' OpenMP function. For small +problems, GraphBLAS may choose to use fewer threads, using two parameters: the +maximum number of threads to use (which may differ from the +\verb'omp_get_max_threads' value), and a parameter called the \verb'chunk'. +Suppose \verb'work' is a measure of the work an operation needs to perform (say +the number of entries in the two input matrices for \verb'GrB_eWiseAdd'). No +more than \verb'floor(work/chunk)' threads will be used (or one thread if the +ratio is less than 1). + +\verb'GxB_NTHREADS' controls how many threads a method uses. + By default (if set to zero, or \verb'GxB_DEFAULT'), all available threads + are used. The maximum available threads is controlled by the global + setting, which is \verb'omp_get_max_threads ( )' by default. If set to + some positive integer \verb'nthreads' less than this maximum, at most + \verb'nthreads' threads will be used. + +\verb'GxB_CHUNK' is a \verb'double' value that controls how many threads + a method uses for small problems. +The default \verb'chunk' value is 65,536, but this may change in future +versions, or it may be modified when GraphBLAS is installed on a particular +machine. + +Both parameters can be set in two ways: + +\begin{itemize} + +\item Globally: If the following methods are used, then all subsequent +GraphBLAS operations will use these settings. Note the typecast, +\verb'(double)' \verb'chunk'. This is necessary if a literal constant such as +\verb'20000' is passed as this argument. The type of the constant must be +\verb'double'. + + {\footnotesize + \begin{verbatim} + int nthreads_max = 40 ; + GxB_set (GxB_NTHREADS, nthreads_max) ; + GxB_set (GxB_CHUNK, (double) 20000) ; \end{verbatim} } + +\item Context: this object can be used to choose a different number of +threads used in calls to GraphBLAS from different user threads, exploiting +nested parallelism. Refer to Section~\ref{context}. If a thread has engaged a +context object, it ignores the global settings for \verb'GxB_NTHREADS' and +\verb'GxB_CHUNK', and uses the settings in its own context instead. + +\end{itemize} + +The smaller of \verb'nthreads_max' and \verb'floor(work/chunk)' is used for any +given GraphBLAS operation, except that a single thread is used if this value is +zero or less. + +If either parameter is set to \verb'GxB_DEFAULT', then default values are used. +The default for \verb'nthreads_max' is the return value from +\verb'omp_get_max_threads', and the default chunk size is currently 65,536. + +If a descriptor value for either parameter is left at its default, or set to +\verb'GxB_DEFAULT', then the global setting is used. This global setting may +have been modified from its default, and this modified value will be used. + +For example, suppose \verb'omp_get_max_threads' reports 8 threads. If \newline +\verb'GxB_set (GxB_NTHREADS, 4)' is used, then the global setting is four +threads, not eight. + +GraphBLAS may be compiled without OpenMP, by setting \verb'-DNOPENMP=1'. +The library will be thread-safe, with one exception. \verb'GrB_wait' is +intended to provide thread-safety by flushing the cache of one user thread +so the object can be safely read by another thread. This is accomplished +with \verb'pragma omp flush', but if OpenMP is not available, this does +nothing. If OpenMP is not available or \verb'-DNOPEMP=1' is used, then +user applications need to ensure their own thread safety when one user thread +computes a result that is then read by another thread. + +You can query GraphBLAS at run-time to ask if it was compiled with OpenMP: + +\begin{verbatim} + bool have_openmp ; + GxB_get (GxB_LIBRARY_OPENMP, &have_openmp) ; + if (!have_openmp) printf ("GraphBLAS not compiled with OpenMP\n") : +\end{verbatim} + +Compiling GraphBLAS without OpenMP is not recommended for installation in a +package manager (Linux, conda-forge, spack, brew, vcpkg, etc). + +%------------------------------------------------------------------------------- +\subsection{Storing a matrix by row or by column} +%------------------------------------------------------------------------------- + +The GraphBLAS \verb'GrB_Matrix' is entirely opaque to the user application, and +the GraphBLAS API does not specify how the matrix should be stored. However, +choices made in how the matrix is represented in a particular implementation, +such as SuiteSparse:GraphBLAS, can have a large impact on performance. + +Many graph algorithms are just as fast in any format, but some algorithms are +much faster in one format or the other. For example, suppose the user +application stores a directed graph as a matrix \verb'A', with the edge $(i,j)$ +represented as the value \verb'A(i,j)', and the application makes many accesses +to the $i$th row of the matrix, with \verb'GrB_Col_extract' +\verb'(w,...,A,GrB_ALL,...,i,desc)' with the transposed descriptor +(\verb'GrB_INP0' set to \verb'GrB_TRAN'). If the matrix is stored by column +this can be extremely slow, just like the expression \verb'w=A(i,:)' in MATLAB, +where \verb'i' is a scalar. Since this is a typical use-case in graph +algorithms, the default format in SuiteSparse:GraphBLAS is to store its +matrices by row, in Compressed Sparse Row format (CSR). + +MATLAB stores its sparse matrices by column, in ``non-hypersparse'' format, in +what is called the Compressed Sparse Column format, or CSC for short. An +\verb'm'-by-\verb'n' matrix in MATLAB is represented as a set of \verb'n' +column vectors, each with a sorted list of row indices and values of the +nonzero entries in that column. As a result, \verb'w=A(:,j)' is very fast in +MATLAB, since the result is already held in the data structure a single list, +the $j$th column vector. However, \verb'w=A(i,:)' is very slow in MATLAB, +since every column in the matrix has to be searched to see if it contains row +\verb'i'. In MATLAB, if many such accesses are made, it is much better to +transpose the matrix (say \verb"AT=A'") and then use \verb"w=AT(:,i)" instead. +This can have a dramatic impact on the performance of MATLAB. + +Likewise, if \verb'u' is a very sparse column vector and \verb'A' is stored by +column, then \verb"w=u'*A" (via \verb'GrB_vxm') is slower than \verb'w=A*u' +(via \verb'GrB_mxv'). The opposite is true if the matrix is stored by row. + +SuiteSparse:GraphBLAS stores its matrices by row, by default (with one +exception described below). However, it can also be instructed to store any +selected matrices, or all matrices, by column instead (just like MATLAB), so +that \verb'w=A(:,j)' (via \verb'GrB_Col_extract') is very fast. The change in +data format has no effect on the result, just the time and memory usage. To +use a column-oriented format by default, the following can be done in a user +application that tends to access its matrices by column. + + {\footnotesize + \begin{verbatim} + GrB_init (...) ; + // just after GrB_init: do the following: + #ifdef GxB_SUITESPARSE_GRAPHBLAS + GxB_set (GxB_FORMAT, GxB_BY_COL) ; + #endif \end{verbatim} } + +If this is done, and no other \verb'GxB_set' calls are made with +\verb'GxB_FORMAT', all matrices will be stored by column. +The default format is \verb'GxB_BY_ROW'. + +All vectors (\verb'GrB_Vector') are held by column, and this cannot be changed. + +By default, matrices of size \verb'm-by-1' are held by column, regardless of +the global setting described above. Matrices of size \verb'1-by-n' with +\verb'n' not equal to 1 are held by row, regardless of the global setting. +The global setting only affects matrices with both \verb'm > 1' and \verb'n > 1'. +Empty matrices (\verb'0-by-0') are also controlled by the global setting. + +After creating a matrix with \verb'GrB_Matrix_new (&A, ...)', +its format can be changed arbitrarily with \verb'GxB_set (A, GxB_FORMAT, ...)'. +So even an \verb'm-by-1' matrix can then be changed to be held by row, for +example. Likewise, once a \verb'1-by-n' matrix is created, it can be converted +to column-oriented format. + +%------------------------------------------------------------------------------- +\subsection{Hypersparse matrices} +\label{hypersparse} +%------------------------------------------------------------------------------- + +MATLAB can store an \verb'm'-by-\verb'n' matrix with a very large value of +\verb'm', since a CSC data structure takes $O(n+|{\bf A}|)$ memory, independent +of \verb'm', where $|{\bf A}|$ is the number of nonzeros in the matrix. It +cannot store a matrix with a huge \verb'n', and this structure is also +inefficient when $|{\bf A}|$ is much smaller than \verb'n'. In contrast, +SuiteSparse:GraphBLAS can store its matrices in {\em hypersparse} format, +taking only $O(|{\bf A}|)$ memory, independent of how it is stored (by row or +by column) and independent of both \verb'm' and \verb'n' +\cite{BulucGilbert08,BulucGilbert12}. + +In both the CSR and CSC formats, the matrix is held as a set of sparse vectors. +In non-hypersparse format, the set of sparse vectors is itself dense; all +vectors are present, even if they are empty. For example, an +\verb'm'-by-\verb'n' matrix in non-hypersparse CSC format contains \verb'n' +sparse vectors. Each column vector takes at least one integer to represent, +even for a column with no entries. This allows for quick lookup for a +particular vector, but the memory required is $O(n+|{\bf A}|)$. With a +hypersparse CSC format, the set of vectors itself is sparse, and columns with +no entries take no memory at all. The drawback of the hypersparse format is +that finding an arbitrary column vector \verb'j', such as for the computation +\verb'C=A(:,j)', takes $O(\log k)$ time if there $k \le n$ vectors in the data +structure. One advantage of the hypersparse structure is the memory required +for an \verb'm'-by-\verb'n' hypersparse CSC matrix is only $O(|{\bf A}|)$, +independent of \verb'm' and \verb'n'. Algorithms that must visit all non-empty +columns of a matrix are much faster when working with hypersparse matrices, +since empty columns can be skipped. + +The \verb'hyper_switch' parameter controls the hypersparsity of the internal +data structure for a matrix. The parameter is typically in the range 0 to 1. +The default is \verb'hyper_switch' = \verb'GxB_HYPER_DEFAULT', which is an +\verb'extern' \verb'const' \verb'double' value, currently set to 0.0625, or +1/16. This default ratio may change in the future. + +The \verb'hyper_switch' determines how the matrix is converted between the +hypersparse and non-hypersparse formats. Let $n$ be the number of columns of a +CSC matrix, or the number of rows of a CSR matrix. The matrix can have at most +$n$ non-empty vectors. + +Let $k$ be the actual number of non-empty vectors. That is, for the CSC +format, $k \le n$ is the number of columns that have at least one entry. Let +$h$ be the value of \verb'hyper_switch'. + +If a matrix is currently hypersparse, it can be converted to non-hypersparse if +the either condition $n \le 1$ or $k > 2nh$ holds, or both. Otherwise, it +stays hypersparse. Note that if $n \le 1$ the matrix is always stored as +non-hypersparse. + +If currently non-hypersparse, it can be converted to hypersparse if +both conditions $n > 1$ and $k \le nh$ hold. Otherwise, it stays +non-hypersparse. Note that if $n \le 1$ the matrix always remains +non-hypersparse. + +The default value of \verb'hyper_switch' is assigned at startup by +\verb'GrB_init', and can then be modified globally with \verb'GxB_set'. All +new matrices are created with the same \verb'hyper_switch', determined by the +global value. Once a particular matrix \verb'A' has been constructed, its +hypersparsity ratio can be modified from the default with: + + {\footnotesize + \begin{verbatim} + double hyper_switch = 0.2 ; + GxB_set (A, GxB_HYPER_SWITCH, hyper_switch) ; \end{verbatim}} + +To force a matrix to always be non-hypersparse, use \verb'hyper_switch' equal to +\verb'GxB_NEVER_HYPER'. To force a matrix to always stay hypersparse, set +\verb'hyper_switch' to \verb'GxB_ALWAYS_HYPER'. + +A \verb'GrB_Matrix' can thus be held in one of four formats: any combination of +hyper/non-hyper and CSR/CSC. All \verb'GrB_Vector' objects are always stored +in non-hypersparse CSC format. + +A new matrix created via \verb'GrB_Matrix_new' starts with $k=0$ and is created +in hypersparse form by default unless $n \le 1$ or if $h<0$, where $h$ is the +global \verb'hyper_switch' value. The matrix is created in either +\verb'GxB_BY_ROW' or \verb'GxB_BY_COL' format, as determined by the last call +to \verb'GxB_set(GxB_FORMAT,...)' or \verb'GrB_init'. + +A new matrix \verb'C' created via \verb'GrB_dup (&C,A)' inherits the CSR/CSC +format, hypersparsity format, and \verb'hyper_switch' from \verb'A'. + +%------------------------------------------------------------------------------- +\subsection{Bitmap matrices} +\label{bitmap_switch} +%------------------------------------------------------------------------------- + +By default, SuiteSparse:GraphBLAS switches between all four formats +(hypersparse, sparse, bitmap, and full) automatically. Let $d = |{\bf A}|/mn$ +for an $m$-by-$n$ matrix $\bf A$ with $|{\bf A}|$ entries. If the matrix is +currently in sparse or hypersparse format, and is modified so that $d$ exceeds +a given threshold, it is converted into bitmap format. The default threshold +is controlled by the \verb'GxB_BITMAP_SWITCH' setting, which can be set +globally, or for a particular matrix or vector. + +The default value of the switch to bitmap format depends on $\min(m,n)$, for a +matrix of size $m$-by-$n$. For the global setting, the bitmap switch is a +\verb'double' array of size \verb'GxB_NBITMAP_SWITCH'. The defaults are given +below: + +\vspace{0.2in} +{\small +\begin{tabular}{lll} +parameter & default & matrix sizes \\ +\hline +\verb'bitmap_switch [0]' & 0.04 & $\min(m,n) = 1$ (and all vectors) \\ +\verb'bitmap_switch [1]' & 0.05 & $\min(m,n) = 2$ \\ +\verb'bitmap_switch [2]' & 0.06 & $\min(m,n) = 3$ to 4 \\ +\verb'bitmap_switch [3]' & 0.08 & $\min(m,n) = 5$ to 8 \\ +\verb'bitmap_switch [4]' & 0.10 & $\min(m,n) = 9$ to 16\\ +\verb'bitmap_switch [5]' & 0.20 & $\min(m,n) = 17$ to 32\\ +\verb'bitmap_switch [6]' & 0.30 & $\min(m,n) = 33$ to 64 \\ +\verb'bitmap_switch [7]' & 0.40 & $\min(m,n) > 64$ \\ +\end{tabular} +} +\vspace{0.2in} + +That is, by default a \verb'GrB_Vector' is held in bitmap format if its density +exceeds 4\%. To change the global settings, do the following: + +{\footnotesize +\begin{verbatim} + double bswitch [GxB_NBITMAP_SWITCH] = { 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 } ; + GxB_set (GxB_BITMAP_SWITCH, bswitch) ; +\end{verbatim} +} + +If the matrix is currently in bitmap format, it is converted to full if all +entries are present, or to sparse/hypersparse if $d$ drops below $b/2$, if its +bitmap switch is $b$. A matrix or vector with $d$ between $b/2$ and $b$ +remains in its current format. + +%------------------------------------------------------------------------------- +\subsection{Parameter types} +%------------------------------------------------------------------------------- +The \verb'GxB_Option_Field' enumerated type gives the type of the \verb'field' +parameter for the second argument of \verb'GxB_set' and \verb'GxB_get', +for setting global options or matrix options. + +NOTE: The enum values have changed with v8.0.0, to be compatible with the +future updates from the v2.1 C API specification. + +{\footnotesize +\begin{verbatim} +\end{verbatim} } + +The \verb'GxB_FORMAT' field can be by row or by column, set to a value +with the type \verb'GxB_Format_Value': + +{\footnotesize +\begin{verbatim} +typedef enum +{ + GxB_BY_ROW = 0, // CSR: compressed sparse row format + GxB_BY_COL = 1 // CSC: compressed sparse column format +} +GxB_Format_Value ; +\end{verbatim} } + +The default format is given by the predefined value \verb'GxB_FORMAT_DEFAULT', +which is equal to \verb'GxB_BY_ROW'. +The default hypersparsity +ratio is 0.0625 (1/16), but this value may change in the future. + +Setting the \verb'GxB_HYPER_SWITCH' field to \verb'GxB_ALWAYS_HYPER' ensures a matrix +always stays hypersparse. If set to \verb'GxB_NEVER_HYPER', it always stays +non-hypersparse. At startup, \verb'GrB_init' defines the following initial +settings: + +{\footnotesize +\begin{verbatim} + GxB_set (GxB_HYPER_SWITCH, GxB_HYPER_DEFAULT) ; + GxB_set (GxB_FORMAT, GxB_BY_ROW) ; +\end{verbatim} } + +That is, by default, all new matrices are held by row in CSR format (except +for \verb'n-by-1' matrices; see \verb'GrB_Matrix_new'). +If a matrix has fewer than $n/16$ +columns, it can be converted to hypersparse format. If it has more than $n/8$ +columns, it can be converted to non-hypersparse format. These options can be +changed for all future matrices with \verb'GxB_set'. For example, to change +all future matrices to be in non-hypersparse CSC when created, use: + +{\footnotesize +\begin{verbatim} + GxB_set (GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; + GxB_set (GxB_FORMAT, GxB_BY_COL) ; +\end{verbatim} } + +Then if a particular matrix needs a different format, then (as an example): + +{\footnotesize +\begin{verbatim} + GxB_set (A, GxB_HYPER_SWITCH, 0.1) ; + GxB_set (A, GxB_FORMAT, GxB_BY_ROW) ; +\end{verbatim} } + +This changes the matrix \verb'A' so that it is stored by row, and it is +converted from non-hypersparse to hypersparse format if it has fewer than 10\% +non-empty columns. If it is hypersparse, it is a candidate for conversion to +non-hypersparse if has 20\% or more non-empty columns. If it has between 10\% +and 20\% non-empty columns, it remains in its current format. +MATLAB only supports a non-hypersparse CSC format. The format in +SuiteSparse:GraphBLAS that is equivalent to the MATLAB format is: + +{\footnotesize +\begin{verbatim} + GrB_init (...) ; + GxB_set (GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; + GxB_set (GxB_FORMAT, GxB_BY_COL) ; + // no subsequent use of GxB_HYPER_SWITCH or GxB_FORMAT +\end{verbatim} } + +The \verb'GxB_HYPER_SWITCH' and \verb'GxB_FORMAT' options should be considered as +suggestions from the user application as to how SuiteSparse:GraphBLAS can +obtain the best performance for a particular application. +SuiteSparse:GraphBLAS is free to ignore any of these suggestions, both now and +in the future, and the available options and formats may be augmented in the +future. Any prior options no longer needed in future versions of +SuiteSparse:GraphBLAS will be silently ignored, so the use these options is +safe for future updates. + +The sparsity status of a matrix can be queried with the following, which +returns a value of \verb'GxB_HYPERSPARSE' \verb'GxB_SPARSE' \verb'GxB_BITMAP' +or \verb'GxB_FULL'. + +{\footnotesize +\begin{verbatim} + int sparsity ; + GxB_get (A, GxB_SPARSITY_STATUS, &sparsity) ; \end{verbatim}} + +The sparsity format of a matrix can be controlled with \verb'GxB_set', which +can be any mix (a sum or bitwise or) of \verb'GxB_HYPERSPARSE' +\verb'GxB_SPARSE' \verb'GxB_BITMAP', and \verb'GxB_FULL'. By default, a matrix +or vector can be held in any format, with the default setting +\verb'GxB_AUTO_SPARSITY', which is equal to \verb'GxB_HYPERSPARSE' + +\verb'GxB_SPARSE' + \verb'GxB_BITMAP' + \verb'GxB_FULL'. To enable a matrix to +take on just \verb'GxB_SPARSE' or \verb'GxB_FULL' formats, but not +\verb'GxB_HYPERSPARSE' or \verb'GxB_BITMAP', for example, use the following: + +{\footnotesize +\begin{verbatim} + GxB_set (A, GxB_SPARSITY_CONTROL, GxB_SPARSE + GxB_FULL) ; \end{verbatim}} + +In this case, SuiteSparse:GraphBLAS will hold the matrix in sparse format +(\verb'CSC' or \verb'CSC', depending on its \verb'GxB_FORMAT'), unless all +entries are present, in which case it will be converted to full format. + +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: + +{\footnotesize +\begin{verbatim} + GxB_set (A, GxB_SPARSITY_CONTROL, ~GxB_FULL) ; \end{verbatim}} + +%------------------------------------------------------------------------------- +\subsection{{\sf GxB\_BURBLE}, {\sf GxB\_PRINTF}, {\sf GxB\_FLUSH}: diagnostics} +%------------------------------------------------------------------------------- + +\verb'GxB_set (GxB_BURBLE, ...)' controls the burble setting. It can also be +controlled via \verb'GrB.burble(b)' in the MATLAB/Octave interface. + +{\footnotesize +\begin{verbatim} + GxB_set (GxB_BURBLE, true) ; // enable burble + GxB_set (GxB_BURBLE, false) ; // disable burble \end{verbatim}} + +If enabled, SuiteSparse:GraphBLAS reports which internal kernels it uses, and +how much time is spent. If you see the word \verb'generic', it means that +SuiteSparse:GraphBLAS was unable to use its JIT kernels, or its faster kernels +in \verb'Source/FactoryKernels', but used a generic kernel that relies on +function pointers. This is done for user-defined types and operators, and when +typecasting is performed, and it is typically slower than the JIT kernels +or kernels in \verb'Source/FactoryKernels'. + +If you see a lot of \verb'wait' statements, it may mean that a lot of time is +spent finishing a matrix or vector. This may be the result of an inefficient +use of the \verb'setElement' and \verb'assign' methods. If this occurs you +might try changing the sparsity format of a vector or matrix to +\verb'GxB_BITMAP', assuming there's enough space for it. + +\verb'GxB_set (GxB_PRINTF, printf)' allows the user application to change the +function used to print diagnostic output. This also controls the output of the +\verb'GxB_*print' functions. By default this parameter is \verb'NULL', in +which case the ANSI C11 \verb'printf' function is used. The parameter is a +function pointer with the same signature as the ANSI C11 \verb'printf' +function. The MATLAB/Octave interface to GraphBLAS sets it to \verb'mexPrintf' +so that GraphBLAS can print to the MATLAB/Octave Command Window. + +After each call to the \verb'printf' function, an optional +\verb'flush' function is called, which is \verb'NULL' by default. If +\verb'NULL', the function is not used. This can be changed with +\verb'GxB_set (GxB_FLUSH, flush)'. The \verb'flush' function takes no +arguments, and returns an \verb'int' which is 0 if successful, or any nonzero +value on failure (the same output as the ANSI C11 \verb'fflush' function, +except that \verb'flush' has no inputs). + +%------------------------------------------------------------------------------- +\subsection{Other global options} +%------------------------------------------------------------------------------- + +\verb'GxB_MODE' can only be +queried by \verb'GxB_get'; it cannot be modified by \verb'GxB_set'. The mode +is the value passed to \verb'GrB_init' (blocking or non-blocking). + +All threads in the same user application share the same global options, +including hypersparsity, bitmap options, and CSR/CSC format determined by +\verb'GxB_set', and the blocking mode determined by \verb'GrB_init'. +Specific format and hypersparsity parameters of each matrix are specific to +that matrix and can be independently changed. + +The \verb'GxB_LIBRARY_*' options can be used with \verb'GxB_get' to query the +current implementation. For all of these, \verb'GxB_get' returns a string +(\verb'char *'), except for \verb'GxB_LIBRARY_VERSION', which takes as input an +\verb'int' array of size three. The \verb'GxB_API_*' options can be used with +\verb'GxB_get' to query the current GraphBLAS C API Specification. For all of +these, \verb'GxB_get' returns a string (\verb'char *'), except for +\verb'GxB_API_VERSION', which takes as input an \verb'int' array of size three. + +%=============================================================================== +\subsection{{\sf GxB\_Global\_Option\_set:} set a global option} +%=============================================================================== + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_set // set a global default option +( + const GxB_Option_Field field, // option to change + ... // value to change it to +) ; +\end{verbatim} } \end{mdframed} + +This usage of \verb'GxB_set' sets the value of a global option. +The \verb'field' parameter can be +\verb'GxB_HYPER_SWITCH', +\verb'GxB_BITMAP_SWITCH', +\verb'GxB_FORMAT', +\verb'GxB_NTHREADS', +\verb'GxB_CHUNK', +\verb'GxB_BURBLE', +\verb'GxB_PRINTF', +\verb'GxB_FLUSH', +\verb'GxB_PRINT_1BASED', \newline +\verb'GxB_JIT_C_COMPILER_NAME', +\verb'GxB_JIT_C_COMPILER_FLAGS', +\verb'GxB_JIT_C_LINKER_FLAGS', +\verb'GxB_JIT_C_LIBRRIES', +\verb'GxB_JIT_C_PREFACE', +\verb'GxB_JIT_C_CONTROL', +\verb'GxB_JIT_USE_CMAKE', +\verb'GxB_JIT_ERROR_LOG', or +\verb'GxB_JIT_CACHE_PATH'. + +For example, the following usage sets the global hypersparsity ratio to 0.2, +the format of future matrices to \verb'GxB_BY_COL', the maximum number +of threads to 4, the chunk size to 10000, and enables the burble. +No existing matrices are changed. + +{\footnotesize +\begin{verbatim} + GxB_set (GxB_HYPER_SWITCH, 0.2) ; + GxB_set (GxB_FORMAT, GxB_BY_COL) ; + GxB_set (GxB_NTHREADS, 4) ; + GxB_set (GxB_CHUNK, (double) 10000) ; + GxB_set (GxB_BURBLE, true) ; + GxB_set (GxB_PRINTF, mexPrintf) ; +\end{verbatim} } + +\newpage +%=============================================================================== +\subsection{{\sf GxB\_Matrix\_Option\_set:} set a matrix option} +%=============================================================================== + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_set // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + const GxB_Option_Field field, // option to change + ... // value to change it to +) ; +\end{verbatim} } \end{mdframed} + +This usage of \verb'GxB_set' sets the value of a matrix option, for a +particular matrix. +The \verb'field' parameter can be +\verb'GxB_HYPER_SWITCH', +\verb'GxB_BITMAP_SWITCH', +\verb'GxB_SPARSITY_CONTROL', or +\verb'GxB_FORMAT'. +This example usage sets the hypersparsity ratio to 0.2, and the +format of \verb'GxB_BY_COL', for a particular matrix \verb'A', and sets the +sparsity control to \verb'GxB_SPARSE+GxB_FULL' (allowing the matrix to be held +in CSC or FullC formats, but not BitmapC or HyperCSC): + +{\footnotesize +\begin{verbatim} + GxB_set (A, GxB_HYPER_SWITCH, 0.2) ; + GxB_set (A, GxB_FORMAT, GxB_BY_COL) ; + GxB_set (A, GxB_SPARSITY_CONTROL, GxB_SPARSE + GxB_FULL) ; +\end{verbatim} } + +SuiteSparse:GraphBLAS currently applies these changes immediately, but since +they are simply hints, future versions of SuiteSparse:GraphBLAS may delay the +change in format if it can obtain better performance. If the setting is just +\verb'GxB_FULL' and some entries are missing, then the matrix is held in bitmap +format. For best performance, the matrix option should be set as soon as it is +created with \verb'GrB_Matrix_new', so the internal transformation takes less +time. If an error occurs, \verb'GrB_error(&err,A)' returns details about the +error. + +%=============================================================================== +\subsection{{\sf GxB\_Desc\_set:} set a {\sf GrB\_Descriptor} value} +%=============================================================================== +\label{gxbset} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + const GrB_Desc_Field field, // parameter to change + ... // value to change it to +) ; +\end{verbatim} } \end{mdframed} + +This usage is similar to \verb'GrB_Descriptor_set', just with a name that is +consistent with the other usages of this generic function. Unlike +\verb'GrB_Descriptor_set', the \verb'field' may also be +\verb'GxB_SORT', \verb'GxB_COMPRESSION', or +\verb'GxB_IMPORT'. Refer to Sections~\ref{descriptor_set}~and~\ref{desc_set} +for details. If an error occurs, \verb'GrB_error(&err,desc)' returns details +about the error. + +\newpage +%=============================================================================== +\subsection{{\sf GxB\_Global\_Option\_get:} retrieve a global option} +%=============================================================================== +\label{gxbget} + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_get // gets the current global default option +( + const GxB_Option_Field field, // option to query + ... // return value of the global option +) ; +\end{verbatim} } \end{mdframed} + +This usage of \verb'GxB_get' retrieves the value of a global option. The +\verb'field' parameter can be one of the following: + +\vspace{0.2in} +{\footnotesize +\begin{tabular}{ll} + \hline + \verb'GxB_HYPER_SWITCH' & sparse/hyper setting \\ + \verb'GxB_BITMAP_SWITCH' & bitmap/sparse setting \\ + \verb'GxB_FORMAT' & by row/col setting \\ + \verb'GxB_MODE' & blocking / non-blocking \\ + \verb'GxB_NTHREADS' & default number of threads \\ + \verb'GxB_CHUNK' & default chunk size \\ + \verb'GxB_BURBLE' & burble setting \\ + \verb'GxB_PRINTF' & printf function \\ + \verb'GxB_FLUSH' & flush function \\ + \verb'GxB_PRINT_1BASED' & for printing matrices/vectors \\ + \hline + \verb'GxB_JIT_C_COMPILER_NAME' & C compiler for JIT kernels \\ + \verb'GxB_JIT_C_COMPILER_FLAGS' & flags for the C compiler \\ + \verb'GxB_JIT_C_LINKER_FLAGS' & link flags for the C compiler \\ + \verb'GxB_JIT_C_LIBRARIES' & libraries to link against \\ + \verb'GxB_JIT_C_CMAKE_LIBS' & libraries to link against \\ + \verb'GxB_JIT_C_PREFACE' & preface for JIT kernels \\ + \verb'GxB_JIT_C_CONTROL' & CPU JIT control \\ + \verb'GxB_JIT_USE_CMAKE' & CPU JIT: use cmake or not \\ + \verb'GxB_JIT_ERROR_LOG' & error log file \\ + \verb'GxB_JIT_CACHE_PATH' & folder with compiled kernels \\ + \hline + \verb'GxB_LIBRARY_NAME' & the string + \verb'"SuiteSparse:GraphBLAS"' \\ + \verb'GxB_LIBRARY_VERSION' & \verb'int' array of size 3 \\ + \verb'GxB_LIBRARY_DATE' & date of release \\ + \verb'GxB_LIBRARY_ABOUT' & author, copyright \\ + \verb'GxB_LIBRARY_LICENSE' & license for the library \\ + \verb'GxB_LIBRARY_COMPILE_DATE' & date of compilation \\ + \verb'GxB_LIBRARY_COMPILE_TIME' & time of compilation \\ + \verb'GxB_LIBRARY_OPENMP' & library compiled with OpenMP\\ + \verb'GxB_LIBRARY_URL' & URL of the library \\ + \hline + \verb'GxB_API_VERSION' & GraphBLAS C API Specification Version \\ + \verb'GxB_API_DATE' & date of the C API Spec. \\ + \verb'GxB_API_ABOUT' & about of the C API Spec. \\ + \verb'GxB_API_URL' & URL of the specification \\ + \hline +\end{tabular} +} +\vspace{0.2in} + +{\bf NOTE:} The strings returned by \verb'GxB_get' are \verb'const char *'. +They are ``owned'' by the GraphBLAS library itself, not by the user +application. They cannot be freed or modified in any way. A subsequent call +to \verb'GxB_set' can free them and reallocate them, so they are only valid +until that point. If you want to keep a string returned by \verb'GxB_get', +make a copy immediately after calling \verb'GxB_get', into a character array +owned by the user application. The \verb'GxB_JIT_*' strings are the only ones +this affects. + +Below is an example: + +{\footnotesize +\begin{verbatim} + double h ; + GxB_get (GxB_HYPER_SWITCH, &h) ; + printf ("hyper_switch = %g for all new matrices\n", h) ; + + double b [GxB_BITMAP_SWITCH] ; + GxB_get (GxB_BITMAP_SWITCH, b) ; + for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) + { + printf ("bitmap_switch [%d] = %g ", k, b [k]) ; + if (k == 0) + { + printf ("for vectors and matrices with 1 row or column\n") ; + } + else if (k == GxB_NBITMAP_SWITCH - 1) + { + printf ("for matrices with min dimension > %d\n", 1 << (k-1)) ; + } + else + { + printf ("for matrices with min dimension %d to %d\n", + (1 << (k-1)) + 1, 1 << k) ; + } + } + + GxB_Format_Value s ; + GxB_get (GxB_FORMAT, &s) ; + if (s == GxB_BY_COL) printf ("all new matrices are stored by column\n") ; + else printf ("all new matrices are stored by row\n") ; + + GrB_mode mode ; + GxB_get (GxB_MODE, &mode) ; + if (mode == GrB_BLOCKING) printf ("GrB_init(GrB_BLOCKING) was called.\n") ; + else printf ("GrB_init(GrB_NONBLOCKING) was called.\n") ; + + int nthreads_max ; + GxB_get (GxB_NTHREADS, &nthreads_max) ; + printf ("max # of threads to use: %d\n", nthreads_max) ; + + double chunk ; + GxB_get (GxB_CHUNK, &chunk) ; + printf ("chunk size: %g\n", chunk) ; + + char *name ; + int ver [3] ; + GxB_get (GxB_LIBRARY_NAME, &name) ; + GxB_get (GxB_LIBRARY_VERSION, ver) ; + printf ("Library %s, version %d.%d.%d\n", name, ver [0], ver [1], ver [2]) ; \end{verbatim} } + +%=============================================================================== +\subsection{{\sf GxB\_Matrix\_Option\_get:} retrieve a matrix option} +%=============================================================================== + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_get // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + ... // return value of the matrix option +) ; +\end{verbatim} } \end{mdframed} + +This usage of \verb'GxB_get' retrieves the value of a matrix option. The +\verb'field' parameter can be +\verb'GxB_HYPER_SWITCH', +\verb'GxB_BITMAP_SWITCH', +\verb'GxB_SPARSITY_CONTROL', +\verb'GxB_SPARSITY_STATUS', +or +\verb'GxB_FORMAT'. +For example: + +\vspace{-0.1in} +{\footnotesize +\begin{verbatim} + double h, b ; + int sparsity, scontrol ; + GxB_get (A, GxB_SPARSITY_STATUS, &sparsity) ; + GxB_get (A, GxB_HYPER_SWITCH, &h) ; + printf ("matrix A has hyper_switch = %g\n", h) ; + GxB_get (A, GxB_BITMAP_SWITCH, &b) ; + printf ("matrix A has bitmap_switch = %g\n", b) ; + switch (sparsity) + { + case GxB_HYPERSPARSE: printf ("matrix A is hypersparse\n") ; break ; + case GxB_SPARSE: printf ("matrix A is sparse\n" ) ; break ; + case GxB_BITMAP: printf ("matrix A is bitmap\n" ) ; break ; + case GxB_FULL: printf ("matrix A is full\n" ) ; break ; + } + GxB_Format_Value s ; + GxB_get (A, GxB_FORMAT, &s) ; + printf ("matrix A is stored by %s\n", (s == GxB_BY_COL) ? "col" : "row") ; + GxB_get (A, GxB_SPARSITY_CONTROL, &scontrol) ; + if (scontrol & GxB_HYPERSPARSE) printf ("A may become hypersparse\n") ; + if (scontrol & GxB_SPARSE ) printf ("A may become sparse\n") ; + if (scontrol & GxB_BITMAP ) printf ("A may become bitmap\n") ; + if (scontrol & GxB_FULL ) printf ("A may become full\n") ; \end{verbatim} } + +%=============================================================================== +\subsection{{\sf GxB\_Desc\_get:} retrieve a {\sf GrB\_Descriptor} value} +%=============================================================================== + +\begin{mdframed}[userdefinedwidth=6in] +{\footnotesize +\begin{verbatim} +GrB_Info GxB_get // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL means defaults + GrB_Desc_Field field, // parameter to query + ... // value of the parameter +) ; +\end{verbatim} } \end{mdframed} + +This usage is the same as \verb'GxB_Desc_get'. The \verb'field' parameter can +be \verb'GrB_OUTP', \verb'GrB_MASK', \verb'GrB_INP0', \verb'GrB_INP1', +\verb'GxB_AxB_METHOD', +\verb'GxB_SORT', +\verb'GxB_COMPRESSION', or +\verb'GxB_IMPORT'. +Refer to Section~\ref{desc_get} for details. + +%=============================================================================== +\subsection{Summary of usage of {\sf GxB\_set} and {\sf GxB\_get}} +%=============================================================================== + +The different usages of \verb'GxB_set' and \verb'GxB_get' are summarized below. + +\noindent +To set/get the global options: + + {\footnotesize + \begin{verbatim} + GxB_set (GxB_HYPER_SWITCH, double h) ; + GxB_set (GxB_HYPER_SWITCH, GxB_ALWAYS_HYPER) ; + GxB_set (GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; + GxB_get (GxB_HYPER_SWITCH, double *h) ; + double b [GxB_NBITMAP_SWITCH] ; + GxB_set (GxB_BITMAP_SWITCH, b) ; + GxB_set (GxB_BITMAP_SWITCH, NULL) ; // set defaults + GxB_get (GxB_BITMAP_SWITCH, b) ; + GxB_set (GxB_FORMAT, GxB_BY_ROW) ; + GxB_set (GxB_FORMAT, GxB_BY_COL) ; + GxB_get (GxB_FORMAT, GxB_Format_Value *s) ; + GxB_set (GxB_NTHREADS, int nthreads_max) ; + GxB_get (GxB_NTHREADS, int *nthreads_max) ; + GxB_set (GxB_CHUNK, double chunk) ; + GxB_get (GxB_CHUNK, double *chunk) ; + GxB_set (GxB_BURBLE, bool burble) ; + GxB_get (GxB_BURBLE, bool *burble) ; + GxB_set (GxB_PRINTF, void *printf_function) ; + GxB_get (GxB_PRINTF, void **printf_function) ; + GxB_set (GxB_FLUSH, void *flush_function) ; + GxB_get (GxB_FLUSH, void **flush_function) ; + GxB_set (GxB_PRINT_1BASED, bool onebased) ; + GxB_get (GxB_PRINT_1BASED, bool *onebased) ; + + GxB_set (GxB_JIT_C_COMPILER_NAME, char *compiler) ; + GxB_get (GxB_JIT_C_COMPILER_NAME, char **compiler) ; + GxB_set (GxB_JIT_C_COMPILER_FLAGS, char *flags) ; + GxB_get (GxB_JIT_C_COMPILER_FLAGS, char **flags) ; + GxB_set (GxB_JIT_C_LINKER_FLAGS, char *flags) ; + GxB_get (GxB_JIT_C_LINKER_FLAGS, char **flags) ; + GxB_set (GxB_JIT_C_LIBRARIES, char *libraries) ; + GxB_get (GxB_JIT_C_LIBRARIES, char **libraries) ; + GxB_set (GxB_JIT_C_CMAKE_LIBS, char *libraries) ; + GxB_get (GxB_JIT_C_CMAKE_LIBS, char **libraries) ; + GxB_set (GxB_JIT_C_PREFACE, char *preface) ; + GxB_get (GxB_JIT_C_PREFACE, char **preface) ; + GxB_set (GxB_JIT_ERROR_LOG, char *error_log) ; + GxB_get (GxB_JIT_ERROR_LOG, char **error_log) ; + GxB_set (GxB_JIT_CACHE_PATH, char *cache) ; + GxB_get (GxB_JIT_CACHE_PATH, char **cache) ; + GxB_set (GxB_JIT_USE_CMAKE, int use_cmake) ; + GxB_get (GxB_JIT_USE_CMAKE, int *use_cmake) ; + GxB_set (GxB_JIT_C_CONTROL, int control) ; + GxB_get (GxB_JIT_C_CONTROL, int *control) ; + \end{verbatim} } + +\noindent +To get global options that can be queried but not modified: + + {\footnotesize + \begin{verbatim} + GxB_get (GxB_MODE, GrB_Mode *mode) ; + GxB_get (GxB_LIBRARY_NAME, char **) ; + GxB_get (GxB_LIBRARY_VERSION, int *) ; + GxB_get (GxB_LIBRARY_DATE, char **) ; + GxB_get (GxB_LIBRARY_ABOUT, char **) ; + GxB_get (GxB_LIBRARY_LICENSE, char **) ; + GxB_get (GxB_LIBRARY_COMPILE_DATE, char **) ; + GxB_get (GxB_LIBRARY_COMPILE_TIME, char **) ; + GxB_get (GxB_LIBRARY_OPENMP, bool *) ; + GxB_get (GxB_LIBRARY_URL, char **) ; + GxB_get (GxB_API_VERSION, int *) ; + GxB_get (GxB_API_DATE, char **) ; + GxB_get (GxB_API_ABOUT, char **) ; + GxB_get (GxB_API_URL, char **) ; \end{verbatim} } + +\noindent +To set/get a matrix option or status + + {\footnotesize + \begin{verbatim} + GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, double h) ; + GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, GxB_ALWAYS_HYPER) ; + GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; + GxB_get (GrB_Matrix A, GxB_HYPER_SWITCH, double *h) ; + GxB_set (GrB_Matrix A, GxB_BITMAP_SWITCH, double b) ; + GxB_get (GrB_Matrix A, GxB_BITMAP_SWITCH, double *b) ; + GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_ROW) ; + GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_COL) ; + GxB_get (GrB_Matrix A, GxB_FORMAT, GxB_Format_Value *s) ; + GxB_set (GrB_Matrix A, GxB_SPARSITY_CONTROL, GxB_AUTO_SPARSITY) ; + GxB_set (GrB_Matrix A, GxB_SPARSITY_CONTROL, scontrol) ; + GxB_get (GrB_Matrix A, GxB_SPARSITY_CONTROL, int *scontrol) ; + GxB_get (GrB_Matrix A, GxB_SPARSITY_STATUS, int *sparsity) ; \end{verbatim} } + +\noindent +To set/get a vector option or status: + + {\footnotesize + \begin{verbatim} + GxB_set (GrB_Vector v, GxB_BITMAP_SWITCH, double b) ; + GxB_get (GrB_Vector v, GxB_BITMAP_SWITCH, double *b) ; + GxB_set (GrB_Vector v, GxB_FORMAT, GxB_BY_ROW) ; + GxB_set (GrB_Vector v, GxB_FORMAT, GxB_BY_COL) ; + GxB_get (GrB_Vector v, GxB_FORMAT, GxB_Format_Value *s) ; + GxB_set (GrB_Vector v, GxB_SPARSITY_CONTROL, GxB_AUTO_SPARSITY) ; + GxB_set (GrB_Vector v, GxB_SPARSITY_CONTROL, scontrol) ; + GxB_get (GrB_Vector v, GxB_SPARSITY_CONTROL, int *scontrol) ; + GxB_get (GrB_Vector v, GxB_SPARSITY_STATUS, int *sparsity) ; \end{verbatim} } + +\noindent +To set/get a descriptor field: + + {\footnotesize + \begin{verbatim} + GxB_set (GrB_Descriptor d, GrB_OUTP, GxB_DEFAULT) ; + GxB_set (GrB_Descriptor d, GrB_OUTP, GrB_REPLACE) ; + GxB_get (GrB_Descriptor d, GrB_OUTP, GrB_Desc_Value *v) ; + GxB_set (GrB_Descriptor d, GrB_MASK, GxB_DEFAULT) ; + GxB_set (GrB_Descriptor d, GrB_MASK, GrB_COMP) ; + GxB_set (GrB_Descriptor d, GrB_MASK, GrB_STRUCTURE) ; + GxB_set (GrB_Descriptor d, GrB_MASK, GrB_COMP+GrB_STRUCTURE) ; + GxB_get (GrB_Descriptor d, GrB_MASK, GrB_Desc_Value *v) ; + GxB_set (GrB_Descriptor d, GrB_INP0, GxB_DEFAULT) ; + GxB_set (GrB_Descriptor d, GrB_INP0, GrB_TRAN) ; + GxB_get (GrB_Descriptor d, GrB_INP0, GrB_Desc_Value *v) ; + GxB_set (GrB_Descriptor d, GrB_INP1, GxB_DEFAULT) ; + GxB_set (GrB_Descriptor d, GrB_INP1, GrB_TRAN) ; + GxB_get (GrB_Descriptor d, GrB_INP1, GrB_Desc_Value *v) ; + GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_DEFAULT) ; + GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_GUSTAVSON) ; + GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_HASH) ; + GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_SAXPY) ; + GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_DOT) ; + GxB_get (GrB_Descriptor d, GrB_AxB_METHOD, GrB_Desc_Value *v) ; + GxB_set (GrB_Descriptor d, GxB_SORT, sort) ; + GxB_get (GrB_Descriptor d, GxB_SORT, int *sort) ; + GxB_set (GrB_Descriptor d, GxB_COMPRESSION, GxB_FAST_IMPORT) ; + GxB_set (GrB_Descriptor d, GxB_COMPRESSION, GxB_SECURE_IMPORT) ; + GxB_get (GrB_Descriptor d, GxB_COMPRESSION, GrB_Desc_Value *method) ; + GxB_set (GrB_Descriptor d, GxB_IMPORT, int method) ; + GxB_get (GrB_Descriptor d, GxB_IMPORT, int *method) ; \end{verbatim} } \newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -8985,7 +10692,7 @@ \subsection{{\sf GrB\_mxm:} matrix-matrix multiply} %=========================== function \verb'GB_spec_accum_mask.m', discussed in Section~\ref{accummask}. \paragraph{\bf Performance considerations:} -Suppose all matrices are in \verb'GrB_COLMAJOR' format, and \verb'B' is extremely +Suppose all matrices are in \verb'GxB_BY_COL' format, and \verb'B' is extremely sparse but \verb'A' is not as sparse. Then computing \verb'C=A*B' is very fast, and much faster than when \verb'A' is extremely sparse. For example, if \verb'A' is square and \verb'B' is a column vector that is all nonzero except @@ -9045,11 +10752,11 @@ \subsection{{\sf GrB\_vxm:} vector-matrix multiply} %=========================== terms are column vectors instead of matrices. \paragraph{\bf Performance considerations:} % u'=u'*A -If the \verb'GrB_STORAGE_ORIENTATION_HINT' of \verb'A' is \verb'GrB_ROWMAJOR', and the default +If the \verb'GxB_FORMAT' of \verb'A' is \verb'GxB_BY_ROW', and the default descriptor is used (\verb'A' is not transposed), then \verb'GrB_vxm' is faster than than \verb'GrB_mxv' with its default descriptor, when the vector \verb'u' is very sparse. -However, if the \verb'GrB_STORAGE_ORIENTATION_HINT' of \verb'A' is \verb'GrB_COLMAJOR', then +However, if the \verb'GxB_FORMAT' of \verb'A' is \verb'GxB_BY_COL', then \verb'GrB_mxv' with its default descriptor is faster than \verb'GrB_vxm' with its default descriptor, when the vector \verb'u' is very sparse. Using the non-default \verb'GrB_TRAN' descriptor for \verb'A' makes the @@ -9098,11 +10805,11 @@ \subsection{{\sf GrB\_mxv:} matrix-vector multiply} %=========================== \paragraph{\bf Performance considerations:} % u=A*u Refer to the discussion of \verb'GrB_vxm'. In SuiteSparse:GraphBLAS, \verb'GrB_mxv' is very efficient when \verb'u' is sparse or dense, when the -default descriptor is used, and when the matrix is \verb'GrB_COLMAJOR'. When +default descriptor is used, and when the matrix is \verb'GxB_BY_COL'. When \verb'u' is very sparse and \verb'GrB_INP0' is set to its non-default \verb'GrB_TRAN', then this method is not efficient if the matrix is in -\verb'GrB_COLMAJOR' format. If an application needs to perform \verb"A'*u" -repeatedly where \verb'u' is very sparse, then use the \verb'GrB_ROWMAJOR' format +\verb'GxB_BY_COL' format. If an application needs to perform \verb"A'*u" +repeatedly where \verb'u' is very sparse, then use the \verb'GxB_BY_ROW' format for \verb'A' instead. \newpage @@ -9631,9 +11338,9 @@ \subsubsection{{\sf GrB\_Matrix\_extract:} extract submatrix from matrix} \paragraph{\bf Performance considerations:} % C=A(I,J) If \verb'A' is not transposed via input descriptor: if \verb'|I|' is small, -then it is fastest if \verb'A' is \verb'GrB_ROWMAJOR'; if +then it is fastest if \verb'A' is \verb'GxB_BY_ROW'; if \verb'|J|' is small, then it is fastest if \verb'A' is -\verb'GrB_COLMAJOR'. The opposite is true if \verb'A' is transposed. +\verb'GxB_BY_COL'. The opposite is true if \verb'A' is transposed. \newpage %------------------------------------------------------------------------------- @@ -9673,7 +11380,7 @@ \subsubsection{{\sf GrB\_Col\_extract:} extract column vector from matrix} \paragraph{\bf Performance considerations:} % w = A(I,j) If \verb'A' is not transposed: it is fastest if the format of \verb'A' is -\verb'GrB_COLMAJOR'. The opposite is true if \verb'A' is transposed. +\verb'GxB_BY_COL'. The opposite is true if \verb'A' is transposed. \newpage %=============================================================================== @@ -9841,8 +11548,8 @@ \subsubsection{{\sf GxB\_Matrix\_subassign:} assign to a submatrix } \paragraph{\bf Performance considerations:} % C(I,J) = A If \verb'A' is not transposed: if \verb'|I|' is small, then it is fastest if -the format of \verb'C' is \verb'GrB_ROWMAJOR'; if \verb'|J|' is small, then it is -fastest if the format of \verb'C' is \verb'GrB_COLMAJOR'. The opposite is true +the format of \verb'C' is \verb'GxB_BY_ROW'; if \verb'|J|' is small, then it is +fastest if the format of \verb'C' is \verb'GxB_BY_COL'. The opposite is true if \verb'A' is transposed. \newpage @@ -9878,9 +11585,9 @@ \subsubsection{{\sf GxB\_Col\_subassign:} assign to a sub-column of a matrix} \paragraph{\bf Performance considerations:} % C(I,j) = u \verb'GxB_Col_subassign' is much faster than \verb'GxB_Row_subassign' if the -format of \verb'C' is \verb'GrB_COLMAJOR'. \verb'GxB_Row_subassign' is much +format of \verb'C' is \verb'GxB_BY_COL'. \verb'GxB_Row_subassign' is much faster than \verb'GxB_Col_subassign' if the format of \verb'C' is -\verb'GrB_ROWMAJOR'. +\verb'GxB_BY_ROW'. % \newpage %------------------------------------------------------------------------------- @@ -9915,9 +11622,9 @@ \subsubsection{{\sf GxB\_Row\_subassign:} assign to a sub-row of a matrix} \paragraph{\bf Performance considerations:} % C(i,J) = u' \verb'GxB_Col_subassign' is much faster than \verb'GxB_Row_subassign' if the -format of \verb'C' is \verb'GrB_COLMAJOR'. \verb'GxB_Row_subassign' is much +format of \verb'C' is \verb'GxB_BY_COL'. \verb'GxB_Row_subassign' is much faster than \verb'GxB_Col_subassign' if the format of \verb'C' is -\verb'GrB_ROWMAJOR'. +\verb'GxB_BY_ROW'. % \newpage %------------------------------------------------------------------------------- @@ -9985,7 +11692,7 @@ \subsubsection{{\sf GxB\_Matrix\_subassign\_$<$type$>$:} assign a scalar to a su The \verb' x' notation is otherwise the same as \verb'GrB_Matrix_setElement' (see Section~\ref{matrix_setElement}). Any value can be passed to this function and its type will be detected, via the -\verb'_Generic' feature of C11. For a user-defined type, \verb'x' is a +\verb'_Generic' feature of ANSI C11. For a user-defined type, \verb'x' is a \verb'void *' pointer that points to a memory space holding a single entry of a scalar that has exactly the same user-defined type as the matrix \verb'C'. This user-defined type must exactly match the user-defined type of \verb'C' @@ -10001,8 +11708,8 @@ \subsubsection{{\sf GxB\_Matrix\_subassign\_$<$type$>$:} assign a scalar to a su \paragraph{\bf Performance considerations:} % C(I,J) = scalar If \verb'A' is not transposed: if \verb'|I|' is small, then it is fastest if -the format of \verb'C' is \verb'GrB_ROWMAJOR'; if \verb'|J|' is small, then it is -fastest if the format of \verb'C' is \verb'GrB_COLMAJOR'. The opposite is true +the format of \verb'C' is \verb'GxB_BY_ROW'; if \verb'|J|' is small, then it is +fastest if the format of \verb'C' is \verb'GxB_BY_COL'. The opposite is true if \verb'A' is transposed. \newpage @@ -10110,8 +11817,8 @@ \subsubsection{{\sf GrB\_Matrix\_assign:} assign to a submatrix } \paragraph{\bf Performance considerations:} % C(I,J) = A If \verb'A' is not transposed: if \verb'|I|' is small, then it is fastest if -the format of \verb'C' is \verb'GrB_ROWMAJOR'; if \verb'|J|' is small, then it is -fastest if the format of \verb'C' is \verb'GrB_COLMAJOR'. The opposite is true +the format of \verb'C' is \verb'GxB_BY_ROW'; if \verb'|J|' is small, then it is +fastest if the format of \verb'C' is \verb'GxB_BY_COL'. The opposite is true if \verb'A' is transposed. \newpage @@ -10149,8 +11856,8 @@ \subsubsection{{\sf GrB\_Col\_assign:} assign to a sub-column of a matrix} \paragraph{\bf Performance considerations:} % C(I,j) = u \verb'GrB_Col_assign' is much faster than \verb'GrB_Row_assign' if the format -of \verb'C' is \verb'GrB_COLMAJOR'. \verb'GrB_Row_assign' is much faster than -\verb'GrB_Col_assign' if the format of \verb'C' is \verb'GrB_ROWMAJOR'. +of \verb'C' is \verb'GxB_BY_COL'. \verb'GrB_Row_assign' is much faster than +\verb'GrB_Col_assign' if the format of \verb'C' is \verb'GxB_BY_ROW'. \newpage %------------------------------------------------------------------------------- @@ -10187,8 +11894,8 @@ \subsubsection{{\sf GrB\_Row\_assign:} assign to a sub-row of a matrix} \paragraph{\bf Performance considerations:} % C(i,J) = u' \verb'GrB_Col_assign' is much faster than \verb'GrB_Row_assign' if the format -of \verb'C' is \verb'GrB_COLMAJOR'. \verb'GrB_Row_assign' is much faster than -\verb'GrB_Col_assign' if the format of \verb'C' is \verb'GrB_ROWMAJOR'. +of \verb'C' is \verb'GxB_BY_COL'. \verb'GrB_Row_assign' is much faster than +\verb'GrB_Col_assign' if the format of \verb'C' is \verb'GxB_BY_ROW'. \newpage %------------------------------------------------------------------------------- @@ -10263,7 +11970,7 @@ \subsubsection{{\sf GrB\_Matrix\_assign\_$<$type$>$:} assign a scalar to a subma The \verb' x' notation is otherwise the same as \verb'GrB_Matrix_setElement' (see Section~\ref{matrix_setElement}). Any value can be passed to this function and its type will be detected, via the -\verb'_Generic' feature of C11. For a user-defined type, \verb'x' is a +\verb'_Generic' feature of ANSI C11. For a user-defined type, \verb'x' is a \verb'void *' pointer that points to a memory space holding a single entry of a scalar that has exactly the same user-defined type as the matrix \verb'C'. This user-defined type must exactly match the user-defined type of \verb'C' @@ -10284,8 +11991,8 @@ \subsubsection{{\sf GrB\_Matrix\_assign\_$<$type$>$:} assign a scalar to a subma \paragraph{\bf Performance considerations:} % C(I,J) = scalar If \verb'A' is not transposed: if \verb'|I|' is small, then it is fastest if -the format of \verb'C' is \verb'GrB_ROWMAJOR'; if \verb'|J|' is small, then it is -fastest if the format of \verb'C' is \verb'GrB_COLMAJOR'. The opposite is true +the format of \verb'C' is \verb'GxB_BY_ROW'; if \verb'|J|' is small, then it is +fastest if the format of \verb'C' is \verb'GxB_BY_COL'. The opposite is true if \verb'A' is transposed. \newpage @@ -10775,7 +12482,7 @@ \subsubsection{Performance of {\sf GxB\_subassign}, {\sf GrB\_assign} $n$-by-$n$ matrix \verb'C' where each submatrix \verb'A' has size $a$-by-$a$ with $s$ entries, and where \verb'C' starts with $c$ entries. Assume the matrices are all stored in non-hypersparse form, by row -(\verb'GrB_ROWMAJOR'). +(\verb'GxB_BY_ROW'). If blocking mode is enabled, or if the sequence requires the matrix to be completed after each assignment, each of the $t$ assignments takes $O(a + s @@ -11550,7 +13257,7 @@ \section{Printing GraphBLAS objects} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% The ten different objects handled by SuiteSparse:GraphBLAS are all opaque, although nearly all of their contents can be extracted via methods such as \verb'GrB_Matrix_extractTuples', \verb'GrB_Matrix_extractElement', -\verb'GrB_get', and so on. The GraphBLAS C API has no mechanism for +\verb'GxB_Matrix_type', and so on. The GraphBLAS C API has no mechanism for printing all the contents of GraphBLAS objects, but this is helpful for debugging. Ten type-specific methods and two type-generic methods are provided: @@ -11562,7 +13269,7 @@ \section{Printing GraphBLAS objects} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \verb'GxB_Type_fprint' & print and check a \verb'GrB_Type' \\ \verb'GxB_UnaryOp_fprint' & print and check a \verb'GrB_UnaryOp' \\ \verb'GxB_BinaryOp_fprint' & print and check a \verb'GrB_BinaryOp' \\ -\verb'GxB_IndexUnaryOp_fprint' & print and check a \verb'GrB_IndexUnaryOp' \\ +\verb'GxB_IndexUnaryOP_fprint' & print and check a \verb'GrB_IndexUnaryOp' \\ \verb'GxB_Monoid_fprint' & print and check a \verb'GrB_Monoid' \\ \verb'GxB_Semiring_fprint' & print and check a \verb'GrB_Semiring' \\ \verb'GxB_Descriptor_fprint' & print and check a \verb'GrB_Descriptor' \\ @@ -11648,7 +13355,7 @@ \section{Printing GraphBLAS objects} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% GraphBLAS matrices and vectors are zero-based, where indices of an $n$-by-$n$ matrix are in the range 0 to $n-1$. However, MATLAB, Octave, and Julia prefer to print their matrices and vectors as one-based. To enable 1-based printing, -use \verb'GrB_set (GrB_GLOBAL, true, GxB_PRINT_1BASED)'. Printing is done as zero-based by +use \verb'GxB_set (GxB_PRINT_1BASED, true)'. Printing is done as zero-based by default. \newpage @@ -11987,16 +13694,16 @@ \section{Matrix and Vector iterators} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% the entries of a matrix using a row iterator requires an outer loop (for the rows) and an inner loop (for the entries in each row). A matrix can be accessed via a row iterator only if its format - (determined by \verb'GrB_get (A, &fmt,' \verb'GrB_STORAGE_ORIENTATION_HINT)') is by-row - (that is, \verb'GrB_ROWMAJOR'). + (determined by \verb'GxB_get (A, GxB_FORMAT, &fmt)') is by-row + (that is, \verb'GxB_BY_ROW'). See Section~\ref{options}. \item {\em column iterator}: iterates across the columns of a matrix, and then within each column to access the entries in a given column. Accessing all the entries of a matrix using a column iterator requires an outer loop (for the columns) and an inner loop (for the entries in each column). A matrix can be accessed via a column iterator only if - its format (determined by \verb'GrB_get (A, &fmt, GrB_STORAGE_ORIENTATION_HINT)') is - by-column (that is, \verb'GrB_COLMAJOR'). + its format (determined by \verb'GxB_get (A, GxB_FORMAT, &fmt)') is + by-column (that is, \verb'GxB_BY_COL'). See Section~\ref{options}. \item {\em entry iterator}: iterates across the entries of a matrix. Accessing all the entries of a matrix using an entry iterator requires @@ -13220,7 +14927,7 @@ \section{Performance} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{The burble is your friend} %------------------------------------------------------------------------------- -Turn on the burble with \verb'GrB_set (GrB_GLOBAL, true, GxB_BURBLE)'. You will get a +Turn on the burble with \verb'GxB_set (GxB_BURBLE, true)'. You will get a single line of output from each (significant) call to GraphBLAS. The burble output can help you detect when you are likely using sub-optimal methods, as described in the next sections. @@ -13262,12 +14969,12 @@ \subsection{Matrix data structures: sparse, hypersparse, bitmap, or full} and full formats. By default, all 4 formats can be used. A matrix typically starts out hypersparse when it is created by \verb'GrB_Matrix_new', and then changes during its lifetime, possibly taking on all four different formats -at different times. This can be modified via \verb'GrB_set'. For example, +at different times. This can be modified via \verb'GxB_set'. For example, this line of code: {\footnotesize \begin{verbatim} - GrB_set (A, GxB_SPARSE + GxB_BITMAP, GxB_SPARSITY_CONTROL) ; \end{verbatim}} + GxB_set (A, GxB_SPARSITY_CONTROL, GxB_SPARSE + GxB_BITMAP) ; \end{verbatim}} \noindent tells SuiteSparse that the matrix \verb'A' can be held in either sparse or @@ -13278,7 +14985,7 @@ \subsection{Matrix data structures: sparse, hypersparse, bitmap, or full} {\footnotesize \begin{verbatim} - GrB_set (A, GxB_SPARSE, GxB_SPARSITY_CONTROL) ; \end{verbatim}} + GxB_set (A, GxB_SPARSITY_CONTROL, GxB_SPARSE) ; \end{verbatim}} This ensures that SuiteSparse will primarily use the sparse format. This is still just a hint, however. The data structure is opaque and SuiteSparse is @@ -13324,7 +15031,7 @@ \subsection{Matrix formats: by row or by column, or using the transpose of application. If you see the term \verb'transpose' in the burble output, and if you need to perform this computation many times, try constructing your own explicit transpose, say \verb"AT=A'", via \verb'GrB_transpose', or create a -copy of \verb'A' but held in another orientation via \verb'GrB_set'. For +copy of \verb'A' but held in another orientation via \verb'GxB_set'. For example, assuming the default matrix format is by-row, and that \verb'A' is \verb'm'-by-\verb'n' of type \verb'GrB_FP32': @@ -13337,7 +15044,7 @@ \subsection{Matrix formats: by row or by column, or using the transpose of // method 2: A2 = A but held by column instead of by row // note: doing the set before the assign is faster than the reverse GrB_Matrix_new (A2, GrB_FP32, m, n) ; - GrB_set (A2, GrB_COLMAJOR, GrB_STORAGE_ORIENTATION_HINT) ; + GxB_set (A2, GxB_FORMAT, GxB_BY_COL) ; GrB_assign (A2, NULL, NULL, A, GrB_ALL, m, GrB_ALL, n, NULL) ; \end{verbatim}} Internally, the data structure for \verb'AT' and \verb'A2' are nearly identical @@ -13373,7 +15080,7 @@ \subsection{Push/pull optimization} {\footnotesize \begin{verbatim} int sparsity = do_push ? GxB_SPARSE : GxB_BITMAP ; - GrB_set (q, sparsity, GxB_SPARSITY_CONTROL) ; + GxB_set (q, GxB_SPARSITY_CONTROL, sparsity) ; if (do_push) { // q'{!pi} = q'*A @@ -13385,7 +15092,7 @@ \subsection{Push/pull optimization} GrB_mxv (q, pi, NULL, semiring, AT, q, GrB_DESC_RSC) ; }\end{verbatim}} -The call to \verb'GrB_set' is optional, since SuiteSparse will likely already +The call to \verb'GxB_set' is optional, since SuiteSparse will likely already determine that a bitmap format will work best when the frontier \verb'q' has many entries, which is also when the pull step is fastest. The push step relies on a sparse vector times sparse matrix method originally due to @@ -13827,7 +15534,7 @@ \subsection{Reading a matrix from a file} {\footnotesize \begin{verbatim} GrB_Descriptor_new (&dt2) ; - GrB_set (dt2, GrB_TRAN, GrB_INP1) ; + GrB_Descriptor_set (dt2, GrB_INP1, GrB_TRAN) ; GrB_Matrix_new (&A, GrB_FP64, n, n) ; GrB_eWiseAdd (A, NULL, NULL, GrB_PLUS_FP64, C, C, dt2) ; // A=C+C' GrB_free (&C) ; @@ -13877,7 +15584,7 @@ \subsection{Reading a matrix from a file} {\footnotesize \begin{verbatim} GrB_Descriptor_new (&dt1) ; - GrB_set (dt1, GrB_TRAN, GrB_INP0) ; + GrB_Descriptor_set (dt1, GrB_INP0, GrB_TRAN) ; GrB_Matrix_new (&A, GrB_FP64, n, n) ; // A (nrows:n-1, 0:nrows-1) = C' GrB_assign (A, NULL, NULL, C, J, ncols, I, nrows, dt1) ; @@ -13943,7 +15650,7 @@ \subsection{User-defined types and operators} the \verb'GxB_FC64' predefined type, but a complex type can also easily added as a user-defined type. The \verb'Complex_init' function in the \verb'usercomplex.c' file in the \verb'Demo' folder creates the \verb'Complex' -type based on the C11 \verb'double complex' type. +type based on the ANSI C11 \verb'double complex' type. It creates a full suite of operators that correspond to every built-in GraphBLAS operator, both binary and unary. In addition, it creates the operators listed in the following table, where $D$ is @@ -14022,7 +15729,7 @@ \section{Compiling and Installing SuiteSparse:GraphBLAS} \subsection{On Linux and Mac} %---------------------------------------- -GraphBLAS makes extensive use of features in the C11 standard, and thus a +GraphBLAS makes extensive use of features in the ANSI C11 standard, and thus a C compiler supporting this version of the C standard is required to use all features of GraphBLAS. @@ -14092,7 +15799,7 @@ \subsection{On Linux and Mac} GraphBLAS folder. If \verb'cmake' or \verb'make' fail, it might be that your default compiler -does not support C11. Try another compiler. For example, try one of +does not support ANSI C11. Try another compiler. For example, try one of these options. Go into the \verb'build' directory and type one of these: {\small @@ -14274,7 +15981,7 @@ \subsection{On Microsoft 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 +compiler is not ANSI C11 compliant. As a result, GraphBLAS on Windows will have a few minor limitations. \begin{itemize} @@ -14617,7 +16324,7 @@ \subsection{Setting the C flags and using CMake} # 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 2.8 workaround: gcc needs to be told to do ANSI C11. # cmake 3.0 doesn't have this problem. set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -lm " ) ... @@ -14751,27 +16458,10 @@ \section{Release Notes} \begin{itemize} -\item Version 9.0.0, Sept 15, 2024 +\item Dec 30, 2023: version 8.3.0 \begin{itemize} - \item \verb'GrB_get/GrB_set': new functions from the v2.1 C API. - \item \verb'GrB_Type_new', \verb'GrB_UnaryOp_new', - \verb'GrB_IndexUnaryOp_new': no longer macros, since \verb'GrB_set' can - be used to set the names of the operators. - These methods no longer extract the name, so the default name is now the - empty string. This is because \verb'GrB_get/set' can only set these names - once. This is a non-compatible change of behaviour for these 3 - methods, so SuiteSprase:GraphBLAS must become v9.0.0. - \item historical methods: many methods are replaced by \verb'GrB_get' and - \verb'GrB_set'. They remain in SuiteSparse:GraphBLAS but have been - declared historical. Terse prototypes exist in GraphBLAS.h, and any - discussion is removed from the User Guide: \verb'GxB_get', - \verb'GxB_set', and the methods they call, and many more. Use - \verb'GrB_get/set' in place those methods, and for: - \verb'GxB_*type_name', \verb'GxB_*type', \verb'GxB_Monoid_operator', - \verb'GxB_Monoid_identity', \verb'GxB_Monoid_terminal', - \verb'GxB_Semiring_add', \verb'GxB_Semiring_multiply'. Use \newline - \verb'GrB_STORAGE_ORIENTATION_HINT' in place of \verb'GxB_FORMAT'. + \item major change to build system: by Markus M\"{u}tzel \end{itemize} \item Oct 7, 2023: version 8.2.1 @@ -14785,7 +16475,7 @@ \section{Release Notes} \item cmake update: add "None" build type, from Antonio Rojas, for Arch Linux \end{itemize} -\item Version 8.2.0, Sept 8, 2023 +\item Version 8.2.0, Sept 5, 2023 \begin{itemize} \item cmake updates: \verb'SuiteSparse::' namespace by Markus M\"{u}tzel. @@ -14897,7 +16587,7 @@ \section{Release Notes} \begin{itemize} \item add non-\verb'va_arg' methods: \verb'va_arg'-based \verb'GxB_get/set' - methods are C11 but cause issues for cffi in Python. As a + methods are ANSI C11 but cause issues for cffi in Python. As a temporary workaround, new methods have been added that do not use \verb'va_arg'. The existing \verb'GxB_get/set' methods are not changed. The new methods are not in the user guide, since all of the @@ -15488,7 +17178,7 @@ \section{Release Notes} are not available. Use the equivalent non-polymorphic functions instead, when compiling GraphBLAS with MS Visual Studio. In addition, variable-length arrays are not supported, so user-defined types are limited - to 128 bytes in size. These changes have no effect if you have an C11 + to 128 bytes in size. These changes have no effect if you have an ANSI C11 compliant compiler. \verb'@GrB' interface modified: \verb'GrB.init' is now required. diff --git a/Doc/GraphBLAS_version.tex b/Doc/GraphBLAS_version.tex index 5716727b1b..f0726742f9 100644 --- a/Doc/GraphBLAS_version.tex +++ b/Doc/GraphBLAS_version.tex @@ -1,5 +1,5 @@ % version of SuiteSparse:GraphBLAS \date{VERSION -9.0.0, -Oct 7, 2023} +8.3.0, +Dec 30, 2023} diff --git a/Doc/Makefile b/Doc/Makefile index 26b393ca65..2d29532ab3 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -10,7 +10,7 @@ # creates the user guide GraphBLAS_UserGuide.pdf: GraphBLAS_UserGuide.tex GraphBLAS_UserGuide.bib \ - GraphBLAS_API_version.tex GraphBLAS_version.tex GrB_get_set.tex + GraphBLAS_API_version.tex GraphBLAS_version.tex pdflatex GraphBLAS_UserGuide.tex bibtex GraphBLAS_UserGuide pdflatex GraphBLAS_UserGuide.tex diff --git a/Doc/README_Doc.txt b/Doc/README_Doc.txt index 47e9b090ef..6039388501 100644 --- a/Doc/README_Doc.txt +++ b/Doc/README_Doc.txt @@ -43,7 +43,7 @@ HPEC19.pdf SuiteSparse:GraphBLAS. In IEEE HPEC’19. IEEE, 2019. Grand Challenge Champion, for high performance. See http://www.ieee-hpec.org/. -Davis_HPEC18.pdf +Davis_HPEC18.pdf T. A. Davis. Graph algorithms via SuiteSparse:GraphBLAS: triangle counting and K-truss. In IEEE HPEC’18. IEEE, 2018. Grand Challenge Innovation diff --git a/GraphBLAS/@GrB/binopinfo.m b/GraphBLAS/@GrB/binopinfo.m index 5d9dcd8830..ce9c5ff3ea 100644 --- a/GraphBLAS/@GrB/binopinfo.m +++ b/GraphBLAS/@GrB/binopinfo.m @@ -87,7 +87,7 @@ function binopinfo (op, optype) % and returns the double value 1.0 if true, or 0.0 if false. % % The following operators are avaiable for single and double (real); their -% definitions are identical to the C11 versions of these functions: +% definitions are identical to the ANSI C11 versions of these functions: % atan2, hypot, fmod, remainder, copysign, ldxep (also called 'pow2'). % All produce the same type as the input, on output. % diff --git a/GraphBLAS/@GrB/private/util/gb_error.c b/GraphBLAS/@GrB/private/util/gb_error.c index 0f5e1b1106..37f9db650b 100644 --- a/GraphBLAS/@GrB/private/util/gb_error.c +++ b/GraphBLAS/@GrB/private/util/gb_error.c @@ -38,7 +38,6 @@ const char *gb_error // return an error message from a GrB_Info value case GrB_DIMENSION_MISMATCH : return ("matrix dimensions are invalid") ; case GrB_OUTPUT_NOT_EMPTY : return ("output matrix already has values") ; case GrB_NOT_IMPLEMENTED : return ("method not implemented") ; - case GrB_ALREADY_SET : return ("name already set") ; case GrB_OUT_OF_MEMORY : return ("out of memory") ; case GrB_INSUFFICIENT_SPACE : return ("output array not large enough") ; case GrB_INVALID_OBJECT : return ("object is corrupted") ; diff --git a/GraphBLAS/@GrB/private/util/gb_export_to_mxstruct.c b/GraphBLAS/@GrB/private/util/gb_export_to_mxstruct.c index 24dce5ac04..b2daf8f7dd 100644 --- a/GraphBLAS/@GrB/private/util/gb_export_to_mxstruct.c +++ b/GraphBLAS/@GrB/private/util/gb_export_to_mxstruct.c @@ -166,12 +166,9 @@ mxArray *gb_export_to_mxstruct // return exported built-in struct G // export and free the A->Y hyper_hash. It is always sparse, // GrB_UINT64, held by column, and non-iso OK (GxB_unpack_HyperHash (A, &Y, NULL)) ; - if (Y != NULL) - { - OK (GxB_Matrix_export_CSC (&Y, &ytype, &ynrows, &yvdim, - &Yp, &Yi, &Yx, &Yp_size, &Yi_size, &Yx_size, - NULL, NULL, NULL)) ; - } + OK (GxB_Matrix_export_CSC (&Y, &ytype, &ynrows, &yvdim, + &Yp, &Yi, &Yx, &Yp_size, &Yi_size, &Yx_size, + NULL, NULL, NULL)) ; // export and free the rest of the hypersparse matrix if (by_col) @@ -226,10 +223,9 @@ mxArray *gb_export_to_mxstruct // return exported built-in struct G break ; case GxB_HYPERSPARSE : - // A is hypersparse, with 6 or 9 fields: GraphBLAS*, s, x, p, i, h, + // A is hypersparse, with 9 fields: GraphBLAS*, s, x, p, i, h, // Yp, Yi, Yx - G = mxCreateStructMatrix (1, 1, (Yp == NULL) ? 6 : 9, - MatrixFields) ; + G = mxCreateStructMatrix (1, 1, 9, MatrixFields) ; break ; case GxB_BITMAP : @@ -312,33 +308,26 @@ mxArray *gb_export_to_mxstruct // return exported built-in struct G } mxSetFieldByNumber (G, 0, 5, Ah_mx) ; - if (Yp != NULL) - { - - // export Yp, of size yvdim+1 - mxArray *Yp_mx = mxCreateNumericMatrix (1, 0, mxUINT64_CLASS, - mxREAL) ; - mxSetN (Yp_mx, yvdim+1) ; - void *p = (void *) mxGetData (Yp_mx) ; gb_mxfree (&p) ; - mxSetData (Yp_mx, Yp) ; - mxSetFieldByNumber (G, 0, 6, Yp_mx) ; - - // export Yi, of size nvec - mxArray *Yi_mx = mxCreateNumericMatrix (1, 0, mxUINT64_CLASS, - mxREAL) ; - mxSetN (Yi_mx, nvec) ; - p = (void *) mxGetData (Yi_mx) ; gb_mxfree (&p) ; - mxSetData (Yi_mx, Yi) ; - mxSetFieldByNumber (G, 0, 7, Yi_mx) ; - - // export Yx, of size nvec - mxArray *Yx_mx = mxCreateNumericMatrix (1, 0, mxUINT64_CLASS, - mxREAL) ; - mxSetN (Yx_mx, nvec) ; - p = (void *) mxGetData (Yx_mx) ; gb_mxfree (&p) ; - mxSetData (Yx_mx, Yx) ; - mxSetFieldByNumber (G, 0, 8, Yx_mx) ; - } + // export Yp, of size yvdim+1 + mxArray *Yp_mx = mxCreateNumericMatrix (1, 0, mxUINT64_CLASS, mxREAL) ; + mxSetN (Yp_mx, yvdim+1) ; + void *p = (void *) mxGetData (Yp_mx) ; gb_mxfree (&p) ; + mxSetData (Yp_mx, Yp) ; + mxSetFieldByNumber (G, 0, 6, Yp_mx) ; + + // export Yi, of size nvec + mxArray *Yi_mx = mxCreateNumericMatrix (1, 0, mxUINT64_CLASS, mxREAL) ; + mxSetN (Yi_mx, nvec) ; + p = (void *) mxGetData (Yi_mx) ; gb_mxfree (&p) ; + mxSetData (Yi_mx, Yi) ; + mxSetFieldByNumber (G, 0, 7, Yi_mx) ; + + // export Yx, of size nvec + mxArray *Yx_mx = mxCreateNumericMatrix (1, 0, mxUINT64_CLASS, mxREAL) ; + mxSetN (Yx_mx, nvec) ; + p = (void *) mxGetData (Yx_mx) ; gb_mxfree (&p) ; + mxSetData (Yx_mx, Yx) ; + mxSetFieldByNumber (G, 0, 8, Yx_mx) ; } if (sparsity_status == GxB_BITMAP) diff --git a/GraphBLAS/@GrB/private/util/gb_get_shallow.c b/GraphBLAS/@GrB/private/util/gb_get_shallow.c index 96d8ca6c60..e99858af45 100644 --- a/GraphBLAS/@GrB/private/util/gb_get_shallow.c +++ b/GraphBLAS/@GrB/private/util/gb_get_shallow.c @@ -344,10 +344,10 @@ GrB_Matrix gb_get_shallow // return a shallow copy of built-in sparse matrix } //---------------------------------------------------------------------- - // import the A->Y hyper_hash, if it exists + // import the A->Y hyper_hash //---------------------------------------------------------------------- - if (nfields == 9) + if (yvdim > 0) { // A->Y is sparse, uint64, (A->vdim)-by-yvdim, held by column OK (GrB_Matrix_new (&Y, GrB_UINT64, vdim, yvdim)) ; diff --git a/GraphBLAS/@GrB/unopinfo.m b/GraphBLAS/@GrB/unopinfo.m index 05e9a2c9af..2c90e017ad 100644 --- a/GraphBLAS/@GrB/unopinfo.m +++ b/GraphBLAS/@GrB/unopinfo.m @@ -71,8 +71,8 @@ function unopinfo (op, type) % erf z = erf (x) error function % erfc z = erfc (x) complementary error function % cbrt z = cbrt (x) cube root -% frexpx z = frexpx (x) mantissa from C11 frexp function -% frexpe z = frexpe (x) exponent from C11 frexp function; +% frexpx z = frexpx (x) mantissa from ANSI C11 frexp function +% frexpe z = frexpe (x) exponent from ANSI C11 frexp function; % the built-in [f,e]=log2(x) returns % f = frexpx (x) and e = frexpe (x). % diff --git a/GraphBLAS/CMakeLists.txt b/GraphBLAS/CMakeLists.txt index 9c776fa969..24e60538a7 100644 --- a/GraphBLAS/CMakeLists.txt +++ b/GraphBLAS/CMakeLists.txt @@ -27,7 +27,7 @@ include ( GraphBLAS_version ) set ( SUITESPARSE_SECOND_LEVEL true ) # CUDA is under development for now, and not deployed in production: -set ( SUITESPARSE_CUDA off ) +set ( SUITESPARSE_CUDA OFF ) set ( GBMATLAB on ) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGBMATLAB=1 " ) @@ -46,10 +46,10 @@ project ( graphblas_matlab # find OpenMP and cpu_features #------------------------------------------------------------------------------- -option ( NOPENMP "ON: do not use OpenMP. OFF (default): use OpenMP" off ) +option ( NOPENMP "ON: do not use OpenMP. OFF (default): use OpenMP" OFF ) if ( NOPENMP ) # OpenMP has been disabled - set ( OPENMP_FOUND false ) + set ( OpenMP_C_FOUND OFF ) else ( ) find_package ( OpenMP ) endif ( ) @@ -104,7 +104,7 @@ else ( ) endif ( ) message ( STATUS "C compiler: ${CMAKE_C_COMPILER} ") -message ( STATUS "CMAKE have OpenMP: ${OPENMP_FOUND}" ) +message ( STATUS "CMAKE have OpenMP: ${OpenMP_C_FOUND}" ) #------------------------------------------------------------------------------- # include directories @@ -170,7 +170,7 @@ set_target_properties ( graphblas_matlab PROPERTIES # select the threading library #------------------------------------------------------------------------------- -if ( OPENMP_FOUND ) +if ( OpenMP_C_FOUND ) set ( USE_OPENMP true ) endif ( ) diff --git a/GraphBLAS/Config/.gitignore b/GraphBLAS/Config/.gitignore new file mode 100644 index 0000000000..5b47ab2e61 --- /dev/null +++ b/GraphBLAS/Config/.gitignore @@ -0,0 +1,5 @@ +# Ignore these files: + +# cmake constructs GB_config.h from GB_config.h.in with the name of the +# compiler, its flags, and other platform-specific properties. +GB_config.h diff --git a/GraphBLAS/Config/GB_config.h b/GraphBLAS/Config/GB_config.h deleted file mode 100644 index 117d8be76b..0000000000 --- a/GraphBLAS/Config/GB_config.h +++ /dev/null @@ -1,69 +0,0 @@ -//------------------------------------------------------------------------------ -// GraphBLAS/Config/GB_config.h: JIT configuration for GraphBLAS -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// The GraphBLAS/Config/GB_config.h file is configured by cmake from -// GraphBLAS/Config/GB_config.h.in. - -#ifndef GB_CONFIG_H -#define GB_CONFIG_H - -// GB_C_COMPILER: the C compiler used to compile GraphBLAS: -#ifndef GB_C_COMPILER -#define GB_C_COMPILER "/usr/bin/cc" -#endif - -// GB_C_FLAGS: the C compiler flags used to compile GraphBLAS. Used -// for compiling and linking: -#ifndef GB_C_FLAGS -#define GB_C_FLAGS " -DGBMATLAB=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC " -#endif - -// GB_C_LINK_FLAGS: the flags passed to the C compiler for the link phase: -#ifndef GB_C_LINK_FLAGS -#define GB_C_LINK_FLAGS " -shared " -#endif - -// GB_LIB_PREFIX: library prefix (lib for Linux/Unix/Mac, empty for Windows): -#ifndef GB_LIB_PREFIX -#define GB_LIB_PREFIX "lib" -#endif - -// GB_LIB_SUFFIX: library suffix (.so for Linux/Unix, .dylib for Mac, etc): -#ifndef GB_LIB_SUFFIX -#define GB_LIB_SUFFIX ".so" -#endif - -// GB_OBJ_SUFFIX: object suffix (.o for Linux/Unix/Mac, .obj for Windows): -#ifndef GB_OBJ_SUFFIX -#define GB_OBJ_SUFFIX ".o" -#endif - -// GB_OMP_INC: -I includes for OpenMP, if in use by GraphBLAS: -#ifndef GB_OMP_INC -#define GB_OMP_INC "" -#endif - -// GB_OMP_INC_DIRS: include directories OpenMP, if in use by GraphBLAS, -// for cmake: -#ifndef GB_OMP_INC_DIRS -#define GB_OMP_INC_DIRS "" -#endif - -// GB_C_LIBRARIES: libraries to link with when using direct compile/link: -#ifndef GB_C_LIBRARIES -#define GB_C_LIBRARIES " -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so" -#endif - -// GB_CMAKE_LIBRARIES: libraries to link with when using cmake -#ifndef GB_CMAKE_LIBRARIES -#define GB_CMAKE_LIBRARIES "m;dl;/usr/lib/gcc/x86_64-linux-gnu/9/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.so" -#endif - -#endif - diff --git a/GraphBLAS/Makefile b/GraphBLAS/Makefile index db8f8c4379..29ede0657e 100644 --- a/GraphBLAS/Makefile +++ b/GraphBLAS/Makefile @@ -20,11 +20,11 @@ library: # install only in SuiteSparse/lib and SuiteSparse/include local: - ( cd build && cmake $(CMAKE_OPTIONS) -DLOCAL_INSTALL=1 .. && cmake --build . --config Release -j${JOBS} ) + ( cd build && cmake $(CMAKE_OPTIONS) -USUITESPARSE_PKGFILEDIR -DLOCAL_INSTALL=1 .. && cmake --build . --config Release -j${JOBS} ) # install only in /usr/local (default) global: - ( cd build && cmake $(CMAKE_OPTIONS) -DLOCAL_INSTALL=0 .. && cmake --build . --config Release -j${JOBS} ) + ( cd build && cmake $(CMAKE_OPTIONS) -USUITESPARSE_PKGFILEDIR -DLOCAL_INSTALL=0 .. && cmake --build . --config Release -j${JOBS} ) # compile with -g debug: diff --git a/GraphBLAS/demo/html/graphblas_demo.html b/GraphBLAS/demo/html/graphblas_demo.html index cab72de9cc..308aa48591 100644 --- a/GraphBLAS/demo/html/graphblas_demo.html +++ b/GraphBLAS/demo/html/graphblas_demo.html @@ -404,7 +404,7 @@ and returns the double value 1.0 if true, or 0.0 if false. The following operators are avaiable for single and double (real); their - definitions are identical to the C11 versions of these functions: + definitions are identical to the ANSI C11 versions of these functions: atan2, hypot, fmod, remainder, copysign, ldxep (also called 'pow2'). All produce the same type as the input, on output. @@ -569,8 +569,8 @@ tgamma z = tgamma (x) gamma function, also 'gamma' erf z = erf (x) error function erfc z = erfc (x) complementary error function - frexpx z = frexpx (x) mantissa from C11 frexp function - frexpe z = frexpe (x) exponent from C11 frexp function; + frexpx z = frexpx (x) mantissa from ANSI C11 frexp function + frexpe z = frexpe (x) exponent from ANSI C11 frexp function; the built-in [f,e]=log2(x) returns f = frexpx (x) and e = frexpe (x). diff --git a/GraphBLAS/rename/GB_rename.h b/GraphBLAS/rename/GB_rename.h index a2a7b272ee..262192620d 100644 --- a/GraphBLAS/rename/GB_rename.h +++ b/GraphBLAS/rename/GB_rename.h @@ -221,7 +221,6 @@ #define GB_clog2f GM_clog2f #define GB_clog2 GM_clog2 #define GB_code_check GM_code_check -#define GB_code_name_get GM_code_name_get #define GB_code_size GM_code_size #define GB_code_string GM_code_string #define GB_code_type GM_code_type @@ -410,8 +409,6 @@ #define GB_Global_hack_get GM_Global_hack_get #define GB_Global_hack_set GM_Global_hack_set #define GB_Global_have_realloc_function GM_Global_have_realloc_function -#define GB_Global_hyper_hash_get GM_Global_hyper_hash_get -#define GB_Global_hyper_hash_set GM_Global_hyper_hash_set #define GB_Global_hyper_switch_get GM_Global_hyper_switch_get #define GB_Global_hyper_switch_set GM_Global_hyper_switch_set #define GB_Global_is_csc_get GM_Global_is_csc_get @@ -497,7 +494,6 @@ #define GB_HUF_writeCTable_wksp GM_HUF_writeCTable_wksp #define GB_hyper_hash_build GM_hyper_hash_build #define GB_hyper_hash_free GM_hyper_hash_free -#define GB_hyper_hash_need GM_hyper_hash_need #define GB_hypermatrix_prune GM_hypermatrix_prune #define GB_hyper_prune GM_hyper_prune #define GB_hyper_realloc GM_hyper_realloc @@ -914,19 +910,12 @@ #define GB_Matrix_new GM_Matrix_new #define GB_Matrix_removeElement GM_Matrix_removeElement #define GB_matvec_check GM_matvec_check -#define GB_matvec_enum_get GM_matvec_enum_get -#define GB_matvec_name_get GM_matvec_name_get -#define GB_matvec_name_set GM_matvec_name_set -#define GB_matvec_name_size_get GM_matvec_name_size_get -#define GB_matvec_set GM_matvec_set #define GB_matvec_type GM_matvec_type #define GB_matvec_type_name GM_matvec_type_name #define GB_memcpy GM_memcpy #define GB_memoryUsage GM_memoryUsage #define GB_memset GM_memset #define GB_Monoid_check GM_Monoid_check -#define GB_monoid_get GM_monoid_get -#define GB_monoid_name_get GM_monoid_name_get #define GB_Monoid_new GM_Monoid_new #define GB_msort_1_create_merge_tasks GM_msort_1_create_merge_tasks #define GB_msort_1 GM_msort_1 @@ -946,17 +935,10 @@ #define GB_nvec_nonempty GM_nvec_nonempty #define GB_omp_get_max_threads GM_omp_get_max_threads #define GB_omp_get_wtime GM_omp_get_wtime -#define GB_op_enum_get GM_op_enum_get #define GB_Operator_check GM_Operator_check #define GB_Op_free GM_Op_free #define GB_op_is_second GM_op_is_second #define GB_op_name_and_defn GM_op_name_and_defn -#define GB_op_name_get GM_op_name_get -#define GB_op_or_type_string_set GM_op_or_type_string_set -#define GB_op_scalar_get GM_op_scalar_get -#define GB_op_size_get GM_op_size_get -#define GB_op_string_get GM_op_string_get -#define GB_op_string_set GM_op_string_set #define GB_Pending_alloc GM_Pending_alloc #define GB_Pending_free GM_Pending_free #define GB_Pending_n GM_Pending_n @@ -1027,7 +1009,6 @@ #define GB_select_sparse GM_select_sparse #define GB_select_value_iso GM_select_value_iso #define GB_Semiring_check GM_Semiring_check -#define GB_semiring_name_get GM_semiring_name_get #define GB_Semiring_new GM_Semiring_new #define GB_serialize_array GM_serialize_array #define GB_serialize_free_blocks GM_serialize_free_blocks @@ -1104,9 +1085,7 @@ #define GB_transpose_op GM_transpose_op #define GB_transpose_unop_jit GM_transpose_unop_jit #define GB_Type_check GM_Type_check -#define GB_type_code_get GM_type_code_get #define GB_Type_compatible GM_Type_compatible -#define GB_type_name_get GM_type_name_get #define GB_UnaryOp_check GM_UnaryOp_check #define GB_union_jit GM_union_jit #define GB_unjumble GM_unjumble @@ -1115,7 +1094,6 @@ #define GB_unop_iso GM_unop_iso #define GB_unop_new GM_unop_new #define GB_unop_one GM_unop_one -#define GB_user_name_set GM_user_name_set #define GB_user_op_jit GM_user_op_jit #define GB_user_type_jit GM_user_type_jit #define GB_Vector_check GM_Vector_check @@ -1443,16 +1421,6 @@ #define GrB_BAND_UINT8 GrM_BAND_UINT8 #define GrB_BinaryOp_error GrM_BinaryOp_error #define GrB_BinaryOp_free GrM_BinaryOp_free -#define GrB_BinaryOp_get_INT32 GrM_BinaryOp_get_INT32 -#define GrB_BinaryOp_get_Scalar GrM_BinaryOp_get_Scalar -#define GrB_BinaryOp_get_SIZE GrM_BinaryOp_get_SIZE -#define GrB_BinaryOp_get_String GrM_BinaryOp_get_String -#define GrB_BinaryOp_get_VOID GrM_BinaryOp_get_VOID -#define GrB_BinaryOp_new GrM_BinaryOp_new -#define GrB_BinaryOp_set_INT32 GrM_BinaryOp_set_INT32 -#define GrB_BinaryOp_set_Scalar GrM_BinaryOp_set_Scalar -#define GrB_BinaryOp_set_String GrM_BinaryOp_set_String -#define GrB_BinaryOp_set_VOID GrM_BinaryOp_set_VOID #define GrB_BinaryOp_wait GrM_BinaryOp_wait #define GrB_BNOT_INT16 GrM_BNOT_INT16 #define GrB_BNOT_INT32 GrM_BNOT_INT32 @@ -1504,17 +1472,8 @@ #define GrB_DESC_R GrM_DESC_R #define GrB_Descriptor_error GrM_Descriptor_error #define GrB_Descriptor_free GrM_Descriptor_free -#define GrB_Descriptor_get_INT32 GrM_Descriptor_get_INT32 -#define GrB_Descriptor_get_Scalar GrM_Descriptor_get_Scalar -#define GrB_Descriptor_get_SIZE GrM_Descriptor_get_SIZE -#define GrB_Descriptor_get_String GrM_Descriptor_get_String -#define GrB_Descriptor_get_VOID GrM_Descriptor_get_VOID #define GrB_Descriptor_new GrM_Descriptor_new #define GrB_Descriptor_set GrM_Descriptor_set -#define GrB_Descriptor_set_INT32 GrM_Descriptor_set_INT32 -#define GrB_Descriptor_set_Scalar GrM_Descriptor_set_Scalar -#define GrB_Descriptor_set_String GrM_Descriptor_set_String -#define GrB_Descriptor_set_VOID GrM_Descriptor_set_VOID #define GrB_Descriptor_wait GrM_Descriptor_wait #define GrB_DESC_RSC GrM_DESC_RSC #define GrB_DESC_RSCT0 GrM_DESC_RSCT0 @@ -1589,16 +1548,6 @@ #define GrB_GE_UINT32 GrM_GE_UINT32 #define GrB_GE_UINT64 GrM_GE_UINT64 #define GrB_GE_UINT8 GrM_GE_UINT8 -#define GrB_Global_get_INT32 GrM_Global_get_INT32 -#define GrB_Global_get_Scalar GrM_Global_get_Scalar -#define GrB_Global_get_SIZE GrM_Global_get_SIZE -#define GrB_Global_get_String GrM_Global_get_String -#define GrB_Global_get_VOID GrM_Global_get_VOID -#define GrB_GLOBAL GrM_GLOBAL -#define GrB_Global_set_INT32 GrM_Global_set_INT32 -#define GrB_Global_set_Scalar GrM_Global_set_Scalar -#define GrB_Global_set_String GrM_Global_set_String -#define GrB_Global_set_VOID GrM_Global_set_VOID #define GrB_GT_BOOL GrM_GT_BOOL #define GrB_GT_FP32 GrM_GT_FP32 #define GrB_GT_FP64 GrM_GT_FP64 @@ -1623,16 +1572,6 @@ #define GrB_IDENTITY_UINT8 GrM_IDENTITY_UINT8 #define GrB_IndexUnaryOp_error GrM_IndexUnaryOp_error #define GrB_IndexUnaryOp_free GrM_IndexUnaryOp_free -#define GrB_IndexUnaryOp_get_INT32 GrM_IndexUnaryOp_get_INT32 -#define GrB_IndexUnaryOp_get_Scalar GrM_IndexUnaryOp_get_Scalar -#define GrB_IndexUnaryOp_get_SIZE GrM_IndexUnaryOp_get_SIZE -#define GrB_IndexUnaryOp_get_String GrM_IndexUnaryOp_get_String -#define GrB_IndexUnaryOp_get_VOID GrM_IndexUnaryOp_get_VOID -#define GrB_IndexUnaryOp_new GrM_IndexUnaryOp_new -#define GrB_IndexUnaryOp_set_INT32 GrM_IndexUnaryOp_set_INT32 -#define GrB_IndexUnaryOp_set_Scalar GrM_IndexUnaryOp_set_Scalar -#define GrB_IndexUnaryOp_set_String GrM_IndexUnaryOp_set_String -#define GrB_IndexUnaryOp_set_VOID GrM_IndexUnaryOp_set_VOID #define GrB_IndexUnaryOp_wait GrM_IndexUnaryOp_wait #define GrB_init GrM_init #define GrB_INT16 GrM_INT16 @@ -1792,11 +1731,6 @@ #define GrB_Matrix_extractTuples_UINT64 GrM_Matrix_extractTuples_UINT64 #define GrB_Matrix_extractTuples_UINT8 GrM_Matrix_extractTuples_UINT8 #define GrB_Matrix_free GrM_Matrix_free -#define GrB_Matrix_get_INT32 GrM_Matrix_get_INT32 -#define GrB_Matrix_get_Scalar GrM_Matrix_get_Scalar -#define GrB_Matrix_get_SIZE GrM_Matrix_get_SIZE -#define GrB_Matrix_get_String GrM_Matrix_get_String -#define GrB_Matrix_get_VOID GrM_Matrix_get_VOID #define GrB_Matrix_import_BOOL GrM_Matrix_import_BOOL #define GrB_Matrix_import_FP32 GrM_Matrix_import_FP32 #define GrB_Matrix_import_FP64 GrM_Matrix_import_FP64 @@ -1862,10 +1796,6 @@ #define GrB_Matrix_setElement_UINT32 GrM_Matrix_setElement_UINT32 #define GrB_Matrix_setElement_UINT64 GrM_Matrix_setElement_UINT64 #define GrB_Matrix_setElement_UINT8 GrM_Matrix_setElement_UINT8 -#define GrB_Matrix_set_INT32 GrM_Matrix_set_INT32 -#define GrB_Matrix_set_Scalar GrM_Matrix_set_Scalar -#define GrB_Matrix_set_String GrM_Matrix_set_String -#define GrB_Matrix_set_VOID GrM_Matrix_set_VOID #define GrB_Matrix_wait GrM_Matrix_wait #define GrB_MAX_BOOL GrM_MAX_BOOL #define GrB_MAX_FIRST_SEMIRING_FP32 GrM_MAX_FIRST_SEMIRING_FP32 @@ -2033,11 +1963,6 @@ #define GrB_MINV_UINT8 GrM_MINV_UINT8 #define GrB_Monoid_error GrM_Monoid_error #define GrB_Monoid_free GrM_Monoid_free -#define GrB_Monoid_get_INT32 GrM_Monoid_get_INT32 -#define GrB_Monoid_get_Scalar GrM_Monoid_get_Scalar -#define GrB_Monoid_get_SIZE GrM_Monoid_get_SIZE -#define GrB_Monoid_get_String GrM_Monoid_get_String -#define GrB_Monoid_get_VOID GrM_Monoid_get_VOID #define GrB_Monoid_new_BOOL GrM_Monoid_new_BOOL #define GrB_Monoid_new_FP32 GrM_Monoid_new_FP32 #define GrB_Monoid_new_FP64 GrM_Monoid_new_FP64 @@ -2050,10 +1975,6 @@ #define GrB_Monoid_new_UINT32 GrM_Monoid_new_UINT32 #define GrB_Monoid_new_UINT64 GrM_Monoid_new_UINT64 #define GrB_Monoid_new_UINT8 GrM_Monoid_new_UINT8 -#define GrB_Monoid_set_INT32 GrM_Monoid_set_INT32 -#define GrB_Monoid_set_Scalar GrM_Monoid_set_Scalar -#define GrB_Monoid_set_String GrM_Monoid_set_String -#define GrB_Monoid_set_VOID GrM_Monoid_set_VOID #define GrB_Monoid_wait GrM_Monoid_wait #define GrB_mxm GrM_mxm #define GrB_mxv GrM_mxv @@ -2142,11 +2063,6 @@ #define GrB_Scalar_extractElement_UINT64 GrM_Scalar_extractElement_UINT64 #define GrB_Scalar_extractElement_UINT8 GrM_Scalar_extractElement_UINT8 #define GrB_Scalar_free GrM_Scalar_free -#define GrB_Scalar_get_INT32 GrM_Scalar_get_INT32 -#define GrB_Scalar_get_Scalar GrM_Scalar_get_Scalar -#define GrB_Scalar_get_SIZE GrM_Scalar_get_SIZE -#define GrB_Scalar_get_String GrM_Scalar_get_String -#define GrB_Scalar_get_VOID GrM_Scalar_get_VOID #define GrB_Scalar_new GrM_Scalar_new #define GrB_Scalar_nvals GrM_Scalar_nvals #define GrB_Scalar_setElement_BOOL GrM_Scalar_setElement_BOOL @@ -2161,10 +2077,6 @@ #define GrB_Scalar_setElement_UINT32 GrM_Scalar_setElement_UINT32 #define GrB_Scalar_setElement_UINT64 GrM_Scalar_setElement_UINT64 #define GrB_Scalar_setElement_UINT8 GrM_Scalar_setElement_UINT8 -#define GrB_Scalar_set_INT32 GrM_Scalar_set_INT32 -#define GrB_Scalar_set_Scalar GrM_Scalar_set_Scalar -#define GrB_Scalar_set_String GrM_Scalar_set_String -#define GrB_Scalar_set_VOID GrM_Scalar_set_VOID #define GrB_Scalar_wait GrM_Scalar_wait #define GrB_SECOND_BOOL GrM_SECOND_BOOL #define GrB_SECOND_FP32 GrM_SECOND_FP32 @@ -2179,16 +2091,7 @@ #define GrB_SECOND_UINT8 GrM_SECOND_UINT8 #define GrB_Semiring_error GrM_Semiring_error #define GrB_Semiring_free GrM_Semiring_free -#define GrB_Semiring_get_INT32 GrM_Semiring_get_INT32 -#define GrB_Semiring_get_Scalar GrM_Semiring_get_Scalar -#define GrB_Semiring_get_SIZE GrM_Semiring_get_SIZE -#define GrB_Semiring_get_String GrM_Semiring_get_String -#define GrB_Semiring_get_VOID GrM_Semiring_get_VOID #define GrB_Semiring_new GrM_Semiring_new -#define GrB_Semiring_set_INT32 GrM_Semiring_set_INT32 -#define GrB_Semiring_set_Scalar GrM_Semiring_set_Scalar -#define GrB_Semiring_set_String GrM_Semiring_set_String -#define GrB_Semiring_set_VOID GrM_Semiring_set_VOID #define GrB_Semiring_wait GrM_Semiring_wait #define GrB_TIMES_BOOL GrM_TIMES_BOOL #define GrB_TIMES_FP32 GrM_TIMES_FP32 @@ -2216,16 +2119,6 @@ #define GrB_TRIU GrM_TRIU #define GrB_Type_error GrM_Type_error #define GrB_Type_free GrM_Type_free -#define GrB_Type_get_INT32 GrM_Type_get_INT32 -#define GrB_Type_get_Scalar GrM_Type_get_Scalar -#define GrB_Type_get_SIZE GrM_Type_get_SIZE -#define GrB_Type_get_String GrM_Type_get_String -#define GrB_Type_get_VOID GrM_Type_get_VOID -#define GrB_Type_new GrM_Type_new -#define GrB_Type_set_INT32 GrM_Type_set_INT32 -#define GrB_Type_set_Scalar GrM_Type_set_Scalar -#define GrB_Type_set_String GrM_Type_set_String -#define GrB_Type_set_VOID GrM_Type_set_VOID #define GrB_Type_wait GrM_Type_wait #define GrB_UINT16 GrM_UINT16 #define GrB_UINT32 GrM_UINT32 @@ -2233,16 +2126,6 @@ #define GrB_UINT8 GrM_UINT8 #define GrB_UnaryOp_error GrM_UnaryOp_error #define GrB_UnaryOp_free GrM_UnaryOp_free -#define GrB_UnaryOp_get_INT32 GrM_UnaryOp_get_INT32 -#define GrB_UnaryOp_get_Scalar GrM_UnaryOp_get_Scalar -#define GrB_UnaryOp_get_SIZE GrM_UnaryOp_get_SIZE -#define GrB_UnaryOp_get_String GrM_UnaryOp_get_String -#define GrB_UnaryOp_get_VOID GrM_UnaryOp_get_VOID -#define GrB_UnaryOp_new GrM_UnaryOp_new -#define GrB_UnaryOp_set_INT32 GrM_UnaryOp_set_INT32 -#define GrB_UnaryOp_set_Scalar GrM_UnaryOp_set_Scalar -#define GrB_UnaryOp_set_String GrM_UnaryOp_set_String -#define GrB_UnaryOp_set_VOID GrM_UnaryOp_set_VOID #define GrB_UnaryOp_wait GrM_UnaryOp_wait #define GrB_VALUEEQ_BOOL GrM_VALUEEQ_BOOL #define GrB_VALUEEQ_FP32 GrM_VALUEEQ_FP32 @@ -2412,11 +2295,6 @@ #define GrB_Vector_extractTuples_UINT64 GrM_Vector_extractTuples_UINT64 #define GrB_Vector_extractTuples_UINT8 GrM_Vector_extractTuples_UINT8 #define GrB_Vector_free GrM_Vector_free -#define GrB_Vector_get_INT32 GrM_Vector_get_INT32 -#define GrB_Vector_get_Scalar GrM_Vector_get_Scalar -#define GrB_Vector_get_SIZE GrM_Vector_get_SIZE -#define GrB_Vector_get_String GrM_Vector_get_String -#define GrB_Vector_get_VOID GrM_Vector_get_VOID #define GrB_Vector_new GrM_Vector_new #define GrB_Vector_nvals GrM_Vector_nvals #define GrB_Vector_reduce_BinaryOp_Scalar GrM_Vector_reduce_BinaryOp_Scalar @@ -2461,10 +2339,6 @@ #define GrB_Vector_setElement_UINT32 GrM_Vector_setElement_UINT32 #define GrB_Vector_setElement_UINT64 GrM_Vector_setElement_UINT64 #define GrB_Vector_setElement_UINT8 GrM_Vector_setElement_UINT8 -#define GrB_Vector_set_INT32 GrM_Vector_set_INT32 -#define GrB_Vector_set_Scalar GrM_Vector_set_Scalar -#define GrB_Vector_set_String GrM_Vector_set_String -#define GrB_Vector_set_VOID GrM_Vector_set_VOID #define GrB_Vector_size GrM_Vector_size #define GrB_Vector_wait GrM_Vector_wait #define GrB_vxm GrM_vxm @@ -2984,19 +2858,10 @@ #define GxB_Context_get_FP64 GxM_Context_get_FP64 #define GxB_Context_get GxM_Context_get #define GxB_Context_get_INT32 GxM_Context_get_INT32 -#define GxB_Context_get_INT GxM_Context_get_INT -#define GxB_Context_get_Scalar GxM_Context_get_Scalar -#define GxB_Context_get_SIZE GxM_Context_get_SIZE -#define GxB_Context_get_String GxM_Context_get_String -#define GxB_Context_get_VOID GxM_Context_get_VOID #define GxB_Context_new GxM_Context_new #define GxB_Context_set_FP64 GxM_Context_set_FP64 #define GxB_Context_set GxM_Context_set #define GxB_Context_set_INT32 GxM_Context_set_INT32 -#define GxB_Context_set_INT GxM_Context_set_INT -#define GxB_Context_set_Scalar GxM_Context_set_Scalar -#define GxB_Context_set_String GxM_Context_set_String -#define GxB_Context_set_VOID GxM_Context_set_VOID #define GxB_Context_wait GxM_Context_wait #define GxB_CONTEXT_WORLD GxM_CONTEXT_WORLD #define GxB_COPYSIGN_FP32 GxM_COPYSIGN_FP32 @@ -4504,11 +4369,6 @@ #define GxB_Semiring_add GxM_Semiring_add #define GxB_Semiring_fprint GxM_Semiring_fprint #define GxB_Semiring_multiply GxM_Semiring_multiply -#define GxB_Serialized_get_INT32 GxM_Serialized_get_INT32 -#define GxB_Serialized_get_Scalar GxM_Serialized_get_Scalar -#define GxB_Serialized_get_SIZE GxM_Serialized_get_SIZE -#define GxB_Serialized_get_String GxM_Serialized_get_String -#define GxB_Serialized_get_VOID GxM_Serialized_get_VOID #define GxB_SIGNUM_FC32 GxM_SIGNUM_FC32 #define GxB_SIGNUM_FC64 GxM_SIGNUM_FC64 #define GxB_SIGNUM_FP32 GxM_SIGNUM_FP32 diff --git a/GraphBLAS/rename/Makefile b/GraphBLAS/rename/Makefile index 0b0f25624f..16d517e9a6 100644 --- a/GraphBLAS/rename/Makefile +++ b/GraphBLAS/rename/Makefile @@ -13,14 +13,18 @@ # 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. +# GrB_Type_new, GrB_UnaryOp_new, GrB_BinaryOp_new, and 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. go: nm -gD ../../build/libgraphblas.so | grep -v "__" > lib - grep " GrB_" lib > temp.h + grep " GrB_" lib \ + | grep -v GrB_Type_new \ + | grep -v GrB_UnaryOp_new \ + | grep -v GrB_IndexUnaryOp_new \ + | grep -v GrB_BinaryOp_new > temp.h grep " GxB_" lib \ | grep -v Iterator >> temp.h grep " GB_" lib \ @@ -34,7 +38,11 @@ go: # on the Mac, use "make mac" mac: nm -gA ../../build/libgraphblas.dylib | grep -v "__" > lib - grep " _GrB_" lib > temp.h + grep " _GrB_" lib \ + | grep -v GrB_Type_new \ + | grep -v GrB_UnaryOp_new \ + | grep -v GrB_IndexUnaryOp_new \ + | grep -v GrB_BinaryOp_new > temp.h grep " _GxB_" lib \ | grep -v Iterator >> temp.h grep " _GB_" lib \ diff --git a/Include/GraphBLAS.h b/Include/GraphBLAS.h index ef40b94822..e383227637 100644 --- a/Include/GraphBLAS.h +++ b/Include/GraphBLAS.h @@ -1,4 +1,4 @@ -// SuiteSparse:GraphBLAS 9.0.0 +// SuiteSparse:GraphBLAS 8.3.0 //------------------------------------------------------------------------------ // GraphBLAS.h: definitions for the GraphBLAS package //------------------------------------------------------------------------------ @@ -32,10 +32,10 @@ // Regarding "historical" functions and symbols: when a GxB_* function or // symbol is added to the C API Specification, the new GrB_* name should be -// used instead. The old GxB_* name will be kept in working order for -// historical reasons; it might no longer be mentioned in the user guide. -// Historical functions and symbols would only be removed in the rare case that -// they cause a serious conflict with future methods. +// used instead. The old GxB_* name will be kept for historical reasons, +// documented here and in working order; it might no longer be mentioned in the +// user guide. Historical functions and symbols would only be removed in the +// rare case that they cause a serious conflict with future methods. #ifndef GRAPHBLAS_H #define GRAPHBLAS_H @@ -96,9 +96,9 @@ #define GB_GLOBAL extern __declspec ( dllexport ) #elif defined ( GB_STATIC ) // Compiling the user application on Windows, importing symbols from - // a static GraphBLAS library on Windows. The user application must do: - // #define GB_STATIC - // #include "GraphBLAS.h" + // a static GraphBLAS library on Windows. The user application must + // define GB_STATIC (e.g., with the pre-processor flag -DGB_STATIC) for + // all compilation units that include "GraphBLAS.h". #define GB_GLOBAL extern #else // Compiling the user application on Windows, importing symbols from @@ -124,10 +124,18 @@ // C95: 199409L #define GxB_STDC_VERSION __STDC_VERSION__ #else -// assume ANSI C (C90 / C89) +// assume C90 / C89 #define GxB_STDC_VERSION 199001L #endif +//------------------------------------------------------------------------------ +// CUDA (currently experimental, not for production use) +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_CUDA +/* #undef SUITESPARSE_CUDA */ +#endif + //------------------------------------------------------------------------------ // definitions for complex types //------------------------------------------------------------------------------ @@ -197,10 +205,10 @@ // NVIDIA nvcc #define GB_restrict __restrict__ #elif GxB_STDC_VERSION >= 199901L - // ANSI C99 or later + // C99 or later #define GB_restrict restrict #else - // ANSI C95 and earlier: no restrict keyword + // C95 and earlier: no restrict keyword #define GB_restrict #endif @@ -232,13 +240,13 @@ // The version of this implementation, and the GraphBLAS API version: #define GxB_IMPLEMENTATION_NAME "SuiteSparse:GraphBLAS" -#define GxB_IMPLEMENTATION_DATE "Oct 7, 2023" -#define GxB_IMPLEMENTATION_MAJOR 9 -#define GxB_IMPLEMENTATION_MINOR 0 +#define GxB_IMPLEMENTATION_DATE "Dec 30, 2023" +#define GxB_IMPLEMENTATION_MAJOR 8 +#define GxB_IMPLEMENTATION_MINOR 3 #define GxB_IMPLEMENTATION_SUB 0 -#define GxB_SPEC_DATE "Oct 7, 2023" +#define GxB_SPEC_DATE "Nov 15, 2021" #define GxB_SPEC_MAJOR 2 -#define GxB_SPEC_MINOR 1 +#define GxB_SPEC_MINOR 0 #define GxB_SPEC_SUB 0 // compile-time access to the C API Version number of this library. @@ -276,11 +284,10 @@ // The 'spec' string describes the GraphBLAS spec: #define GxB_SPEC_ABOUT \ -"GraphBLAS C API, by Benjamin Brock, Aydin Buluc, Raye Kimmerer,\n" \ -"Jim Kitchen, Major Kumar, Timothy Mattson, Scott McMillan, Jose' Moreira,\n" \ -"Erik Welch, and Carl Yang. Based on 'GraphBLAS Mathematics by Jeremy\n" \ -"Kepner. See also 'Graph Algorithms in the Language of Linear Algebra,'\n" \ -"edited by J. Kepner and J. Gilbert, SIAM, 2011.\n" +"GraphBLAS C API, by Aydin Buluc, Timothy Mattson, Scott McMillan,\n" \ +"Jose' Moreira, Carl Yang, and Benjamin Brock. Based on 'GraphBLAS\n" \ +"Mathematics by Jeremy Kepner. See also 'Graph Algorithms in the Language\n" \ +"of Linear Algebra,' edited by J. Kepner and J. Gilbert, SIAM, 2011.\n" //============================================================================== // GrB_Index: the GraphBLAS integer @@ -337,7 +344,6 @@ typedef enum 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 @@ -400,12 +406,7 @@ 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_getVersion provides a runtime access of the C API Version. GrB_Info GrB_getVersion // runtime access to C API version number ( unsigned int *version, // returns GRB_VERSION @@ -418,13 +419,13 @@ GrB_Info GrB_getVersion // runtime access to C API version number // The GrB_Descriptor is used to modify the behavior of GraphBLAS operations. // -// GrB_OUTP: can be GrB_DEFAULT or GrB_REPLACE. If GrB_REPLACE, then C is +// GrB_OUTP: can be GxB_DEFAULT or GrB_REPLACE. If GrB_REPLACE, then C is // cleared after taking part in the accum operation but before the mask. // In other words, C = accum (C,T) is split into Z = accum(C,T) ; // C=0 ; C = Z. // -// GrB_MASK: can be GrB_DEFAULT, GrB_COMP, GrB_STRUCTURE, or set to both -// GrB_COMP and GrB_STRUCTURE. If GrB_DEFAULT, the mask is used +// GrB_MASK: can be GxB_DEFAULT, GrB_COMP, GrB_STRUCTURE, or set to both +// GrB_COMP and GrB_STRUCTURE. If GxB_DEFAULT, the mask is used // normally, where Mask(i,j)=1 means C(i,j) can be modified by C=Z, // and Mask(i,j)=0 means it cannot be modified even if Z(i,j) is has been // computed and differs from C(i,j). If GrB_COMP, this is the same as @@ -432,7 +433,7 @@ GrB_Info GrB_getVersion // runtime access to C API version number // the value of the mask is not considered, just its pattern. The // GrB_COMP and GrB_STRUCTURE settings can be combined. // -// GrB_INP0: can be GrB_DEFAULT or GrB_TRAN. If GrB_DEFAULT, the first input +// GrB_INP0: can be GxB_DEFAULT or GrB_TRAN. If GxB_DEFAULT, the first input // is used as-is. If GrB_TRAN, it is transposed. Only matrices are // transposed this way. Vectors are never transposed via the // GrB_Descriptor. @@ -442,7 +443,7 @@ GrB_Info GrB_getVersion // runtime access to C API version number // GxB_AxB_METHOD: this is a hint to SuiteSparse:GraphBLAS on which algorithm // it should use to compute C=A*B, in GrB_mxm, GrB_mxv, and GrB_vxm. // SuiteSparse:GraphBLAS has four different heuristics, and the default -// method (GrB_DEFAULT) selects between them automatically. The complete +// method (GxB_DEFAULT) selects between them automatically. The complete // rule is in the User Guide. The brief discussion here assumes all // matrices are stored by column. All methods compute the same result, // except that floating-point roundoff may differ when working on @@ -472,7 +473,7 @@ GrB_Info GrB_getVersion // runtime access to C API version number // state, with indices out of order. The sort is left pending. Some // methods can tolerate jumbled matrices on input, so this can be faster. // However, in some cases, it can be faster for GrB_mxm to sort its output -// as it is computed. With GxB_SORT set to GrB_DEFAULT, the sort is left +// as it is computed. With GxB_SORT set to GxB_DEFAULT, the sort is left // pending. With GxB_SORT set to a nonzero value, GrB_mxm typically sorts // the resulting matrix C (but not always; this is just a hint). If // GrB_init is called with GrB_BLOCKING mode, the sort will always be @@ -510,8 +511,7 @@ GrB_Desc_Field ; typedef enum { // for all GrB_Descriptor fields: - GrB_DEFAULT = 0, // default behavior of the method - GxB_DEFAULT = 0, // historical; use GrB_DEFAULT instead + GxB_DEFAULT = 0, // default behavior of the method // for GrB_OUTP only: GrB_REPLACE = 1, // clear the output before assigning new values to it @@ -519,7 +519,6 @@ typedef enum // for GrB_MASK only: GrB_COMP = 2, // use the structural complement of the input GrB_STRUCTURE = 4, // use the only pattern of the mask, not its values - GrB_COMP_STRUCTURE = 6, // shorthand for GrB_COMP + GrB_STRUCTURE // for GrB_INP0 and GrB_INP1 only: GrB_TRAN = 3, // use the transpose of the input @@ -536,7 +535,7 @@ typedef enum GrB_Desc_Value ; // default for GxB pack is to trust the input data -#define GxB_FAST_IMPORT ((int) GrB_DEFAULT) +#define GxB_FAST_IMPORT GxB_DEFAULT typedef struct GB_Descriptor_opaque *GrB_Descriptor ; @@ -545,15 +544,61 @@ 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_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + GrB_Desc_Value val // value to change it to +) ; + +GrB_Info GxB_Descriptor_get // get a parameter from a descriptor +( + GrB_Desc_Value *val, // value of the parameter + GrB_Descriptor desc, // descriptor to query; NULL means defaults + GrB_Desc_Field field // parameter to query +) ; + +GrB_Info GxB_Desc_set // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + ... // value to change it to +) ; + +GrB_Info GxB_Desc_set_INT32 // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Desc_set_FP64 // set a parameter in a descriptor +( + GrB_Descriptor desc, // descriptor to modify + GrB_Desc_Field field, // parameter to change + double value // value to change it to +) ; + +GrB_Info GxB_Desc_get // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL means defaults + GrB_Desc_Field field, // parameter to query + ... // value of the parameter +) ; + +GrB_Info GxB_Desc_get_INT32 // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL is ok + GrB_Desc_Field field, // parameter to query + int32_t *value // return value of the descriptor +) ; + +GrB_Info GxB_Desc_get_FP64 // get a parameter from a descriptor +( + GrB_Descriptor desc, // descriptor to query; NULL is ok + GrB_Desc_Field field, // parameter to query + double *value // return value of the descriptor +) ; GrB_Info GrB_Descriptor_free // free a descriptor ( @@ -700,12 +745,32 @@ GB_GLOBAL GrB_Type // GrB_Type_new: create a new type //------------------------------------------------------------------------------ -GrB_Info GrB_Type_new // create a new GraphBLAS type +// GrB_Type_new is implemented both as a macro and a function. Both are +// user-callable. The default is to use the macro, since this allows the name +// of the type to be saved as a string, for subsequent error reporting by +// GrB_error. + +#undef GrB_Type_new +#undef GrM_Type_new + +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 ) ; +// 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 + +// GrB_Type_new as a user-callable macro, which allows the name of the ctype +// to be added to the new type. The type_defn is unknown. +#define GrB_Type_new(utype, sizeof_ctype) \ + GxB_Type_new(utype, sizeof_ctype, GB_STR(sizeof_ctype), NULL) +#define GrM_Type_new(utype, sizeof_ctype) \ + GxB_Type_new(utype, sizeof_ctype, GB_STR(sizeof_ctype), NULL) + // 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 @@ -735,16 +800,22 @@ GrB_Info GxB_Type_new // create a new named GraphBLAS type 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_name // return the name of a GraphBLAS type +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Type type +) ; + +GrB_Info GxB_Type_size // determine the size of the type +( + size_t *size, // the sizeof the type + const GrB_Type type // type to determine the sizeof +) ; 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"). + GrB_Type *type, // built-in type, or NULL if user-defined const char *type_name // array of size at least GxB_MAX_NAME_LEN ) ; @@ -949,16 +1020,23 @@ GB_GLOBAL GrB_UnaryOp 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_new creates a user-defined unary op, with an automatic +// detection of the operator name. +#undef GrB_UnaryOp_new +#undef GrM_UnaryOp_new +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 ) ; +#define GrB_UnaryOp_new(op,f,z,x) \ + GxB_UnaryOp_new(op,f,z,x, GB_STR(f), NULL) +#define GrM_UnaryOp_new(op,f,z,x) \ + GxM_UnaryOp_new(op,f,z,x, GB_STR(f), NULL) -// GxB_UnaryOp_new creates a named and defined user-defined unary op. +// GxB_UnaryOp_new creates a named 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 @@ -969,11 +1047,29 @@ GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator 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) ; +// GxB_UnaryOp_ztype is historical. Use GxB_UnaryOp_ztype_name instead. +GrB_Info GxB_UnaryOp_ztype // return the type of z +( + GrB_Type *ztype, // return type of output z + GrB_UnaryOp unaryop // unary operator +) ; +GrB_Info GxB_UnaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_UnaryOp unaryop // unary operator +) ; + +// GxB_UnaryOp_xtype is historical. Use GxB_UnaryOp_xtype_name instead. +GrB_Info GxB_UnaryOp_xtype // return the type of x +( + GrB_Type *xtype, // return type of input x + GrB_UnaryOp unaryop // unary operator +) ; +GrB_Info GxB_UnaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_UnaryOp unaryop // unary operator +) ; GrB_Info GrB_UnaryOp_free // free a user-created unary operator ( @@ -1385,8 +1481,11 @@ GB_GLOBAL GrB_BinaryOp GxB_IGNORE_DUP ; 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_new creates a user-defined binary op, with an automatic +// detection of the operator name. +#undef GrB_BinaryOp_new +#undef GrM_BinaryOp_new +GrB_Info GRB (BinaryOp_new) ( GrB_BinaryOp *binaryop, // handle for the new binary operator GxB_binary_function function, // pointer to the binary function @@ -1394,8 +1493,12 @@ GrB_Info GrB_BinaryOp_new GrB_Type xtype, // type of input x GrB_Type ytype // type of input y ) ; +#define GrB_BinaryOp_new(op,f,z,x,y) \ + GxB_BinaryOp_new(op,f,z,x,y, GB_STR(f), NULL) +#define GrM_BinaryOp_new(op,f,z,x,y) \ + GxM_BinaryOp_new(op,f,z,x,y, GB_STR(f), NULL) -// GxB_BinaryOp_new creates a named and defined user-defined binary op. +// GxB_BinaryOp_new creates a named user-defined binary op. GrB_Info GxB_BinaryOp_new ( GrB_BinaryOp *op, // handle for the new binary operator @@ -1407,13 +1510,41 @@ GrB_Info GxB_BinaryOp_new 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) ; +// NOTE: GxB_BinaryOp_ztype is historical. Use GxB_BinaryOp_ztype_name instead. +GrB_Info GxB_BinaryOp_ztype // return the type of z +( + GrB_Type *ztype, // return type of output z + GrB_BinaryOp binaryop // binary operator to query +) ; +GrB_Info GxB_BinaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; + +// NOTE: GxB_BinaryOp_xtype is historical. Use GxB_BinaryOp_xtype_name instead. +GrB_Info GxB_BinaryOp_xtype // return the type of x +( + GrB_Type *xtype, // return type of input x + GrB_BinaryOp binaryop // binary operator to query +) ; +GrB_Info GxB_BinaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; + +// NOTE: GxB_BinaryOp_ytype is historical. Use GxB_BinaryOp_ytype_name instead. +GrB_Info GxB_BinaryOp_ytype // return the type of y +( + GrB_Type *ytype, // return type of input y + GrB_BinaryOp binaryop // binary operator to query +) ; +GrB_Info GxB_BinaryOp_ytype_name // return the type_name of y +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_BinaryOp binaryop // binary operator to query +) ; GrB_Info GrB_BinaryOp_free // free a user-created binary operator ( @@ -1424,7 +1555,8 @@ GrB_Info GrB_BinaryOp_free // free a user-created binary operator // GxB_SelectOp: select operators (DEPRECATED: do not use) //============================================================================== -// historical; use GrB_select and GrB_IndexUnaryOp instead: +// GrB_select and GrB_IndexUnaryOp should be used instead of GxB_select. + 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, @@ -1451,9 +1583,12 @@ 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_IndexUnaryOp_new creates a user-defined unary op, with an automatic +// detection of the operator name. +#undef GrB_IndexUnaryOp_new +#undef GrM_IndexUnaryOp_new -GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op +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 @@ -1462,6 +1597,11 @@ GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op GrB_Type ytype // type of input y (the scalar) ) ; +#define GrB_IndexUnaryOp_new(op,f,z,x,y) \ + GxB_IndexUnaryOp_new(op,f,z,x,y, GB_STR(f), NULL) +#define GrM_IndexUnaryOp_new(op,f,z,x,y) \ + GxM_IndexUnaryOp_new(op,f,z,x,y, GB_STR(f), NULL) + GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp ( GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator @@ -1473,10 +1613,26 @@ GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp 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 GxB_IndexUnaryOp_ztype_name // return the type_name of z +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // IndexUnary operator +) ; + +// For TRIL, TRIU, DIAG, OFFDIAG, COLLE, COLGT, ROWLE, and ROWGT, +// the xtype_name is an empty string (""), since these functions do not depend +// on the type of the matrix input. +GrB_Info GxB_IndexUnaryOp_xtype_name // return the type_name of x +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // select operator +) ; + +GrB_Info GxB_IndexUnaryOp_ytype_name // return the type_name of the scalary y +( + char *type_name, // user array of size GxB_MAX_NAME_LEN + const GrB_IndexUnaryOp op // select operator +) ; GrB_Info GrB_IndexUnaryOp_free // free a user-created IndexUnaryOp ( @@ -1678,12 +1834,14 @@ GrB_Info GrB_Monoid_new_UDT // create a monoid with a user-defined type // Type-generic method for creating a new monoid: /* + 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 ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -1816,6 +1974,7 @@ GrB_Info GxB_Monoid_terminal_new_UDT // create a monoid with a user type // Type-generic method for creating a new monoid with a terminal value: /* + GrB_Info GxB_Monoid_terminal_new // create a monoid ( GrB_Monoid *monoid, // handle of monoid to create @@ -1823,6 +1982,7 @@ GrB_Info GxB_Monoid_terminal_new // create a monoid identity, // identity value of the monoid terminal // terminal value of the monoid ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -1835,10 +1995,25 @@ GrB_Info GxB_Monoid_terminal_new // create a monoid (monoid, op, identity, terminal) #endif -// 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_Monoid_operator // return the monoid operator +( + GrB_BinaryOp *op, // returns the binary op of the monoid + GrB_Monoid monoid // monoid to query +) ; + +GrB_Info GxB_Monoid_identity // return the monoid identity +( + void *identity, // returns the identity of the monoid + GrB_Monoid monoid // monoid to query +) ; + +GrB_Info GxB_Monoid_terminal // return the monoid terminal +( + bool *has_terminal, // true if the monoid has a terminal value + void *terminal, // returns the terminal of the monoid, + // unmodified if has_terminal is false + GrB_Monoid monoid // monoid to query +) ; GrB_Info GrB_Monoid_free // free a user-created monoid ( @@ -1858,9 +2033,17 @@ GrB_Info GrB_Semiring_new // create a semiring GrB_BinaryOp multiply // multiply operator of the semiring ) ; -// 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) ; +GrB_Info GxB_Semiring_add // return the add monoid of a semiring +( + GrB_Monoid *add, // returns add monoid of the semiring + GrB_Semiring semiring // semiring to query +) ; + +GrB_Info GxB_Semiring_multiply // return multiply operator of a semiring +( + GrB_BinaryOp *multiply, // returns multiply operator of the semiring + GrB_Semiring semiring // semiring to query +) ; GrB_Info GrB_Semiring_free // free a user-created semiring ( @@ -1871,6 +2054,9 @@ GrB_Info GrB_Semiring_free // free a user-created semiring // GrB_Scalar: a GraphBLAS scalar //============================================================================== +// GxB_Scalar has become GrB_Scalar. The older name GxB_Scalar is kept as +// historical, but GrB_Scalar should be used instead. + typedef struct GB_Scalar_opaque *GxB_Scalar ; // historical: use GrB_Scalar typedef struct GB_Scalar_opaque *GrB_Scalar ; // use this instead @@ -1900,9 +2086,18 @@ GrB_Info GrB_Scalar_nvals // get the number of entries in a GrB_Scalar const GrB_Scalar s // GrB_Scalar to query ) ; -// 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) ; +// NOTE: GxB_Scalar_type is historical. Use GxB_Scalar_type_name instead. +GrB_Info GxB_Scalar_type // get the type of a GrB_Scalar +( + GrB_Type *type, // returns the type of the GrB_Scalar + const GrB_Scalar s // GrB_Scalar to query +) ; +GrB_Info GxB_Scalar_type_name // return the name of the type of a scalar +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Scalar s // GrB_Scalar to query +) ; GrB_Info GxB_Scalar_memoryUsage // return # of bytes used for a scalar ( @@ -2031,11 +2226,13 @@ GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) ; // user-defined type. /* + 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 @@ -2047,7 +2244,6 @@ GrB_Info GrB_Scalar_setElement // s = x ) \ (s, x) -// historical; use GrB_Scalar_setElement instead: #define GxB_Scalar_setElement(s,x) GrB_Scalar_setElement (s, x) #endif @@ -2178,7 +2374,6 @@ GrB_Info GrB_Scalar_extractElement // x = s ) \ (x, s) -// historical; use GrB_Scalar_extractElement instead: #define GxB_Scalar_extractElement(x,s) GrB_Scalar_extractElement (x, s) #endif @@ -2222,9 +2417,18 @@ GrB_Info GrB_Vector_nvals // get the number of entries in a vector const GrB_Vector v // vector to query ) ; -// 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) ; +// NOTE: GxB_Vector_type is historical. Use GxB_Vector_type_name instead. +GrB_Info GxB_Vector_type // get the type of a vector +( + GrB_Type *type, // returns the type of the vector + const GrB_Vector v // vector to query +) ; +GrB_Info GxB_Vector_type_name // return the name of the type of a vector +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Vector v // vector to query +) ; GrB_Info GxB_Vector_memoryUsage // return # of bytes used for a vector ( @@ -2388,6 +2592,7 @@ GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples // for a user-defined type. /* + GrB_Info GrB_Vector_build // build a vector from (I,X) tuples ( GrB_Vector w, // vector to build @@ -2396,6 +2601,7 @@ GrB_Info GrB_Vector_build // build a vector from (I,X) tuples GrB_Index nvals, // number of tuples const GrB_BinaryOp dup // binary function to assemble duplicates ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -2524,12 +2730,14 @@ GrB_Info GrB_Vector_setElement_Scalar // w(i) = x // 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 @@ -2659,12 +2867,14 @@ GrB_Info GrB_Vector_extractElement_Scalar // x = v(i) // 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 ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -2825,6 +3035,7 @@ GrB_Info GrB_Vector_extractTuples_UDT // [I,~,X] = find (v) // for a user-defined type. /* + GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) ( GrB_Index *I, // array for returning row indices of tuples @@ -2832,6 +3043,7 @@ GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) 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 @@ -2890,9 +3102,18 @@ GrB_Info GrB_Matrix_nvals // get the number of entries in a matrix const GrB_Matrix A // matrix to query ) ; -// 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) ; +// NOTE: GxB_Matrix_type is historical. Use GxB_Matrix_type_name instead. +GrB_Info GxB_Matrix_type // get the type of a matrix +( + GrB_Type *type, // returns the type of the matrix + const GrB_Matrix A // matrix to query +) ; +GrB_Info GxB_Matrix_type_name // return the name of the type of a matrix +( + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + const GrB_Matrix A // matrix to query +) ; GrB_Info GxB_Matrix_memoryUsage // return # of bytes used for a matrix ( @@ -3071,6 +3292,7 @@ GrB_Info GxB_Matrix_build_Scalar // build a matrix from (I,J,scalar) tuples // for a user-defined type. /* + GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples ( GrB_Matrix C, // matrix to build @@ -3080,6 +3302,7 @@ GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples GrB_Index nvals, // number of tuples const GrB_BinaryOp dup // binary function to assemble duplicates ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -3223,6 +3446,7 @@ GrB_Info GrB_Matrix_setElement_Scalar // C (i,j) = x // user-defined type. /* + GrB_Info GrB_Matrix_setElement // C (i,j) = x ( GrB_Matrix C, // matrix to modify @@ -3230,6 +3454,7 @@ GrB_Info GrB_Matrix_setElement // C (i,j) = x GrB_Index i, // row index GrB_Index j // column index ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -3374,6 +3599,7 @@ GrB_Info GrB_Matrix_extractElement_Scalar // x = A(i,j) // for a user-defined type. /* + GrB_Info GrB_Matrix_extractElement // x = A(i,j) ( *x, // extracted scalar @@ -3381,6 +3607,7 @@ GrB_Info GrB_Matrix_extractElement // x = A(i,j) GrB_Index i, // row index GrB_Index j // column index ) ; + */ #if GxB_STDC_VERSION >= 201112L @@ -3557,6 +3784,7 @@ GrB_Info GrB_Matrix_extractTuples_UDT // [I,J,X] = find (A) // for a user-defined type. /* + GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) ( GrB_Index *I, // array for returning row indices of tuples @@ -3565,6 +3793,7 @@ GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) 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 @@ -3604,7 +3833,7 @@ GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) // 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 +// type of C. Any settings made to C by GxB_Matrix_Option_set (format by row // or by column, bitmap switch, hyper switch, and sparsity control) are // unchanged. @@ -3662,7 +3891,7 @@ GrB_Info GrB_Matrix_diag // build a diagonal matrix from a vector // 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 +// C by GxB_Matrix_Option_set (format by row or by column, bitmap switch, hyper // switch, and sparsity control) are unchanged. GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector @@ -3687,7 +3916,7 @@ GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector // 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. +// GxB_Vector_Option_set (bitmap switch and sparsity control) are unchanged. GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector ( @@ -3702,58 +3931,60 @@ GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector //============================================================================== // 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 +// on its matrices. The GxB_*Option* 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. +// GxB_Matrix_Option_set: sets an option for a specific matrix +// GxB_Matrix_Option_get: queries the current option of a specific matrix +// GxB_Vector_Option_set: sets an option for a specific vector +// GxB_Vector_Option_get: queries the current option of a specific vector +// GxB_Global_Option_set: sets an option for all future matrices +// GxB_Global_Option_get: queries current option for all future matrices + typedef enum // for global options or matrix options { //------------------------------------------------------------ - // GrB_get / GrB_set for GrB_Matrix and GrB_GLOBAL: + // for GxB_Matrix_Option_get/set and GxB_Global_Option_get/set: //------------------------------------------------------------ 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 + GxB_FORMAT = 7002, // CSR/CSC format: GxB_BY_ROW or GxB_BY_COL //------------------------------------------------------------ - // GrB_get for GrB_GLOBAL: + // for GxB_Global_Option_get only: //------------------------------------------------------------ - 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_MODE = 7003, // mode passed to GrB_init + GxB_LIBRARY_NAME = 7004, // name of the library (char *) + GxB_LIBRARY_VERSION = 7005, // library version (3 int's) 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_VERSION = 7012, // API version (3 int's) 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_get / GrB_set for GrB_GLOBAL: + // for GxB_Global_Option_get/set only: //------------------------------------------------------------ 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_BURBLE = 7019, // diagnostic output + GxB_BURBLE = 7019, // diagnostic output (bool *) GxB_PRINTF = 7020, // printf function diagnostic output GxB_FLUSH = 7021, // flush function diagnostic output GxB_MEMORY_POOL = 7022, // no longer used @@ -3771,18 +4002,27 @@ typedef enum // for global options or matrix options GxB_JIT_ERROR_LOG = 7033, // CPU JIT: error log file //------------------------------------------------------------ - // GrB_get for GrB_Matrix: + // for GxB_Matrix_Option_get only: //------------------------------------------------------------ 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: + // for GxB_Matrix_Option_get/set only: //------------------------------------------------------------ GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below + //------------------------------------------------------------ + // memory functions (GxB_Global_Option_get only): + //------------------------------------------------------------ + + GxB_MALLOC_FUNCTION = 7037, + GxB_CALLOC_FUNCTION = 7038, + GxB_REALLOC_FUNCTION = 7039, + GxB_FREE_FUNCTION = 7040, + } GxB_Option_Field ; // for GxB_JIT_C_CONTROL: @@ -3796,7 +4036,7 @@ typedef enum } GxB_JIT_Control ; -// GxB_FORMAT is historical, but it can be by row or by column: +// GxB_FORMAT can be by row or by column: typedef enum { GxB_BY_ROW = 0, // CSR: compressed sparse row format @@ -3829,7 +4069,7 @@ GB_GLOBAL const double GxB_HYPER_DEFAULT ; // the default sparsity control is any format: #define GxB_AUTO_SPARSITY GxB_ANY_SPARSITY -// GrB_set (A, scontrol, GxB_SPARSITY_CONTROL) provides hints +// GxB_Matrix_Option_set (A, GxB_SPARSITY_CONTROL, scontrol) provides hints // about which data structure GraphBLAS should use for the matrix A: // // GxB_AUTO_SPARSITY: GraphBLAS selects automatically. @@ -3852,11 +4092,11 @@ GB_GLOBAL const double GxB_HYPER_DEFAULT ; // 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 +// GxB_Matrix_Option_get (A, GxB_SPARSITY_STATUS, &sparsity) 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 +// GxB_Matrix_Option_get (A, GxB_SPARSITY_CONTROL, &scontrol) returns the hint // for how A should be stored (hypersparse, sparse, bitmap, or full, or any // combination). @@ -3887,6 +4127,183 @@ GB_GLOBAL const double GxB_HYPER_DEFAULT ; GB_GLOBAL const double GxB_ALWAYS_HYPER, GxB_NEVER_HYPER ; +GrB_Info GxB_Matrix_Option_set // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + GxB_Option_Field field, // option to change + ... // value to change it to +) ; + +GrB_Info GxB_Matrix_Option_set_INT32 // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + GxB_Option_Field field, // option to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Matrix_Option_set_FP64 // set an option in a matrix +( + GrB_Matrix A, // matrix to modify + GxB_Option_Field field, // option to change + double value // value to change it to +) ; + +GrB_Info GxB_Matrix_Option_get // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + ... // return value of the matrix option +) ; + +GrB_Info GxB_Matrix_Option_get_INT32 // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + int32_t *value // return value of the matrix option +) ; + +GrB_Info GxB_Matrix_Option_get_FP64 // gets the current option of a matrix +( + GrB_Matrix A, // matrix to query + GxB_Option_Field field, // option to query + double *value // return value of the matrix option +) ; + +GrB_Info GxB_Vector_Option_set // set an option in a vector +( + GrB_Vector A, // vector to modify + GxB_Option_Field field, // option to change + ... // value to change it to +) ; + +GrB_Info GxB_Vector_Option_set_INT32 // set an option in a vector +( + GrB_Vector v, // vector to modify + GxB_Option_Field field, // option to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Vector_Option_set_FP64 // set an option in a vector +( + GrB_Vector v, // vector to modify + GxB_Option_Field field, // option to change + double value // value to change it to +) ; + +GrB_Info GxB_Vector_Option_get // gets the current option of a vector +( + GrB_Vector A, // vector to query + GxB_Option_Field field, // option to query + ... // return value of the vector option +) ; + +GrB_Info GxB_Vector_Option_get_INT32 // gets the current option of a vector +( + GrB_Vector v, // vector to query + GxB_Option_Field field, // option to query + int32_t *value // return value of the vector option +) ; + +GrB_Info GxB_Vector_Option_get_FP64 // gets the current option of a vector +( + GrB_Vector v, // vector to query + GxB_Option_Field field, // option to query + double *value // return value of the vector option +) ; + +// GxB_Global_Option_set controls the global defaults used when a new matrix is +// created. GrB_init defines the following initial settings: +// +// GxB_Global_Option_set (GxB_HYPER_SWITCH, GxB_HYPER_DEFAULT) ; +// GxB_Global_Option_set (GxB_BITMAP_SWITCH, NULL) ; +// GxB_Global_Option_set (GxB_FORMAT, GxB_FORMAT_DEFAULT) ; +// +// The compile-time constants GxB_HYPER_DEFAULT and GxB_FORMAT_DEFAULT are +// equal to 0.0625 and GxB_BY_ROW, by default. That is, by default, all new +// matrices are held by row in CSR format. If a matrix has fewer than n/16 +// columns, it can be converted to hypersparse structure. If it has more than +// n/8 columns, it can be converted to a sparse structure. Modifying these +// global settings via GxB_Global_Option_set has no effect on matrices already +// created. + +GrB_Info GxB_Global_Option_set // set a global default option +( + GxB_Option_Field field, // option to change + ... // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_INT32 // set a global default option +( + GxB_Option_Field field, // option to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_FP64 // set a global default option +( + GxB_Option_Field field, // option to change + double value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_FP64_ARRAY // set a global default option +( + GxB_Option_Field field, // option to change + double *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_INT64_ARRAY // set a global default option +( + GxB_Option_Field field, // option to change + int64_t *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_CHAR // set a global default option +( + GxB_Option_Field field, // option to change + const char *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_set_FUNCTION // set a global default option +( + GxB_Option_Field field, // option to change + void *value // value to change it to +) ; + +GrB_Info GxB_Global_Option_get // gets the current global default option +( + GxB_Option_Field field, // option to query + ... // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_INT32 // gets the current global option +( + GxB_Option_Field field, // option to query + int32_t *value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_FP64 // gets the current global option +( + GxB_Option_Field field, // option to query + double *value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_INT64 // gets the current global option +( + GxB_Option_Field field, // option to query + int64_t *value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_CHAR // gets the current global option +( + GxB_Option_Field field, // option to query + const char **value // return value of the global option +) ; + +GrB_Info GxB_Global_Option_get_FUNCTION // gets the current global option +( + GxB_Option_Field field, // option to query + void **value // return value of the global option +) ; + //============================================================================== // GxB_Context: for managing computational resources //============================================================================== @@ -3919,6 +4336,48 @@ GrB_Info GxB_Context_free // free a Context GxB_Context *Context // handle of Context to free ) ; +GrB_Info GxB_Context_set_INT32 // set a parameter in a Context +( + GxB_Context Context, // Context to modify + GxB_Context_Field field, // parameter to change + int32_t value // value to change it to +) ; + +GrB_Info GxB_Context_set_FP64 // set a parameter in a Context +( + GxB_Context Context, // Context to modify + GxB_Context_Field field, // parameter to change + double value // value to change it to +) ; + +GrB_Info GxB_Context_set // set a parameter in a Context +( + GxB_Context Context, // Context to modify + GxB_Context_Field field, // parameter to change + ... // value to change it to +) ; + +GrB_Info GxB_Context_get_INT32 // get a parameter of a Context +( + GxB_Context Context, // Context to query + GxB_Context_Field field, // parameter to query + int32_t *value // return value from the Context +) ; + +GrB_Info GxB_Context_get_FP64 // get a parameter in a Context +( + GxB_Context Context, // Context to query + GxB_Context_Field field, // parameter to query + double *value // return value from the Context +) ; + +GrB_Info GxB_Context_get // get a parameter in a Context +( + GxB_Context Context, // Context to query + GxB_Context_Field field, // parameter to query + ... // return value of the descriptor +) ; + GrB_Info GxB_Context_engage // engage a Context ( GxB_Context Context // Context to engage @@ -3930,41 +4389,152 @@ GrB_Info GxB_Context_disengage // disengage a Context ) ; //============================================================================== -// GxB_set and GxB_get: historical; use GrB_set and GrB_get instead +// GxB_set and GxB_get //============================================================================== -// 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, ...) ; +// The simplest way to set/get a value of a GrB_Descriptor is with +// the generic GxB_set and GxB_get functions: + +// GxB_set (desc, field, value) ; +// GxB_get (desc, field, &value) ; + +// GxB_set and GxB_get are generic methods that and set or query the options in +// a GrB_Matrix, a GrB_Descriptor, or in the global options. They can be used +// with the following syntax. + +// To set/get the global options: +// +// GxB_set (GxB_HYPER_SWITCH, double h) ; +// GxB_set (GxB_HYPER_SWITCH, GxB_ALWAYS_HYPER) ; +// GxB_set (GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; +// GxB_get (GxB_HYPER_SWITCH, double *h) ; +// +// double b [GxB_NBITMAP_SWITCH] ; +// GxB_set (GxB_BITMAP_SWITCH, b) ; +// GxB_set (GxB_BITMAP_SWITCH, NULL) ; // set defaults +// GxB_get (GxB_BITMAP_SWITCH, b) ; +// +// GxB_set (GxB_FORMAT, GxB_BY_ROW) ; +// GxB_set (GxB_FORMAT, GxB_BY_COL) ; +// GxB_get (GxB_FORMAT, GxB_Format_Value *s) ; +// +// GxB_set (GxB_NTHREADS, nthreads_max) ; +// GxB_get (GxB_NTHREADS, int *nthreads_max) ; +// +// GxB_set (GxB_CHUNK, double chunk) ; +// GxB_get (GxB_CHUNK, double *chunk) ; +// +// GxB_set (GxB_BURBLE, bool burble) ; +// GxB_get (GxB_BURBLE, bool *burble) ; +// +// GxB_set (GxB_PRINTF, void *printf_function) ; +// GxB_get (GxB_PRINTF, void **printf_function) ; +// +// GxB_set (GxB_FLUSH, void *flush_function) ; +// GxB_get (GxB_FLUSH, void **flush_function) ; + +// GxB_set (GxB_JIT_C_COMPILER_NAME, const char *compiler) ; +// GxB_get (GxB_JIT_C_COMPILER_NAME, const char **compiler) ; +// GxB_set (GxB_JIT_C_COMPILER_FLAGS, const char *flags) ; +// GxB_get (GxB_JIT_C_COMPILER_FLAGS, const char **flags) ; +// GxB_set (GxB_JIT_C_LINKER_FLAGS, const char *flags) ; +// GxB_get (GxB_JIT_C_LINKER_FLAGS, const char **flags) ; +// GxB_set (GxB_JIT_CACHE_PATH, const char *cache_path) ; +// GxB_get (GxB_JIT_CACHE_PATH, const char **cache_path) ; +// GxB_set (GxB_JIT_C_CONTROL, int control) ; +// GxB_get (GxB_JIT_C_CONTROL, int *control) ; + +// To set/get the GxB_CONTEXT_WORLD options: These have the same effect as +// the global set/get for NTHREADS and CHUNK, listed above. +// +// GxB_set (GxB_CONTEXT_WORLD, GxB_NTHREADS, nthreads_max) ; +// GxB_get (GxB_CONTEXT_WORLD, GxB_NTHREADS, int *nthreads_max) ; +// +// GxB_set (GxB_CONTEXT_WORLD, GxB_CHUNK, double chunk) ; +// GxB_get (GxB_CONTEXT_WORLD, GxB_CHUNK, double *chunk) ; + +// To set/get a Context option: +// +// GxB_set (GxB_Context Context, GxB_NTHREADS, nthreads_max) ; +// GxB_get (GxB_Context Context, GxB_NTHREADS, int *nthreads_max) ; +// +// GxB_set (GxB_Context Context, GxB_CHUNK, double chunk) ; +// GxB_get (GxB_Context Context, GxB_CHUNK, double *chunk) ; + +// To get global options that can be queried but not modified: +// +// GxB_get (GxB_MODE, GrB_Mode *mode) ; + +// To set/get a matrix option: +// +// GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, double h) ; +// GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, GxB_ALWAYS_HYPER) ; +// GxB_set (GrB_Matrix A, GxB_HYPER_SWITCH, GxB_NEVER_HYPER) ; +// GxB_get (GrB_Matrix A, GxB_HYPER_SWITCH, double *h) ; +// +// GxB_set (GrB_Matrix A, GxB_BITMAP_SWITCH, double b) ; +// GxB_get (GrB_Matrix A, GxB_BITMAP_SWITCH, double *b) ; +// +// GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_ROW) ; +// GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_COL) ; +// GxB_get (GrB_Matrix A, GxB_FORMAT, GxB_Format_Value *s) ; +// +// GxB_set (GrB_Matrix A, GxB_SPARSITY_CONTROL, GxB_AUTO_SPARSITY) ; +// GxB_set (GrB_Matrix A, GxB_SPARSITY_CONTROL, scontrol) ; +// GxB_get (GrB_Matrix A, GxB_SPARSITY_CONTROL, int *scontrol) ; +// +// GxB_get (GrB_Matrix A, GxB_SPARSITY_STATUS, int *sparsity) ; + +// To set/get a vector option or status: +// +// GxB_set (GrB_Vector v, GxB_BITMAP_SWITCH, double b) ; +// GxB_get (GrB_Vector v, GxB_BITMAP_SWITCH, double *b) ; +// +// GxB_set (GrB_Vector v, GxB_FORMAT, GxB_BY_ROW) ; +// GxB_set (GrB_Vector v, GxB_FORMAT, GxB_BY_COL) ; +// GxB_get (GrB_Vector v, GxB_FORMAT, GxB_Format_Value *s) ; +// +// GxB_set (GrB_Vector v, GxB_SPARSITY_CONTROL, GxB_AUTO_SPARSITY) ; +// GxB_set (GrB_Vector v, GxB_SPARSITY_CONTROL, scontrol) ; +// GxB_get (GrB_Vector v, GxB_SPARSITY_CONTROL, int *scontrol) ; +// +// GxB_get (GrB_Vector v, GxB_SPARSITY_STATUS, int *sparsity) ; + +// To set/get a descriptor field: +// +// GxB_set (GrB_Descriptor d, GrB_OUTP, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_OUTP, GrB_REPLACE) ; +// GxB_get (GrB_Descriptor d, GrB_OUTP, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GrB_MASK, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_MASK, GrB_COMP) ; +// GxB_set (GrB_Descriptor d, GrB_MASK, GrB_STRUCTURE) ; +// GxB_set (GrB_Descriptor d, GrB_MASK, GrB_COMP + GrB_STRUCTURE) ; +// GxB_get (GrB_Descriptor d, GrB_MASK, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GrB_INP0, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_INP0, GrB_TRAN) ; +// GxB_get (GrB_Descriptor d, GrB_INP0, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GrB_INP1, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GrB_INP1, GrB_TRAN) ; +// GxB_get (GrB_Descriptor d, GrB_INP1, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_DEFAULT) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_GUSTAVSON) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_HASH) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_SAXPY) ; +// GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_DOT) ; +// GxB_get (GrB_Descriptor d, GrB_AxB_METHOD, GrB_Desc_Value *v) ; +// +// GxB_set (GrB_Descriptor d, GxB_SORT, int sort) ; +// GxB_get (GrB_Descriptor d, GxB_SORT, int *sort) ; +// +// GxB_set (GrB_Descriptor d, GxB_COMPRESSION, int method) ; +// GxB_get (GrB_Descriptor d, GxB_COMPRESSION, int *method) ; +// +// GxB_set (GrB_Descriptor d, GxB_IMPORT, int method) ; +// GxB_get (GrB_Descriptor d, GxB_IMPORT, int *method) ; #if GxB_STDC_VERSION >= 201112L #define GxB_set(arg1,...) \ @@ -3994,518 +4564,6 @@ GrB_Info GxB_Context_get (GxB_Context, GxB_Context_Field, ...) ; (arg1, __VA_ARGS__) #endif -//============================================================================== -// GrB_set and GrB_get -//============================================================================== - -typedef struct GB_Global_opaque *GrB_Global ; -GB_GLOBAL const GrB_Global GrB_GLOBAL ; - -typedef enum -{ - - //-------------------------------------------------------------------------- - // GrB enums in the C API - //-------------------------------------------------------------------------- - - // 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 - - // all objects, including GrB_GLOBAL: - GrB_NAME = 10, // name of the object, as a string - - // 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_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize?): - GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation - - // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize?): - GrB_ELTYPE_CODE = 102, // a GrB_Type_code (see below) - GrB_ELTYPE_STRING = 106, // name of the type - - // GrB_*Op, GrB_Monoid, and GrB_Semiring: - GrB_INPUT1TYPE_CODE = 103, // GrB_Type_code - GrB_INPUT2TYPE_CODE = 104, - GrB_OUTPUTTYPE_CODE = 105, - GrB_INPUT1TYPE_STRING = 107, // name of the type, as a string - GrB_INPUT2TYPE_STRING = 108, - GrB_OUTPUTTYPE_STRING = 109, - - // GrB_Type (readable only): - GrB_SIZE = 110, // size of the type - - //-------------------------------------------------------------------------- - // SuiteSparse extensions: - //-------------------------------------------------------------------------- - - // 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_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_Semiring only: - GxB_SEMIRING_MONOID = 7046, // semiring monoid - GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op -} -GrB_Field ; - -typedef enum -{ - GrB_ROWMAJOR = 0, - GrB_COLMAJOR = 1, - GrB_BOTH = 2, - GrB_UNKNOWN = 3, -} -GrB_Orientation ; - -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_get: get a scalar, string, enum, size, or void * from an object -//------------------------------------------------------------------------------ - -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_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_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 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_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_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_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_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_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_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_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_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__) - -//------------------------------------------------------------------------------ -// 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 - -#endif - //============================================================================== // GrB_free: free any GraphBLAS object //============================================================================== @@ -9193,11 +9251,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 \ @@ -10752,7 +10805,7 @@ GrB_Info GrB_Matrix_exportHint // suggest the best export format fread (blob, sizeof (uint8_t), blob_size, f) ; fclose (f) ; char type_name [GxB_MAX_NAME_LEN] ; - GrB_get (blob, type_name, GxB_JIT_C_NAME, blob_size) ; + GxB_deserialize_type_name (type_name, blob, blob_size) ; printf ("blob type is: %s\n", type_name) ; GrB_Type user_type = NULL ; if (strncmp (type_name, "myquaternion", GxB_MAX_NAME_LEN) == 0) @@ -10907,8 +10960,23 @@ GrB_Info GxB_Vector_deserialize // deserialize blob into a GrB_Vector const GrB_Descriptor desc // to control # of threads used ) ; -// historical; use GrB_get with GxB_JIT_C_NAME instead. -GrB_Info GxB_deserialize_type_name (char *, const void *, GrB_Index) ; +// GxB_deserialize_type_name extracts the type_name of the GrB_Type of the +// GrB_Matrix or GrB_Vector held in a serialized blob. On input, type_name +// must point to a user-owned char array of size at least GxB_MAX_NAME_LEN (it +// must not point into the blob itself). On output, type_name will contain a +// null-terminated string with the corresponding C type name. If the blob +// holds a matrix of a built-in type, the name is returned as "bool" for +// GrB_BOOL, "uint8_t" for GrB_UINT8, "float complex" for GxB_FC32, etc. +// See GxB_Type_name to convert this name into a GrB_Type. +GrB_Info GxB_deserialize_type_name // return the type name of a blob +( + // output: + char *type_name, // name of the type (char array of size at least + // GxB_MAX_NAME_LEN, owned by the user application). + // input, not modified: + const void *blob, // the blob + GrB_Index blob_size // size of the blob +) ; //============================================================================== // GxB_Vector_sort and GxB_Matrix_sort: sort a matrix or vector diff --git a/JITpackage/CMakeLists.txt b/JITpackage/CMakeLists.txt index 5a8ba31452..6ab6f7e521 100644 --- a/JITpackage/CMakeLists.txt +++ b/JITpackage/CMakeLists.txt @@ -15,3 +15,16 @@ if ( NOT WIN32 ) target_link_libraries ( grb_jitpackage PUBLIC m ) endif ( ) +file ( GLOB GRB_SOURCE_FILES + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + "../Include/GraphBLAS.h" + "../Source/Template/*.[ch]" + "../Source/JitKernels/*.[ch]" + "../Source/Shared/*.h" ) + +add_custom_command ( TARGET grb_jitpackage POST_BUILD + COMMAND $ + ARGS ${GRB_SOURCE_FILES} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Generating compressed sources for JIT compiler..." +) diff --git a/JITpackage/GB_JITpackage.c b/JITpackage/GB_JITpackage.c index ab3622e320..39b88bc951 100644 --- a/JITpackage/GB_JITpackage.c +++ b/JITpackage/GB_JITpackage.c @@ -17,15539 +17,15515 @@ GB_JITpackage_index_struct GB_JITpackage_index [1] = {{0, 0, NULL, NULL}} ; int GB_JITpackage_nfiles = 217 ; // ../Include/GraphBLAS.h: -uint8_t GB_JITpackage_0 [56892] = { - 40,181, 47,253,160,202, 40, 9, 0, 52,209, 0,202,188, 20, 34, 45,176, 80, 25, - 55,170, 30, 65,118,129, 89,225, 78, 42,178,204,150, 92,136,206,189, 84,161,211, -252,239,205,132,158,222, 7, 90,128,198,200,108,180, 76,248,167,244,167,193,127, -176, 11,236, 1, 41, 2, 35, 2,253,236, 30,202,181,127,118, 67,106, 24,189, 57, -147,202,165,115,185, 4, 63,233,115,251,106,235, 13,157,214, 78,119, 72, 25, 63, - 80,210,133,220,245,161,236,232,246,159,126, 20,108, 8,157,238,103, 87,242,146, -110,184,208, 63, 56,173, 31,183, 7,232,204,105,140,140,117,178,115,199,169,156, - 91,102, 53,190,175, 89, 91,216,208,157, 81,162,202, 24,241,205,241,220,217,158, -200,249,255,167, 47,181,152,117,231, 90,139, 99,122,238,169,103,204, 85, 11,195, - 0,105,108,125,214,150,151,190, 44,110, 29,167, 92, 72,210,142, 68,111,118,114, -182,237, 93,229,214, 54,139,222,179, 53,176, 72,132, 90,235,178, 76,149,127,210, -109,239, 45,243,223, 89,198,219,155,173,116,110,253,142, 11,213,110,179,175,229, - 38,126,244,108, 72, 74,206,226,220,178,174,251,221, 86, 63,198, 77,207,197, 48, - 52, 22,180,213,248,217,111,185,225,153,205, 78,219, 79,107, 59,237, 74, 13, 59, -153,205, 24, 96,105,230,253,221,140, 92, 39,205,182,101,212,246,227,150,145, 62, -139,149,185,222,234,100, 78,203,158,116, 97, 63,111,246,185,173, 70,167,156, 25, - 43,183,103,219,225,244,211, 28,187,182,237,137,255,237, 29,217,105,222, 31,218, -129,209, 67,157, 83,187, 58, 91,178, 39,118, 23,122,219, 57,139,239, 59, 11,101, -179, 51,182, 0,153,214,133, 29,101,167,195, 59,123,131,176, 43,125,119, 66,117, -242,190,211, 80,237,232,236, 89,216, 53,114, 81,206,110,235, 83, 78, 50,103,198, -239,246, 61,103, 70,143, 92,179,111,154, 35, 25, 54,156, 93, 65,189,147,217,187, - 67, 23, 20,189, 50,183, 95,251,123,203,226,246,217, 7,157,225,228,250, 26, 93, -174,179,185,184, 93, 91,118, 56,154, 45,239,199,165,144,232,109, 90,137,119,212, - 98,157, 13, 45,137,254,217, 89,164, 72, 68,152,112, 72,176, 61,222,223,152,253, -186,113, 34,102,165,156,246, 85, 80, 64, 40, 36, 14, 68, 32, 20, 27,101,143,125, - 31, 61, 60, 89,105,218,208, 86, 41, 23, 51,251, 28,154,195, 29, 25,119,182,183, -186, 78,181,253, 73, 99,141, 51,106, 13, 87,178, 73, 43, 49, 49,225, 0,145, 32, -146,197, 94, 19, 5, 99,235,176,107, 72,250,157, 59, 87,215,216, 93, 59, 49, 17, -146,117,150, 93, 22,171,115, 71,130, 69, 96,136, 68, 64,138, 64, 30,129, 23,177, - 84, 21,235, 67, 21,210,140,146, 36, 69, 21, 15,242, 40, 30, 21,135, 68,179, 43, -213,248, 43,249,250, 93,155,139, 85,130,195,219,145,245,150,121,111,184,110,210, - 79,117, 73,157,206,149, 92, 44,192,176, 44,243,204,157,172,137,245,192,130, 97, - 20,245,192,130,237,126, 39, 59, 89,253,246,200,194, 34,118,192, 70,145, 63,162, -199, 35,122, 60, 40, 64, 42,196,204,184, 66, 33, 25,216, 44,227,116, 25,219,143, -237, 99,225, 99,130,101, 96, 85,163,177,226, 16,217,235,130,161,166, 10,118, 77, - 27, 81,124,254,200,136, 64, 17, 48,176,160,229,166,163, 48,193, 86,140,162,130, -202,216, 5,149,169,212, 20, 72, 36,176,190,213, 45,200, 6, 12,160,176,105,162, -161, 34, 84, 20,216,154,108, 25,183, 90,187,210, 38, 77, 92, 19,157,121, 71,175, -137, 14, 8, 98,129,160,185,238,159, 29, 40, 22, 16, 2, 5, 34, 16, 11, 11,139, -200, 74, 44, 44, 40, 34,145, 8, 5, 18,145, 28,192, 48,203,197,186, 38, 88,123, -120,163,112,155,195, 29,103,178,124, 16,224, 71,168, 69,136, 5, 85, 99, 4,157, -126, 66,221,241,216,175,209,105,149, 29,255, 74,253, 18, 10, 51, 43,133,156,189, -114,212,181,125,147, 46,101,101,166,204, 37, 37,220, 7,134,237,116,167,111,255, - 67,225,140, 16,152,218, 12,230,194, 17,161,194, 40,148,137,134,101,162,104,208, - 64,177, 56, 42, 23, 10,163, 84, 25,139,133, 61, 48,213, 3,140,186, 42,152,212, -137,158,125,195,247, 48,210, 73,185,125, 47,162,168,224,200,192, 46, 13,133,163, - 59,162,180,208,158,145, 36,111,168,116,150, 89, 67, 9,101,194,184, 80, 52,188, -101,212, 34,156, 24, 24,253,154,126,217, 1, 28, 30, 54,233, 1, 4, 2, 69,112, - 76, 4,218,135, 85, 52, 30,187, 27,129, 30,146,196,164,179,251, 83,155,183,239, - 15,221,246,189,236,233,221,225, 93,150,209,111, 10,189,163,116,246,246,108, 63, -205,102,252,125, 31, 42, 37,237,140, 53, 6,112, 98, 98,119,215, 33,218,170, 98, -101, 44, 26, 12,150,177, 26, 96, 0, 86,128,128,141, 30, 75,153, 30, 84,161, 13, - 16, 96, 65, 27,133, 30,232, 65,145,153, 40,239,202,146, 35,152,197,152, 40,153, -169,194,241,108,231, 56,215, 25, 37,165,155, 77,148,112,186,247,130, 77,162, 17, -214, 87, 16,218, 44,108,247,253,139, 0, 14, 27,216, 6,199,132,209, 88,173,225, -212, 98, 0, 72,183,234, 93,237,180,250, 29,141, 30, 26,142, 45, 51, 96, 85,142, -194, 2, 27, 84,102,170, 92,214, 84,185, 76, 30,206,142, 18,128,188,105,142,254, - 38,168,152, 88,180,235, 80, 96, 46, 28, 24,108, 12, 81,242,206,254, 23,145,216, -139, 73, 53,193,162, 76, 22,203,162,249,142, 55, 80, 91, 32,128, 28,216,139, 75, - 51,109, 68,168, 28,250, 59,178,240,226, 99,122,145,189,216, 74,131, 73, 38, 63, - 41,251,179, 15,178, 23,123, 93, 21, 69,105,174, 12, 14,206,155,161,170, 6, 24, - 23, 76, 66,134,163, 82, 77,170,204,197, 82,129, 36, 3,158, 14, 71, 43,199,153, -188, 81,158,231,186,217, 33, 24, 97,133, 20,169, 63,105,199,109,167,220,106,221, -239,243, 71,171,204, 59,189,171,237,147,228, 72,221,163, 90, 99, 79,234,173, 37, -136, 34, 43,177, 17,196,192, 42, 80, 16,121,108,244,120, 96, 64, 12, 84,160,136, - 12,240,216,157,100, 79,253,230,120,132,106, 98, 73,176,157,211,154,125,228, 34, -124,113, 39,215,201,253, 80,151,128, 94,101,178,174,125,213,123, 35,163,198, 74, - 17, 54,196,155,214,185,103,164,204, 56,237,236,180,131, 16,215,222, 13, 42, 16, - 24,187, 18,103,178,132,149,206,111,203,100, 67,216,142,232, 21,123,108,167,149, -133,232,167, 13, 88,202, 88,201, 42, 91, 43,205,174,175,213,153,235, 28,108,101, -223,236, 45,171, 92,108,224,237,205,113,209,193,118,136, 49,251,178, 78,118, 48, - 52,237,235,200,168, 99,172,133,217, 24, 79,242,168,253,143,156,119,103,122,123, - 40,167, 59,198,222, 55,177, 88, 14, 86,130,101,218, 12,107, 98,185, 80,139,185, -236, 85, 77, 24,204, 4, 97, 35, 99, 65,120,151,117, 77, 24,251, 64,225,178,246, - 99,132,237,252,169, 26,173,209,157,195, 31,150,223,114,106, 38,126,130,227, 84, - 98,233,243,249, 76, 10,149,119, 67,119, 59, 42, 97, 87,234,108,114,204, 64, 29, - 98,110, 59, 26,218, 4,209, 3,133, 7, 10,143,125,187,176,186, 44, 21,101, 81, - 30, 38, 5, 41, 84,227,212,108, 69,192,180,207,160,230,204,106, 5,172, 20,179, -107,189,169,218,233,201,174,244, 63, 49, 33,233,212,186, 77, 10, 15, 15, 25,205, - 5, 99,218,120,253,133,168, 29,221, 48,196,115,144, 30, 68, 40,118, 49, 52, 23, -196, 98, 89, 44,230,210, 96,170,236, 59,176, 53,187,100,166,201,195,195, 86,149, -201,130, 69, 17,133,162,129, 64, 32,145,136,104,211,253,115, 58, 35,247,156, 90, - 96,238,241,178, 61, 45,189, 57, 93,151, 87, 82, 93,152,137,227,170, 50,150, 38, - 21, 17,138, 25, 65, 48,177,176,232,177, 7, 28, 88, 52, 27,148,129,107, 35, 99, -249,167,157, 75, 6, 6,157, 55, 2,139,152,221,135,202,167,170,203,233, 70, 94, - 31,155,185,166, 40,178,143,157,224,253, 88,251, 85, 97,106,214,154,214,187,217, - 4, 31,226,143,228,199, 82,157,208,163,222, 24,152,235,111,120,199, 55,233,122, - 75, 90,157,254,107, 8,174,179, 0, 17,151, 37, 63, 27, 82, 47, 78, 33,175,179, -251, 65, 68,113,218, 11, 73,230, 50,105, 41,107,141,210, 55,143,100,131,110, 56, -243,174, 35, 33, 25, 82,202,121, 32, 77,146, 59,227,206,103, 63,193,156,247, 16, -147,126,232, 73, 44,151,235,193,164,193,239, 99,214,240,187, 67,214,237,121,227, - 61, 12,138,220, 74, 30,212,174, 68, 2, 71,132,233,226,202, 80,211,168,175,132, -236,190,125,165,253, 46,211, 58,250, 70,163,115, 90, 59,142, 30, 31,189,235,205, - 59,170,113, 32,207,243, 60, 14,196,205,184, 15, 35, 98,170,147,198,109, 82, 85, - 38,216,146, 72, 93,142,158, 7,187, 82,136, 63,206, 43,231,133,118,126,178,191, -143, 18,207,245, 61,106, 25, 8,199,166, 50,108,111, 24,159, 67,249,235,199, 9, - 51, 66,222,132,139, 72,237, 79,110,110, 35, 23,156,211, 89,251, 95,133,209,100, - 40, 13, 38,115, 57,184,166,202,132, 4, 11,185,160,118, 66,140, 50,143,122, 92, -236,130,138, 2,106, 90, 82,199, 51,215,113,213,226, 82, 59, 95, 69, 77, 20,142, - 10,179, 25,138,102,202,168, 36,210,211,232,225,173, 55,144, 78, 34,182,114,226, -207,238, 9,216, 23,161,168,208, 88,250,153,116, 50, 53, 59,223, 7,181, 57,209, -118,187,182,237,251,178, 23, 85,172, 49,196,127,108,180, 24, 22,241,216,136,133, -145,122, 94, 86,123, 95,198, 45, 40,114,160,243,209,233,182, 58,215,127,160, 30, - 42,209, 63, 62,212, 66,195,161,129, 61,206,140, 43,201,100, 76,152,201,206,215, -176, 88, 14,168, 11, 5,195, 50, 57, 60,153, 91, 10,187,225,236, 78,213, 90,214, -237,223, 74, 25,149,155, 93, 9,247,188, 82,200,169,214,155,157, 81,219, 4, 75, - 53,135, 13, 14, 14,188, 6, 94,129,107, 98,233,116,238, 31, 33, 27,167,163,179, - 55,196,238, 92, 81,147, 69, 89, 25, 25,154, 43,228,148,107,142, 66, 2,230, 82, -169, 42, 88,198, 5,251,208,217, 49, 59, 8,101, 89, 38, 14, 90,119,118,133,178, -163, 86, 93,152,132,201, 84, 97, 40, 19,130, 16,228,118,121, 32, 19,135,200,168, -179, 41,138,152,132, 76,141,204, 72,146, 36, 25,198,147, 64, 16, 8, 18, 15,149, -141,104,115,113, 26, 63, 19,145, 19, 81, 57, 32, 11,149, 20,196, 51, 68, 17, 98, - 8, 34, 35, 34, 34, 18,136,136,136, 72,146,230, 1,160, 76, 64,129, 29,214,225, - 89, 98,137, 27,113,137, 40,170,208,230,111,152,241,225, 75,220,249,180, 95,147, -148, 33, 32, 57,167,140,120,123,231, 24,120,170, 10,102,204, 7, 6, 99,102,241, - 27, 93, 92,187, 58,167,202,141,178, 3,229, 97,161, 1,149,119,107,198,110, 63, - 59,139,243,118,142,217, 89, 3, 34, 93,226, 18,232, 18, 53,184,206, 52,145, 44, - 34, 3,166,100,151,176, 37, 77, 10, 40,246, 68,245,120,124,250,123,143, 50, 35, -244, 6, 20,159, 54,127, 66,122, 12, 59,161, 38, 55,228,187,250, 73,121,186,214, - 41,244,209, 24,170,137, 45,176,128,158,227,161,203,218,109, 30, 50,234, 95,184, -105, 82, 94,177,233, 29,220,224,187, 95, 11, 34,198, 54,147, 8, 34,109,189, 73, - 64, 95,217,187,191,133,182, 52, 16,145,154, 25,170,165, 35, 27,196,238, 75,132, - 82,170, 61, 13,172,206,189, 43,158, 12, 65, 17, 81,242,105, 80,233,250,165,121, - 2,138, 43,197,125, 44,142,171,235,195,215,229,183,107, 3, 23,224,177,171, 82, - 17,167,180, 63,204,103,167,210,157,179,109, 68, 0, 68,107,151, 73,240,234, 52, - 28,145,149,240, 56,153,197,105, 12, 71,189,187,138,115,214, 8,213,101,108,130, -194, 35,156, 96, 9,195,153,230, 34,220,125,134, 34, 44, 96, 49, 96,201,180,163, - 59,237,181,196, 69, 5,237, 15, 17, 32, 17, 19, 66,179, 20, 5, 32,194, 33, 87, - 73, 35, 87,209,172, 42,170, 17,155, 89,209, 37, 96,192,162, 20,118, 69,222,135, - 31,192, 62,228,122,179,134, 90,221, 33,255, 44, 81, 50,254,143, 32,142, 53,187, - 24,117,105,192, 48, 90,158,103, 42,213, 13, 99,131, 78,186,128, 93,120, 18,131, -179,146,232, 31, 18, 95,132,239, 93,234, 30, 65, 57, 28, 62,129,200,143, 80,198, -136, 4,150, 1,238, 37,122, 2, 5,114,246,223,161,213,121,101,101,212, 94,238, -162,106,112,212,234,232, 21,246, 75,120, 81,114,229, 45, 76,104,108,224, 76,208, -226,238,249,157,250,209, 73,208,252, 66, 26, 64,183, 51,203,191,206,137, 39,153, - 20,189,190, 34,147, 17,168, 21,236,247,254,200, 20, 39, 80,143,170, 81, 17,160, -150, 71, 68, 10, 47, 98, 21, 87, 75,144,117, 54,210,199,181,227,150,160,105, 10, - 16,207, 65,201,125,242, 75, 21,172,208, 60,146, 6,165,128,170,232, 75,139,232, -144, 83, 32, 3,212,160,106,215,137, 44,165,119,250,125,217, 59,109,216, 56, 23, - 77,233, 38,118,102, 54, 47, 77, 47,193, 88,132,245, 27, 0, 48, 41, 60,108,170, -100,252,184,220, 30, 44, 75, 30,252,171,198,149,152,241,210,218,216, 84,147, 6, - 3, 72, 76,180,224,189, 17, 68,131, 34, 1,219, 32,197,236,131, 5, 36, 28,158, - 53,242, 32, 23, 33, 17, 91, 77,248,157, 4,202, 51,214,162,135, 59,157,162, 75, -202,148,204, 70,155,101,246, 20, 73,169,251,145,162,172, 18,152,146, 1,117,182, -173, 37, 89,245, 2, 24, 18, 50, 83,228,252,110, 11,235, 45,222, 60, 64, 19, 43, - 59, 25,207, 20,234, 0,112, 86, 3,146,242,216,110,162, 44, 23,215, 1,230,114, - 15, 54,139,227,187,228,222, 44, 40, 86,190,252,244,246, 29, 98,108,227, 54,137, - 79, 20,163, 65,195,117,163,237,252, 4,211,208,217, 2, 9,100, 70,144,171, 68, - 76,212,154,229, 21,193, 9,164,233,246, 61, 67,126, 2,217, 83, 18, 90, 16,138, -228,164, 62, 72,141,100, 13, 56,124,230, 44,127,250, 62,226, 49, 54, 99,252,182, - 85, 52,161,248,150, 23,231,152, 67,224,197,138,215,220, 97, 78,208,222,197, 32, -144,150,230,179, 60, 17, 65,161, 78,203, 72,114, 34,197,100,250,169,218,248, 19, - 83, 94,127,220,201,128, 63, 69, 62,157,160, 59,145,246,220,217,205,118, 77, 42, - 25,172, 26,169, 69, 69, 43,112,193, 0, 13, 79, 92,141, 91, 71,243,134, 56, 89, - 53,145,191,207, 81, 67, 44,200,121,155, 27, 54, 28,144,229,243, 43, 19, 23,184, - 94, 68,202, 31,169, 34,202, 16,191,173,134, 84, 72,232, 80,129,169,183,128, 34, -249,164,198, 8, 65,231,198, 85,203,140, 87,244, 45,201, 45,107, 97, 84,227, 72, - 93, 98, 30,194,237,118,254,242, 41, 8, 41,113,179,250,140,247, 89,206,172,231, -126, 64, 18,231, 96,206, 83, 41,228,106,246, 8, 96,225, 95,179,252,139, 46,198, -254,130,151, 1,212, 43,183, 66,124, 10,227, 81, 10, 20,236, 34,136,108, 37, 65, -184, 45,164, 47,141, 24, 87,122, 28, 42,194,201,119, 59,117,129, 53,112,235,140, - 40,212,184,121, 97,249,247, 91,226, 59, 59,151, 0,100,106,130, 43,191,210, 3, - 65,233,166, 5,166,172,110, 25, 88,193,219,212,176,244, 80,235,233, 16,243, 18, -168, 58, 48,148,192,131, 46,159,154,163, 98,213,125, 19,104, 88,149,194,141, 99, -247, 13, 24,134, 68,225,122, 74,237,104,166,144,161,187,135,118,183, 74,105,221, - 36,220,179,208, 48,224,225,164, 71, 94, 26,192,210,167,144,141, 7, 64, 79, 89, -141,255, 3, 86, 18,104,115,186, 99, 28, 4,136,179,161,152, 75,184, 93,104,156, - 60,183,132,109, 79,113,134,169, 37, 78,102,126,248,109,240,122,228,223,146,230, - 53, 97,222,214,178,212, 63, 96,202,159,144,180, 86,234, 97,167,140,172,168, 26, -112, 10, 52,231, 64,111,248,181,152, 15,113,133,217, 9,124,229,230, 14,192,102, - 41,129, 68,207,213,223, 64,242, 75,148,209, 72,132,128,206, 64,230, 40,131, 3, - 26,225,139,137,199,195,184,233,209,210,134,189,207, 29,129,156,223,190,204,174, - 10, 85,107,115, 26,107,174, 34, 32, 7, 17, 77,248,192, 48,160, 18,245,159, 12, - 2, 14, 70,152,248,158,138,194, 48, 3, 12,161,189,170, 70, 1, 16,109,120,248, - 6, 40,134, 67,173, 89,165, 79,131, 15, 85, 14, 14,102, 65,123,160,187,174, 11, -235,234, 32,187, 90, 23,162, 79, 53, 9,159,233,177,205,122, 15,243,117, 87,171, -144,108,235, 59,214,104, 30, 86, 30,190, 78, 19,148,217,130,248,236,223, 37, 76, -223,170, 54,131,244,172, 80,142, 74,185, 88, 68,152,193,163,134,148, 22,158,226, -107, 65,133,123,101, 52, 74,101, 50,181, 56, 70,112,147, 68,121,159,222, 98,218, -232,247,243, 66,138,154,223, 45,241, 22, 89,162,193, 23,120,132, 40,227,118,229, - 61, 56,224, 31,243, 48, 95, 60, 23,203,149,116, 72,238, 95, 40,243,232, 38, 94, - 32,159, 81, 63, 68, 55,157, 69,199,144,212, 78,143, 25,152,121,216, 12,216,210, -229, 37,116,155, 18, 65,110,171,166,198, 47,171, 79,172, 21, 79,225,149,148,234, -158, 34,144,214, 52, 5,141, 3, 73, 99,196, 7,141,212,201, 8, 21, 94, 44,136, - 1, 92, 2, 20,153,142,248, 11, 43,179,184, 15,151,142, 55, 3,194,202,130,250, -250,238, 32, 96, 44,146,219,236,176,113, 21, 30,148,193, 87,197,176, 83, 58, 3, - 57, 18, 1,135, 59, 33,135,114, 89,203,152, 40, 0, 98, 26,142,153,138, 41,148, -200,230,105, 96,108,148,107,222,204,151,135, 48, 52,209, 82,164, 80, 21,236,163, - 27, 79, 52, 1,198,193, 4, 44, 36,147, 6,158,199, 11,234,205,171,223,103, 51, - 25, 56, 64, 89, 56,149, 66,127,169,174,176, 13,141,144, 63,221,157,156,150,188, - 48, 89, 16, 51,217,238, 17, 13,240,147,191,227,145, 64, 0, 13,125, 35,249,148, - 24,219, 13,243, 87,115, 4,203,236, 37, 13,171, 36,223,120,237,225, 12,148, 78, - 68,233,119,114, 72,100,211,193, 50,146,112, 82, 2, 52, 18, 29,112,158,177,226, - 43,168,205,202, 62,250, 48, 53, 48, 95,240,185, 56,203,115,185, 95,102, 43,196, - 45, 70,222,163, 20,201,236, 71,123,113,139,120, 51, 70,104,200,242,224, 29,143, - 10, 81,131,180,229, 66, 66, 56, 55,234,219,105,223,140,100,117, 34,180,225,162, - 83,141,124,165,116,218, 26,230, 56, 64,189, 87,236, 40, 40, 22,122,201,241, 32, - 42, 9, 24,196,194, 84, 34,208,242,138,220,161, 30,196,203, 36,128,222, 34, 15, - 97, 20, 29, 49, 9, 45,109, 68, 34, 28,243,223, 15,244,193, 15, 98,138, 5, 70, -149, 19, 32,166,241,104,137,191,191, 92, 40, 30,106, 99,120, 39, 85, 62,151, 18, - 62, 20,208, 83, 68,203, 69,136,235,136, 68,112, 36,103,177, 47, 50,196, 34, 91, -240,113, 78, 14,132,179, 98, 37,227, 46,120, 10,196, 22, 18,138, 27,207,232, 46, - 24,215, 27,171, 49, 96,168, 13, 8, 7, 74,184, 18, 59,136, 27,216,229, 55, 59, - 76,120, 28,175, 60,135,161, 48, 14,209, 88, 50, 55, 25,129,248, 97, 57,234, 42, - 39, 80,166,147,183, 0, 61,168,176,123,101,217,212, 50, 27, 65,180, 8, 75, 26, -114, 35, 85, 1,145,165, 71,114, 66,195, 59,204, 46,176,184, 2, 94,147, 85, 35, -169,226,201,120, 33, 36, 5, 53,209, 55, 76,255, 83,233,218,109,215, 97,152,141, -230, 37,206,103,112,249, 88,154,102,137, 27, 31,216, 96,212,176, 43,200,246,167, - 6, 11,132,145,247,170, 88, 77, 5,102, 40, 27,139,247,156,112,201,153, 52,106, -253, 67,188,188,132,136,169,250, 26, 2,125,117,243,104,175,224,247, 1,231, 36, -255, 41, 83, 1,213, 80,231, 41, 96,209,215, 41,104,148,122, 71,148, 58, 74, 60, -212, 21, 2, 45, 88, 28,125,191,128,200, 1,131,171, 9, 73, 27,205, 38, 28, 15, -101,204, 4,198,145, 49, 93,166,200,143, 52, 95,192, 74,183,253,100,227,139,132, - 13, 52, 14, 78,109,147,176, 91,240,115,191,155, 5,109, 0,240, 17, 52,236,167, - 16,202,120,221,119, 28,161, 48,117, 47,139,251,160,130,153,106,240,204, 89, 92, - 29,246,174, 43,231,143, 74,231, 89,204, 7, 24,176, 71, 19, 33, 24,125,142, 15, -115,111,177,156,208,249,186,177, 87,216,251,159, 27,135,130,208,136,227,247,148, -163, 57,185,251, 44, 32,151, 30,242, 81,124,190, 81,194,201, 42, 6, 89,176, 83, -118, 17,199,195,213, 2,125,153, 37,173,236,239,127, 3, 9,108,225,196,150,115, - 22,162, 64,145,128,224,253, 93, 58,252, 24, 20, 61, 35,253,103,164,248,119, 97, -221,199, 57,249,119,136, 62,172,123,105,130,116,197,204, 64, 20,162,149,233,177, -185,216,236, 47,205,193,109,131,249,148,245,122, 45,187,191, 55,143,253,153,218, -246, 27, 32,182, 20,192,176, 44,153,148,225,251, 66,199, 55,251,152,128,146, 76, -111,244, 1,133,146, 72,191, 40,254,156,198, 45, 30,112,226, 59,240,182, 17,189, -230, 27, 2,236,136,183,139, 92,215,242,164, 39, 34,197, 32,203, 89, 39,155,106, -228, 54, 10,239, 43,213,115,168, 55,109,178,226,105,115, 19, 41,158, 16, 93, 68, -112,148,252,199, 98, 37,170, 4, 69,219, 60,183,166,142,191,196,152,145,171,232, -236, 83, 49,199, 14,172,215, 31,189, 42, 38,213,184, 54,217, 99, 41, 25, 38,133, - 25, 32, 7,170,188,177, 30,164,196,163,134, 49,176,114,187,243,166,237,201, 2, -203, 48,164, 43, 37, 16, 59,146,167,161, 62,111, 33, 74, 14,142, 36, 34, 98,197, -184, 72,160, 83,129,191, 77,182, 98,229,150, 31,191, 16,176,217,161,159,158, 57, -148, 17, 55,185,161, 96,144, 88,140,225, 29,187, 67, 95,130,247, 32, 52, 48,128, - 47, 19,197, 18,144,213,180, 17, 10,216,100,122, 48,254,166,104,225,245, 1, 36, -126,149, 73, 91,128,117,158, 29,113,165, 11, 37,197, 79,235,100, 67, 73,254,233, -145,230, 78,105, 68,135, 23,242,136, 19,227, 77, 41, 28,119, 18, 18,234,116,162, -219,203,249,186, 96,228, 38, 64, 44,100, 37, 96, 16,186,197,138,136,140,105,108, - 81,100,235, 42,187,238,146, 44,147, 71,184,172,241,174, 73, 37,167,131,228,147, - 34,198,231,250,223,186, 46,119,166, 52,108, 5,189,109,104,111, 90,133,188,203, -192, 89,242,211,142,133,243, 97,152, 49,100, 91, 73, 24,194,120, 33,241, 2, 45, -154, 51,178, 13, 73,175, 7,112,219,234, 81, 54, 90,231,115,168,136, 50, 27, 62, -236, 96,186,154, 35,168,247, 48,175, 74, 96, 20, 26,231, 73,221,243, 47,147, 80, -144, 5, 24, 27, 74, 13,232,164,193,187,149,117, 4,203,196,218, 62,133, 10, 15, -207, 15, 59,243, 52, 20,108, 2,245,127, 39, 68, 36,180,117,230, 8,140, 29,240, -180, 10, 74, 34, 70, 37, 93, 75, 72,160,206, 98,226, 88, 62,233, 35,236, 46, 75, -105,166,164,132, 38,101,120,138,110,106,231,235, 9, 53, 43, 49,171, 42,111, 84, - 7,147,162,140,255,201, 18,245,213,145, 28, 65,175,245, 12, 79,186,253,238,174, -147,195,225,105, 64,160,138, 92,216, 4,132,135,110,181, 9,228, 97,141, 76, 99, - 41, 87,121,242, 79,119,229, 77, 34, 91,233,178, 13, 10,218,169, 93,153,250,218, -243,206,204, 93, 73, 49, 78,235,217, 15, 32, 97,232, 5,199, 22,132, 70,145, 47, -100,244,218, 16, 14,182,158, 70, 37, 18, 72, 85,149, 73, 28,122,124, 37,159, 77, -138, 35, 54,246, 38, 15,110, 82,103, 70,170, 39,162,102, 97,243, 25, 34,126, 90, - 89,199,111, 28,162, 24,111,215,123,116,136,132,202,175,178, 72,229,231,113,134, - 25,236, 30,127, 32, 10,175,101,179, 55,225, 71,240, 70,186,193,115, 17,110,198, -142, 98,199, 0,176, 65,212, 90,198,205, 99,170,134,207, 76,106, 95, 87, 76,144, - 5, 55, 50,117,139, 44, 5,217,149,130, 41,145,166,198,172, 35,221,189,171,187, - 49,172,240,179, 62, 90,122,242, 87, 78,127,104,136,171,178, 53,172,153,173,158, -249, 64, 70,155,131,239, 76,200,177, 93,123,212,111,244, 70,167, 52, 31,204,104, -122, 26, 27, 10, 55,162,208,173,208,194, 31,244, 0,189, 56,167,119,216, 60, 93, - 30, 28,217, 90, 58,150,190,143, 4,143,156, 16,174, 82, 84, 42, 60,158, 12, 30, - 35,162,180, 14,127, 85, 92, 7,225,245,165,111, 37, 22,176,181,226,111,124, 2, -117, 48,254, 35, 56,161, 46, 12, 2, 33,254, 46,116,194,131,143,120, 67, 35,109, - 2, 9,180,108, 28,247, 96,166,124,223,224,249, 53,158,241,127, 28, 49, 54,246, - 63,234, 37,163,154, 46, 5,153, 61,104, 95,192,205, 43,194,173,194, 88, 97,106, - 3, 48,226, 51,113, 78, 32,235,130,237,183,240,176,132, 3,245,231, 83, 43, 77, -224,135,142,250, 69,232,183, 85, 65,128,184, 50, 46, 46,243, 33,202, 71, 70, 66, - 50,102,163, 32, 64, 34,237, 82,237, 60,159, 72,112, 10,199,244, 22, 82, 29,212, - 59, 23,154,133,185,106, 15,150,197, 85,205,223, 4,237,238,249, 0, 90,163, 67, -246, 33, 57, 98, 79,152, 33,103, 74, 30, 2,189, 35,133, 46,145,251,108,166, 84, -121,147, 55, 3,137,196,129, 63,244,242,249, 20, 27, 49,251,164, 95,125,207, 8, - 41,153,234,103,199,246, 28,159, 43,100,158,174,170, 31, 36,172, 15,192,194,253, -247, 67,178, 35, 40,229, 21,222,250, 4,199, 95,156, 6,193, 42,117,222,214, 24, -244, 22, 89, 6,111, 82,136,115,254, 55,126, 40,219, 72,168,124,216,157,188, 99, -152,217,245, 65, 89,197,227,118, 34,228,182, 63, 40,153,222,152, 29, 52,116,228, -131, 42, 96,219, 51, 67,189, 35,195,170,145,154, 14, 88,211,181, 3, 13, 89,158, - 32, 10,231,205,200, 49, 10, 22,154,250, 68,111,123,220,233, 28, 45,115,242,168, - 61,145,238,216,181,134, 94, 35, 46,180,182,146, 53,249,167, 35, 53,244, 47, 72, -187,182,249, 78, 76,244,226,205,155,117,198,100,174, 51, 65, 35, 58,165,121,221, - 24, 10, 98,149, 22, 84,201,154,204, 50, 18,153, 20,177, 66, 91, 99, 14, 55, 41, -174,242,243,124,226,212, 13,137,222, 22,222, 95,230, 17,211,136, 71,195, 37,120, -107,253,118,223,174, 20,226,121, 73,129, 16,199,180,237, 33, 8,172, 49, 18,234, -178,252, 80,213, 87, 23, 56,187,114, 31,196,166,199,134,162,178,154,132, 22,177, -163,222,207,227, 41, 96, 63, 34, 5,118,249,223,107, 34, 66,193,173,208,186,233, - 6, 9, 96,222, 26,226,128, 83, 48, 38,236,251,117,122, 21,177,115,148,254,148, - 88,220,161,107,166, 34,137, 32,107, 71,179,140, 87,161, 78,247,217,207, 54, 3, - 69,112, 2, 56,203, 34, 1,230, 39,246, 60,223, 75,246,224,175,105,196,169, 3, -157, 84, 49, 27,174, 8, 22, 92,141, 81,184,116, 48,195,199,243,165, 4, 35, 4, - 74, 23,119,141,241,131, 42,138, 51,222, 25,117, 20, 98, 27,255, 13,235, 7,171, -120,133,248, 58, 49,138,206, 13,167,196,196, 7, 55,148, 11, 94,152, 8,223,203, - 58, 26, 91,231,251,228,135,158,241, 71, 30,103,184, 53, 73, 26, 63, 50,140,205, -127, 70,164, 60,216,253,100,237,193, 74, 92,206,228, 25, 42,112,217,232,105, 67, - 34, 98,159,178,246,121,185, 90,199,224,155, 94,192,140, 99, 63,232, 26,125,129, -108,180, 14, 4, 72,117, 24, 6, 23, 40, 10,106, 21, 35, 27,122,109,237, 33,117, - 8, 87, 70,226,253, 2, 71, 48,129, 79,216, 50,105, 27,153,137,195,253,143,244, -237, 52, 83, 88,210,129, 16, 82,223,105, 81,105, 93,216, 82, 3, 55,220,139,169, - 72,118,205, 21, 42, 69,245, 91,250,214,238,224,212,127, 37,231,158, 72, 56,207, - 30, 21,177,101,124, 36, 17, 48,148, 76,112, 85,170,219, 61, 16,191,231, 70,149, - 65, 6,216,119,216,234,203, 0,187, 50, 81, 17, 20, 81, 46, 62, 4, 35, 0, 52, - 91,142,174,198, 15,237,217, 36, 18,172, 69,120,196,247, 53, 22, 29, 9,111,154, - 67,214, 2,250, 54,172, 87, 87, 38,223,110, 14,222,206,135,152,121,103, 65, 3, -200, 63, 72,125,195,231, 9,103, 97,181, 43,170, 88, 4, 85,182, 28,147, 97,233, -217, 4,217, 2, 61,254,250,186, 60, 19,115,185, 16, 6, 22,194,135, 63,220, 19, -164, 80, 37,155, 92,117, 46,117, 33, 62,139, 34, 92,199,193,187,105,156, 65,213, - 81,248,179,140,128, 83, 45, 48, 0,187,235, 25,198,209,225,187,215,255,117,150, - 7,141, 40,128,252,100, 15,225,190, 97, 19, 28,237, 77, 74,165,115, 35,209,106, - 99, 64,150, 66,223, 39, 32,205, 52,205,198, 20,187, 72,148,248,177,252,131,206, -136,252,152,192,194, 61,237,230,254,230,248, 76, 58, 86, 15,207, 55,155,212,249, -110, 95,137, 26,255, 56,166, 52, 61,134,222, 98,192,135,134,117,184,197,241, 52, - 67,130, 2, 12,128,214, 97,232,233,224, 24,146, 24,243,184, 21,145, 76,194,146, - 11, 75, 17,223,244,218, 5, 74,230,237, 73, 14,243,162,119, 51,109, 64,239, 21, - 63,117,218,250, 8, 72, 10,216,102,218,179, 93, 19,132, 9,121,117,178,183, 10, -129,144,212,102, 28,183,147,119,108, 3,235,168, 2,149,103,247,140,212,250,148, -255,145,224,109, 60,175,240, 56,203, 56,223,247,101, 80,211, 56, 3, 73,200, 10, -186,219, 14,190,239,114, 40, 99,193,138,246, 78,232,126,244, 84,164, 74,218,158, -139,211,227, 84, 8,133,245, 17,178,242,118,232,154, 48, 79, 77, 45,255,196,118, - 81,123, 90, 76,197, 12,184,169,175,202,196, 79, 26,251,160, 76,114,176,173, 50, - 72,200,199,229, 17,179,153,229, 26,252,185, 58,148, 27,151,161,208, 37, 28,219, -154,233, 89,195,222, 82, 43, 7,191,252,252,166,244,191,151,124,217,167,179,241, - 40, 25,255,254, 93, 99,248,204,174, 66,223, 4,228,116,126,168, 8,133, 22, 78, - 85,114,117, 0,160, 62, 28, 64,233, 12,249, 68, 52,149,180, 23,114,251, 53, 62, -177, 62,127, 16, 86, 44,110,138,207,120,174,131, 17,247,133, 4,253, 9, 25, 31, -179,236, 59, 73, 3,252,138,181,109,115, 21, 80,212,232,163,139,170, 10,144,144, - 53, 82,185,158,115,101,194,189,246,107, 45,204,155,180, 67, 40, 4, 6,155, 48, -245, 76,234, 76, 5,126,166, 76,125,153, 31,203,134, 56,146, 20,223,255, 29, 99, -195,166, 39,146,136, 45, 60, 12, 67,136, 9,115, 78,123,183,139,238, 35, 67,205, -237,111,195, 24,169,155, 38, 70,229, 95, 56,210,104, 33,184, 3, 66, 3, 77, 27, -171,111, 49,197, 76, 81, 62,191,241,252, 89,241,198, 32,112,109, 43,191,208,165, -190,177,147,137,112,110, 52, 49, 24,175,203,134, 93,239, 54,184,196,183,150,252, - 39, 88, 35,156,137,107, 4,166,120, 16,120,122,162,233, 13,210,179,127,139, 17, -158, 52,227,161,143, 60, 9,230,182, 44,227, 97, 80, 31,157,181, 48, 71, 87, 66, -230, 66,234,222, 28, 9,174,206, 23,216,207, 66, 50, 57, 14,104,133, 20, 64, 8, - 82,239, 99, 63,250,161,242, 13,242, 52, 68,234, 72,232,127,132,221, 45, 27, 59, -143, 50, 21, 41,236,244,151, 13, 38, 88,196, 95, 7,251,253,227, 56, 67,232, 18, - 44,253,172,155,111,204, 12, 46,220, 51,154,159,255,233, 82, 47, 90,175, 67,166, -190, 43, 82,178,159,124, 34,229, 32,221,140,130, 3, 76,203,200, 58,106,222,103, -138, 78, 40,165,118,113, 19, 54,187,127,165,122,197, 29, 10, 98,249, 39, 74,225, - 6,176, 52, 90, 90, 55, 92,138, 0,102,178,157, 40,192,238,204, 3, 72,239,217, - 2, 61,124, 61,125,181,109,217, 48,226,126, 51,113, 81,135, 69,227, 51,253, 22, - 71, 61,248,146,171, 50,178,109,138, 2, 83,116, 32,145, 0,144, 0,147, 0, 46, -141,230, 56,247, 20, 73, 76,195,143,134, 36,226, 38, 82, 69, 42,205, 57, 56,232, - 28,163,105, 22, 22,226, 15, 49,213, 86,188,158, 69,195,177,195,215,130,180,165, - 95,205, 89,146, 30,130, 84,235, 11, 95,171,242,120,255,133, 20,191, 4,227, 56, -204,177,249,134,113,156, 3,195, 28,142, 89,117, 28,140,163, 80,238, 94, 57, 0, -128,165,249,201, 65, 32,135, 68, 52, 21,144, 79,105,105,154,191,201,223,233,228, - 84,164,248,240,114, 44, 46,201,235, 13,184,186, 67,242, 72, 55,160, 66, 16, 79, -244,220, 49,220,159,169, 1,251, 33,141, 35, 19,130, 69,237,137, 88,103,157, 1, - 36,185,162, 10, 12,134, 28, 63,106,146,126,173, 52,167,199,222, 81,146, 81, 48, -156, 11,186,190,164,141, 6,187,210, 61, 43,242, 80,203, 96, 76, 6, 99, 10, 72, -134, 49, 99,111,181,152,234, 23, 41, 70,208, 47, 92,226, 18,144, 8,223, 22,186, -118,168, 71,129, 67,168,177, 67, 65,230, 1,100, 0, 50, 69,170,249, 20,213, 12, -134,100, 43,136,169,166,190, 79,180, 51, 99,170,189,199, 31,242, 14, 30, 85, 72, -131, 44,253,124, 63, 40,157,147,255, 61, 75,210, 17,220,227,124,238,156,220, 45, - 77,194,164,167,228,211, 39,199, 93,186,229,210,148, 28,133,251, 10,252,216,200, -231,232,115,187,103,218, 72, 20,153, 77,102, 81, 8, 93,217,213,113, 26,150, 93, -236,235,124, 61, 91, 31, 26,139,214,109, 12, 15,215,152, 34, 75, 16,233,146,220, - 88, 90,244,158, 39,116,174, 59,192, 62,253,238,157, 52, 68,247,163,245,227, 38, -148,140,230, 42,210,226,119,169,189,160,168,175,237,228,206, 3,108,108, 70,170, - 78,203, 48,215,132,232, 46, 93, 70, 73,120, 16,181, 78,193,234,241,252,168,171, -228,112,132, 0,223,210, 3, 8, 42,106,143, 62, 31, 49,231, 92,113, 4,111, 76, -211,100, 41, 40,130,222, 27, 63, 90, 17,102,138,247,200,247,232, 99, 57,253, 72, - 91,126, 16, 70, 47,186, 21,106, 35,126,187,161, 79, 27, 82, 13,151,132,145, 96, - 26,169, 61, 14, 56,104, 20,174,227,182,139,139,110,248, 18,138, 39, 29,103,187, - 92, 26, 89, 80,101,143,224,130, 52,193, 41,229,198, 57,142,179,118,234,100,239, - 45,195, 59, 27,219,247,104,142,230, 12,239,228,146, 21, 73,119,105,146, 2, 2, - 21,154,185,125,251,177, 53,215,237,178, 92,153,203, 69,217,240,131, 30,172,214, - 66,166, 77, 80, 30,182,198,131,119,106, 75,237,253,156,171,182, 15, 82,252,153, -104,220,169,108,221,149,201, 92, 22,204, 7,235, 7,193, 7,125,248, 53,142,170, -202, 60, 66, 71, 85,129, 15, 44,219, 54, 77,195, 84, 48, 23, 10,230, 89,124,191, - 74,189,135,201,168, 3,125,173,162, 73,146,180, 6, 3,244, 16, 8, 54,137, 76, - 35,162,158,197,161,111, 83,160,130, 88, 37, 28, 7,202, 81, 16, 49, 33, 20, 33, -138, 40, 98, 8, 33, 36, 16,145,128,100, 68,164, 36, 78, 7,232,248, 4,135, 80, -210, 64, 8,199, 0, 23,127, 29,193,177,244,118,212,200, 92, 67,185,143, 16,161, -166,129, 85,168, 74,143,108, 60,243, 12,230,201, 94, 75,187,145,138, 24, 44, 4, -246,129, 74,116, 60,194, 79, 94,176,206, 2,240,197, 14,141, 44, 4,211,235,244, - 46,140,136,135,173, 9,171,112,186,110, 66,220,102, 45,146,108,133,214, 73,117, -132, 73,114,203, 45,204, 46,204, 16, 55,124,226, 40, 3, 43, 15,136, 37, 93,154, - 47,160,145, 99, 21,165, 1,136,151, 84,221,210, 76,115,255,171, 98,194, 80,140, -148, 73, 94,224, 30,226, 4,177, 58,178,108,139,234, 5,170, 20,163, 61, 61,102, -120, 89,200,236, 37,101, 2, 94, 60, 99,107,224, 34,145,195,160,249, 34,163, 17, -178,231,199,157, 26, 13,245,114, 36, 64, 4,143, 11,210, 79, 76, 90, 30,158, 4, -119,226, 31,200,211,245,121, 4, 88,134,152,178,236,150, 91,140,144,105,100,161, -211,254, 87,208, 71, 41, 47, 89, 18,109, 23, 22, 97,176,154,215, 74,172,164, 90, -230, 11,239,136, 59,108,133,153,150,183,226, 61, 66,126, 86, 33,163, 79, 26, 34, -126,182, 2, 86,207,192, 79,253,107,209,213,138,241,212, 91,119,176, 99, 21,222, - 98, 64, 66,144,212,221,157,168, 58, 10, 2,142, 5,184,186, 16, 26,232, 63, 92, - 95,223, 82,221, 6,253,130,125,251,113, 59,193, 84,177,170,135, 2, 55,110,172, - 8, 9,129,228,147, 12, 34, 62, 16,181,234, 71,126,247, 37, 19,188,247,162, 11, - 8, 55,196,166,173, 84,210,133,115,185, 40,229,226, 25, 81,233, 11,120,105, 29, -140,106,248, 32, 24,127, 81,137, 8,119, 81,199, 13, 82,215,162, 20, 74, 83, 87, - 69,114,161,254, 49,170,227, 15,114,140, 47,165,166,204, 94,139,216,150,240, 74, - 41, 5,124, 8, 72,234,232, 70, 42,189, 39, 99, 93,164, 62, 18,233,164, 33, 99, - 72,233,130,221, 26, 41, 48,135,100,207,166,115,112, 84,119,163,140, 75, 12,183, -232,197, 13,185,111, 73,207, 18,161,127,235,183,142,204,250,138, 90,218, 31,207, -191,207, 17, 0,195, 17, 7,252,144,204,106, 78,249,136,132, 52, 42, 82,199,132, -123, 70,141, 50,250, 89, 77,129, 96,216,254, 54, 86,180,143, 95, 34,142, 78,236, -138, 22,105, 38, 53, 89, 52,204,108,194, 5,159, 8,125, 42,134, 29,176, 45,144, - 93, 63,235,222,155,117, 85, 14,120,194, 88,221, 21,231, 10,115, 30, 90, 34, 42, -227,141,201,170,214, 94, 57, 26,217,200,152,216,113,222, 36,188, 80,163,206, 98, -185,162, 75, 67, 72,114, 88,186, 46,103, 82, 10, 75, 82, 51,221,179,231,202,242, -250,212, 60, 4,121, 27, 90,240, 93, 83,217, 38, 19, 40,141,113, 15, 31,119, 23, -125,179, 81, 45,209, 90, 1,255, 32, 70, 88, 99,100,234, 18, 82,124,230,213,115, - 64,145, 86,150,208, 87, 70,204,119, 42, 98,229,155,154, 96, 61,112,100,200,120, -206,168,144,114, 58, 20,204,217, 57,151,232,229, 21,200,238, 44,235,223, 64,170, - 66,110,200, 3, 20, 24,179,126,239, 79,208, 26, 87, 23, 23, 81,152,123, 89,182, - 9, 75,156, 99,179,117,138,230, 67, 92, 64, 6,197, 12, 83,144,195,240,190, 5, -247, 6, 63,105,194, 72,176,176,216, 54, 11,141, 11,229, 14,212, 18,108,209,196, -124,190, 77,219,136,143,129,133, 10,136,171,198,244,129,170,177,166,104,159, 85, -246,119, 87,137,229,225, 12,168, 5, 94,179, 11,137,176, 27, 15, 55,239,241, 68, - 82,140,116, 60, 80, 42, 80, 6,230, 21,136,102,218,137, 85, 66,103, 9,117,234, -249,190,104,142, 90,178, 16, 66,212, 8, 32, 60, 7,152,243,232,161,255,181,253, -245, 60,214,215, 63,103,238,167, 55, 50,230,153,253,218,198,227, 97,253,107,197, -159,164,139, 51, 22,219, 76, 26,218,106,231,223, 61, 17, 11,194,175,148,201, 98, -146,166,165, 17,205, 49,220,253,119,165,152, 40, 59,168,125,227,249,103, 90,213, -110, 92,174, 40, 7,253,206,224,166,105, 68, 33, 24,212,251,236, 29, 4,240,249, -175, 20,201,108, 3,161,116, 66,108,163, 82, 82,142, 29, 88, 8, 14, 44,111,154, - 27, 5,122,101,111, 72,192,129, 53,213,210, 46,153,196,221, 96,169,131,133, 83, - 65,165,235,148, 7,213, 35,212, 80, 65,133, 26, 42,148, 80, 97,133, 26, 79,136, - 40,126,102,248,142,163, 80,155,113,137, 39,204,158,150,132,135, 79,192, 14, 42, -233,109,209,226,223, 72, 26,145,226, 74,175, 70, 56,169, 51,188,196,215, 12,155, - 49,227, 69,206,214, 76,190, 94,100,107,245,116, 59, 96,150, 31,239,166,251, 34, - 95,226,225,150, 32,212,225, 34, 17,167,130,164, 72,220,126,211,203,254,203,143, - 65,224, 49, 43,209,120,184, 13, 65, 71,138,194,202, 70, 42,153, 3, 83,178, 4, - 87,136,146,178,231,174, 12, 79, 73, 73, 46, 88,190,101,118,238,153,190,249, 16, -208,145, 1,242, 19,254,121, 17,176, 17, 45, 7, 4, 77, 94,172,120, 69,167,111, -237, 92,152, 96, 21,205, 37,111, 47,179,196, 2,198,208,169, 18,219,163,150, 23, -174,132,205, 1,133,192, 14,220, 28,152,232,245, 97, 19,195, 6,168,226, 64,130, - 32,148,204, 79,196, 38,167, 95, 81, 84, 0,206,129, 67,188,107,246,186,134,151, - 16,179,147,251, 25, 19, 74, 39,148,238, 25,133,134, 98, 79, 60, 12, 84,220, 28, - 77,190,113,162,238, 25,240,219,195, 16, 10,143,112, 30, 52, 12, 38,219,131, 11, -198,225,224, 48,200,132,200, 39,249, 7, 17, 75,250,107,112,141,236,156,141, 76, -248,229, 86,218,213,194,149,213, 7,133, 45,206, 25,134,247,146, 26, 25, 35,113, -223,181, 81,219,227, 69,227,194,208,245, 93,108,227, 75,154,162,248, 16,174,234, -161,227, 13,131, 78,102,149,125, 75, 52,228, 43,136,190, 97,245,186,238,122,251, - 2,113,178, 59, 66,116, 37, 63, 81,223,218,255, 89,247, 32,152, 9,128,142,243, -253,171,240,127, 71, 52,114,113,162, 77,229,211,109,210,240,145,252,130, 95, 49, - 16, 52,230,216,246,136, 66, 78,147,166, 86, 17,155, 81,183,226,188, 77,112,151, - 68,234, 27,225,197, 33,219,131,152, 8, 22, 41,185,159,244,121,190,133, 9, 27, - 6, 92, 98,212,209,149, 11, 87,244,152, 80, 9, 30,136, 8,173,232,169,210,164, - 82,224,156,161,179,185,162,172, 59,120,193, 54,133,209,224,223, 64,208,206,250, - 62,100,113, 49, 22, 66,255,252, 61, 96,202,110, 46, 7, 74, 70,126,125, 8, 70, - 79, 4,147, 65, 90,100, 10, 67, 33,208,241, 9, 62,162,191,129,184,150, 6,190, -169,152, 2,120,110, 1, 87, 37,186, 60, 3,174, 91, 10,132, 30, 31, 43,222,119, - 48,110, 96,103,160,114, 37, 25,186,133, 98, 27,157, 19,155,115, 69, 97, 24,224, -137, 75, 62,100, 80,218, 97, 0,251,162, 72,228, 35,236, 45,211,245,141,252,242, - 21,232,135,110,136,179, 0,228,119, 58, 67,188, 69, 75,221,173, 47,230,102,110, -250,247,142,119, 4,179,135, 15,175, 59,143,152, 65, 60, 38,170, 36,133,167, 86, - 20,193,241, 89,140,252, 81,201,231, 99, 45,111,139,190, 26, 16, 30,219, 8, 95, -225, 52,192, 4,152,243,180,158,170,187,203,115,202,134,176,248, 33,142, 23,168, - 33,228,236, 57, 58,108, 25, 4, 25,101, 86, 56, 54, 58,253, 72, 26,166, 20,195, -165,190,217, 25,132,148,103,192,180, 7, 98, 5,199, 3, 62,187,165, 66,200,179, -201, 8,128,247,108,164,120,186,211,106, 64, 56, 20,122, 13,143,108, 70,112, 54, -192, 82,244, 29,192, 38, 39,164, 81,129, 2,203,144,223, 40,113, 97,180,106, 16, -182, 48,228, 51,111, 50, 12,135, 84,214,128,166,191,227,204,176,209,129,224,100, - 88,196,237,109,167, 97, 63,169, 28,171, 82, 39,234,173,106, 32,164,216,165, 43, - 71,118,155, 12,129, 0,119,141,179,148,224,215, 46, 83, 52,203,238,218,159,116, -188, 97,193,129,161,165, 91, 19, 11,197,115, 39,237,147,143, 98, 95, 14, 82,229, - 21,118,224,176,224,206, 33, 36, 48,250,243,113,178,154,189,163,168,202,252,247, -142,145,163, 80, 16,146, 54, 79,175,252, 52,230, 2,142,232, 10,225,251, 51, 71, -113, 55,222, 46, 74,213, 7,166,245,203,251,147,213,219, 62,220, 96,184, 48,237, - 33,232,124,196,230,162,197,197,225, 81, 89, 16, 79,249, 64,176,226, 63,181,203, - 29,224, 22,225,245,215, 82,142, 18,132, 46,157, 70, 88, 76,160, 11,166, 72,210, - 39,112,205,209,180,147,167, 4,202,152,230,134,190,126,214,208,101, 54, 7,235, -117, 30, 26,136,218,183, 19,213,247, 21, 34, 94,192,169,192,198,147,106, 32,119, - 57,106, 89, 48,106,232,121, 70, 17, 82, 5,153, 1,186,118, 60,136,175,145, 92, - 30, 91,163,109,189,115,210,106, 62,110,187,245,121, 71, 2, 77, 95,251,180,210, -173,186,127,236,125, 76,162,109,194,160,235,192,101, 52,113, 65,176,179, 51,226, - 57,193,145,210, 84, 48, 17,145,186,226,173, 57,251,180,226, 0, 62, 7, 43,170, - 88,161,239,216,132, 12, 68, 86,135,238,168, 33, 73,234,127, 80,255,128, 4,168, -238,127, 98, 72, 16,158, 48, 15,157,227, 51,111, 63, 52,132,250, 66, 34,233,243, - 51, 35,127,112,238, 74, 96,208,224, 19,109, 81,174,191, 25,238, 14,170,246, 91, -108, 93,171,151,192, 21, 53,193, 30, 29, 98,221,236, 2, 33, 44,146,221, 98,132, - 48,128,239, 95, 70, 58,193,101,148,206, 8,162, 60,245,113, 23,163,192,216, 63, -182, 45,103, 8, 71,245,135,200,147,166, 0, 43,192,223,154,174, 88,105,152,178, - 68,250, 97, 68, 13, 67,195, 37,200, 44,106,153, 45,209, 28,227, 90,134,198,200, -207, 56,122, 15,108,198, 70,166,208, 38,163, 14,217, 9,187,165,110,103,108,146, -229, 32,146,150, 9, 34,212,207, 79,176,115, 69, 4, 33,163, 17,140,153, 4,122, -166,145, 22,166,164, 24,224, 93,168, 62,122,182,201,140, 54,144,252,107,137,213, -151, 60, 40,127,107,249, 37,127, 51, 91, 83,120,209,146, 26,198, 17, 66,249,159, - 62, 30, 44,208,123, 96,158,175, 54,226, 29,222, 52,217,124,162,201, 46, 97, 45, - 49, 34,105,150, 67,112, 87,133, 57,159, 26,120,253, 42, 27, 12,162,217,192,198, - 2, 13, 84,163,199,174,132,181,121, 42, 40,220, 76,158,148,210, 67, 91,158, 56, - 21, 25,136,117,127,102, 4,154,213,125, 3,163, 87, 59, 77, 44, 10,190, 17, 77, - 41,100,155,123,255,184, 60, 43, 25, 45,118,202, 44, 42,200,125, 4,223, 68, 0, -213,243,228,249, 31,144,200, 3,163, 31,153,133,181, 50, 81,165,249, 54, 85,220, - 17,236,205,229,214, 0,231,129, 4,152, 16, 72,118, 47,105, 43,246, 56,102,108, - 23, 92,129,215,196, 92,110, 35,135,118,177, 15,194, 65, 0, 20,129,201, 18, 60, - 37,232,191,104,146,191,168,210,211,175, 99, 23, 37,195,243, 59, 5, 5,176, 42, - 7, 88,203, 6,141,183,100,128, 36,133, 85, 49,177,112, 52,101, 33, 79,250,105, - 25,240,220, 79,224,168, 55,124, 34,194,119,158,186,128,229, 71,141, 90, 42, 35, - 58,210,109,130, 71, 39,155,119,247, 99, 21,133, 68,174,112, 83,225, 0,165,228, - 40,114, 77, 65,139,213, 9, 34, 16,117,172,112, 98,212,167,217,154,147, 20,179, -152,245, 76,174, 50,102,186, 91,245, 66,200, 73, 26, 28,234,242,117, 55, 82,216, - 92, 22,171,123,248,160, 60, 25,143, 76,119, 75,110, 9,246,227,159,196,174,204, -249,216, 59, 96, 62, 2,190, 69, 16,140,189, 40,168,165, 19,196, 11, 26,248, 19, -100, 15, 56,162,154,191,135,110, 2,161,241,246, 71,254, 61,144, 98,103, 59, 86, - 82, 68,128,189,194, 31,215,253,135, 31,103, 91,163,244,245, 33,165, 31, 84,155, -227, 99,162,206, 33, 58,151, 8, 81,161,161,197,242,131, 1, 63, 66, 87, 77,175, - 31,140,176, 66,247,237,190,250,146, 97, 7,221, 53, 61,108,100,216,128, 27, 41, -133,147,190, 30, 88, 76, 25, 91, 62,243, 14,185, 82,233, 92,129, 32,173,135, 22, -155, 64,142,222, 68, 15,161, 79,109,223,211,212,116,104,209, 84, 88,154, 51,161, - 67,203,102, 99, 43, 21,244, 32,202,183,196,143, 94,112,225, 79, 26,221,111, 57, -212, 5,127, 66,222, 68,143,137,100,189,253,137, 12, 16,213, 44,134, 48, 81, 57, -195,186,251,112,253,119,226,165,201,210,124,105,133,180,197, 47, 77,138, 93,153, -190,139,212, 79,197, 34,173, 1,134,158,176,181, 10, 20,245,225, 26,197,125, 74, -126, 33,144, 23, 70, 81, 90,231,110, 55,234,220,199, 89,170,163,103,162,211,210, - 20,124,203,149,148,102, 44, 78,188,130,200,128, 98,237, 98,120,228,220,235,151, - 78,166,225,238, 30, 83, 57, 1,106, 86, 10, 62,242, 76, 85,185,210, 76,121, 11, - 66,171,250, 57,125, 50, 7,103,113,152,126,208,127, 18,215,134, 2,106,101,110, -243,180,194,223,194,160,228,133,224, 41,105,123, 96, 79,229,207,200, 52,247,123, -155,223, 17, 32, 59, 11,218, 51, 18,177, 93,140,188,128, 47,178,251,255,223, 13, -174, 33, 98,104, 75,207,247,196, 44,131, 58,172, 56, 13,233,244, 90,157,114, 43, - 17, 37,113,124,152, 83, 13,113,241,107,124,149, 46,168,124,246,130,138, 38,154, -202,219, 67, 29,170, 26,221, 2, 83,243, 53,110,135, 64, 81,116, 65, 90,232,244, - 77, 85,124, 55, 74,223,109,146,225, 11,217, 26, 15, 0, 99,144,148,234,159, 5, - 54, 59,221,211, 57, 67,206,104,185,248,123,119, 71,108, 22,218, 3,119, 15,190, -129,236,153,132, 21,149,219,122, 81,192,233, 82,170, 73,227, 99, 52,138,232,125, - 56,213, 36, 73,175, 97,194, 15,119, 3, 55,159, 21,151,222, 3, 85,223,251,113, - 58,162,139, 92, 42,252, 12,179,152, 6, 62,237,196,163, 41, 11, 63,151,126, 14, -182,218,101, 87,188, 90,238,113, 13, 69,196, 44,205,229,133, 1, 9,220, 73,210, -249,117, 64, 26,162, 54,215, 18,131, 59,255,205,139,101,114,201,200,177, 9,122, -167, 26, 57,201,238, 4, 43, 53,208, 70, 93,161, 73,166,174, 96, 97,147,132,146, -147, 88,173, 50,163, 60, 98,181,229,138, 15, 33,114,139,212, 38,155, 23,215, 16, - 25,107, 41, 16,231,166,200, 34, 17,184,142,205,180, 49,192, 48,200,201, 19,129, -200,204,241, 42, 40, 51,104,122, 72, 99, 72,124,114, 71, 70, 96,139, 66,160,169, -186,127, 70,197, 81, 96, 46,121, 80, 66,157,166,147,154,238,236, 12,245,165,201, -176,183, 71, 54,181,101,227, 3,186,103,208,167,163,200, 84,161,181,102,128, 84, -211,178,207,164, 21, 84,184,171,133, 14,103,128,128,193, 20, 19,138,148, 4, 56, -147,161,102,134,130, 88,246, 57,189, 45, 21, 32,147,186, 54,169,213, 48, 24, 12, - 84,154,146,220, 36, 97, 27, 98, 56,232,241,203,107,190,113, 66, 16, 19,102, 88, -224,140,204,102,141,100,200,124, 20,133, 42, 99, 99, 50,168,245,120, 57, 91,137, - 82, 58,110, 18,216,240, 55,155, 49,157,237, 1, 51, 56,217,173, 18, 8, 74,145, - 22,140,202,146, 83, 61,208,243, 29, 40,207,102,141,241,190,107, 8,124, 15, 55, -108,103, 91,113,119,252, 96, 82, 85,212, 57, 24,136, 45,167,157, 71, 80,245, 72, -156,222,248, 91,247,233, 44,125,225,205,105, 2, 99,129, 12,244,154,148,100,236, -241, 11,204, 75, 82,125, 17, 60,113,108, 54, 38,241, 29, 40, 12, 99,162, 6,123, - 92,222, 52,208,225, 10,172,137, 42,252, 8,129, 11, 6,254, 11,134, 10,136,183, -138,129, 8,199,178,205, 67,236,168,187,110, 20, 8, 28,235, 12,146, 50,103, 50, -101,139, 99,242,111, 0, 39,115,144,156, 11,170, 82,127, 10, 78, 88,169, 39,163, -155,212,127,107, 44,113,214,210,208, 69,164,113,100,213, 87,170, 24, 18, 45, 98, - 14,227,164, 47,220,239, 34,125, 3,222, 2,233,134, 60,171,139,149, 76,136, 26, -254,111,220, 21,139,179, 54,207, 83, 27,156,140, 3, 77, 22,112, 71, 33,222, 5, - 93, 73, 10,223, 85, 59,229,149,173, 24, 56, 85, 75,206,148,244,140, 51,228, 20, -247,225, 19, 97, 83,122,242,195, 98, 50,249,196,157,220,171,181,132,235,145,202, -102, 24,206,213,245,143,128,125,220,231, 32,116, 54,231,219, 52,158,103,159,150, - 62, 70, 23,229,105,111,235,112, 69, 51,159,183,112,169, 19,177,194, 26,226, 7, -180,163, 16, 11, 43, 33,167,201, 95, 44, 46,163, 59, 39, 37, 99,150,194,161, 83, - 73,238, 40, 42,194, 99, 20, 94, 74, 30,223,167, 50,225, 41,202,112, 53, 27,106, - 3, 48,207,229,102,231, 81,191,246,252, 12, 90,244, 77,209,127, 12,196, 30,137, -151, 69,130, 90, 65,101, 98, 59, 47, 62, 56,158, 25, 80,137,103,125,224,202, 2, -155, 19,156,186,106, 2,172, 84, 54,163, 73,252,106,233, 59,178, 99, 97,225,218, -147, 97, 99, 33, 25, 17, 90, 64,207, 8,251,219, 86, 92, 2, 41,168, 61,108, 5, - 12,181,241,242,136,140, 42, 90, 95,138, 46,140, 35,214, 27,147,113, 35,194,167, -211, 74,138,153, 58,237,232,129,128,182,164, 61,222, 2,191, 16,154,222, 67,210, -119,130,141,207,176,137,247,255,145, 3, 43, 23,107,250, 0, 39, 31,246, 86,154, -203,248, 47,140,136, 61, 28, 24,151,114, 74, 0,156,190,229,144, 4, 36,107,254, - 22,217,240,221, 29, 73,143,192,220,153, 77,180,193, 7,193, 48,223,175,204, 3, - 17,235,121, 83,227,112, 92,241,200,134,180, 12, 37, 38,209, 73, 58,216,173,237, - 39,191,104,161, 91,129,145,101,106, 48,110,193, 92, 14,114, 10, 60, 26, 1, 74, - 73,188, 13, 41,192,212,113, 3,120, 59, 0,177,184,208,226, 21,170, 3, 57, 51, - 2,128, 55, 40, 55, 66, 18,185, 19,144, 68, 53,141,227,198,186,197,211,239, 42, -138, 33, 8, 80, 1,212, 0,211, 0,210, 0,220,140, 9, 30, 8, 76, 17, 16,168, - 84, 96,198, 73, 73,162,236, 68,145,252,229,201, 63,151,205, 37, 35,177, 19,183, -196,226,143, 76,247,232,252,159, 92,127,147,238,241, 51,201, 2,206,161,127, 72, - 60,149,180,178,199,153,242,147,105, 95,210,230,157, 91, 7,117, 85,165, 40, 63, -121,228,222,148,215, 71, 72, 98,155,112,168,244, 5, 85,239, 37,133, 41, 24, 63, - 88,119, 2, 77, 37,239, 72,176,123, 39,150, 61,146,155,254,157,239,103,147, 1, -105, 26, 12,106,244,179,196,193,148,120, 84,190,122, 39, 7,146,125,134, 39, 98, -195, 42, 59, 57,212,165, 66,235, 84, 72,132, 58,158,140,137,110,114,212,101,106, -118, 92, 77,121,181, 99, 77, 10, 63, 29, 14, 55, 55,103, 76,171,232, 66, 64, 64, -127,254,133,176, 61,122,117,148,197,200,211,202, 20,245,148,182, 9,105, 30, 32, - 44,180,107,177,220,249, 40,137,197,203,236,233,164, 94,202, 43,131,115,177, 7, -215, 78,110, 23,122,220, 22, 26,199, 74, 35,183,198,249,112, 95,203,113, 55,155, -182,151, 99, 62,119, 72,195, 29, 45, 12,155,243, 57, 35,185, 49,179,114,122,236, -209,171, 35,226, 49, 90,144, 1, 90,242, 95, 38,136,164,114, 97, 1,161, 1, 33, -182,213,165,124,197,145, 28,108, 50,225, 38,209,205, 0, 59,136,156, 41, 44, 52, -176,166,105,219,228,166,231,205, 78, 69,121, 95, 57, 39, 32,169,140, 49, 70,140, -177,206,165,106,162,120,150, 32,120, 82, 22,233, 42,243,197, 60, 97,153, 98,239, - 35,243,165, 8, 28,244, 63,204,214, 61,176,144, 13,216,224, 78,146,127,198, 68, - 2,192, 88,162,133,228,166, 75, 64, 96,170,160,139,231, 34,226, 67,211,204,174, -185, 74, 37,171, 62,238,165,234,186,232,102, 1, 85, 24,211,246,116,162,136,209, -183, 24,103,136,111, 66,104, 8,196, 92, 86,136,133, 45, 6, 27,133,197, 81, 7, -129,124,175,249,142, 49, 41, 8, 9, 10, 12,147,227, 15, 16,182,101, 89,171,187, -187,187, 41, 94,165, 84,194, 43, 83,220,148, 40,238,134, 16, 30, 92, 16, 15,215, - 36, 99,191,239,251,172,203,218,238, 41, 77,118,118,170,234,163, 90, 1,161,209, - 60,132, 54, 1, 26,231, 2,114,102,161,121,156, 60,205,162,193,205, 48,126, 18, -169, 6, 88, 84,170, 15,226,194,223, 79,221, 37,233,220,228,180,185,153,117, 13, - 28, 98,116, 62, 28,173,221, 92,121,210,115,148,143,228,181,150,243,182, 44,200, -124, 79,150,195, 85,197, 90,234,152,175,228,229,118,238,147, 75, 85, 69,213,209, -129,231,105,161,141, 22,210, 0,116,231,163,105, 72, 72,116, 52,151, 45,226,162, - 55, 91, 22,161,133, 46, 25,237,227,209, 34, 32,223,219,151,239, 5,217, 49,115, - 85, 65, 36,123, 78,226,250,144, 58, 6,195, 25, 67,164,112,103, 82,130, 3,235, - 87,218,125,222,201,142, 67, 70,174,130, 20,166,112,219, 27, 31,172,192,229,183, - 2, 26, 8, 43, 20, 25,138, 76,234, 47,153,203, 85, 71,169,149,197,108,173, 96, -198, 14,112, 69, 84, 34, 39,180, 69,220,213,131,141, 83, 36,182,112,135,168, 75, -122,219,248,208, 67,246, 71, 77,166,206,239,206,239,129, 86, 43,219, 43,231,204, - 51,246,235,182, 28,142,112, 91, 16,138,172,238, 17, 40,226,246, 46, 99, 63,209, -230,241, 6, 81, 32,169, 41,234,216, 27,180,240, 8,115, 54,121, 39,249,127,158, -244,190,190, 55,175, 42,223, 8, 5,136,148,246,234,154,190,122,207,183,133,208, -126,116,114,211,254,107, 35,217,121,118,246, 91,214,178,253,144,210,101,186,170, - 82,125,127, 89,104, 51,150, 63,251,246, 37,143,244,115,102,219,155,154, 55, 31, - 50, 63,203,129, 89,146,127,113,187,183, 34,119,149, 49,120, 77,255,210,136,126, -252,222, 72,254, 37, 71,254, 18,228,101,119, 86, 97,201, 25, 67,142,147,125,129, - 24,114,143,146,168, 20,251,245,176, 54, 32, 8,243,163, 0, 0, 24, 9, 74,132, - 18,105, 26, 42,138,252,180,192,199, 3, 27,134,141, 6, 19, 5,194, 96, 70, 12, - 17, 32, 20,192, 2, 20,192, 0, 16, 0, 0, 2, 20,128, 0, 1, 74, 1,134,217, - 7,165, 49,148,207,205,215,135,133, 9, 21,144, 36,252,137, 65,152,152, 55,228, -176,193, 95, 1, 67, 65, 61,109, 12,147,252,205, 40, 44,203,203, 84, 40,231, 79, - 23,194,180,188, 99,132,173,254, 80,225,253,204,161, 38,221,119,123,234, 18,215, - 81,126, 0, 95,236,236,187,166, 19,106,196,214, 38,183,204,113, 62,212, 63,164, - 52,138,244, 33,250, 56,170, 90, 86,235, 51,245, 72,174,104,157, 65,215,205, 83, - 45,125,172,204, 9, 8,233,123, 32, 4, 33,157,178,145,213,109,167,204, 82,130, -102, 56,183,102, 7, 26,209, 90,253, 35,248,184,112, 38,240, 91,153, 52, 59,219, -154, 80,160, 23,171,240,111,103,176, 39,148, 12,188, 51,168,184, 90, 20, 96,136, - 92, 35, 65, 56, 59,254, 60, 25,168,181, 68,116,178,254,119,198, 47, 64, 15,207, -184,199,246, 82,116, 14, 92, 92,214,164,229,102,223,231,231, 34,123,181,147, 23, -216,148, 20,166, 47,120,108, 5,252, 72, 0,141,207,200, 26,120,201,104, 73,252, -168, 75,182, 52, 86,150,179, 85, 43,168, 17, 2,151,141,137, 8, 49, 48, 57,126, -227, 68,185,215,188, 23,187,183,200, 92,187, 26,227,251,152,190,104, 65,235, 66, -141,165,128,165,250,212, 13, 62,167,151,152,152,238, 22, 47,147, 54, 44,207, 40, - 8, 35,136,248,181, 20,142,150,199,243, 11,203, 74,167,130,138,254,156, 80,228, -123, 67,111,108, 90, 0,238,183, 32,112, 76, 26,216,114,215, 7,184, 10, 70,213, -197, 15,222,158,207,159, 12, 56,196,184,177,112, 75,221,168, 44,134,124,218, 8, - 94, 72, 13,103,154,152,141, 74, 26, 3,147,180, 2,212, 48, 10, 68, 52,140, 74, -151,206,138,188, 56,117, 27, 18,169, 12,172,155,245,174,172,252,182,205,122, 68, -162, 54,110, 22, 41,220,123,224, 56,153,182,190,242,106, 62, 76, 94, 72, 52,250, -101,204, 37, 32,162, 70,178,188, 80,228,182,241, 32, 34,117,144,159,172,140,162, - 36, 58,169,168,118,131,242,194,151, 48,151, 56, 0,230, 23, 54, 97, 38,109,166, - 80,208,128,169,252, 6,121,171,152, 57, 67,140, 14,148,237, 65,240,196,180,145, -202,179, 22,140,126,161, 16,235,166, 9, 8, 36, 21,116,162, 7, 97, 26,163,156, -198,211, 55,171, 71, 90,177, 12, 24,123,152, 98, 41,120,255,202,104, 14, 21,236, - 82,148, 41, 54,162,249, 13,246,169, 1,187,237,253,115, 80, 58,198,230, 69, 15, -140, 21, 43, 21,107,122,142, 13, 30,133,177,170,191,175, 42, 17,249, 23, 1,139, -219, 89,244, 14,135, 4,253, 80, 92,171, 3,167,168,169,160,212,201, 33,163,198, - 37,230,249,132,155,166,238,215, 90,243, 18, 39, 3, 94,220,188,254,211,187, 56, - 74, 72,115, 38,195,203, 32,102,133,152, 10, 31,252,213,200,172, 43, 39,146,124, - 43, 46, 49, 56, 34, 78, 38,106, 24,204,147, 32, 88, 73,153,137, 3, 7,188,193, -184,165,131,132, 10, 81,112,113, 18,173, 33,189, 67,198,119,110, 67,252,174,214, - 72,148,180,158,135,222,197,250,124, 11,179,210,216, 92, 63,240, 12, 47, 9, 73, -108, 12, 74, 5,147, 74,197, 34, 49, 15, 86,120, 29, 35,122,155,152, 71,214,136, -100,153, 23,207, 60,207, 8,251,252,132,173,188, 11, 39, 77,139, 60, 1,154,116, -103, 93, 18,153,240,162, 13, 18, 38, 19, 55,173, 27,203,209,233,154,131,245,221, - 87,250,119,173,111,193,254, 44,228,165, 14,235, 56, 9,172,170, 73,217,114,147, -214,249,163, 16, 67,247, 46, 10,156, 69, 27, 78,174, 53,161, 89, 25, 20,239,224, - 79,240, 98,236, 9,142,169, 7, 65,189,147,153, 43,148, 32, 9, 47,235,146, 97, - 64, 70,143,164,192,249,228,145,245,240,132,105,132,236,145, 68,121, 50,243,246, -219, 34,248, 13, 14,159, 13,151,171, 92,126,187, 39, 15,219,184, 16,170, 45,246, -250,237,143, 35,247,207, 50,119,159,232, 20, 49, 20, 75, 38, 63,121, 22,110,210, - 21,229,254,196, 73, 88,241, 85,210, 2, 20,167,208, 98, 82,209, 43, 80,152,194, - 11, 52, 69, 63, 65, 97, 38, 33,142, 36,240,160, 60,136, 43, 18,138,113,132, 34, -253,149,136, 36, 17,229,125,159,125,171, 59,104, 19, 76,176,162,175,250,179,234, -253,110, 58,156,104, 86, 43,184,188, 9,223, 69, 19, 0, 0,158,155, 96,166, 54, - 74, 80, 32, 99, 83,149,109,162,123, 37,246,175,155,236, 33,147, 39,168, 41,188, -152, 18, 23,165, 20,158,223, 86, 35,119,237,233, 6, 10, 35,157, 21,178, 39,119, - 18, 45,254,182,231,128,146, 92, 84, 70,130,101,251, 19,123,126, 15,233, 87, 92, -177, 66, 98,138,171,162, 71, 81,190,156, 92,170,194,212, 20,147, 60,208,248,170, - 93,146, 20,145,148, 29,100,129,190, 86,240,124, 31,172,130,225,156,226, 25,177, - 24,239,230,207, 85,193,172, 44,135,191,118, 89,233,191,231, 0,240, 10,166, 23, -216,213, 37,183,105,224,199,134, 69,114,104,207,138, 24, 32, 10, 26,125, 6, 66, -252,123, 22,152,199,159, 12,146, 42, 32,210,157, 33, 84,153, 7,128,217,242, 9, - 19, 33, 93, 46,140,155,170,233, 20,241,218,243,145, 59, 77,138, 52,192, 71, 15, -251, 36,188, 70, 98,134,207, 91, 98,151,206,231, 98,250,188,169, 10, 51,174, 98, -216, 30,225,109, 98,220, 9, 89, 72,236, 45, 59,224, 61,201, 96,140, 20,240,133, -235, 59, 78, 14,235, 41,208,228,143, 59,137, 52, 65,249, 36,194, 12,128,243, 59, -191,187,150, 18, 10,189,200, 19,221, 89,247,242,214,133, 95,196,130, 21,137,192, -124,232, 65,176, 63, 4,194,218,250,123,241,205,161, 5, 74, 98, 99, 58,110,248, -133, 57,184, 48, 9,174,153,238,187, 78,208, 6,240,227, 34,137,215, 69, 5, 54, - 74, 97, 11,158,246,119,132,159,223,158,229, 60, 83,203,144,172, 68,254, 71, 90, - 26,107,135,195, 38,232,219, 3,229,143,189, 63, 99, 76, 73, 67, 78,225,194,209, - 5,183,132,188,253, 32,218, 71,132,173, 41,167, 28, 90, 14, 77,151, 67, 2, 28, - 25, 91,233,212,135, 46,126,198,181,144, 43, 11,115, 37, 69,218, 73, 45, 11,215, - 94,184,111, 47,209,211,112,249,151,123,234,228, 84,106, 95,118,119, 66,162, 7, -225, 74, 93,150,166,221,158, 85, 92, 93,193, 61,148, 54,151, 26, 96, 41,123, 68, -170, 80,209, 7,127,184,246, 22,210, 39, 43,122,217,125,149,176, 1, 20, 83,129, -217, 88,134,218,171,174, 10, 47, 90, 18,251,201,122,205,138,243, 24, 16,145, 32, -222,128,147,103,121, 41,216,170,104, 34,105,136,240, 75, 76,100, 83,232, 75, 44, -215,158, 78, 72,129, 77,241, 65,199,229,189, 92, 85,104,208, 44, 0,161, 73, 89, - 46,209, 92,255, 95,150,202,138,122, 77,119,225, 0,235, 1, 95,160,117,155,224, -179, 78, 35,189, 49, 15,172,158,179,107,183, 49,158, 53, 86, 27, 67, 7,226,242, - 50,203,122, 44, 95,113, 37,138,157,207, 96,120, 58,210, 35, 71,124, 93,170,217, - 71,169,111, 99, 54,212, 61,227, 32,180,224,226, 12,162, 38, 66,241, 28,215, 42, -218, 93,119,129, 60, 70,164, 83,175,226,246, 38, 65, 0,136,151, 50, 2,156,209, -238,183, 44,163, 60,238,214,209,139, 48,160,140,174,217, 33, 21, 4, 21,102, 9, -166, 67,236,148, 36,120,135,193,129, 24,152, 81,210,110,111,201, 45, 28,216,128, - 91,183,228,235, 61,165,113,145,176,119,107,126, 84, 87, 22, 22,217,194,181,145, -234, 95,112, 45,105, 65,185,102,157,206,152,230, 98, 16, 21,114,133, 71, 51, 15, - 41, 56,187,142, 54, 13, 72, 79,213, 81,191, 0,165, 5, 92,111, 67, 38,172,123, -180,167,180,153,246,118, 13,202,140,203, 91,218, 82,209,123,153,151, 0,150,227, -152,182,252,100, 14, 76,137,170,105,222, 13,248, 45,229, 4,123,179,234,254, 45, - 86,229,201,170,199, 87,216,191,175,179, 11,215,230, 94,213,135,158, 40, 26,233, -153,236,230, 75,202, 6,179, 65,161, 6, 40,192,104, 24, 79, 38,100,212,135, 89, - 6,182, 23,199, 44, 56,130, 59, 1, 44,213,194,203,236,203, 67, 95,197,236,195, -179,238,201,236,191,170, 82,217, 4, 30,198,166, 94,206, 89,135,105, 70, 45, 45, - 5,196,160, 2, 37, 53,241, 8, 69, 75,132, 65,251,121,147, 96, 84, 74,112, 88, - 83,147,102, 3,198,187, 63,190, 95, 98,240,203,138,142, 47, 84,124,122,121,103, - 85,240,146, 17, 43, 83,118,209, 14,255,117,105,170, 96, 19,237,189, 55,122, 27, -208,142,184, 37, 15,207, 46,144, 31, 96,181,246,183, 32, 53, 67, 89, 74,108,121, - 14,199, 41,153, 53,139, 25,215,108, 90, 73,133,101, 32,166, 44,124,129, 21,188, -175,232,164,144,231, 93,128, 70,174,204, 82, 40,112, 99, 93,100,253, 23, 7, 64, -187, 25, 13, 40, 52, 95,234,226,144,212, 9, 81, 30,245,184,154, 12, 5, 40,171, - 92,117, 52,238, 37,101, 10, 65,123,225,147, 45,161,158,149, 35,235, 20, 89,210, - 2, 50, 81, 83, 81, 83,139, 57, 53,199,203,242,208, 32, 13,107,146, 78,226, 80, -156, 59,198, 35, 64,142,100,100,135,252,196,198,253,246, 15,146, 1, 79,240,144, -145, 46, 19,229,187,100, 7,116,104, 41, 45, 2,164,203, 68,202, 83,216,108, 27, -206,137,145,194,162,109, 68,108, 34, 55, 77, 16,210, 33,147,202, 2,228, 20, 95, - 72,117, 25, 74, 18, 87,220,238, 98,251,229, 62,198,207, 19, 99, 22,187,227,240, - 50, 61,112, 38,118,173, 72,153,134,134,126,121, 9,223,110,123, 3,135,189, 32, -234,154, 51,160,226,149, 96, 62,207,118, 29, 8,127,164,163, 64, 92, 21,196,205, -116, 25, 36,100,197,201, 20,226, 58,136, 27,171, 32, 17,111, 95,109, 78, 10, 37, - 90,184, 90, 72,120, 38, 29, 94,184, 27, 76, 56,196,109,196, 54, 14,183, 72,199, -162,150,157,227,236, 84, 81, 95,156,234,164, 34,205, 54, 30,236, 38,190,179,142, - 47,190,102, 79,193,123,221, 93,118,182,254,103, 0, 28, 25,164,156,178, 71, 48, -122, 39,139,160, 24,164,186,124,196, 6,225,115,211,242,116,144, 75, 83,200,201, -185,201,218, 84,146,174,158,158,205, 72, 6,129,255,175,123, 97,144, 37, 51, 63, -126, 16, 51,171,122, 60,195,159, 84,133,190,119,219,189,220, 39,174,229, 27,194, - 4,106, 51, 10, 3,117,234,143, 69, 71, 24,196, 39, 73, 6,115,131,160, 80,109, -169,181, 15,181,119, 71, 98, 17,202,211, 51,174,156,136,151,135, 68,176, 14,211, - 91,179,229, 23, 85, 89,185, 59,225, 58,246,117, 88, 39, 14,201, 72,174,102, 61, -226,126, 29, 6, 62,142, 5,221,155,246, 9,176, 38,152,253, 24,107,138,127, 77, -189,251,231, 55,109,213,188, 82,206,135, 48,228,115,149, 91, 65, 35,188,109, 46, -230, 29,208, 20,252,241, 85, 28,228,133, 84,174, 60,125, 26,220,210,210,142, 81, -194,185,249,179, 59, 9,107, 87,176, 3, 26,240,240,162, 99, 24, 22, 46, 3, 18, - 86, 20, 88,114, 88,234,114,134, 80, 58, 56,133,247,253,234,223, 14,132, 79,104, -217,153, 6, 90,120,243,207,144,107,154,174,171,186,153,154,143, 68,149,191, 27, -205, 92, 3, 92,147, 70,238,186,204, 0, 66, 4,141,156, 71, 35, 48, 51,120,133, -106, 51, 51,179,193, 95, 58, 43, 90,242, 66, 95,125,239,216,172,240,168, 48,195, -133, 33,137,131,173,241, 34,198, 46,149, 96,119,187,120, 8,151, 17, 28, 73,236, -179,169, 32,163, 26,172,125,247,102, 92, 31, 24,110, 16,144,247,193, 7,145, 1, -127,159, 89,137,231,185,195,146,184,133, 4, 72,158, 62,227, 33, 35, 30, 53, 1, -181, 83, 90,132, 96,172,140, 27, 69,214,197,139,141,116,105,246, 13,222, 55,197, -141,210,246,230, 14,194,101,101,255, 28,120, 13, 95, 19,184, 18,164,217, 69, 27, - 83,167,129, 91,126,235,198,136,127,180,186,127,224,104, 32, 74,156, 4, 32, 64, -212,225,192, 66, 13, 88,225, 64,174, 96,141,254,142, 32, 44,140,128,116,109,213, -184,164,126,153, 31,162,232,135, 2, 1,157, 27, 50,200, 2,142,189, 76,134,233, -215, 24, 20, 58, 83, 74,147, 26, 90,112,193,165,154,236, 36, 70, 63,144, 97, 52, -225, 86,217, 7, 72,254,158, 2, 25, 53,208, 64,240, 73,243,131,166,158,184,162, - 82,238,145,132, 48,108, 5, 6, 57, 25,143, 36,174,155, 33,200,144,176,250,135, -241,111,194,228, 18,235,176, 49,230,134, 73, 10,123, 22,195, 24,224,234, 12,218, -151, 41,135,101, 21,201, 21, 43, 7,124, 92,135, 29, 8,190,105, 55,196, 78,196, -177, 17,234, 30, 33, 74,233,172,121, 67, 88, 47, 88,228,121,113, 52,143, 63,201, -251, 28, 7, 34, 59,105,196, 33,119, 70, 37, 7,139,218,202, 71,129,225, 31,108, - 72,136, 40, 24,211, 60, 48, 43, 66,160,247,207,149,225,217, 56, 79,224, 28,126, -195,216, 1,141,233, 5,189,250, 75,254,131,168,186, 95,188,202,103,132, 40,185, -176,140, 14,156,227,223, 58,155,247, 20,176,160, 71, 66, 42,108, 87, 88,229,151, - 77, 96,187,210, 10,128, 78,236,134,196,238, 86,224, 10,213,230, 91, 67,249,189, -151, 22,184,107, 74, 23, 66,107,125,102,143,116, 60,117, 24, 30, 39,147,220,198, -120,187,249, 46,227,120, 59,204, 19,164, 44,216, 33,101,135, 91,208, 42, 84,124, - 58,184,130, 34,255,165, 53,185,203,130, 20,153,114, 25, 2,152, 36,140, 52, 86, - 7, 77, 98,147,133,246,192,138, 92,106, 60,169, 14, 27,195,202,128,182,115, 40, - 40, 46,255,125,168, 16,184,221,218,127,193, 55,110,119, 84,122,168, 2,204, 64, - 29,105, 76,202,171, 59,183,248, 12,148, 42, 99, 6,147,145, 24, 41,140,197,144, -100, 18, 55,172, 67, 81, 14,159,130, 96, 87,112, 74,247, 26,188, 77, 6,224,203, -190,211,122,127,122,202, 8, 9,241, 10,110,141,128,229,216,245,193,178,143, 79, -221,183,199, 60,152, 23,248,211,163, 96, 99,103,208,243,248, 30, 39,114,121,186, -150,142,225,219, 57, 23,104,211,101,233,143,142, 79, 44,220,231,142, 93,216,114, -110,160, 92,167,104,236,112,144, 71, 71,120,200,173, 39,236,134, 23,111, 48, 4, - 29, 65,124,102,124,143,212,204,199, 50,209,102,146,218,248,142, 36,134, 83,228, -178,202, 48,219,174,121, 96,241,157,145,231, 29,133, 33, 10, 99, 27, 76,105,108, - 84, 50,227,113,249,209,142,156,245, 15,245,202, 56, 17,103,237, 57,216, 82,174, - 88,228,243, 41,134,224,196,116,231, 1,207, 19, 99,225,155,164,152,224, 91,118, -103,193, 18, 83,105, 68,245,132, 63,202, 79,254,203,159,234,160, 34,153,118,196, - 43, 20,140,172, 83, 19,136,169,141,232, 71,110, 23, 50,241,107,106,101, 26, 64, -239, 80,113,210, 24, 91,198, 99, 21, 26, 97,148,152,204,157,195, 96,232, 57, 15, - 5,215,174,189, 15,128, 62, 96, 99, 14, 15,228,226, 34,194, 51,180, 2,180, 83, -153, 40, 99, 67,240,192, 70,123,171,238,192,128, 8, 96, 72, 55,243,136,227, 13, -217,121,148, 73,197,135,150, 76, 69, 1,206, 63, 13, 27,175, 16,112,150,177, 96, -215, 67, 81,167,145,161, 37, 18,253,128, 85,111,190,224,108, 34,247, 75,174,133, -118,160,205,119,128,192,224, 72,197, 87,238,136,117,180,183, 66, 44, 16,101, 36, -226,103,193, 29, 82,115, 0,161,146, 18,114,138, 68, 53,164, 39,130, 68, 73,100, -152,205,135,119,215,206, 60,126, 18, 33,140, 81,115, 63,100,164,227,151, 49, 84, -102, 56,159,223,182,209,165,101, 57,207, 36,204,227,237,133,146,253, 9, 27,208, - 22, 79,137, 96,205,200, 27, 14,162, 54, 3, 36,114, 43, 22, 3,208, 85, 15,153, - 64, 86,141,112,200,238,148,230,136, 18,176,232, 46,245,113,223,127,245,120,136, - 35,194,165,111,114, 12,119,208,135,175,148,241, 55, 68, 18, 17,142,225,152, 55, - 60, 22, 97, 73,115,152,138,123, 39,162,201,230,224,145,148, 92,248, 65,183, 68, - 75, 20,111, 41,139,160, 19,107, 39, 66, 66,203,127,139, 87,158,173, 0, 70,227, - 57, 94, 88,231,197, 96, 91, 59, 58,200,238, 63, 0, 67, 89,248, 48, 70,207,211, -197, 50,184,128,216, 95,199, 10, 97,251, 35,169, 66, 95,218,123,215, 24,140, 63, -119,185, 72, 44,255,196, 94,161,142, 46, 66,101,209, 20, 82,127,189,187,166,184, - 88,245, 22, 11, 74, 85, 81, 97,159,194,191,104,146, 70, 22,146,138,163,211,166, -165, 80,249,217, 16, 35, 58,252, 41, 77, 14,171, 10, 84, 62, 76, 84,227, 50, 7, -134,120,251, 26, 27,122,223,255, 34,248,162,151,116, 36, 20, 73,137,119,164,184, -226,126, 13,133, 14, 10, 59,210, 20,189,121,131, 45,215, 18,162,211, 58,211, 33, -182, 89, 33, 30,218,153, 85,216,241,116,186,228, 82,164, 88,240,235,194, 35, 62, -247, 51,213,210, 28, 45, 30,204,154,178,168,111,148, 41,246,234,137,180,130,206, -186,240,198,200,245,255, 33, 11,237, 98, 36, 64,212,189,188,211,214,119, 84,130, -173,206,105,110,158,202,137,136,145,253,249, 43, 97,116,170,169,153,206,227,210, - 57,255,236, 62, 60,164,114,110,221,174,129, 87, 41,225, 56, 82, 54,172, 30,189, -146,179, 84,122, 74, 95,169,138, 83, 87,197,242, 1,205,168,125, 14,201, 16,168, -105,190,203,218,234, 19,126,229,175, 63,109,134, 5, 48,229, 24, 14, 21, 56, 90, -157,127, 74,228, 88,245,241, 90,134, 53,229, 49,211,201, 61,228,131,238, 30,118, -195, 33, 4,112, 85,171, 53,150,166,195, 42,201, 53,186, 33,137,225,117, 31,145, -144, 44,145, 89, 85, 20, 89, 23, 37,174,179,244,151,165,251,219, 60, 40,125,192, - 83, 73,169,143,216, 98, 14, 80,224, 89,173, 73,127, 98, 81,241,189,201, 78,246, -215,150, 96,201,228,242,157,103,221, 69,122, 98, 53,242,154,147, 88, 45,215,188, -180, 30,224,199,215,178, 8, 18,148,213, 95, 82,105,223,118, 83,165, 9, 61,106, - 15,219,250,160,250,210, 99,140,156,143, 16,231,191,131, 70,185,249, 31,154,222, - 19, 94,137, 76, 26,227, 18, 1,116, 31,120, 52,180,137,197,155,229,184, 87, 65, - 45, 52, 74,160, 76,164,221,151, 26, 61,126,156, 39, 6, 93,195, 85,203, 25,113, -144,100,233,221,222, 18,233,188,174,199, 98, 27, 26, 34,170,237,161, 17,234,247, -106, 35, 81,161,210, 54,158, 9,193,240,196,186, 44,218,186,121,226,234,178, 22, -132,145,170,101, 85,248,213,178,215, 61, 30, 90, 76,107, 35, 0, 15, 71, 70, 66, -120,152, 63, 69,198,246, 67,160, 97,239, 4,231,241, 21,125,203, 80,173,217, 29, -105,130, 30, 8,146,112,131,113,162,189, 7, 28,130, 26,191,223,101,112,255,246, - 62,120, 55, 73, 84,161,224,122,144,175,197,185,150,110, 9, 95,234, 33,114, 50, - 75,151, 61, 72,170,201, 55, 9,222, 57, 34,212, 49, 46,250, 32, 16,151,189,164, - 46, 59,174,241, 24,137,227,156, 7,131,148,242,183,100,231,101, 37,227,100,241, -144,142, 66, 80,232, 5,147,159, 17, 18, 64, 20, 2,174,105,168, 50,184, 8,225, - 12,205,175, 75, 81, 51, 30,107, 31,113,206,246,245,219,225, 16,124,176,112, 58, - 36,180,175,136,140, 27,206, 56,162,117,192, 46,174, 9, 9, 11, 81, 17,104, 13, -121, 48, 84,149, 13,121,175, 5,172,235,241,248,250,159,250, 88, 8,127,224,250, - 42,201,139,221,114,163, 14,138,170,132, 6,180,206,201,161,238,146, 65,169,169, -179,132,204,188, 94, 98,170, 40, 63,168,184,149,103, 64,215,157,216, 26, 56,238, -157, 79,229, 95,116,216,247,156,123, 54,230,199,101,127, 16,239, 51,109,136,239, -193,229, 60,182,110, 6,183,190,107,135, 1,178, 60, 38,231, 41,194, 54,218,122, - 41, 22, 31, 13, 70, 46, 56,183, 99,230,149,131,109,239,171, 32, 23, 95, 91,178, -213, 74, 32,119,120, 15,169, 78, 1, 86,147,219,112,147, 93,148,119,175,198,166, - 75,226, 41, 64,250, 8,199, 1, 67,105, 48,244, 91,252,227,194, 31, 93, 57,166, -210,125, 13,225,223,227, 88, 10,248,239,206, 35, 17, 6,250,202,194, 90,231,169, -126, 5, 35, 83,136, 81, 5, 16,160,217,122,114,157, 86,241,147, 28,104, 26,201, -123, 48,195, 68, 64, 75,181,208,125,198,153, 40, 52, 0,250,214,160, 65, 54, 56, -231,215, 66,107,219, 74,184,221, 43,184,176, 93,241,194, 96, 39, 32, 42, 12,209, -225,111, 0, 55,196, 14,104, 60, 89,133, 25,201, 93, 72, 54, 59, 43,182,155,110, - 10,203,165, 5,167,158, 42, 14, 36,234, 72,165,221,170,228,219, 71,122, 45, 2, - 44,137, 14,151,144,201, 48, 25, 2,193, 96,115, 13,191,124,126,206,148,127,135, -207,247,214,120,244,145, 43, 39,140,135, 12,203, 29,185, 35, 9,117, 83, 47,166, - 79, 98, 65, 28,247, 90,127,103, 90,148,156,201,160, 69, 34,173, 85,201,179,108, - 39,201,211, 69, 10,132, 81,179, 42,143, 11, 36,208, 85,136, 50,244,203, 47, 96, - 89,101,249,147, 86,210,177, 78,207,192, 0, 42,234,115,206, 54, 71,125, 95,245, -173,250,220, 66,219, 84, 9,147,180,220, 82, 92,172, 55,113, 56, 28,169,102,104, - 4,105,251, 0, 84,107,200,228,231,232, 9,197, 67,137, 53,146, 32, 85, 23,153, -237, 35, 38,168,195, 2,197, 78,104, 93,179,168, 99, 67, 96, 7,214, 74, 26,246, -144, 75, 11,176,140, 10,233, 1,253,131, 40, 25, 18, 55,100,255, 81, 59,148,164, -162, 38, 94,179, 14, 33,223, 44, 52, 16,236,205, 6,165, 95, 89, 39, 35, 66,177, - 55, 3,101, 83,250, 63,149, 17,115, 40, 29,132,164,198, 68,182,108, 50,146, 31, - 37,155, 98, 79, 38,124, 83, 52, 72,132, 37,237,189,239, 79,194, 64, 92, 77, 77, - 60, 25,193, 90, 77, 31, 35,207,206,202, 5, 57,249, 20,181,199,201,176, 89, 37, -115,147,133,122,148, 36,155,108, 45, 79, 32,107,251, 88, 54, 25,224,197,101, 23, - 24,111, 27,211,242, 68,209,216,197,148, 93, 68, 55,146, 86, 16,132,168, 27,106, - 31,159,201, 4,219, 69,229,188,201,130,108,147, 73, 41,158, 41,153,150,135,233, - 80, 50,230,186, 46, 61,201,122, 18, 46, 61,244,163,180, 9, 52,235,221,187, 0, - 66,103,235,231,234,203,218,181,145,193,199, 93,134, 93,144, 92, 18,133, 31,100, -198,117, 26, 43, 3, 57,130,156,142, 5,207,250,191, 6,204,215,149,160, 73,178, -133,162, 62,113, 81, 95, 35,212, 28,137,231, 93, 32, 92,211,212, 55,126,151,117, -210,222,104,141, 1,119, 0,139,220, 44,114, 65,218,251, 60, 91,100,157,202, 33, - 92, 56,183,167,182,208, 93, 26,160, 79,112, 4,147, 78,156,154, 62,108,155,225, -134, 38, 27, 98, 53, 2, 53,173, 52,117,244, 80,157,227,143, 49,198,136, 68, 21, -150,184,219,155,184, 43,162,233,248,232, 14,213,147, 19,100,232,169,232,125,232, -229, 99, 5, 25, 99, 13, 63,246,223, 89, 86,206, 33,131, 84,157, 16, 57, 76,132, -233, 85, 2,214, 43, 71,241, 12,213,149,242,176, 24,171,215, 16,180,199, 56, 3, - 36,154,244,239,255, 47, 13, 52,140,114,193,214,108, 70,139,149,137,248, 6,198, - 22, 62,132,129, 37, 98, 31,159,121, 69,108,109, 72,132,198,179,245, 1,197,137, - 0, 2,231, 96,213, 82,151, 65, 55,134, 32, 46,224,129, 98,237,116,109, 83,104, -112,252, 36,159,147,252,127,177, 48,212,225,175, 19, 70,235, 5,129,156,104, 87, -246, 30,177, 6,214, 88, 50,175,115, 29,215, 95,238, 64,186,244, 0, 13,112,157, - 22,130,117,139, 80,250,131, 51,121,115,254,193, 9,112, 58, 41, 10, 87,169,235, -146, 61, 74,238,225,241, 55,176, 47,187, 68,132, 16,132, 71,173,246, 91,165,215, -123, 76,233,158, 22,233,197, 47, 48,240, 16,110,121, 2,225,164, 34,133,185,226, -132,229, 60, 9, 74,149,103,133, 51,208,245,234,221, 85,197, 22, 16, 51, 6,236, -135, 86, 11,125, 22, 53, 18,237, 40,221,141,172,121,241,208, 37, 6, 71,139, 27, - 28,233,135,147,105,165,161, 20,245,137,213, 79, 15,148, 40, 9,192, 90, 63, 74, -176, 93,194,213,243, 47,191,229,102,116,220,205,224, 75, 82,172,236, 13,106,132, -252,101,148,198,163,139, 50,156,169, 8,204,168, 4,213, 50,163, 81,182,183,146, -153,143,144,126,128,239,181,217,162, 44, 66, 60,199, 40,226, 84,132, 60,251, 27, - 1,172, 71,217, 80, 32, 14, 45,238,110,112, 82, 44,130,175,160, 5, 29,239, 91, - 82, 97, 41, 64,162, 35,235,156,195,226,181, 16,243, 26,116,115,126,212,218, 85, -240, 75, 82,127,242, 3,219, 94,222,192, 17,250, 28, 88, 76,180, 16, 16,233, 82, -175,192, 34, 65,249, 19,140,180,195,227, 5,174,162, 48, 56, 66, 10,105,161,211, - 42,157,152, 44,207,238,244,196,125, 91,155, 75, 42,250,245, 30, 16, 5,216, 7, -160, 56, 88,213, 42,121,155,224, 79,218,147, 51,235, 4,183,148, 26,231, 25,123, -249,243,245,155, 14,118,142, 1,113,230,160,164,168,223, 50,140,243,196, 47, 4, -227,207,110, 13, 37, 53,194, 25, 9,211,244,138,255,250,100,165,208, 2,100,153, -144, 31, 10,190,199,194, 22,117,157,246, 71, 55, 76,100,184,250,221,207,156, 95, -212, 5, 14,194, 3,100,162,242, 15,172, 3,189, 43, 54, 77,212, 68,126,216, 92, -209,246,165, 33, 42, 76,123,206,219,109, 92,190, 23,136, 47, 31,243,121,123,197, -238,177,152,254,255, 88, 94,196, 46, 4,128, 1,246,128,198, 14,191,218,142, 45, - 94, 64,244,197,172, 9, 82,253,190, 54, 61, 5,220,188,102,133, 11,158,188,169, -158,135,190, 84, 17,111,101,198, 94, 96, 33, 84,178,246,193,126, 77,113,238, 38, -117, 56, 56,222, 90,238, 27,194,250,191,113,218,228,248,111, 74,141,149,128, 63, -253,240,133,242,249, 83,207, 5,108,177,236, 46,189,134,129,108, 69,119, 25,162, -236,130,128,141,245,149, 32,113,166,239,184, 4,111, 37,135, 43, 34,196,212,187, - 26, 67,239, 78,199,203, 92, 5,223,112,147,199,223,178, 82,112, 19, 65, 27, 60, -176, 9, 23, 45, 8, 52,213,185,241, 6,128,103,116, 30, 98,177, 27,177,109, 76, -123,145, 73, 77, 73, 78, 63,190, 62, 30,150, 16,241, 10,167, 80,181,200, 8, 86, -200,107, 42,113, 92, 58, 61, 73, 65, 71,254,222, 66, 36, 14,150,177,217, 50, 62, -205,251, 84,232,136,123, 90,106,116,220,201, 97, 62,250,211,107, 62,129,209,224, -161, 72,176,244, 4,133,154, 33,234, 2,145,122,181, 25, 46,103, 30,243, 14,147, -175, 2,158, 82,183,152,201, 93,217,132,100,202,181,162,243, 44, 94, 39, 0,175, -255,180,240,127, 73, 29,146,159, 16, 34,251,152, 16,115, 43,219, 37, 14,210, 76, -178,201,199,193, 48,230, 70, 32,238,144,191, 60,102,137,172, 94,228, 60,151,134, - 30,245,245,140, 74,149,253, 73,110,240,102,243, 9, 21, 10, 42, 52, 43,154,227, -222,232, 52,135, 91,122,226, 74,200,179,239,130,117,210, 44,112, 32, 11, 43, 39, - 71, 75, 11, 56,221, 23,114, 11, 55,242, 81, 2,145,186,196,237, 14, 56, 74,112, -199,189, 64, 3,153, 83,217, 20,126,144, 2, 29, 56,124,236,102,199, 39, 16, 55, -101,128, 87,167, 55,246,167, 81, 14, 69,180, 21,131, 82,217, 65,204, 78, 5,205, -193,178,203,240, 31,224, 74, 66,230,153, 97, 69,175,236,184,138,250, 18,251, 79, - 12, 90,159, 60,243, 10,130,168, 0,103, 13, 17, 75, 7, 19,111, 42,202, 44,170, -178, 3,155,141,183,250,101,152, 94,172, 4,216,145,151,207, 27, 61, 55,219,154, -220,167, 44,163, 63,211,179,182,203,118,148,106, 57,218, 56, 44, 26,103,181,215, -148,132,205, 47, 17, 55,190, 74,212, 8,241,192, 26, 6, 32, 97,125,168,186, 23, -109,253,213,127, 84,149, 78,167, 41, 46,145, 59, 40,242,206, 79,245,168,151, 82, -249, 67,155, 49, 89,128, 8,215,244, 78, 53,230, 43, 99,152,226,146, 1,232,204, - 52,231,204, 18,118,235,137,250, 0,110,219, 76, 33,192, 97,224,209, 16,209, 13, -133, 34, 70,231,177,158,137,138,117,130,178,241,164,171, 85, 59,146,232, 62, 55, -212,222,115,138,201,221,177,180, 67, 92,103,112,149,114,242, 40,155, 1,178,141, -173,112,187, 97, 60,223,133, 14,132,223,229,217,249, 9,130, 94,158, 8,142,222, - 51,146, 67,211,154,169, 18,191, 9,246,163,193,168, 96,222,154, 42,186, 39,100, -151, 31,227, 24,141,219,181,245,216, 80,199,247,136,130,220,236,106, 58,184, 16, -152, 65,162,114, 88,181, 61, 76,253,179, 21, 23,236,120, 0, 84, 72,181,192, 39, -208,172,178, 21,202,100,137, 94,127, 22, 11, 81,143,221,157,101,175,102, 1, 52, -187,117, 57, 29,156,207,239,167,118,106, 46,193,214,208,166,133, 30,105,126,177, -165,103,172, 28,139, 23,198,130,133,137, 17,101,230,154, 8, 76, 24, 0,224, 74, - 30, 24,245, 11, 94, 75,217, 95,164,109, 30, 84, 50,214, 96,115,227, 95, 63,224, - 82,172,176,123, 55,159, 73, 92,229, 48,130,129,196,249, 93,148,249,187, 29, 69, - 69, 81, 15, 44,170, 11, 47, 83,187, 1,109, 33,206,187, 67,218, 64, 28,155,230, -156,138, 82, 35, 47, 18, 36,176,144,113, 35, 80,140,222,136,211,104, 89, 55,133, -219, 42,212,235, 85, 46, 43,224, 2,157,194,133,161,241, 48,224,126,124,166, 43, - 40, 9, 7,151,165,195,148, 97,239,167,221, 82,179,152,223, 59,210, 30,213,182, - 8,196,241,213, 20,161, 19, 46,208,156, 56, 64,243,224,204,186, 3,194, 45, 97, -116,193, 21, 81,194,149,240, 73, 13,235,209,108, 42, 79, 79,208, 65,148,138, 35, -250, 54,220, 22,236, 96,193, 7, 63,118, 57,158,232,164,191,191,196,255,211,126, -247, 49, 21,174, 85, 82,146, 81, 61, 19,110,148, 66,248,246,121,127,229,186, 42, -239,124,205,243,148,231,203,100,184, 82, 44,232,191, 62,170, 89,164, 60,241, 31, -197, 49,163,238,221,130, 19,174, 53,192, 75, 84,176,235, 12,194,118, 29,223,176, - 43, 22, 86,152,102,115,121, 29, 93,138,137,237, 3,101,142, 38,129,159, 53, 89, -101,115,158,243,102, 19, 23,212, 45,186,252, 18, 35, 80, 24,118, 6,179,204,127, - 0, 7,113,206,214, 74, 46,153, 15,250, 71,249,168, 9,233,178,251,145,147, 17, -107,143, 25,230, 31, 12, 98, 33,146,111, 11,127,120,254,169,205,168,203,223,232, - 72, 11, 62,249, 25, 94,114, 62,114,192, 75,104,141, 79, 86, 31, 19,222,117, 73, - 80,187,239,239,174, 64,142, 93,111,196, 98, 31, 58,139,196,198,152,145,170, 48, - 24,178, 44, 27,125, 93,239,182, 89, 88, 84,156, 67, 13, 35, 72,184,198,200, 69, - 62, 69,164, 58, 43,166,240, 51, 64, 5,249, 8,135,245,157, 86,225, 84,240,236, -135, 74,251,224, 56, 17,194,164,245, 1,166,108, 37,200,128, 28,126, 42,147,170, - 71,161, 69,174, 76,218,237,229, 77, 85,244,218,161, 35, 35,137,227, 67, 92, 87, -143,160,114, 99,128,202,139,112,164, 41,116, 6,159,116, 32, 43, 57,243,197, 5, -236, 26, 15,121,118,164,235,226,137, 66, 3, 89,143,142, 24,104,103, 8,151, 91, - 9,114, 17,245,107, 40,155,250,209,220,214, 69,177,219, 51,220,219,166,231,136, -230,106, 60,148,184,132, 12, 18,122,235, 82,239,140, 43,153,176,112,100,101, 78, - 66,167, 1,175,228,190,194, 32,166, 83,180,252,230,132, 80, 6,143,113, 1, 29, -147,228, 30,151,211, 32,106,133, 21, 34, 65, 20,133,209,243, 36,146,123, 47, 11, - 70,207,127, 92,250,225, 1, 80,240,154,225,233,188,113,117, 6, 87,210,115, 63, - 60,213,188,147,170,233,115,232, 87,227, 82, 60, 29,216,230, 65,231, 64,173, 15, -179,140,239, 52,192,101,144, 30,139,144, 43, 2,215,118,112,212,227,221,221,205, -235,182,196, 94,139, 31, 36,107,200,110, 85,180, 98, 8,203,122,167,106,123,195, - 11,210, 68, 80,251, 7,158,118, 44,110,184, 10, 51, 46, 59,122,149,233, 66, 45, -206, 99,202, 67, 10, 63,201,111, 20,163, 7,192,105,215, 27,184, 44,229,108,212, -216,124,228, 65,136, 43, 78, 54,152,251,248, 71,149, 13,225,255,108,110,222, 64, -218,195, 49,230,204,107,207,164,225,107,247,140,125, 31,214,181,214,111,211, 29, - 26,136,179, 12, 93,220,234, 32, 96,125, 91,144,206,222, 11, 84, 94,143,113, 20, -109,180,123,135,154,209,156, 47,133, 68,100, 19,139, 9,168,152,120,105,105,164, -143,206,213,115,111,252, 73,160, 54,171, 31, 3,234,101,225,153, 15,187,249,156, - 2, 56, 8,137,101,101,145,121,194, 27, 19, 66,200,215,113, 69,169, 49, 17,147, -105,178,133,255, 15,162,236, 19,138,142,255, 59, 84, 99,233, 72,199,223,216, 5, - 91,229,133, 80,162,165,118, 34,228, 15, 29,248, 55,212,155, 66, 9,169, 4,250, -178, 33, 76,246, 83,150,218,211,165,134, 37, 37, 48, 73, 46,106, 68,201,112,188, - 1, 58,193, 52,218, 39,195,109,227,150,243,200,109,133,171,192, 39,199, 22, 70, - 9, 36, 64, 96, 78,148,174,156,230,203,107,192, 28,166, 70, 37,130,114,180,157, - 22,126,108,123,131,124,249,148,164, 16, 70,118, 4, 48,137,127, 7,245, 36,141, -163,129, 13, 36,253,254, 98, 23, 48,141,116, 12,133, 49,116, 50, 99, 58,117, 69, -117, 51,178, 33,136, 84,173,121, 54, 44, 45,255, 38, 1,230,245,151, 32, 68,164, -245,201, 18,225, 3,112, 99, 62, 16, 68,166,208,248,244,140, 53,210,116, 92, 67, - 15,181,142,111,129,111,106,124,113,132,173,197, 34,147,207, 71,137,233,209, 72, - 34, 36, 94, 58,199, 46, 29,148,182,145,133,206,248,199,149, 9,247, 17, 2,220, -225,128, 80, 32,235,214,140, 63,133, 15,157,200,246, 92,142, 96,200,187,115, 72, -185, 12, 64,105,186, 68, 76,244,108,189,220,145, 5, 67,218, 35,125,151,137, 53, -208,101,185,190,114,133,222,231, 31,251,163, 15, 72, 51, 16, 10, 39, 1, 73,149, - 39, 6,162,235,121, 63,117,147,222,203, 4, 96, 54,219,173,241, 17, 36, 21,129, - 49,139, 4,107,116,183,163,251,195, 27, 88,182, 2,241,249,233,223, 10, 12, 81, -209, 69, 58,171, 85,169,107, 71,195,115, 38, 28, 48, 45,156, 27, 15, 64, 35,152, -114,164,233, 41, 59, 33,165, 46,171,228,192,169,117, 58,209,213,144,200, 49,196, -242,143, 14,115,197,156,213,117, 35,104, 12,153, 78,105,233,193,145, 82,255, 32, - 5,205, 89,208, 88,111,176, 7,125, 71, 70, 42, 56,233, 9, 7,127, 38,100, 36, - 78, 55,200,172,110, 10,184,180, 82,110, 19,210,145,185, 64,102, 76,246,118, 23, - 44,247, 28,233,243,109,175,117, 23,168,213,176,139, 78,101, 66,146, 24,186,166, -158,169,222, 62, 5,198, 86, 50,190, 47,232,222,198,118, 41, 33,208,111, 17, 18, - 33, 14,130, 82, 34, 43, 7,153, 61, 34,102,236,208, 69,135,159, 37, 32, 95,239, - 34,163, 42, 57,203,165, 72, 68,104,142, 73,223,135,154,136,114, 38, 0, 63,211, - 17, 86,163, 56,136,128,171, 96,249,242, 61, 19,112, 83, 32, 16,218, 89, 48,110, - 46, 12,234, 58, 10,156, 96, 39, 69, 0, 71,244,164,177,146,190, 80,213, 17, 66, -252, 25,187, 81,220,102,226, 24, 72, 74,233, 86, 30,255, 8,209,233, 99,239,230, -131,247, 4,209,235, 91,249,184, 19,126,206,240, 72,157,193,196, 40,239,234,188, -202, 77, 51,180,235,187,243, 2, 96,154, 20,252,226, 23,211, 87,229, 73,240, 74, -211,178,207, 35, 29,210,215, 33, 89, 42, 47,194, 76, 32, 63,209, 63,120, 16, 20, -124, 8,155, 4, 13,247,255,253,222, 51, 96,168,192, 52, 87, 8,167,247,173,138, -245, 81, 4, 59,163, 8, 36, 78,172,126,174, 83,102, 61,198, 9,205, 40,158, 33, - 21,136,173, 32, 43, 8, 48,147, 46, 39, 63, 40,240,123,119,164, 13, 65,240, 56, -160,217,250,165, 56,138,113, 93, 7,128, 41,156, 37,132,145, 23,214, 98,191, 32, - 69,147,166, 40,234,178,226, 90,237,178, 62,202,179,149,220, 44,254, 99, 13,136, - 44,181,152,128,139,162, 64, 23, 80,112,243,114,126,148, 11,156, 39,102, 89,114, -246,161, 22,130,117,103, 33,249, 1, 49,137, 7,204, 32, 6,189, 30,184, 69,230, - 85,142,253,249, 60, 33, 95,232,238,237, 66,147, 33, 73, 78, 82, 26,159, 68, 82, - 92, 44,143, 15,210,100, 56,193,163, 13, 5,103,227,130,132,153,237,157,149,232, -243,175,240,206, 84, 11,137,112, 17, 36, 95, 28, 87,132, 57, 86, 17, 3, 57,185, -247,190,137,164,109,226,164, 66, 70,130,178,206,202, 83,180,203,112,107,253, 33, -169,108,137,129, 85,196, 36, 41,253, 47, 74,198,204, 70, 86, 23, 52,181, 85,245, -152, 5, 31,164, 67,194,107,160, 94,215,101,214, 74, 39, 12,189, 43,162, 26, 21, -215,141,241,184,207, 99,192,228,240, 43,103, 73, 69,198,104, 10,150, 95,213, 64, - 17,100,111,140,136,139, 60, 9,183,178, 87, 10,108, 26,141, 6,194,214, 83,124, - 92,243,248,220,195,164,169,205,139, 80,196,105, 86, 4, 69,131,114, 46, 86,103, -191, 57,231,191, 15,200, 7, 20,207,166, 73, 42,207,123, 67,176,159,140,210,197, -249, 43, 5,134,241, 42, 70,188, 88,135,184,167, 83, 88,188,188, 69,134,203, 22, -249,223,155,169, 20, 91, 23,249,186, 51,226,222,229,120, 56,104,164, 8,220,197, -117,248, 74,252,224,195,142, 93,125, 42,221, 17, 77, 96,255,205,181,136,188,120, -251,208, 95,125, 31, 59,121,117,226, 87, 46, 10,164,141,188, 59, 95, 85, 52, 69, - 39,188, 62, 12,229,190,166,237,100, 29, 68, 81,143,237,241,134,101,174,121, 0, -148, 16,180, 56,193,117, 0, 32, 47, 72, 62, 5, 83, 27,174,153,127, 56, 1,245, - 10,147,175, 82,146,187,219,199,156,161, 90,103, 49,121, 75, 37,189, 95, 27,135, - 13,178,159, 32,105,213, 26,157,200, 36, 63, 91,195,219,186, 46,235, 39,173,165, -233,242,174,167, 35,116, 56, 17,161,178, 86,124,184,205,252,166, 96,225, 47,135, -113,194,185,165, 7,117, 65, 83, 99,119, 6,185, 11,109,209,206,133, 26, 15,167, - 16,164,105,136,162, 74,101,244,200, 23, 52, 95, 1, 26,105, 24, 20, 40,192, 16, -237,250, 63,183, 21,222,170,154,220,116,154,139,206, 69, 33, 83,182,111, 89, 86, - 13, 6,105,118, 48,157,148, 98, 34,150, 0,203, 34, 8,154,166,114, 1, 45, 1, - 67, 1, 52, 1,158,186, 1,125, 22,210, 91,146,200, 96,179,202,211, 49, 12, 43, -248, 32, 62, 34,208,107, 13, 18, 91,140,203, 26,153,101,245,126,205, 62,255,138, - 34, 58,240,231, 9,213,168,138,242, 4,179,236,108,178, 80, 94, 65,157, 85, 99, -127, 67,252,217, 77,145, 8, 41,201, 36, 38, 73,118, 18,133,153, 21,193,212,149, -199, 93,243,127,121, 58,202,244,206,106, 55,121,103, 50, 73,172,120, 77, 17,255, - 19,155,170,183,176,145,124,205,119, 11, 99, 49,151,163,109, 84, 62, 77,221,158, - 5, 42,239,247,236, 55,151, 97,165,142,236,205,103, 5,135, 81, 84,148, 40, 42, - 48, 69,206,100,134,144, 97,137, 49, 62, 90, 98,148,237,171,126, 70,179,147, 14, - 25,184,104, 22,198,137,157, 52, 58,113,234,251,100,201, 19, 91,180,155,101,213, - 55,180,100,120, 45, 92,178, 86,201,170,252,113, 53,142, 37,204,113, 38,209, 55, -237,232,113,104,187,203,215,249, 56,189,157,138,150,144, 89,150,113,100,146,124, - 93,151,150,117,115, 96,142, 81,112, 87,188,207,161, 81,207,171,233,190,194,177, - 36, 97,173,208,100,159, 77, 58, 43, 74,145, 12,193, 20,109,150, 37, 75, 74, 50, -238,112,188, 36, 18,247,213,117,198, 24, 84,229,124,241,120,250,211,142,210,154, -177,106,151,214, 76,215, 76,173,102,122,107,169,189,235,170, 46,237, 82,215,157, -119,158,233, 50, 93,249,122, 28,137, 10,161,249, 8, 8, 40,244, 91, 11,195,158, -223, 33, 65, 50, 68,235, 44, 87,150,100,129, 23,216,148,203,199, 24,173, 53, 93, -152,107,175,170,229,248, 86,109,162, 46,208,241,163,223, 58,216,201,199,118,244, -119,204,168, 71, 6, 36,150, 85,171,170,227, 28,215, 0,111,249,183,215, 14, 40, -100, 69, 56,213, 64,197,192,110, 86,213, 90,214,222, 6,118,200,179,175,145,197, -237,215, 60,179,197,132,153,164,203,186,240,130, 31, 9,139,123,229,180,151,218, -209, 12, 84, 66,224,233,102,212,252,132,170, 39,188,161, 45, 71,142, 3,160, 66, -144,113,148,201,128,129,111,174,121, 86,153,101,251, 22,186,152,128, 29, 16,244, -176,230,125, 66, 38, 75,142,178,143,231, 80, 55,164,211,158, 6,176, 6, 80,245, -136,188,134,174,130, 32, 78, 87, 49,222,197, 5,222,103,202,120,116,224,252,135, -161,106, 48, 93,119, 91,247,118,114,241, 62,213,146,137, 60, 34,210,163,227, 69, -214,240, 9,105, 48, 23,103,198,230, 9,211, 48,160,103,132,207, 47,243,129,198, - 2,134, 44,214,245,228,155, 50, 74, 74, 61, 1,219,188, 3, 15,236,130, 9,168, -227,132, 48, 34, 77,245,108,242, 61,117, 60, 27,142,231,233, 20,100,255,152, 84, - 20,144, 32,203,178, 44,124,155,114, 44, 59, 48,208,128,161, 2,235,180, 33, 5, - 34, 34,216, 36,192, 10, 90, 62,205,196,187,116, 54, 13, 31,216, 17,121, 12, 21, -236,128, 64,117, 3,118, 48, 89,126,162,231,201,142, 40, 87, 77, 0,161, 18,206, - 11, 5,185,208, 46, 5,132, 55,160, 76, 97,123, 10, 77, 75,218, 16,119, 0,228, - 10,176, 64, 46, 79, 73, 54,104,173, 40,244,204, 32,173, 10,121,164, 30, 41,148, -197, 98,105,238, 1,121, 60, 34, 15, 79,152,200,168,101,129,212, 54, 47,138,108, - 14,149,146, 40,231,210,240,145, 42,239,133,125, 73, 24,182, 7,234,120, 69,245, -151, 22,121,141,163,197,244, 6, 98,148, 60,169,109,255, 29, 45,236,249,215, 3, -113, 39,182, 41,247, 52, 23, 78,109,192,200,255,255,255,255,255,255,255,102,217, -253,255,255,253,255,223,255,223,255, 15,224,255,223,255,255,255,127, 81,254, 91, -206,113, 92,115,109,185,115,110,113, 23,237,216, 18, 62,184,251, 21,187, 12, 43, -200, 14, 12, 10, 40, 4, 27,170, 53, 7,162,195,105, 0, 97, 5, 26,207,247,148, -111, 67, 80, 59,155,166,122, 32,242,242,117, 56,222, 37,219, 56,207, 38,190,208, - 15, 12, 8,180, 12, 20,226, 58, 16,171,178,157, 8,164,241,176,105, 45,180, 23, - 80, 8, 38, 30,215, 56, 95,102,219,177,137,150, 93, 52,222,135, 17,137,162, 40, - 90, 34,209,135,161, 62,136, 68,237,156, 91,158,137,166,173, 68, 23, 69,176, 54, -116, 18, 34, 72,139,162,115,220,253,199,225, 21,173,152, 47, 36,107,132,139, 6, -236, 64,136, 64, 17,222,200, 68,203,231,206,244,186, 89,218, 15, 4,105,154,130, - 32,144,129,174,195,108,148,141,178, 81, 54,138, 54,209, 38,105,173,165,236, 93, -135,217, 40, 27,101,163,108, 20,109,162, 77,208,137, 52,181, 80, 20, 99,140, 39, - 38,157,180,167,230, 42, 40, 68,143, 7,174,168,167, 41,154, 86,133, 78, 75, 31, -110,207, 88,242,129,226, 74,225, 65,166, 74, 48, 67, 83, 36,218, 27,153,141,141, -111,227,234, 54, 9,145,238,238,239, 71,108,207,139,182,190, 42,213,207, 97, 18, -255,213,113,219,150, 61, 83,170, 10, 86,232, 56,251,231,168,147, 92,121, 14,148, -198,178, 43, 97,235,171, 50,205,180, 93,105,175,152,156, 39,209,196,237, 21, 90, -111, 77,105,131,198, 50,138,207, 56, 77,194, 97, 89,153,177,170, 31, 13,209, 19, -103,209,146, 29,231,211, 62, 23,176, 66, 56,116,213,146, 73, 34,234,198, 75,249, - 42,253,153,201,101,232, 93,172,247,190, 60, 6, 78,253,199,249,194,241, 42, 56, - 31,131, 71,209,159,107,159,119, 66,127,157,218, 51, 99, 92,163,140,195, 27,230, -203,101, 44, 94,139,106,162,121, 37,243,182, 53,154,154,240,113,213, 56,150,217, -250, 10,212, 21,107,129,114,238,150,212,221,146, 78,163,181,231,181,248,246,243, -173,133,229,254,120, 35, 92,104, 35,213,130, 90,116, 37,237,219,126,220, 54,135, -210, 72, 24,137, 68,200,128, 72, 70,195,176,158,202,202,242, 83,217, 89,110,241, -234,167, 50,145, 84,168,180,121, 87,165, 34, 10, 8, 18, 83,243, 0, 8, 12,137, -140,228,242,128, 24,199, 97,201, 61,180,192, 70,132,150, 6, 14, 7, 20, 5,196, - 33,106, 48,112, 8, 8, 5,193, 3, 56,128, 1, 32, 4, 96, 24, 0, 6, 56,128, - 2, 88,200,120, 82, 97, 14,192,228,138, 68,229,159,200, 53,147,228, 48,106, 26, -178,252,193,246, 11,137, 36, 39,214,179,133, 52,142,164,126, 4,236,169,136,231, -133,158,143, 74, 35, 51,124,106, 27,197,175,189, 1, 85,208,100, 30, 95, 46, 13, -163,142,188,120,203,114, 66, 96,104,246,244,161,181, 85,124, 89,138, 12,235, 11, -155,179, 93,252, 1,206,136,176, 4, 72, 43,206, 99,136,187,215,156,113, 96,120, -241,219,245,101, 15,156,209, 90, 17,200, 51, 65,203, 16,124, 97, 44, 93,150,123, -146,155, 92,220, 58, 39, 31, 49, 22,114,212,255, 70, 83, 37, 37, 81,215, 82,190, - 86,209,142, 9, 99,148,116, 48,166,167, 36, 84,236,168, 94,213,232,204, 80,199, -123,116, 37, 92,212,228, 20,146, 58, 96, 45, 33,119,130,165, 16,138, 62, 98, 67, -196,251, 25,253,211, 17,138, 32,142,106, 78,248,122,165,102, 67, 4,135, 82,190, - 98,131,147, 32,235,181, 91, 50,243, 13,161,135,204, 30, 35,236, 39, 16, 21, 79, - 84, 12, 16,254,117,152,226, 16, 47, 78, 60,202,191,136,184,193, 80, 42, 86, 67, - 88,252,161, 27, 60,156, 88, 24, 63,245,220,161, 82, 24,215, 35,112, 87,192,146, - 17, 14,128, 92,246, 10,147, 2,234, 90,161, 39,176,253, 14, 16,113, 65,212,242, -140, 96,148,177,166, 62, 63,230, 0, 8,178, 42, 17,176,107,110,224,236,183,183, -196, 74,195, 37,253,125,108, 80, 88, 77,230, 63,223,173,161, 74,238,242,208, 49, -107,240, 17,244, 83,119,146,127,122,230,106,130, 4,196, 90,147,200,255,168, 33, -163,229, 93, 87,222, 34, 88,214, 38,191, 40, 12,226, 20,162,243,105,192,246,143, - 59, 13,194, 8,207,248, 11, 4, 35,212, 9,146,184, 98,106,211, 65, 24,194,121, -133,142, 41,157, 30, 28, 97, 48,194, 71,231,128, 38, 4,141, 49, 39, 61,189, 95, -176,250,171, 96, 79, 43,240, 59, 2, 37, 60, 40, 46, 4,191, 55,184, 4,132, 17, - 31,134, 48,191, 23, 99, 6,193,136,149,124,163, 66,129,245, 73, 52, 61,208,165, -113, 37,252,185, 5, 22, 9,246,104, 5,192,125,160,103, 27,100, 9,132, 70, 18, - 0, 61, 15, 79, 56, 72,145, 0, 13,199,113,203,137,218,199, 6,177,238,112,102, - 0,131,115,109, 43,225, 69, 62,225,153,190,127,183,207, 64,174,199,140,159, 76, -135,149,168,195, 17,114,164, 90, 5, 47,218,132,133, 80,189,102,170,209,115,141, -242, 18,206, 96,220, 9,132,223, 5, 59,178,104, 25, 91, 50,217,251, 42,173, 17, -209, 61,121, 97, 57, 12, 5,222,197,119, 62, 66,151, 82, 26, 41,175, 83,210,252, -141, 8,176,168,229, 67, 58,255, 78, 50, 62, 40, 68,235, 64,180,113, 45,210,168, -187,145,167,242,178, 54, 95, 64, 74, 99,244, 9, 14,114, 97,129,215, 21,193,221, -212, 41, 85, 28, 18,135,205, 4,218,184,239, 63, 33, 7, 71, 64,165,131,157,202, -122, 83, 80,119,210,220,104, 41, 40, 34,158,227,134,114,108,112, 81,132,209, 41, -133, 98,122,110,253, 24, 6, 82,106, 40,148,234, 7,211,159,143,162,188, 75,203, - 0,138,165,188,123, 75, 63,211,197,133, 91, 20, 28,172,159, 45,215, 3, 94, 5, -174,213, 39,158,196,177, 61,204,182, 76, 42,223, 70,149, 79, 75,173,189,243, 6, - 97,105, 96,232, 5, 3, 65,243,152,118,178,225,151,117,133,167,128,114,146,173, -200,170,102,187, 57, 29, 95, 5,105, 19,186,125, 20, 58, 37, 67, 42, 52,187,156, - 56, 46, 98,201, 94,106,181,158, 49,110,251, 26,172,174, 71,215,132,152,228,115, - 75,119, 7, 28,111,150,210,244,253,138,119, 79,130,152, 4,119,148,102,168,123, -137, 49, 99,153,247,238, 50,161,166, 86,230, 8,224,219, 73,156, 53,161,245,125, - 45, 6,110, 81, 51,218,102, 92,137,164,197, 25, 35, 91,199,136, 7,189, 12,193, - 28,132,208, 68,162, 55, 37, 88, 31,106, 75,184,235,152, 72,158,155,192,102, 3, - 19, 70, 12, 84,227, 47,193, 85, 31, 78, 16,101, 11, 84,138, 11, 11,187,120,188, -204,159, 42, 40,241,211,128, 68,136, 25, 36,122, 18, 82,124,244,190,121,220, 12, - 35, 67,161,215,164, 91, 17, 0,186, 96, 54,172,135,246,247,165, 44,136, 28, 54, - 40, 13,205,246, 64,251, 15, 84, 7,109,222,172, 97,137, 96,134,106,229, 27,236, -138,134, 17, 1, 2,194,224,231,169,154, 68,125, 49, 52, 48, 11,200,203, 46, 86, - 36,118,241,217, 36,146, 14, 7,168, 34,116,231,181, 65,211,215, 42,163, 57,240, - 67,145,118, 9,226,182, 70,151, 32,225,153,191, 69, 51, 56,229,210,172, 83,112, -251, 99,168,238, 96, 99,153,121,192, 23,190,216,238,193,100,206,249, 85,239, 33, - 50, 80,201,134, 24,195,209, 23,173,241, 60, 76, 30,234,105,233, 58,176,188,200, -207, 89,253,214,241, 71,133,113,130,233,192,198, 10, 60, 70, 48,120,196, 72,245, -212,158,201,147,214,199, 56,161,110,208,158,234,166, 30, 22,232,208,243,190,238, -151, 84,162,137, 30,155,123,125,175,230,220,122,161,120, 13, 38,226, 51,202, 84, - 94,210,148,240,231, 78,230, 94, 7, 53, 88,244,102,136,229, 24,184,232,197,193, -135, 76,160, 45,116, 88,107, 51,106, 20,125, 58,130,161,142,246, 40,186,133,255, -142,191,112,169,210,204,151,222,170,212,107,196,156,161, 10,161, 97,113,119,163, -195, 71, 18, 88,217, 84, 3, 62, 0, 22, 48, 38,243,142,193,197,229,217,159, 82, - 28, 26,187,254,193, 12,151,110,215, 81,172,169, 79,169,241, 49,133,194,164, 16, - 6,236, 7,166,109,239,162, 9, 34,200, 28,219,201,180, 56,150,103,246, 91, 47, - 61, 39, 82, 17, 49, 81,138, 56, 22, 4, 80,208,186,105,140,169,101, 40,198, 71, -147,252,100,150,197, 40,126, 34,133, 56,233,173,219, 7,200,213,123,155,121, 66, -175,241, 21,234,116, 86,136,213,237,126,163,172,114, 69, 99,172, 62,201,219, 9, - 40,183, 81, 33, 4, 32, 47, 14,226, 57, 42,200,148,144, 70, 32,160, 65, 72, 34, -229, 86,132,172,217,179,210,207, 36,246, 35, 87, 99, 96,126,141,116,220,222,245, - 26,141, 8,208,249,240, 2,115, 73,246,185, 30,230,152,203, 69,147,117, 53,120, - 22,124,159, 40,240, 65,192,189,238,161, 63, 92,169, 15, 77,189,194,225,178,186, -229,134, 78, 32, 79,129,198,101,224,201, 79,101,129,234, 56, 59, 4, 51, 12,155, -110,157, 76,217,167,186,103, 16, 6,225,248, 50,115,237,126,236,115,151,149, 10, -170,201,175, 49,175,163,129,121, 31,196, 9,155, 25,202,122,125, 99,181, 82,167, - 11,130, 29,250,162, 20,210,240,243,203,103, 94, 12,229,243, 82,113, 18, 46, 16, -253,217,122, 17,242, 99,121,209,137,220,102,112,109,244,135,194,198,218,152, 82, - 92,138, 11,219, 34,235, 31,112, 41,185, 37,159,117,184,164,133,144, 18, 84, 83, -156,126,219,176, 57,227, 14, 7,130,133,244,173,204,217,117, 26,236, 19, 25, 59, -228, 89,216,233,218,215,225,115, 42, 95, 57,134,155, 86,116,229,194,244, 73, 10, -190, 7,214,101,125,194,168,245, 58,195, 33,166,137, 86, 40, 9,117,155, 30,105, -217,173,236, 6, 21, 30, 30, 21,117,126, 4, 98,222,191, 3, 60,167,134,251, 21, -127, 87,113,108, 63, 34, 5, 24,106, 47,112,187, 55,222, 56,238, 24,145, 14, 51, - 70,241,242,227, 53,207,107,202, 67, 62,132,207,168, 55, 85,130, 22,251,231,161, -215, 55,122,212,161, 59, 48,147,121,212, 26,128,119,102,119, 89,233,173, 82,128, -131, 30,101,224,181, 69, 45,198,175,255,104, 1,133, 5,186,221, 53, 7,229,214, -232,247,183, 86, 9, 98,131, 43,142,159, 89,168, 72, 40, 81,145,242,193,183,216, - 25,239,117,200, 40,227,183, 18,217,134,203,238,208, 26, 27,171, 95, 61, 65,140, -198,231, 16,135,103, 41,241, 80,237,254, 14,203, 11,208,184,190, 63, 69, 52, 75, - 20,206,119,188, 42, 10, 71,206,188,130, 79,160,198, 40,254,253,190,254,220,216, -114, 44, 21,156,187,203,208, 14, 16, 15,162,103,212,221,199, 48,169,140, 61,167, -215,247,100, 78, 87, 94, 13, 72,203,250, 82, 98,245,234,156,100, 17,233, 58, 63, - 36,185, 52, 21,231,168,141,141, 2,118,212, 73, 34,193,243, 77, 72, 10, 39,106, -119, 15,237,253, 94,101, 37, 72,170,125,130, 12, 60,181,130, 30,244,128, 50, 67, -186,155,120,110, 35,149, 3, 81, 17,237,124, 52,158,244,220, 56,158, 89,212, 67, -211, 46,192, 21,234,135, 35,241,233,252,195, 20, 28, 35, 81, 43, 83, 2,158, 53, -100,237, 33, 97,232, 33, 89, 49, 88, 64, 76,156,247,180, 75, 62,248,112, 20,254, -186,189, 6, 89,207, 50,123,203,145,160,246,124,109, 93,127,255,139,107,214, 91, -184, 14,113, 56, 33,232, 66, 81,156,165, 43, 57,161, 81,126, 80, 89, 4,115, 23, - 28, 45, 99,188,206,200,231,108, 40,125, 87,186,124,239,224,210,204,125,178,202, - 86,248, 89,205,234,188, 34, 25, 33, 91,167,179,162,205,153,208,244, 45,107, 68, -235, 74,206,213, 21,136, 97, 23,235, 59,128, 42, 59,126,108, 72, 22,208,101, 86, -159,174, 81,239, 58,127,128, 30, 66,161,155, 14, 39, 15,212,182, 84,112,244,245, -200, 9, 57,140,191, 46,217,210, 10,234,122,159, 99, 37,205, 46,190,229,135,180, - 45,185,254, 79, 46, 86,236,124,100, 34,156,203, 21,111,129,246,177, 90, 0, 52, -144,244, 86,223,174,115, 17,241,190,222,245, 79,211,212, 79,209,134,218,109, 4, - 77,178,136, 46, 94,238,151,236,165,123, 64,159,238, 87, 67, 75,239, 82,249, 0, - 65, 92, 13, 16, 5, 8,161, 32,204,105, 39,191,254, 87,179, 47,169, 17,176, 91, -228,141, 53, 72,131,213, 40,162,195,126, 80, 85,108, 49,153,200, 90,127,174,177, -158, 57,243,189,209, 17,169, 91,136, 10,141, 89, 68, 5, 17, 57, 37, 81,218,129, -243,223,111,112,202,133,111,124, 57,122,103, 85, 52,230, 26, 21, 34,194, 78, 27, -213, 83,174,222, 9, 36, 33,245,229, 6, 0,122, 99, 18, 88, 80,224, 28, 57,223, -179, 25,199, 78,100,115, 96, 34,160, 11,222,121,154, 73,163, 25,132,166,153, 4, - 88, 5,144,240,136, 85,164, 14,179,228, 42, 18,240, 96,211,151,160, 2, 88,189, -105,162,170,208, 29, 22, 68,171, 15, 30, 6, 71,139,188,197, 40,145,150, 86, 71, -106,221,102,174,243, 60, 87,215,196,113,185,108, 21, 66, 46,180,243,229, 90,244, - 69,223,216, 82,185,190,116, 39,228,175,188,231, 49,220,169,131,115,118, 67,175, -149, 54,143,168,194,121, 86,246,102, 27, 89,136,221,178, 8,109,249, 36, 12,123, - 96,245, 83,237,113,172, 26,137,172, 3,129, 28,252, 11,224,184, 49,150,192, 15, -146,139,185, 67,229, 36,231,184,141,144, 54, 64,104,183,177,102,151,212,102,126, -190,243,203, 79, 38,199, 79,221,220,147,177,124,156,183,113,147,176,145, 36,128, - 27,132, 59,188,116,143, 28,200, 56,157, 30,224,122,183,210,187, 3, 8, 58, 79, -243,104, 31, 88, 47, 90, 18,108, 83, 74, 94, 51,222,139,212, 91, 55, 37, 19,138, - 90,137, 17,176, 37,223, 30,184, 86, 40,165,232, 47,217,208,222, 65,131, 20, 86, -196,104, 3, 68,191,161, 80,225,115, 5, 3,121,209,180,214,166,104,149, 33,215, -224,196,110,164, 58,203,155,213, 52, 13,128,104,151,149,191,194,139, 91,147,246, -182, 68,176, 10,135,168, 16,162, 93, 1, 77,193, 85,216,196, 69,201,146, 96,237, -133,245,215,253,222, 20, 98,134,226,240, 88, 28,249,196,127, 10,249, 37, 54,252, -193,228,236,206, 27, 56, 25,228,231, 32,195, 3,134,197,208,215, 29,119, 10, 11, -115, 2,247,225, 36,197,121, 86, 74, 88,251,226, 76, 4, 85,206, 71,222, 95, 15, -106, 10,160,116, 38,101,172,158, 93, 28,248,145,190,232,125,186,174, 55, 97,176, -211, 45,125,136, 98,214, 11, 83,244,104, 71,198, 45, 30,137, 58,245,140, 28,168, - 41, 48, 83, 26, 56,172, 48,191, 38,146,249,163,197, 56, 38, 17,158, 27, 20,117, - 62, 51, 85, 26,213,108,198,137, 32, 94, 92,230, 61,192,147,129, 2, 25,197, 93, - 6,245,107,155,121, 82, 69,252,211,154, 71,146,178,237,152, 18, 30,207,143,210, -175,182,120,153, 37,140, 68,217,153,158,226,139, 55, 67,211,101, 37, 26,168, 99, -179,139, 28, 98,241,201,124,244,146, 86, 67,191, 90,173,248, 25,170,162,249, 79, - 95, 78,179, 85, 75,227,221,163, 72, 90, 51,195,165, 62,171, 10, 76, 68,193,149, - 1,251,193,163,229,232,174, 45,163,101, 52, 9,137,172, 74,145, 58,240,188,105, -186, 37,240,218,152,107, 81,179, 12, 69,197,116, 47, 16,150,158,196, 74,234,152, -168,220,115, 41,156, 7,126, 54, 17, 11,250,180,149,230, 38,190,240, 52,226,218, -219,164,166,199, 77, 8,124,246,101,102, 42, 67,218,234, 96,172, 77, 91,198,151, -146, 93, 12,234,144,116,225, 12,190,114,107,142,202, 62,246, 39, 94,119, 14, 91, -149, 64,151, 17,248,113,214, 19,173,180,112, 6, 68, 30,198, 44, 38, 19, 80, 70, - 44,137,145,241,234, 4,197,194,211,234, 9, 14,130,179,106, 8, 76, 90,158, 84, - 23,172,133, 98, 14,167,192, 66,146, 42,135, 82, 39,211, 16, 49, 70,121, 22, 3, - 98,214, 8,165, 86, 86,255, 50,194,167, 89,186,204, 77,196,170,206, 54,176, 47, -237, 30, 88, 73,109,206,203,138,123, 96, 3, 44, 17,134,105, 9,164,102, 95,168, -138, 18,255,148,127,165,225,140,144,123,133, 33, 71,179,125,202,200, 86,167,139, -183,114,201, 12,224,203,208,132,188,141,226,204,204,155,164, 69, 59, 15, 36,155, -145,199, 83, 97,233, 93,242,190,147,194,142,159,171, 90, 55,229,209,188,219, 79, -226,115,200,236,183,200,134, 11,243, 21, 69,229,183,106,122,126,117, 66,213,190, -208, 56,225,202, 3,106,191, 62, 6,220,223, 66, 15,196, 60,190, 10,247, 21, 59, -203,140,127,142, 60,243, 30,116,142,208,235,250, 55,245,185,192, 69,185, 40,230, - 2,225, 22, 88,149,228,185,251,254,118, 98,210,156, 89, 7,210,224, 90, 3,115, -122, 26,110,250, 81, 58, 43,167, 89, 44,244,195,193, 45,196,138,152,167, 56,238, -111,186,167,236,249, 4,194, 72,237, 67,239,157, 60,216,145, 99, 54, 26,170, 34, -207,194,215, 57,129,220,154,211, 53,200,148,144, 57,166,172,116, 26,250, 52,145, -153,116, 98,188,119,112,211,202, 48, 53,216,226, 66, 52,210, 14,243,206,135,242, - 33, 94,144, 60, 4, 65,245,106,145,236,188,244,231,130,184, 62,189,204, 22, 59, -136,163,144,204, 17,209,183,132,115, 29,238, 43,201, 36, 80, 76, 79, 71,194, 80, - 71, 57,126,142, 7, 65, 97, 14,171,243, 94,248, 0, 75, 6,198, 13,128,202,193, -224,254, 38, 12,149,111,213, 57, 45,205,136,166,107,218,102,212, 31, 68,253,140, - 95, 94,174, 42, 14, 96,155,100,182,115,155,235, 89, 3, 75,255,218, 98, 91, 27, -108,236,153, 46,213, 93,205, 48,219,135, 97,113,174,186, 26,119,216,240,194,103, - 57, 93,176, 38,212,189,185,255,163, 19,246,105,240, 33,226,120,223, 15, 66, 23, - 12,117, 85,221, 24,195,180,132, 84, 33, 32,102,106, 76,150, 17,148, 51,171,148, -175,160,139,122, 82, 68,207,232,231, 41, 23, 82,169,159, 88,138, 52,123,175,248, - 21, 85,210,124,209,164,168,204, 52,110, 75, 46, 53,207, 76, 70, 60,111, 14,133, - 44, 75,103,135, 23, 16,183,201,231,190, 17, 92, 19, 55,240,213,221,199, 56,112, -227, 81,119,200,130,255, 93,253,186, 81,144, 11,156,223,179,126, 86,170, 4, 82, - 87,105,136, 34,253,188,116,227,208,176, 65,215,164, 81,120,247,246,121, 97,200, - 26,249,237,181,188,246, 12,236, 27,237,177,116, 79, 62,159, 9,244, 74,199,133, -165,149, 18,212,216, 99,100, 70, 83, 13, 26, 92, 10,114,217, 2,133, 56,168,130, -168, 58, 74,162,162,205,107,243,203,251, 26, 16,224,149, 11, 56,225, 90,119,181, -166,124,177, 22, 29,122,180,239, 63,104,214,248,115,221,240,221,137,160,131,138, - 71,222,247,227, 0, 14,254,240, 66,225, 2, 3, 88, 1,104,234,164,250,150,250, -104, 87,247,223,202,244,235,238,188, 94,245,139,176, 53,206, 49,185, 69,174, 50, - 39, 26, 56,129,159, 40,151, 35,160, 56, 90, 61, 67, 54, 71,214, 36,172,109,147, -121,186,244,197,163,115, 27,180, 44,236,245, 81,182,140, 85, 82,134, 35,243,123, - 6, 68,170,127, 14, 50, 4,130,234,151, 36,233,150,135, 2,186, 50, 1,189, 31, -175,199,168, 96,194,145, 1,160,171,110,154,184,102, 70, 71, 97, 20,165, 1,181, -228,125,247,125, 27,199,252,137,177,105, 31, 16,239,185,218, 67, 53,185,117, 59, - 70,208, 77,152,130,159,107, 30,207,201,204, 59, 25, 65,183,194, 10,134,219,152, -164,102, 74, 39,102, 84, 74, 3,181,202,123,247, 93, 27,215,249, 58, 99,105, 23, - 48,238,217,186, 7,107, 50,115,137, 70,208,237,176, 2, 35,155,117,115,162,234, - 57,141,167, 89,160, 28,243, 55, 38, 84, 51,163,131, 53, 10,211, 81,178, 22,230, -243, 4,232,135,221, 34, 9,135,153, 10,134,101,148, 12,221,181, 17,233, 70,240, -108, 8,162,194,132, 17,105,203, 22, 73,239,187,186, 29, 15,120, 66,167, 82, 10, - 50,116,167,144,224,150, 83, 55, 75, 20, 12,250,100, 49, 68, 81,181, 38, 57, 19, -188, 35, 29,176, 52, 65,178,157,199, 60,145,209, 88,252, 67,154,133,255, 62, 6, -182, 97,215, 72, 60, 86, 29,179,185,100, 79,253,116,111, 56,185,229,161,119,128, -231,172,125, 18,204, 7, 93, 64,209, 10,151, 13,147,135, 19,239,186,186, 8,152, -183,113,233,185,199,129,239, 43,105,170, 62,126,220,194, 99, 25,178,107,176,205, - 69,221,210, 48, 93,254, 86, 57, 28,245, 7, 18, 9, 60,214, 78, 32,237,175,212, -172,246,121,176,255, 6,167,156,141, 0,130,132,198, 43,111, 44,148,186,252,217, -254, 95, 3,116,209, 46,124, 16,148,101,159,180, 97,174, 85,108, 99,228,164,223, -254,244,134,199,253,192,190, 83, 9, 66,128,227, 51, 9,120,125,125, 92,161,225, -212, 32,200, 16,231, 34,235,251,202, 52, 64,191, 96,139,138,250,183, 68,176, 86, -100,195,101,225,115,228, 44,191, 50, 3,232,126, 22,230, 39,129, 70, 1, 32,132, - 21, 49,140, 0,183,135,244, 27,253, 60, 87, 66,101,241,102,222,124,114, 13,175, -252,147,124, 71,123,146, 46,203,173, 10,143, 30, 78,229,113, 75,115, 36, 32, 8, -103,185,205,171, 73,194, 67, 4, 14, 75, 85, 15,138,198, 16,183,102,144,177,197, - 79,153, 96, 25,179,146, 70,249,218,170,210,159, 52, 67, 0, 99,248,232, 17, 4, -168,192,181,144, 73,188, 16, 32, 21,175,133,138, 42, 30, 80,197,122, 85, 52, 30, -242,111,235,178, 63, 74,201,132, 56,176, 42,205,142,150, 36,216,129,213,162, 98, - 23, 3,116, 85,132, 71,212, 11, 97, 51,115,158, 73,201, 64, 90,131,228,160,111, - 81,246, 92, 85,169, 59,218,176, 4, 35,151,188,229,167,138, 65, 13,153,178,162, -248, 66, 81,101,164,210, 12,141,236,218, 20, 13, 72, 89, 83, 64, 35, 9,246,192, - 84,154, 37, 26, 21,105,118, 53, 11, 27, 85, 14, 81,180, 33, 96, 70,106,247, 30, -135,144,240, 11, 0,168,213, 26, 4,178, 94, 0, 16,217, 74,194, 40, 38, 85,100, -165, 32,171,232, 25, 54,242,231,134,187,145, 9, 69, 57, 96, 69, 93, 70, 70,140, -116, 89, 57,196,242, 42,207,106,228,186, 2, 62,244,219, 29,235,176,150,219, 82, - 43, 10,212, 65,149, 44, 9,231, 97, 91,210, 36, 80, 58,176, 78,102,249, 34, 12, -189,170,250, 41, 61,116,116, 42,132, 58,234, 92, 82,162,178, 85, 28,113, 16,236, -135,248, 18,134, 53,131,199,159,143, 6,224, 33, 65, 62,247,238, 33,200, 94, 96, - 25, 21, 37,189, 41,228, 72, 61, 81, 0,177,165,166,237,162, 24,130,192,115,180, -149, 62, 65,166,170, 73, 56,228, 79,203, 12, 35, 37,128,167, 45,135,117,243,189, -168, 37, 52, 73,139, 35,216,245, 82, 79, 94, 68,204,145, 40,116, 24,145,240,187, - 43,174,117, 46,156, 21, 0,102, 60,112,217,106, 35,171, 83,141,225, 0,202,168, - 88, 62, 36, 12, 65,131,237,138,221,175,117, 54,227,165, 51,157, 27,119,253,191, - 85, 2,205,242,200,175,240,136, 42, 7,154, 2, 5, 69,141,204, 83, 31,121,163, -201, 88,149, 47, 81, 51,119,191, 39, 13,255, 83, 11, 93,133,114,183, 10,155,195, - 22,113,198,238,177,173,233,115,184, 68, 92,242, 2, 32,241,231,115,118,251, 11, - 9,248,160, 3,212, 64,162,252, 19, 23,222, 71,129,189, 65, 62,175,215,220,225, - 80,100,234,130, 57,103,113, 66,253,154, 39,238, 78,189,161, 64,104,243,144,107, - 60,112,218,231, 61,107,146,203, 40,238, 88,202, 0, 89,152, 90,114,255,101, 8, - 94, 96,216,117,100, 95, 96,164, 48, 9, 26,163, 2, 80,246,198, 89, 59, 33,141, - 97,173, 69, 16,120,109,170,181,194,155,233, 62,160, 18,247, 11,235, 64, 20,121, - 10,234,163,193, 4,126,163,176,128,146, 72, 60,141, 41, 3,181, 72, 85,185, 46, - 43,141, 68,102,130, 41, 73,128, 30,199,162,216,234,177, 16,242, 0, 43,150,123, - 15,109, 71, 40,211, 29,183, 14,110, 54, 96, 76, 95,220,193,129,128,163, 5,216, -251, 28, 95, 69,234, 67,200, 34, 6, 96,159, 60,168,148, 12,197,194,191, 44,151, -229,111, 15, 77, 11, 11, 77,155, 18,200,196, 39,168,241, 29,139,101, 84,127, 44, -223, 87,224, 70,220, 35,222,120,184,230,234, 88,221,157,177,245,138, 96,246, 9, -235,104,105, 83,200, 9, 40,184,177, 75, 84, 87,134, 19,238,134,163, 92, 17,222, -103, 77,184, 61, 43, 85,224, 68,236,196,254, 59,101, 94,241, 98, 91,145,252,121, -149,233,242,135,234,107,153,180,186, 26,160, 43, 56, 97, 53, 26,109,150, 30,194, -195,192, 78,205,183,142,132, 64, 59,191, 0,141, 49,134, 24,219,125,107, 19, 49, -147,202,116,241, 70,187, 27,210,151, 77,213,150, 2, 85, 91, 16,110,191,177,157, -225, 1, 24,199,174,243, 40, 7, 63, 79,244,166, 1,182, 81,162, 53,133, 16,210, - 89, 63, 4,116,235, 75,209, 21,197, 3, 0,213,104,170,165,195, 78, 7, 84,139, - 12,164, 76, 27,183,136, 64, 79, 47, 40, 73, 70,128, 30,197,210, 91,133,222,137, - 32, 86,142, 98,169,117,163,131, 69, 65,238,225, 10,107, 20,159, 13,173,229,146, - 7,172,101,132,181, 57,142, 32, 90, 30,239,186, 32,242,111, 75, 63, 85,107, 19, -176, 45, 53,135, 68,248,135, 81,184,138,100,161,233,209, 21,237, 34,113, 77, 40, -115,138,150,239,147, 21,212, 60, 36,138, 82,175,145, 73, 52,127, 50,138,241,108, -160, 20, 11,106,114,147, 58, 10,205, 11,101,225,217,173,181,166,171, 52, 29,211, -135, 32,201,157, 39,148, 9, 54,243,146,185, 30,180,160,154,196, 83, 20,186,203, -111,173, 92,155,143, 25,218,128,121, 51,188, 13,117,211,246, 89,141, 4,152,185, -252,153,174,242,191, 29,247,218,111, 80, 35, 11,159,146, 88, 88, 70,218, 12, 19, - 17,134,103, 6, 90,116, 74,126,152,227,216,160,164,166,138,162,188, 74,137,123, -172, 44,116, 62,244,191,133,177, 50,170, 0,207,148, 28,182,162,128, 24,108, 1, - 21, 66, 62, 44, 78,195,118,139, 33, 10, 65, 43,240,170, 2, 0,219, 97,163, 56, -176,243,132,125, 93,225,127,126, 67, 39,221,229, 36, 38, 36, 71, 23,245, 43,189, -160,112,185, 79, 11, 48, 75,189,178, 48,218,112, 64, 32,197,125,218,164,185,234, -253,115, 70, 54,104, 99,158, 70,222, 51,253, 4,123,184,122, 31,192,118,186, 9, - 8, 31, 85,148, 40, 66,167,172,125, 74, 73,224, 39,228, 84, 13,105,214, 17, 36, -165,166, 77, 27,216, 94, 36,223,230,238,182, 82, 67,203, 28, 80,244, 30,195,178, -130,156,223, 16,108,128,156, 13,242,183,147,216,205, 72,144,132, 67,123,110, 88, - 28,252, 28,144, 63, 93, 82,216, 13, 43, 87, 55,146, 96,174, 99, 98, 83, 61, 91, -183,245,136,209, 17,204, 63,149,202,204,107,210, 25,123,198,234, 87,100, 22,131, - 83, 79,213,198,201,202,108,196, 41,102, 45,180,110,161, 89, 75,195, 16, 79, 30, - 91,214, 2,156,104,210,171, 86, 16,108, 58, 8,148,198,174,245, 57, 75,239, 45, - 25,190, 82, 54,125,245,186, 65, 34, 48,124,103,230, 84,243, 53, 30,187,219,120, -132, 72,223,149, 28,201,135,102,183, 59,187,237, 28,194, 99,174,107,184, 6,148, -136,126, 84,220, 89,167, 51,177,225, 6, 66,175,164,142, 88, 42, 23,245, 51, 47, -213,192,241, 58,242,249,150,190,253,210,201,130,104,247,147, 57, 34, 82,168, 88, -122,206,202,108, 45, 40,186,160,109,131,188, 69, 48, 96, 48,120,157,235, 74, 2, -145,255,108, 44,223,106,188,178,191,216,205, 15,157,169,248,178,146,214,136,248, -134, 47, 30,153,140,232, 44,248,162, 34,142, 16,136,253, 94,172, 68,126,231, 29, - 59,201,102,171, 37,217,152,241,249,238,101, 1, 40,254,236,161, 29,246, 12,204, -127, 54,168,202,144,118,157,194,206,223,139,128, 38, 39,225,135,105, 73,180, 72, -158,177,216, 28, 33, 83,201, 90, 63,185, 14, 73, 62,253,165,236, 16, 89,249,123, -216,238,138, 44,193,224,100,138, 60,122,125,191,130,246,149,159, 87,103, 8,107, -151, 55, 66,178, 48,137, 7, 95, 9, 5,142,190,123,133,145,219, 88,143,135,107, -245,162,148,182,119,196,236,221,135, 90, 96,127, 14, 64, 83,105, 81, 49,212,199, -235, 61, 6, 27,167,203,192, 9,155, 78, 66, 11,223,142,183, 74,224, 37, 34, 33, - 79,197,196,237,248, 58,143,154,133, 73,144, 77,108,177,253,182,148,247, 10,241, -124,132, 80,141, 93,139, 94,151, 24, 14,220,167,192, 58, 36,181,170,137,170, 30, -146, 99,238,240,235,159,244,148, 7,167,188, 97,196, 28,190,239,202, 64, 57,147, - 32,244, 87, 65, 64,236, 23,252, 88,133,101,193,185,104,140,232,168, 43,233, 84, - 31,240, 6,169, 42,255, 0,132,156,175, 87,109, 70,162,120,233,159, 15,114,139, -149, 98,223, 4,140,172, 47, 7,162, 47,226,241, 52,202,186,237,245, 69, 6, 37, -206, 10, 84,124,235, 44, 27,214,239,136, 22,168, 2,149,170, 55, 34,157, 52,215, - 1,202,107, 25, 95, 43,113,130,191,106, 7, 95,234,224, 81,214, 91,215,108,100, -202, 92,222,209,102, 70, 75, 98,173, 29, 37, 16, 51,162, 90, 30,135,166, 40,162, - 17, 77,140, 4,142,210,139,184,120,232,204,193, 89, 42, 84,137,212,166, 58,237, - 4,192,187,202, 18,199,117, 47,130,184,101,204, 96,108, 78,126, 12,144,124,153, - 44,195,150, 55, 0,117,157, 31,159, 79, 26,123, 66,140,185, 78,123,186, 53, 16, - 92,143,114,159, 15,196, 64, 19,103,224, 5,203, 59, 92, 9, 82,176, 35,198,195, - 83,160,139, 6,141,140, 62,231,129,236,231, 22,149,143, 53,199,111, 28,218,247, -161, 68,166, 18, 56,159,224, 36,188,183,215, 86,211,118, 33, 92, 71, 40,149, 68, -208, 86, 11,126, 7, 56, 33,128,121,176, 61,197,176, 42, 23,251,241,100, 87,222, - 21,142,251,181, 65,166,237, 83,177, 22, 3,183, 65,107,213,130,205,154, 46,203, -233,196,145,194, 24,115,222,219,100,207,121, 82,157, 49, 18,126,121,253,145,107, - 47,194,125,134,196,169, 0, 58,119, 47, 5, 25,250, 76,173,146, 58,128,193, 20, -163,239, 55, 42,241, 95,208,140,186, 28,178,219,117,132, 67,129,248, 20,121, 61, -167,242, 84,187,114,238,195,113, 89,219, 7,191, 75,161, 11, 86, 11,192,162,181, - 7,243,147,228,163,186,211,210, 18,245,134,250, 58,126,121,176,104,211,157, 70, - 30,168,124,234,224, 58, 82,133, 57, 26,132,255,181, 22, 91,135,228,210, 46,217, -163, 87,151, 70, 93,231, 76,150,142,249,237, 39,253, 31, 86, 92,242,156, 33,128, - 9, 55,187, 33, 92,252, 65,228,185, 99,207, 68, 7,144,119,109, 57,108, 0, 80, -178, 4, 24,244, 37,103,161,211,228,165,212, 48, 71, 76, 77,166,110, 37, 16,183, - 3, 78, 34,199, 93,196, 28,173,233,123, 38, 58, 51,194, 59, 54, 98, 55, 96,207, -228,217, 96,252,179,240,228,108,227, 39, 78, 16,126,152,136, 44,103, 29, 91, 49, -143,252,187,228, 95,116, 88, 50,201, 42,119,244, 77,158, 2,169,207,229, 31,119, -177,129,139,145, 18, 85,160, 84,125,109, 9, 86, 6,213, 81,111,230,168, 24, 74, -192,169, 13,164,164,146, 99,174,240, 98,197,152,211,169,144, 65,216,153, 91, 33, -107, 15, 94, 41, 59,100,135, 29,240, 90,244, 25, 95,245, 69, 73,133,202,129, 66, -138, 21, 98, 70, 42, 91,212, 0, 76, 54,125, 41, 85,144, 31,175,245,137,192,209, -155, 65,254,226,112,151, 24,105, 62,244,201,214,197,146, 36, 68, 86, 35,137,132, -108, 90,230,208, 30, 83, 4, 27, 17, 47,149,142,251,248,122,140, 13,213,111,174, - 93,249, 85, 33, 34, 24,126,247, 13, 98,137,215, 38, 3, 66,197, 93,161,154, 49, - 46, 26,179, 28,178,156, 94, 46,104,221,114,180,117,103,105,251,151, 2, 46,207, -199,215,242,109,185,180, 12,232,234, 30,210,158,139,239, 41, 70, 6, 98, 50,171, - 65, 55,208,160, 2,167, 76,130,211,133,121,253, 54,203,108,245,177, 40,180,113, - 38,104, 52,131,170,123,103,203, 91,192, 31, 61, 93, 4,151, 50,168,184, 49,174, - 13,147, 19, 33, 88, 64,123,114,221, 73, 61,177,121,149,103,226, 4, 27,113, 80, - 17, 46, 77, 21,169, 18,136,133, 97,219,136,147, 22,162,228,243, 32, 28, 47, 70, -114,130, 93,237,115,174,160,187,246,166,171,242,192,162,146, 72,121,142,251,158, -173, 6, 92,160,124, 20, 76,163, 45, 27,246,135, 46, 14,221,213, 72,204,102,137, -173, 82,169, 89,138,174, 28,232,120,148,199, 28,241,109,107,156,142, 12,168,226, - 32,150,214,150, 21,221, 47, 70, 73,131, 21,182,175,166,184,123, 22,137,112,239, -182,116,148,133, 69,151, 83,185,114, 22,104,164, 78,155, 70, 6,150, 50, 19,249, - 60,253, 41,176, 41,108,185,206,218, 36,133,148, 45, 62,251,138,236,218, 7, 89, -112, 96,218,117,164,115, 79, 58, 69,165, 19, 78,106,165, 83,246, 70,104, 13,205, - 31, 39, 89,139,152, 61,196, 38,208,211, 74,115,178,131, 54,164, 68, 28,100, 50, - 72,244, 26, 36, 89, 62, 59,123,163,195,121,189, 8, 34,116, 7,182, 45,124, 38, - 59,227,125,194,132,179,243,175, 5,167,200,217,123, 31,155,254, 81, 4,205,203, - 18,241, 90,252,250, 2, 84,246,235,221,215,111, 31,137, 4,250, 17,203, 8, 63, -173,157, 95,159,172, 63,230,217,160,130, 48, 33,225,251, 10, 35, 98,163,221,232, - 58,249,102,193,209, 36,113, 18,254, 65, 0,238, 39,178, 34,193,222, 67, 89, 7, -144, 90,238, 33, 86,230, 15,132,117, 48, 32, 59,219, 99,144, 78,149, 93, 30, 62, - 81,105, 23, 10, 56,107, 17,146,253, 81, 39, 43, 83,132, 16,140,118, 57, 99, 58, -112,115,242,169,203, 76, 62,196,243,220, 13,240, 96,123,247, 55, 31,255, 37, 34, -205,113,125, 15, 48,112, 9,229, 29,123,231,162, 21,114, 0, 43, 42,162,255, 25, -170, 40, 34,203,117,159, 81,219,104,164,195,193, 17,253, 15,186,208,246,188,245, - 69,241, 74, 99,198,194,177, 16,255, 77,241,148,240,244, 15,166,222,181,182,158, -152, 32, 47, 33,184,197, 59,143,160,225,180, 51, 14,189, 65, 23, 32,240,254, 90, - 29, 24,211,189,242, 64,245, 19, 12,204,146, 26, 76,117,191,218,222,185, 92,212, - 4, 83,252, 91, 42, 15, 91,168, 10, 18,207,146,152, 18,119, 32,188,250, 36, 38, -146,181,130, 66,165, 32,104,229,177, 13, 39, 56,246,232, 66, 51,110, 58,100, 29, -187,232, 97,196,168,121,244,154, 47,174,133,145,242, 98,245, 29,150,105,188,132, - 44,194,190, 67,137,107, 73,164, 12,234,141, 22,165,191,121,124, 53,127,209, 28, -204, 99, 41,140,174, 19,114,183, 72,157, 35, 98, 68,143, 17,157,226,186, 78,223, -182,174,244,219,155, 20,240,188,161,185,189, 88,211, 81, 23, 67, 50,230, 66,238, -152,132,105,162, 39,153,139, 35, 77, 28, 18,202,185,152,109,160, 78, 88,210,148, - 83, 94,153, 90, 1,166,226,170,201,122,156, 89,175,152,133,142,133, 35, 73,178, -183,102,221, 77, 71,107,143, 63, 80,125, 59, 27,158, 93,254,150,172, 1,255,162, - 61,112, 39, 53, 41,101, 98, 92, 3, 73,208, 81, 10, 70,163, 93, 81, 76,197, 53, -237,171,124, 43,147,128, 0, 39, 28, 4, 29,196,236,102,128,136,233,147,208,217, - 87, 71,215, 80, 85, 67,219, 99, 59,137,180, 0,104, 82, 12,241, 41, 66,150,254, -101,246, 8,134,246, 19, 43,203, 85, 14,213,205, 94, 98,232,186,255,119,254, 16, - 50,163,234, 82,148, 7,142,208, 58, 79, 19, 21, 20, 81,172,131, 99,175,105,249, -100, 63,247,203,146,198, 45,150,110, 99, 79, 78, 1,167, 53,202,231,189,163, 7, - 28,146,206,161,207,134,230, 88, 62,198, 66,221,232,122,207,116, 47,224,227, 89, - 55, 51, 19, 13,184, 30, 0,162,184, 42,160,109, 39,160, 59,112, 45,105, 79,201, - 10, 77, 96,248,244,177,228, 92,210,184,227,126,105,150,119, 54,227,223,193,165, -183,157,222,105, 70, 12, 78,203, 64,234, 27,172,207, 12,171,109,210, 15,254, 45, -224, 3,239,146,187,152,143, 16,103,126, 12,185, 38, 44,230,147,226,137,221, 73, -143, 27, 10,195,227,222, 55, 98, 38, 89, 14, 89,185, 4, 61,101, 10,128,220, 82, - 28, 59,130, 18, 98,136,205,212,195, 34,218, 0,153, 53, 6, 1, 26,193,111, 80, -121,160,235,102, 76,116,183, 92,108,128, 72,106,162,192,225,243, 72, 35,157, 79, -177, 0,253,251,103,210, 16,144, 23,103,202,159,224,193,238, 96, 9,219, 19,255, -247, 87,135,201,116, 20,145, 76,201,253,194,208,171, 36, 32,140,239,154, 58,245, -130,166, 16,144,240,116, 16,119, 27,119,116, 16, 44, 82,198, 21, 2,134, 97, 26, -198,234,121,200, 85,245,216,130, 90, 21, 98,124,185, 25,208,222, 43,133,155,192, -189,108, 30, 64, 41,224, 65,125, 10,148, 56, 72,208,255,240,135,108, 76,134, 93, -126, 80,185,198, 98, 74,168,201, 62, 64,208,251,128, 69, 84, 94,249,212, 30,106, - 91, 82,212,144,224,102,208,133,149, 9, 10, 11,119,167, 11,248,226,206,133, 34, - 50,205, 10,145, 22,240,224,253, 56,151,188, 24, 77,231,196, 9,228, 95, 50, 84, -226, 67,216,184,194, 8,211,107, 7, 33,228,239, 79, 74,145, 23,123,203,224,180, -140, 73, 39, 7,198, 65,143, 3,116,155, 18,169,228,249, 48,239,226,189,184,203, - 1, 46,133,214,135,226,238,137, 64, 72, 20, 8, 50,237,134, 85, 19,181,137, 8, - 30, 66,108,171,215, 39, 36, 28,172, 28, 1, 95, 49, 82, 83,123,144, 3,206, 15, - 64,147,231,221, 7,138,192, 40, 82, 21, 16,164, 16,151,166,181, 33,107, 75, 13, - 0,184, 86,250, 70,210, 58,148,152, 48,101,128,177, 78,140,131,137,166,115, 72, -116, 11, 40,145, 7, 0, 77,123,196, 28,118,106, 96,209,103, 39,152,225,151,208, -171, 99,247,190,226,171, 71, 91,250, 93,179, 98,167, 65,245, 10,247, 61,235,127, - 59,122,167,154, 30, 33,231,175,170,173,164,171, 2, 9,229,144,133,148, 87, 61, -193,141, 9,195, 15, 68,184, 43, 24, 2,154, 30, 68,171,172,124,222, 76,213, 3, -171,172, 5,193,131, 7,186,224, 92, 2, 16, 62, 96,136,193, 40, 70, 16,182, 36, - 51, 8, 41, 78, 70,120, 63, 59, 82, 90,198,146, 80,153,183, 14,138,169,100, 11, -202, 98, 29, 26,126, 95,186,100, 52, 14,111, 44,183, 67, 32,246, 78, 41,247,170, -172, 66,235,219, 19, 52,212,128, 84,236, 15,183,250,143,249,238,224, 83,161,228, - 11, 59, 33,136,211, 20,223, 82, 24, 14,149, 84,166, 59,156,207,186, 24,201,204, -248,106, 40, 62,180, 54, 99, 37, 49, 45,132, 35,142,107, 69,249, 71, 40,213,143, - 0,230,184, 89,147, 76,242, 16,182, 23,190, 58, 47,140,195, 55, 97, 47,108,113, -188, 76,135,140,219,216, 33, 34,177,148, 82,201,131,180,225,103,167,176,113,151, -103,152, 28,243, 15, 50,111,194,224,248, 54,195,190, 99,163, 75,231,140, 40, 21, - 43, 80,172,215,196, 49, 29, 79, 91,238,209, 16,161, 24,142,220,204,156,137,150, -190,221,164, 2, 10,200, 1,195,182,207,105,218, 9,215, 11,219, 38,222, 34,215, - 18,199,100, 76,248,208, 7, 94, 88,167,208,233,146,114,251,227, 23,113, 20,228, - 78, 51, 79,172,219, 38,130,216,162, 41, 31,230,235,116,201,171,146,195,127,103, -246, 27,156, 47,179,242, 70, 33,246, 69,225,103,183, 86, 7, 56,171, 24,207,184, -105,134,125, 76,179,163,189,232,247,114,144, 91, 93, 20, 68, 68,214, 12,130, 85, - 5,220,246,122,161,105,160, 38, 55, 40, 64,248,231, 11, 28, 77, 65,140,119, 73, -212,101,179,138,151,169,219, 78, 83,215,154, 23, 83, 43,104,143,212,149,245, 55, -123, 18,182,137,104, 16, 81,254,165,167, 79,181,245,241,117, 73,162,231,213,184, - 0,234, 39,165, 61, 57, 32,244, 3,199,209,201,195,215,127, 93, 83, 23, 57,106, -132,104,193,101, 72, 57,144, 54, 73,109,175,227,117, 0,178,238,245,235,192,208, -219, 34,162,186, 96,120,227,205, 52, 7,243, 36, 54,156,128,206,114,156, 21,136, -191, 26,161, 72, 77,208,116, 95, 88, 13,226, 55,214,144, 38,199, 13, 41,205,147, - 29,168,172,236, 68,195, 52, 66,184, 15,185,193,250, 5, 82,223, 66, 63, 63,191, - 95,160,203, 38, 31, 68, 13,168,148, 11,210,134,151, 19,208,164,233,163, 36, 54, - 81, 49,104, 61,206, 87,165, 64,101,159, 42, 5, 85,148,253,227,163,194,173,128, - 52,208, 33, 93, 84, 39, 57, 73,154,240, 8, 25,249, 92,197, 76, 25, 21, 84, 22, - 24, 79,230, 2, 94,150, 17, 2,156,251, 35,179, 65,116, 51, 25, 29, 55,190, 29, -188, 97, 90,172, 43,217,121, 43, 46,164,213, 51,170,153,195,115,152, 35, 7,139, - 40,152,216,181,102,194,204,219,159, 7, 19, 66,151,217,162,248, 28,143,243,109, - 70, 1,194, 45,181,202,205, 35,101,111, 39,173, 46,116, 57,221, 71,179, 48, 40, - 10, 3, 64,127,237,169,156,225, 23,236,253,139,181,142, 68, 47,240, 49, 27,114, -235,147, 95,133,195,134, 26,235,208, 73, 8,186,179, 80, 26, 46,110, 11,230,153, -202, 56, 35, 17, 18, 98,201, 4, 8, 7,218,136,141,146, 79,213,117,203,199,141, - 20, 56,124, 71,149, 41, 52,213, 86,195, 99, 72,171, 8, 52,122,254,105, 96,226, - 8,198,233, 49, 6, 20,233, 67, 33,104, 55, 23, 50, 42, 4,144,135,241,242,207, -199,160,219, 85,209,144, 8,162,131,244, 79,138, 97,245,140, 51, 54,106,117,152, -231,121,187,220,175,183, 47,238,184,200,206,193,220,130,152, 98,110,247,229,195, - 25, 98,136,202, 13, 22, 80, 34, 64,159, 17,140, 14, 51, 87,149,192, 72, 83, 45, - 57,160, 69,245, 60, 83,176,132, 16,121, 74, 7,170,157, 41, 32, 7,107,146, 49, - 38, 72,236,156,154,244,227, 90,254,235,254, 16,139, 69, 32,125, 44, 72,204,195, - 41,243,192,176,164,168,222,121, 83, 18,213,114, 62, 61,220, 81,198,218,238,148, -166,142, 46, 35,205,122,117,183,150,181,111, 35,164,123, 75,199, 57,225,207, 75, -113,113,253,232,128, 6, 68,131,139,130,122,208,117, 34,208,109,114,249,179,169, -250,223, 84,204, 90,160,194,237,149,251, 49,123,104, 84,162,230, 4,208,121,227, -172, 20,190,233,232,211, 30,217, 54,234,146, 92,253,195,160, 66,180,100, 68,198, -253,144,189,132, 50,161,216,212, 52, 30, 2, 69, 5,249,140,233, 37,166,175, 85, -130, 79,249,150,157, 7,240, 62,107, 78,228,132,111,217, 64,123, 49,144, 12,141, -242,209,127, 53,205,156, 30,107, 90,175, 80, 60,211, 1,249, 14, 62,103,104,180, - 42, 18,105,147,245, 33,235,135, 94, 63, 1,214,113,205,107,218, 5, 54,160,161, -197,163,226,173,232,194,188, 4,209,183,123,251,202, 6,187,214,121,233,131,144, -175, 21, 5,138, 91,181,145,157, 78,157, 1,214,205,228, 80,239,138,123,221,188, -148,239, 63, 75, 92, 19, 46, 66, 5,234,114,132, 0, 9, 73, 12, 80,123,113,212, - 77,147, 91,231,209, 89, 75, 57,134, 29, 23,225, 81,126,163,143,212,151,234, 51, - 68, 47,244,118, 61,168,182,226, 38,125, 0, 5,209, 66, 90,208,235, 16,100,218, -105, 25,146,105, 13,241,172,179, 11,161,170,224,181,186,255,108, 95,130,201, 89, -206, 73,165,199, 88,216,218, 51,111, 27,138, 37, 45, 95,129, 17, 37, 80,236, 27, - 76,245,248,144,139, 16,185,126,223,123, 82,119,241,241,250, 45,194,230, 46,244, -116,178,163,120,131, 43, 95, 16,232,105, 75,208,108,147,187,148,177,126, 92, 23, -130,155, 73, 91, 9, 89, 23,236, 98,122, 49, 12,201,167, 22,138, 19,160, 45,212, - 18, 54, 3, 40,182,160, 52,114,127,161, 89, 64,136,151, 31,114, 77,169, 99,110, - 29, 60, 28, 22,119, 23,243,184,138, 17,129,189,219,126,149,121,150,166, 20, 26, - 39,116,201,215,143,247,181,163, 4,232,184,172, 0, 23, 17,230, 54, 69, 17, 89, -167,248, 46,177,155, 25, 89,158, 75, 81,163, 93,131,125, 46,250, 25,238,109,231, -222,157, 15, 7,211,146,168, 11, 96,139,131, 15,154,235, 42,107,126,231,111,244, -250,229,220, 31,161, 82, 30,126, 13,197,220,251,212,250,208, 96,100, 90,234,123, -119,177,113, 91,165,104,131,203, 7, 66,173,239,179, 79, 52,103, 34,253, 96,121, - 45, 72, 59,248,173, 41, 91,244,212,216, 14, 27,161,217,177, 84,117, 30,238, 88, -225,123,232, 64,101, 78, 80,195,217,166, 3,141,219,209,218, 58,102,160, 62,220, -187,252,171,103, 95,177, 42,218, 19,184,159,125,236, 84,167,127, 97,137, 22, 24, -202, 92, 35,150, 41, 45, 93,180, 48,104,172, 90, 1, 47,197,123,164,149,153,159, -122,197,164, 8,146, 4,125,241,246, 52,240,188,224, 15, 47,132,184,177, 51,182, - 76, 87,132, 87,144,171, 6,144, 95,133, 4,224,152,165, 49,203,190,188,239,216, - 78, 52, 7, 76,221,197,193,195, 21,162,200,184,119,190,172,143,136, 58,205,187, -172,153, 49,119,163,204,117,156,189,228, 27, 4, 33,231, 58, 55, 24, 78,105,162, -136,105, 89,182, 64,164,225,198, 94, 64,132, 69,230,241, 15, 15, 2, 47,183,140, - 50,204,104,106, 34,241,189,230,199, 37, 84, 55,220, 93,220, 10, 16, 72, 85,233, -143,182,188, 9, 37, 23,217,249,203, 13, 84,228,211, 99,114, 72, 49, 54,110, 72, -106,165, 51,147, 97, 76,251, 12,167,253,225, 94, 2, 34,181,110,118, 74,147,225, -161,240,234,208, 93, 68, 28,195,191,190,165, 64,199, 2,207,111,112,119,136,207, - 69,171,192,125,210,240, 1,226,165,102, 75,192,146,208,207,118,192,143,117, 99, -230,221, 44,142,171,105,157,164,183, 43,183, 16,141,177, 7,200,195, 11,117,219, - 11,180,166,252,207,225,142, 59,169, 1, 90,110,130,187, 71, 66, 51, 4,217, 43, -181,240,111, 19, 71,139,243, 53,201,154,109,206, 49,209,161, 74,235, 81, 13,183, -203, 50,232,186,171, 58, 91, 35,121,235,202, 55, 2,178,149,183, 10,237, 12, 71, - 7,236,210, 43,106,232, 26,139,167,171,218,232, 18, 26, 41,125, 99,214, 61, 5, -224,250,205,216, 21, 58,206,127, 67,142,167,200, 31,180,114, 82, 0,253,199, 30, - 13, 62,200, 10, 88,144,180, 27,107, 51,210,243,150,164,158,205,191,236, 3,194, -220,135, 45,207,241,145, 53,112, 29,158, 51,227,158,240,163,196,179,100, 74, 42, -124,181,122, 10, 51,134,231,193, 51,178, 50,249,216,208,189,118, 7, 9, 40, 84, -110,172, 19,154,150,107,105, 9,200,193,106,193, 57,206, 73,137, 44, 45,190,226, - 51,206,110,108,114,196,177,163, 63,132,154,249, 35, 1,159,152,102, 44, 29,102, - 45,215, 69, 22,230,126,226,161,210, 60,236,100,132,144,102,231,141,190,103,221, -111, 25, 82,116,144, 91,223, 96,106,103,187,220, 50, 21,205,118, 21,225, 22,136, -196, 6,204, 5,193,230,248, 52,156,255,190, 60,243, 6, 62, 26, 37,215,202, 8, - 19, 65,251,115,135, 38,121,136, 45, 88, 8,186, 19, 89, 46,209,166, 33, 1, 39, - 20,229,241,143,104,141, 10, 5,230,130,207,216, 69,103,181,227, 24,192,149,205, -138,131,222,164, 86,120, 96,245, 36,229,164, 81,236,190,178, 70, 8,165,249, 37, -202, 3,242, 28,175, 81,180,105,143, 12,103,254,129,119, 9,161,219,127, 39, 54, -159, 41, 67,212,110,140, 7,154,125,183, 10,200,183,183, 94, 32,155, 93, 22, 70, - 83, 94, 5,167,103,157,188,217, 17, 46,158,170,163,177,164, 45, 66,101, 73,140, -178,162,235,101,249, 73,104,147,149,185,119,200,120,220, 77,248,121, 91,184,155, - 60,150, 21,166,209,150,184,190, 62, 69, 88,110,134,239,239,237,138,236, 51, 78, -166, 86,135,103, 8, 57, 81,192,165,191,163, 78,110,219, 77, 82, 21, 82, 47,172, -173, 8,120,168,187, 2,176, 47, 57, 65,234,233, 90,142, 17, 87, 56, 18,176,128, - 99,116,101, 64, 34, 40, 23,193,253, 0, 22,222,194, 74,189, 29,132,144, 33, 18, -211,218,142,157,234, 66,151,230,185,164,112,109, 73, 32,216,114, 29,211,201, 76, -251, 14, 77, 89, 77, 50, 12,218,179, 39,128, 56,182,246, 97, 69, 46, 91, 29,200, -106,180, 59,196,229, 99, 91,194, 86,204,135,195,225, 31, 86, 25, 24,151,187,126, -184, 16, 96,175,161,205,137,119,151, 49, 24, 39, 43, 68,108, 71, 26, 50, 35,174, - 39, 16, 72,124,118, 67,193,210,138, 53,192,204, 64, 90,237, 74,115, 94,136, 20, -115,169, 45, 14, 29, 79, 46, 75, 71, 29,192,226, 28, 86, 25, 45,124, 10,139, 10, -221,179,136,136, 97,143,145, 81, 70,108,254,200,105, 88,157,240, 65, 20,214,212, - 71, 18, 99,177,150, 8, 46,146, 37,171,181, 46,142,129,132, 53,117, 26, 8,217, -115, 87, 53,134,176,206,176,248,229,125,230,130,193, 42,101, 11,126,172,218,238, - 44,216, 85,189,239,204, 3,136, 6,242,217,249, 30, 13,167,186,119, 57,241,151, - 88,162, 90, 9,144,147, 49,192, 37,193,176,177,166,103,147,238,243, 99,154,226, -173,191, 24, 51, 81,106,136,139, 40,149,107, 76, 78,178, 98,197,227, 86, 19, 45, -179,237,157,100,225, 73,138,171,123,137, 28, 52,134, 0, 38,153, 76, 31, 48,147, - 27,182,154,239, 34, 7,196, 40, 90,173,204,180,255,161,174, 95, 45,146,231, 42, -116,205,249,232, 96, 97, 64,224, 4, 63, 0, 65, 0, 71, 0, 31,249,251, 63,248, -224, 71,158,199, 36,221,105,239,189,247,222,222,110,117,189, 73,154,246, 35,127, -255, 7, 31,252,200,110, 78,203,162,140,167, 96,246, 6,201,238,174,181, 78, 91, -171,245,247,247,247,127,240,193, 7,107,140, 53,198, 89,173,142, 7,230,238, 54, - 59,199,221,220,150,182,204,183,109, 87,151,181,129, 36,135,180,149,117,123,179, -151,133, 97, 15,118, 73, 87,245,166,185,172, 73, 81, 20,229,239,255,224, 36, 81, -254,254, 15, 62,248,209,109,129,148,147, 52, 45,229,239,255,224,131, 31, 77, 65, - 59, 39,103,254,219, 86, 81, 74,217,130,105,220,148, 50, 2,129,136, 36,152,187, -226,144,115, 0, 81, 80,220, 3,138,108, 56, 14,231, 66,184,104,151,194,245,185, -180,173, 19, 8, 56,150,153, 38,113,177, 35,212,178, 39, 0,196,174,178, 5,136, -194,223,255,193,134,184, 99, 95, 9,121, 80,164, 5,119,207,208,185, 92, 92,101, -106,205, 16,184, 98,224, 56,104, 13,187, 32,142,134, 40,139,113, 0,177,115,136, -150, 16,131, 57,214,204,134,102, 46,172,110, 4,175,219,113,116,248, 92, 59, 8, -117,150,199,100, 73, 76, 74,146, 50,203, 32, 73, 41,214,169, 24, 79,164,148, 77, -171,245, 15,134,195,168,163, 77, 21, 73,146, 12, 99,243, 68, 17, 8, 6, 6, 8, -162, 1, 81, 18,227,186, 24,114, 7, 67, 64, 65, 16, 33, 40, 8,140, 2, 65, 0, - 18, 8, 12, 2,193, 64, 80, 8,132, 32, 8,133, 32, 8,130,176, 8,132, 64, 8, -202, 32, 32, 5,153,188, 3,242,235,208, 82, 64, 12,116,179,139,164, 5,225, 3, -209, 33,247,196, 71, 81, 98, 87, 8, 77,133,140, 57, 58,249, 82,191,209, 19, 92, -235,141,162,199, 67,201, 41, 71,137, 86,113,181,179, 23,202, 30, 12,163, 67,137, - 93,124,144, 72,237, 87, 72, 51,188,219,106,158,185, 81, 11,191, 53,213, 47,181, -176,129,122,204,130, 59,157,157,126,197, 23,227,145, 43,239, 44,164, 47,124, 72, -157,225, 75, 94, 83,106,247, 49,102,184,119, 46, 77,109, 79,195,100,224,121, 16, - 17,221,253, 8, 64,125, 18,109,170,197, 71, 87,245, 63, 34,210,182,209,253,178, - 67, 32, 4,233,156,120,188,133, 2,119, 99,100,146,161,253,222, 21, 24,185,111, - 72,141,106, 76,205, 78,182, 17,249, 69, 43, 71,104,147,234, 59,111, 56,137,198, -187,132, 36,201, 13,152, 2,106,207, 2, 68,252,154,157,139, 64, 13, 30,178, 18, - 74,220,225, 33,103,112,110, 72,227, 26, 91,175,218,194, 35,144, 38, 19, 14, 91, -139,152,238, 22, 87,150, 53, 10,197,220,148,136,112,234,205, 70,146,210, 75, 61, -147,111, 0,150,228, 96,190,117, 44,139,250, 11,128,102,137, 9,174,229,152,190, - 5, 31,238, 36,220,168,135,148,102,209,250,188,100,175,190,113,149, 53,167, 57, - 66,122, 19, 12,196, 40, 77,202, 6, 80, 33,193,173, 50,118, 39, 77, 87,235,241, - 8,201,171, 18, 42, 87,207, 67,212,241,196,164,246,253,153,249, 53, 73, 37,208, -161,105,147,236, 31,210,208,233,230, 88,231, 20, 98,121,161,127, 25,250,170, 75, - 83, 77, 92, 93, 32,149, 9,157,227,246, 83,171,217, 53,159, 92,243,152, 61,120, -218,128, 92,198, 89,233, 6, 65,230,118, 47,224,240,165, 82, 93,137,162,248, 40, - 5,154,241, 48, 57, 39,215, 60,120, 63,162, 95,185, 76, 10, 35, 3, 34,131, 32, -177,242,253,248,246,201,151,225, 68,231, 23, 62,112,138,169, 9,224, 46,156,120, -248, 14, 92,168,255,103, 3, 16,110,255, 47,200, 1, 11, 98,210,240,141, 93,224, -182, 80, 64, 33,236, 24, 37, 62,106, 58,131, 25,245,163,226, 97,186,181,247,111, - 74,125, 89,130,143,166, 94, 50, 6,232, 19,167,130,221,115, 30,122,226, 16,229, - 16, 6,250,202, 96,156,254,109,217,224, 27,170,160,159, 83,222, 99, 96,213,224, -168, 69, 99,220,152, 91,179,176, 87,165,198, 23, 19,103, 38,166,144,102,194,147, -101,246, 25,197, 53, 34,139, 85,176, 72,157, 2,160, 16, 24,207,109, 6,105, 2, - 66,160, 10,112,189,206,172, 20,210, 24,204,214, 1,179,108,123,157,105,124, 91, - 33,147, 31, 27,123, 71,211, 22,195, 73,190, 35, 22, 60, 51, 46,120,143,100, 11, -188,134,122,147, 88,187, 97, 74,239, 72,105,185,138, 83, 70, 43, 50, 13, 87, 13, - 44,140,239,234, 80,127,225,170, 34,114,139, 14, 2, 71, 47,249,196,226, 11, 7, - 66,110,200,149,106, 46,169,181, 29,112,252,181, 59,157,203, 10,233, 28, 99,209, -238,161,129, 51,174, 25,172,228,196,119,234, 77,241,224,137, 6,141,219,120,240, - 93,227,241, 84, 12, 52,104,152,244, 53, 13, 0,252,164,120, 12,177,167, 29,143, - 2,184, 44,136, 24, 14,124,221,215,182, 13, 72,167,102, 83,105,187, 78,201,206, -178, 79,101, 74,201,236,212, 48,145, 15, 21,148,230, 53,160,229,123,186,145, 94, -238, 28, 56, 66, 49,157,127, 91,157, 4,241,209,107,225,176, 19,157,210,203, 94, - 71, 20, 35,196, 24,245,173, 87,211,222, 34, 16, 11,227, 42, 78,204,212,200, 61, - 12,138,237, 32, 95, 65,200,172, 67,150,136,160,129, 71, 64,173,207,191,172,154, -211,186,120, 97,186,157, 99,150, 36,248,222, 69, 9,212,118,241, 54,127,140, 23, -146,134, 78, 52, 11,188,150,132,107,244, 94,205,217,146,135,140,149,197, 47, 96, -234,203,113, 46, 11,178,134,100,191,131, 73,137, 17,151,204, 43, 74,157, 34, 45, - 34, 25, 98, 17, 28,214,155, 9,106,218,226, 12,243, 53, 36,153,148, 67, 94,123, -162, 75, 54, 99,201,223,172,169,108,119,222,101,121,182, 45,230, 29,194,129, 39, - 66, 9,123,180, 19, 89, 90,250, 26, 81,253, 57, 37, 45,193, 89,180, 97,243, 63, - 23, 17, 95,224,217, 82,120,196,194,191, 20, 25,179,128,138,252, 91,215, 82,196, -228,121,225,132,232,148, 2,138,164, 21,226, 96, 71,111, 84, 16,147, 95,175,143, - 97,175,210, 45,192,121, 58,212,237, 45,215, 41, 49,242,182, 86, 38,190,192,198, -187, 45, 20,134,118,142, 1,207,124, 35, 45,227,192, 98, 27,190,187, 9,197,249, -160,123,107, 44, 76, 90,207,184,156, 31,149,144,100,114,179, 25, 99, 13, 89, 76, -186,105, 58,169,202,230, 76, 88, 46,120,164,138,184,229,156,154,156,229,153,110, -245, 85, 48,166, 33, 22, 34,132,168, 85,226, 81, 82, 65, 9, 15,188, 21,139,224, - 99, 34,157, 92,109,174, 8,136,206, 70,192,175,133,149,139, 32,158,234,187, 56, -205,172,231,121, 67, 89, 82,144,164,205,202,221,212, 6,145, 84,244, 30,130, 93, - 1, 96,138, 69,112, 19, 33,196,200, 89, 13,101, 98,138,247,149, 62, 10, 26,203, -183,126,121,110,212,241, 59, 26,148,104, 59,112,234,157,158,230,148, 70,225,255, -108,224, 74, 22,100,141,255,151,220, 52,219,221,193,207,144, 6,166,186, 83, 55, -233,255,230,111, 29,225, 23,129,183,240,138, 32,191,144,112,198, 47, 45,101, 49, -193,250,157,154,176, 44,127,168,236,106,134, 48, 29, 16, 83,163, 89, 91,239,157, - 68,214,123,209, 1, 37,226,166,247,143,222, 63, 15, 82, 10, 79,218,196, 28,188, - 17, 8, 35,131,164,118,209, 92,240,119, 70,195,250, 61, 75,199,176,149,229, 23, - 6,179,125, 21,202,245, 84, 81, 46, 75,232, 54, 68,101,162,184, 37, 0,124,185, -200, 62, 81,174,253,183, 41, 98,213,150,217,148,125, 47,118, 89,131, 14, 69, 82, -164,185,206, 81,135,222,158, 80,156, 10,230,208,197, 25, 89, 97,249,209,117, 36, -164,230,131,211, 22, 47,221, 1,244, 68,186, 76, 49,126, 64,165,184, 73,222,165, -182, 35,115,251,153, 67, 63, 8,211,133, 82,136, 72,233,215, 16,178,206,185, 41, -235, 62,189,154, 15,147,212, 15,203,252,186,211, 68, 91,210, 37,238,110,186, 52, - 48,134, 28,135,108, 81,180,217,224, 72,205, 26,114,206,176,202,246, 40,234,206, - 46,146,118, 2, 63,176,164, 56, 9,176, 49,138,251,183,248,216,207,139, 82,127, - 7,133, 4,247,241, 53,212, 66,226,140, 79,153,226, 69,192,125, 37,115,233,148, -238,116, 94,174,202, 65,138, 64, 5, 30,225,147, 11, 21,126, 37, 81,222, 6, 37, -227,143, 78, 56,187,199, 24, 11,114,139,143, 45, 47,143,110, 70, 44,211,178, 45, -125,128, 40, 21, 26, 0, 89,127,196,220, 60,114,203, 57,208,163,227, 5,223, 26, - 68,248, 74,102,245,161,158,148,253,146,213,130, 3,225,131,181,116,153,103,124, -142, 35,250,233,227,152,149, 20,183, 51,246,154, 87,163, 44,139, 76,186,113,146, - 2,131, 42, 75, 79, 30,161, 67,249, 72,197, 65,194,131, 1, 12,250,137,244, 31, -165,114, 33,225, 75,210,156,193, 35,204, 15, 52, 67, 54, 9,160, 44,102, 50, 42, -207, 67, 62, 67, 99,179,183,162,235,188, 40,225,208,172,149, 68,126, 82,226,204, -207,134, 60, 93, 57, 65, 18,148, 58, 3, 83,130,126,244, 79,252,137, 14,124,133, -176, 37,145, 30, 52,232,175,190,112, 23,183,128, 50,150,119,132, 23, 65,116, 55, -237, 19, 12,135,244,197,192, 35, 56, 90,112, 66, 14,192, 20, 69, 18,144, 88, 76, - 8, 46, 44,224, 44, 77,167, 2,178, 57, 88, 75,114, 20, 35,114,232,150,246,148, - 21,114, 41, 5,132,255,232, 81, 66,216,165, 25, 1,226,127,190,132, 51, 96,230, -166, 80, 2, 60, 29, 70, 16, 37,226,128,136,195, 32,151,242, 48,169, 62,216, 49, - 24,200,130, 56,160,211, 52, 26,192, 19, 92, 60,131, 65, 42,160, 76,186, 76, 3, -113, 9,204, 4, 10,100,101,184, 93, 3, 46, 45,224, 76,235,108, 3, 42, 41, 0, - 77, 86,231,166,133,186, 55,192,110, 8, 31,103,130,240,195, 32,103,121,229,131, - 34,231,138,242, 33,146, 83,145,242, 1,147,115,173,242,225,147,179, 94,241,193, -148,115, 69,249,208,202,169,164,252, 64,203,185, 86,249,176,203, 89,175,248, 32, -204,185,162,124, 72,230, 84, 82, 62, 64,115,190, 87,124,229,195, 53, 71,171, 66, - 41, 23,188, 57,181,107,132,247,152, 42,149, 95, 47,188, 80, 57,181,168,111, 42, -223,247,138,191, 65,144, 31,149,191, 46,228,127,131,205,190,136,234,161, 13, 96, - 98, 96,135,234,225,182,115,244,160,239,100,225, 66, 46,189,180,188,123,108, 88, -125,173,147,144,218,211,141,182,215, 81, 59, 34, 80, 20, 72,238,150,202,229,205, - 42,124, 33, 81,131,149, 34, 26,181,148, 70,134, 45, 80,108,172, 79, 0, 10, 65, -111,230,132,255,231,232, 97, 34,251, 80,232,136, 21,192,143,237,228, 92,119,225, - 53, 92,133,196,228,120,193,108, 9,166, 66,201, 56, 10, 11,151,112, 98,167,136, - 91, 57, 7,104, 94, 3, 29,243,196, 79,186, 82, 33,192, 52,138,105, 50,222, 36, -141,152,102,181, 62,234,165,153,150, 43,211,130,195, 10,150, 50,250,149, 34,213, -219,164,232,100, 32, 61,164,136, 82, 2, 58,227,227,194,234, 59,109, 92,144,132, - 25, 89,250,193,110, 94,170,146, 34,155,108, 96, 50,111, 7, 4, 59,154,126,165, -248,197,131,176,104, 22,142,129,131, 44, 86,142,230, 78, 26,205,154, 62,231,219, - 16, 50,142,192, 63, 50, 20, 80,242,185, 15,234, 8,191,221, 61, 54,155,193, 94, -182,108, 97,189,227,150,246,244,110,120, 93, 58, 14,254,177,108,229, 26,252,173, -166, 34, 17,208,210,134, 9,119,144,163,190, 25,153,181, 44, 67,151, 44, 86,137, -109, 70, 0,250, 69,234, 22,184, 78,241,214,143, 97,140,186, 51, 67, 0, 60, 82, - 53, 90, 75,210,151,217,124,233, 40, 48, 6, 51,103, 77,120, 48,157,163, 38,101, -117,191, 7, 92, 35,105,153,130,232, 11,166, 89,151, 85,237,199,248,125,143,169, -122, 99, 82,169, 58,180,230, 73, 25, 64,192, 10,166, 63,152,149, 90,151,241, 10, -160, 64,159, 23, 26,178,112,143,129, 91,132,180, 69, 45, 84,254, 94,164,126,169, -235, 12, 92,160,243,119, 22,151,152, 90, 45, 99, 23, 64, 52,120,139,100,229,225, - 11,197, 61,104,139,177,130, 11,134, 65, 24,172, 5, 80,137, 35,134,196, 31,164, -133, 7, 60, 61, 3, 71, 18, 82, 7, 58,224,212,159,139,102,200, 5, 10,204,169, - 49, 26,208,160,255, 73,180, 83, 51, 25,211,160,223,247,162,200, 83,113, 28,176, - 6,176,241,197, 26,205, 14, 63,119,175,243,169,233, 44,180,153,142,222, 83,229, -125, 32,145, 26,244, 17,184, 29,113,216, 33,106,252,117,187, 71,112,131,218, 55, - 53,118,122,100,239,224, 25,249, 11,199, 62, 36,143, 71,240, 3,107,100,240, 51, -157, 59,114, 92,224,101,156, 3,201, 36,132,233,238,194,103,184, 69,208, 95, 98, -168,208, 25, 91, 13,247, 56, 82,164,176, 25,152, 69, 54,186, 95, 98, 56,133,204, -184,131,136,205, 65, 67, 74,169, 13,190, 25, 14, 3,248, 98, 48,115,122, 21, 0, - 31,232, 25,119, 73, 97,252, 25,233, 13,172,241, 9, 85,115, 3,200,128, 58, 85, - 82, 53, 2, 67,178,212,115,125, 45,163,141,247, 72, 92, 12,254,134, 84,124,161, - 81, 12, 21,244,154, 58, 54, 3,137,141,126,129,166,154, 51, 1,137, 88,138,177, - 84,215, 77,105,216, 21,195,250, 43,150,169,194,139, 28,103, 97, 56, 85,244, 22, -157, 49,135,106,215,243,169, 2,134,106, 72,225, 17, 24, 34, 23, 85,243, 12, 57, -163, 81, 71,226,107,168, 84, 93,119,244, 12, 7, 48,100,133,152, 28, 57, 99, 1, -150,147,170, 22, 31, 53, 3, 35,216, 70, 63, 66,204,247,136, 25,203, 5,147, 89, - 68,200,184,180,162,229,202,120,135, 91, 20, 69,109, 63, 60,132,135, 60,112, 46, - 60,156,206, 85,251,135,106,188,173,200, 85, 63,165,207, 1,117,184,134, 8,124, -105,144,136,153, 24, 16,169,188,188, 76,100,240,149, 80,146,188,216, 68,100,231, - 24, 7, 39, 52, 99, 5,252,170, 72,153,179,164,156, 1, 51, 76,174,237, 65,226, -214,158, 53, 75,199, 96,147,250, 12, 23,128,172, 26,181, 89, 73, 26,128,193,185, -152, 22,214,216,166, 96, 80, 62, 16,195, 80, 71,212, 56,113,103, 12,125, 65, 12, - 99,167, 72, 36,195,218, 80,198, 63,101,152, 70, 30,204, 80,216,112, 47,142,154, -225, 82, 57,133, 72,126, 23,210, 16, 39,120, 4, 14,140,146,136,251, 14, 6, 27, -102, 97, 85, 54, 88,205,196, 10, 81,230, 29,107,136, 77,100, 84, 59,186, 64,132, - 41,226,230,209, 27,242, 92,143,243,126,192, 57,156, 69, 32, 5, 4,168, 8, 29, - 64,201, 24, 14, 80,135,236,229, 53,191,114, 8,217,205, 18,166, 7, 48,109, 52, -146,222,149,104, 18,251,157,179, 5, 32, 50,201, 53, 41, 97, 72,128,108, 44, 0, - 40, 17,129,158, 3,198,155, 0,195,199,116,135,157,194,176,143,144,158,162,195, - 19,158,187,123,147, 95, 43,182, 97,208,195, 27, 0,159, 86,111, 18, 66,196, 65, - 70, 44,211, 58,111,178, 20,196,213,232, 34,153,175, 21, 63,109, 99, 74,209,228, - 77,170,176,225, 21, 67,214, 14,203, 29, 14, 45, 55, 70, 69,113,106,222, 88,107, -197,145,223, 68,117, 10, 87,145, 45, 81,254,158, 67, 66,124, 70, 24,243, 53,128, - 55, 41, 33,226,200,130,146,164,182, 21, 59, 13,224, 41, 87, 36, 10,136,253,247, -237,151,148, 5, 11, 19,172,227,169, 91,114, 32,140, 24,217,170,140,222,223,110, - 84,178,114,237,103,146, 2, 23,142, 64,204, 64, 49,201, 24,202, 2,227,226, 24, -149,238,135, 81, 25,230,105,100, 62,147,230,170,143, 94, 94, 47, 83, 27,113,120, -221, 50,218,185,161,132, 3, 42, 51,131,169, 88, 71, 23,161,180, 26,119,126, 94, -175,187, 49, 97,119,150, 18,166,211, 69,131,176,209, 33,211,252,197,230, 13, 45, -201,136, 51,144,178,149,132,201,105, 95, 50,166,246,116,246,122, 31, 50,193, 86, - 25,169,126, 37,102, 99,154,252,196, 53,123, 77, 9, 71,198,172,158, 24, 77,241, -105, 0,124, 41, 86, 36,237,138, 99, 15,108, 73,127,112, 94,225, 94,154, 3,118, -210, 20,210,151,227,132,106, 59,227,107,162,125,235,194, 17, 54,230,186, 95,141, - 69,226, 18, 76,163,104, 3,144,161, 36,237, 29, 34,223, 22, 57, 81,209,234, 89, -230,101,202,147,215, 8,216,100, 32,183,158, 0,249,172,157, 38, 86, 5,122,214, -100,180, 14,206, 60, 12,159,229, 81,250,239,167,221,109, 49,153, 97,227, 53,254, - 68,122,131, 14, 78,105,168,180,117, 1, 19, 16,146,217,215,111, 44,199, 85, 78, -106, 8,180, 3,198, 60,231, 15,178, 87,127,239, 47, 64,114, 2,201,116,130,193, - 66,121, 63, 97, 6, 73,155, 0,228, 74, 8, 38,189,115, 53, 7,209,234, 41, 77, - 75,205,162,215, 40,142,158,208, 73,183,138,178, 4,178,220,197,138,230,209,219, - 1,107, 99,161,171,145, 52, 26,240, 54, 63,213,240,107, 86, 62, 15, 25,130, 0, - 39, 53,142,192, 12,136, 36,214,139,148,160, 1, 97,103, 20, 90, 52, 89, 80,149, -186, 65,233,123,223, 7, 8,215, 52, 16,195,138, 57, 55,162, 1,119,113,192, 18, -247,141,254,199, 77, 62,111,128,239,252, 12,230, 53,166,177,134, 41,249, 76,248, -101, 87,110, 44, 84, 0, 64,184,173,182,150,141,240, 22,189,243, 99,143,242,142, - 60,254, 20, 53,131, 68,239, 96,166,184,239, 88, 0, 16, 14,123,166, 1, 25,222, - 49, 96,188,120, 17,195,149,196, 92, 56,177,150,130,234,185,203,210, 66, 80, 22, -213,176,155,142, 99, 68,208,198, 74,183, 92, 64, 8, 47, 71, 76,159,112,140,198, -197, 17, 4,224, 76,196,254,117, 31, 35,248, 32, 20,106, 35,240,188,248, 73, 2, - 75, 47,118,251, 76, 32,146, 94,137, 12, 23,139, 10,204, 15,176, 11,212, 15, 19, - 28, 43, 12,212, 19,180,153,167,100,133,159, 98,185,129,202,130, 48, 31, 53,214, - 30, 24, 84, 11, 45,245, 44,160, 33, 22, 34, 24, 74,192, 52,249, 48,125,199,176, - 42,193,133, 9,171,164, 14, 45, 74, 61,168, 68,193,183,176,141,148,189,114,213, - 43,168, 11,190, 82, 66, 72, 67,197, 11,142, 11,243, 9, 25, 10, 86, 37,131,228, -133,150,110,169, 99, 89, 27,203, 26, 60, 7,241,202, 88,238,176,198, 65, 17,193, -219, 42, 32,168, 88,237,224,137, 48,191,136,169, 10, 88,247,160, 73,240, 25, 27, -224, 48,205, 41, 60, 89,110, 64, 24, 37,120,201, 81,187,153, 32,187,122, 19, 13, -194, 0,151, 74, 25,154, 65,104,145, 95,123,183,120,229, 58, 56, 3, 16, 91,237, - 26,193, 23,218, 98,220, 14,132,161,113, 58, 90,167, 65,101,105,129,236, 95,131, -149,111,231, 23, 5, 49,144,136,110, 90,115,238,155,105, 61,176, 22,167,101, 9, - 72, 11,189,120,141, 50,176, 11,122,252,218, 82,130, 87, 5, 62, 79,152,173,192, -236,160,157,130,159, 19,232, 11, 98, 0,118,161, 22,255, 85, 81,123, 15, 8,103, -251, 82,176, 28,228, 86,129, 54,111,110, 4, 64,189,235,147,192, 62,236,167, 82, -248,217, 11,141,199,235, 54,179, 87, 53,244,162,119,127, 2, 67,196, 71,243,160, -127, 50,245, 50, 93,241,134, 38,161,130,220,135, 1,210,190,141, 48,172, 90,146, - 17,165,112, 53, 47,144, 53, 90,236,164,228, 99, 24,110, 91,249,202, 97, 24, 38, -250,135, 62,195,149,206, 96,208, 13,171,101, 12, 89, 36,145, 97, 68,165,156, 49, - 36,227,220,211, 30,202,208, 48,114, 25,202,170,173,212,151, 50,204, 25,225,154, -226, 97,120, 16, 78,198,128, 56,197, 67,148,128,123,140,137,213,105,172,129, 91, -198, 94,142,210, 82,115, 77, 53, 40,165,228,151,229, 84, 81, 80, 25, 30,165, 59, - 15, 80, 18,130, 92, 85, 19,188,134,183, 27, 40,185, 49,131,194, 39,171, 86,106, - 10,160,153,131,243,126, 74, 11, 42, 62, 83, 33, 37,255, 59, 99,163,191,156,184, -154, 67,167, 58, 79,100, 8, 96, 34, 73,154, 41,138, 23,238, 4,190, 97,122,221, - 87, 21,130,145,132,105,127,169,154,121, 22,157,123,223,151, 63,110,101,163,229, -225,146,232, 23, 88,131,191,227, 69,122,142,116,100, 57, 9,218, 15,148,208,153, - 72, 74,144,108,214,175,152,205, 84, 64, 0,242, 78, 48, 22, 32,125,113,120,141, - 56,197, 23,255, 16,230,117,175,206,243,108, 50, 74, 0, 72, 0, 56,251, 24, 6, - 33,245,125,101,151, 38, 81, 26,190,183,134,182, 81,142,108,137,170, 42, 10,255, -143,238, 68,210,140,226, 52,139,162, 9,233,147, 30,133,203,255, 1,105,246,188, - 48, 60,191,160,119,176,217,182,253, 31, 70,227,209,163, 99,209, 97,182,151,171, -238, 60,195,120,198, 55,230,248, 22,148, 65,196,209, 91, 47, 77,146, 60,202,194, -132, 47,201,118,213,183, 42,231, 12, 83,105,186,145,130,174,184,238, 86, 12, 85, -238,171,222, 30,237,110,136,240,170,186,186,189, 5, 41,208, 31, 73, 54, 99,182, -250,255,214,143, 27,245,244, 84,104, 79,246,182,194, 48,252,127,145,102, 55,217, -178,100, 74,240,129,246,109,209,120, 33,224,170, 77,123, 88,237,166,168,135,191, - 40,154,151, 62,222,252, 7,131,158,168,178, 94, 53, 73,161, 3, 98, 42,132, 33, - 57, 16,100, 65,170,204,148,200, 61, 66, 96, 12, 19, 2, 49, 26, 98, 16, 50, 33, -136, 16, 67,152, 64, 2, 9, 36, 18, 17, 18, 9,210,164,109,176,157, 43, 43, 83, -209,187,145,252, 75, 25,233,186,114,146, 33,186,154,207, 94,172,193,157, 69, 59, - 39,122,158,113,118,161,205,117, 45,220,252, 86, 89, 40,244,192,142,214, 93, 49, -153, 86, 75,104,144, 48, 90,221,148, 99, 50, 86, 75,209,160, 96,191,107, 38,176, -224,182,242, 96, 8,178,221,173, 19,255,107,216,122,137,134,123,202,178,242,185, -240,223,204, 23,156,107,188,134,101, 75,221, 71, 87, 43, 82, 41, 37, 85, 12,217, - 74,223, 45, 21,165,174,232, 14, 29, 23,107, 72,130, 5,249,115,196,141,126, 29, - 94, 53, 77, 89,161,244, 17,145, 52,122,175,105,239,141, 47, 94,189,117, 68,203, - 51, 54,118,237,248, 68,171,111, 68,105,121,150,134,254, 53,143, 72,245,169, 72, -229, 18, 47,109, 11,140, 60,125,142,173,124, 97, 89,144,211,143,155, 77,140,199, -252,168,171, 45, 21,134,196, 36, 89, 5, 18, 62,165, 83,115,189,238, 29,120, 68, - 49,122, 87, 29,239, 42,202,118, 96,184,218,115,232, 56,108, 67,146, 37,252,103, -166, 91,189, 13,131,189, 14, 57,133, 40,135, 33, 84,177,113,183,214,157,204, 52, -105,107, 74,183, 62,218, 54,231,172, 81,213, 35, 35, 42, 75,188,180, 45, 48,242, - 73, 11, 35,157,220,239,111,203,177, 33,194,162,196, 90, 45,199,158,123, 2,156, -163, 75,119, 42, 88, 89, 59,139,188, 14,235, 58,248, 97, 81,155, 82, 86, 16,141, -240,165, 67, 39,143,123,176,254,107,125, 49,111,235,205, 79, 30, 19, 11, 96,135, - 91, 30, 13,206,238, 45,195,248,182, 36, 9,186, 28,162, 49,237, 91, 95, 70, 24, -245, 99,165,209, 1, 25,190,168,156, 66,119,139,162,179, 36,181, 92, 7,213, 31, -214,106,159, 46, 93,120, 1, 90,183,203, 6,240,205, 75,114,209,150,162,122,254, - 95,226, 6,175,148, 42,105,149, 58,197,233, 98,241, 42,125, 29,167,121, 98,152, -141, 77,160, 82,156, 80,150,109,108,176,114, 99,100,152,125,156, 62,131, 30,125, -160,102,113,209,237,183,233,177,170,196,160,130,120,162, 33, 59, 28,119,225,217, -214,177,133,250, 94, 31, 77,158, 20, 96,127, 53, 57,119,182,231, 35, 26,248, 47, -163,204,110,188, 80,178,217,181,141, 94,213, 43, 27,240, 32,164, 68, 40,199,240, - 53,144,173,151,222,239,239,164,177, 46,166, 3,252, 21, 12,151,239,106,250, 73, - 24,194,178,208,116, 32,173,133,102,173, 37, 38, 19,215, 21,242,172, 4, 69,100, -197,159,157, 33, 73,199,183,244, 94,208,167, 3, 15, 70,220,179,244,234,153, 81, -100,158,160,216, 10, 96,174,103,114, 0,138, 59,239,248, 92,235,132,128,231, 9, - 41,230, 27,231, 99, 74, 42, 71,215, 8, 63,152,236, 75,104,110, 13,137, 15,169, - 29,110,237, 11,166,235,117, 87,149,243,189,127,167,109,105, 83, 6, 97, 72, 30, -244, 22,252, 49, 29,218, 59, 10, 49, 68,142, 66, 96,137,240, 38, 90, 61,160,227, -214, 31,250,239, 57,169, 70, 95, 72, 64,241,222,231,131,197,101,102, 11,169, 83, -191,248,141,234,151, 42,239,238, 83, 63, 31, 42, 82, 26, 68,101, 5,165, 34,169, - 50, 71, 31,147, 26, 43, 50, 80,184,214, 84,178,152, 93, 97,133, 91, 73,246,192, -129,174,105,234,131,174,185,231, 40,133,228,182,250,150,222,184,199,157, 88, 98, -241,205, 19,160, 13,151,115,217, 28,205, 22,232, 22, 45,137,103,233, 57, 40, 22, -104,112, 80, 63,161,133,122, 15,149, 36, 91,244, 98,179,218, 65, 26, 74,174,209, - 48,223, 13,223,183,140,213,218,137,102,252,135, 62,182,171,101, 22,116, 14,245, - 97, 47,151, 24,188, 7,222,183, 84, 95, 75, 9,176,153, 81,215, 92,149, 95,153, - 86,219, 74,134, 96,131,232,104,223, 82,144,208,116, 30, 96, 2,168,206,137, 9, -238,184,246, 55, 33,245, 82,173,226,136,158,148,195,255,162, 77,128, 84,228,153, -152,195,152,141, 48, 49,224, 93,205, 28,223,104,156,164, 36, 79,198,236, 46,102, -229, 47,112, 60,191,110, 46,150, 54,144,183, 91,226,202,216, 18,115,115,139, 45, - 30, 68,218,185,142, 46,111, 0,235,184,137,180, 89,246, 44,127,125,126,146,143, - 18,148,150, 47, 50, 21,161,251, 81, 7, 8, 59,183,207, 90,115,127,127, 93, 80, - 28,206,238,145,246, 72,159,255,226,147,123, 98,255, 93,173,120,139, 43,192,128, - 94,179, 36, 48, 99,187,199,195, 10,210, 45, 88,130,216,109,130,229,227,253, 75, - 77, 28, 98, 42, 29, 90, 89,155, 43,215,114,132,176,232,154, 74,162,220,224, 2, - 5,196,145, 48,158,139, 62,189,138, 41,129,208, 0, 3,240,199, 34, 32, 30,225, -187, 37,240, 1, 88,233,144,151, 35,140,165,142, 49,127,191,100,253,155, 60, 52, -208,255,244,236,108,139,200,181,104,150, 80, 3,189, 25, 8,192, 58, 27,157,242, -248, 92, 79,255,136,184, 37,142,247,200, 13,170, 0,105,194, 15,140, 93,222,251, -230,199,221,159,244, 47,249,191,239,150, 99,205,177,118, 42, 70, 97,150,230,158, -203, 49,227,210,124,252,186, 8,122, 38,129, 71, 32, 83,149,228,199,117, 4,230, - 13,197,223, 63,243,204,142, 11, 53,104, 90,204,158, 89,254, 8, 47, 6, 4,240, - 84,215,239,151,160, 83,164, 53,234,200, 79,110,152,150,135, 49,239, 90,101,143, - 85,146, 17, 55, 38, 64, 12,162, 19, 95, 6, 28,216,104, 71,125,209,158,221, 29, - 61,230,208, 14,210, 48,212,172,115, 46,106, 28,184, 60,128, 75,130, 20,167,124, -252, 32, 0,175, 46, 47,112,175, 12,174, 79,122,112,193,105,180, 99,236,222, 25, - 97, 78, 50,162, 60,155, 25,157,145, 91, 42,139,249,132,141,105,116,111,131, 54, - 7,172, 9, 93,121, 93, 84,116, 93, 20,235,112, 70,212, 23,141,188, 2,190,148, - 95,114,249, 32, 10,172, 59,147,235,123, 19, 99,111,226,126,223,196,152, 80, 86, -215, 19, 34, 72,209, 70, 22, 55,189,133, 22, 64, 79,128,158,192, 99,232, 20,190, -220, 62,239, 0, 68, 78,202,226, 48, 98,190,197,207, 71,207, 69, 95,205,167, 64, - 96, 30,114, 38, 76, 82,164,144, 80,252, 20,188, 74, 17, 75,164, 29, 11,215,106, - 53, 66,236, 35,255, 26, 64,190,158,199,251,203, 22, 50, 71, 19, 62,129, 24, 61, -108,126,224,254,243,246, 3,185, 43,247, 78,154,211,115,173,173,106, 52,127, 78, -146,151,153, 55,100,230,152, 29, 0,200, 99,199, 44,208,185, 72,148,147,246, 17, - 36, 82, 87, 5,181, 49,174, 72,222, 64,181,209, 90,206, 68,110, 60, 85,190, 45, -138,168, 74,208, 71, 15,191,165, 34,240, 4,144,227, 84,206,193,223,211, 93, 49, - 8,243,220,198, 42, 96, 7,254, 24,154, 27, 88, 24,201, 77,142,144,133,138,149, - 73,212,194,240,112,172, 70,198,146,211,108, 44, 16,167,242, 42,206, 67, 4,169, - 91,120,248,194,182, 71,164, 58, 20,248,137,150, 8,132, 15,197, 67, 36,129,149, -162,138, 52, 44, 6,195,185, 30,129, 43,205,154,154,196,176,174,203, 31,243,136, -178, 32, 46, 27,202, 51,200, 73, 44,194,171,148,101, 86, 62,122,113,102, 57,121, -209,185,145,141,195, 88, 24, 67,234, 6,253, 27,189, 97, 92,126,230,203,245,106, -157, 55,183, 35, 61,178,183,126,122, 57, 51, 73,103, 28,156,239,198, 98, 95, 84, -207,106,130,111,128,107,214,115,189,132,167, 41,234,107,175,203, 68,212, 31, 45, -119,200,143, 14, 34,233, 40,150,102, 71,209,203,132,205, 17, 36, 74, 84, 12, 2, - 79,240, 57, 80, 24,137, 15, 9,145,138, 40, 32, 18,145,104,181,140,200, 59,139, - 68, 96,180,147, 77,118, 27, 0,116, 29,183, 19,214,137,228, 82,110, 91, 34,102, -197, 83,148,223,216,251, 61,240,105,242,247, 30, 44, 23,216,235,136, 78, 65, 50, -255,222,115,190,166, 48, 17, 17,228,144,135,204,166, 89,128,142,123,128,166, 77, - 45, 91, 86,246,146, 86,168, 23,250, 81,207, 83,120, 31, 87,116, 96, 75,138,200, -143,141,131, 29,144, 68,244, 57,188, 1, 71,123,200,236, 58,188, 7,132,117,228, -234,112,246, 19, 74,170,217,155,217,132, 50,254,193,186,134, 53,140, 92, 97, 19, -131,218, 90,194, 70, 75,252,182,183, 49,225,188,246,163,246,122,185,157,219,242, -109,164,154,201,160, 30,114, 24,169,230, 1, 31,100,121, 69, 45,145, 46, 74,255, -243,181, 69, 11, 5,210,244,225, 29, 48,154, 9,117, 63, 79,241,192,207,204,101, - 71,117,225,161, 2,155,192,132, 93, 52, 75,252,209, 6, 34, 81,233, 17,142, 26, -190,246, 20, 39, 53,146, 63, 84, 32,244, 18, 0, 8, 82,131,159,168,226, 63, 34, - 22, 34,240, 68, 70,162,166, 57, 34, 40, 4, 32,132, 65,168, 8,131,192, 14,100, - 2, 17,177, 32, 73,253, 72, 7,134, 9, 38, 5, 40,230,186,129,166, 88, 64,158, -184,177,178,226,172,212,176,232, 24, 64,194, 11,149,111,167, 31, 47, 74,181,114, -140, 58,152,222, 10,125, 38, 20,166, 16,142,147,104, 95, 78,188, 10,212,226, 85, - 93,176, 41,251,221, 2,181,120, 85,183, 96,179, 21,235, 18, 40,213,171,186, 5, -155,173, 88,151, 64,169, 94,213, 45,216,108,197,186, 4, 74,245, 42,140,166, 38, -223, 37, 80,185,211, 16, 52, 5, 89,110,129,210,156,134,160, 41,200,114, 11,148, -230, 52, 4,154,130, 44,183, 64,105, 78, 59, 5,155,178,223, 45, 80,116, 73, 87, -104,125,253,114,237, 91,109,214,228,230,236,242,227,161, 18, 23, 12, 15,153,220, -156, 93,241,242,212,209,233, 56, 76,194, 11,149,111,167, 31, 47, 74,230,163, 14, -230,199,173,104,151,119, 60,214,153, 27, 59,235,237,187, 28, 98,228, 5,219,148, - 38,102, 12, 55,195, 30, 30, 93,227, 77, 11, 24,161, 71,215,181, 83, 42,123,134, -172,194, 21, 58, 0,107,133, 62, 11,213,148,210,238,233,167,188, 56, 56,181,245, -113,145, 7, 15,107, 25,154, 36, 59,227, 48, 9,239, 85,210, 78,244, 65, 25, 73, - 31,118, 48,225, 10,173, 51,251,116, 61,160,109,219, 20,119, 1, 41,107,160, 48, -239, 36,248, 85,201, 93, 20, 94,221,207,192, 73, 26, 61,169, 65, 38, 29,154, 45, -177, 58,198, 20,220,253, 97, 96, 67,122,122, 56, 20,181,141, 95,156, 79, 53, 45, - 25,118,198,177,121,192, 42,120, 66,146,115, 40,186,103, 13,119,137, 67,177,198, -143, 43, 84, 75, 2, 4, 21,176, 77,177, 27, 63,225, 76, 77,221, 55,211, 50,165, - 93, 78, 9,108, 33,155, 76,210,121,135, 21,234,254, 28,193,171, 27,211,106,247, - 15, 7, 11,105,244,164,166,238,155, 45,134,207,232,206, 19, 46,134, 11, 14,227, -186, 42, 32, 52, 52,254,157, 42,254,223, 78, 84,104, 41,183,170, 28,153,105,123, -199, 99,157,185,177,179,222, 92, 44, 84, 21, 97, 60, 51, 55,118, 86, 58, 47, 61, - 60,186,218, 80, 9, 27, 36, 96, 69, 3, 74,215, 25, 44, 66, 94, 0,131,118,193, - 1,180,218,113,108,238, 3,127,253, 7, 93, 27,174,231,204,140, 73,131,169, 3, -238,132,221,148,244,123, 58, 52, 83,219,227, 46,171,179, 19,141,126,119, 12, 28, - 73,135,167, 67, 51,181,205, 93,155, 36, 48,229, 9,141,102, 55, 15,105,129,246, -199, 78,252, 86,220,135, 39,165,100, 87,124,217,238,132,132,182,234,253, 78, 49, - 47,152,135,121, 42,119, 35, 83,140, 57, 7, 18, 7, 24,156, 6,168, 51, 17,152, - 91, 49,154,138,188, 52,236,203, 2,191, 21,159,198, 46,111,154,194, 3,196, 40, - 0,162, 3, 13, 18,144,207, 1,156, 8, 32,230, 37,218,189,132, 19, 72, 67,227, - 51,227, 76, 68, 93, 32,154, 73,226, 44, 17,160, 8, 35, 78, 80,126,110,238,223, -181,107, 86,172, 74,165,140, 7, 28,210,162,247,159,251,119, 29,135, 61,168,179, -207, 13,179, 92, 2, 98, 34,166,100, 72, 68,107,232, 51,112, 32,136, 16, 24, 6, - 34, 4,132, 0, 61, 16, 17,145,160, 2, 9, 68,164,140,162,164,233, 64, 64,208, -210,193, 44,202,197, 2, 80, 5,207,224,189, 54, 68,249, 6,243, 9,155,238, 8, - 33, 56, 93,144,207,221,165,231,186, 78,226, 41,149,104, 45,218,146, 34,191, 41, -229,225, 75, 43,171,213, 12,179, 60, 31,231, 44,105,138, 58,251, 64,126,137,177, -127,171, 86,116,170, 98, 17, 42,255, 81, 56, 11,245,254,255,227,121,229,112, 98, - 16, 87, 77,102, 73,236, 63,139,148, 49, 23,105,107,180,102,211, 13, 32, 95,105, -153,171,173,216,143, 57, 75,174, 72, 77, 60, 85, 3,187, 66, 51,237,162,168,169, -185, 70,154,105,166,231,159,162, 15,148,159, 94,209,250,102,253, 70,153,153, 18, -161, 35,219,242,151,145, 74,125,161,168,102,233,203, 66,166, 30, 7, 73,189,234, -110,106, 64, 68,220, 55, 79,127,160,229,250, 80,130, 64,210, 87,218, 70, 85,225, -127, 4,185,137,133, 82,141, 90,182, 55,159,131, 90, 36, 24, 83, 87, 26, 53,175, - 76,170, 88,220,211, 9, 94,194, 51, 61, 21,248, 91,121,184, 51,209,163,106,109, - 19,143,252, 24, 77,169, 22,223, 44, 43,147,129,215, 36,170,186, 55,207, 96,111, - 47,210,253, 81,166,169,216,228, 27, 69, 71, 80,223,212,227, 42,250, 45, 85, 24, - 64,174,235,224, 25,140, 85,179, 88,206,193,186,219,243,108,231, 96,139,116,153, - 45,140, 11,243,250, 79, 48,209,113, 9,239,205, 85,143,173,116,135,133,187,114, -141,214, 89,202,131, 90,204, 92,234, 86,135, 4,154,131, 18,196, 27, 16,250,213, -129,154,118,248,229,209,128, 18,170,174,241,199,153,129,210,105, 69,245,229,138, -148, 77,204,195,121, 12,224,162,139,138, 52,110,238, 56, 36,108,211,250,186,233, -145, 50,209,112, 84,118, 82, 53, 26,210,106, 99,132, 54, 13, 31,141,143,170,226, -243,129, 67,219,134,224,145, 76, 64, 52, 82,250, 9,186, 40,221, 50,173,104, 5, -113, 10, 56,180,200,218,101, 4, 29,134,237, 69, 64,157,167, 45,136, 13,129,192, -112, 65,154, 44,220, 37,141,117,177,155,184, 24,151, 56,214,179,218,186, 93, 56, -221, 40,254,126,135,204,102, 9, 67,128, 55, 79, 16,144, 51, 86, 74,122,150, 57, - 12,162, 81,252,143,123,221, 5, 91, 92, 60,239, 4, 7,168,127,156, 65,143,146, -111, 96,150, 17, 37,103,162, 47,216,144,248,187, 24,166, 65,191,232,217,208,116, -131, 72,140, 68, 9, 9, 64,204, 4, 17,106, 11,207,212, 4, 77, 94, 2,229, 37, -196, 10,227,194, 80,170,137,110,155,164, 21,181, 34, 93,102,181,136,154, 78, 63, - 41, 77, 12, 40,106, 52,162,120,152, 69,179,130,122,130,165,224,112, 64, 17, 38, -210, 75, 86, 44,186,234,104,247,225,181,134,201, 59,178,100,161,171, 58,109,112, -207,155,145,144, 72, 46,210,202,144, 33, 1, 19, 34, 25,147, 31, 14, 66,208, 16, - 30, 6, 80, 65,100,237,137,117, 49, 43,208,197, 82, 11,218,116,250,147,210,196, -128, 98, 15,128,222, 8, 17,145,177, 20, 59,150, 30, 88, 10,174,167, 40,130,169, -117,203,138, 70,175, 58,218,125,120,173, 97,242,142, 12, 90, 92,170, 78,155,168, - 75, 6, 40, 25, 42, 81,120,204,194, 44, 65, 61,194, 82,112, 62,142, 34,180, 91, - 73, 57,102,244,219, 81,109,195, 43, 30,246,119,228,193, 98,161,171,185, 44,116, -155, 99,191, 54,159, 99, 86, 20,250, 9,176, 77,213, 60,115,221, 99,173,146,185, - 52, 42,108,148,169, 92,157,153,182,215,236,153,180, 17, 68, 26, 25,181, 81, 99, - 34, 77,229,234,204,180,189,182,103,210, 70,172, 53, 49,213,141, 79,228,182, 83, - 7,182,160,205,230,254,240,217, 23, 6,182,208,111,179,252,112,220, 45,171,213, - 74,120,177,227,117, 73,173,139,207,139,143,184,180, 55,246,106,121,226, 6,187, -128, 46,254, 19, 6,244,126,223,107,247, 20,113, 70, 48,176, 8,154, 46, 70,123, - 23, 24,224,248,239,237, 24,216, 66,239, 47,235,222, 57,114, 81,251,178,225,162, -243,195,133, 13, 85,132,221,194,249,239, 51, 93,104,150,196, 93, 16, 96,181, 14, -187,166,233, 8,232,140, 34,175, 13,179,212,181,196, 44,170,195,200, 46, 50,245, - 8,200, 8,194,174,192,243,182, 72, 95, 80, 8, 22,157,146, 13, 43, 42,184,139, - 68, 14,201, 69,116,237,185, 82,143,122,188,225,208,252,249,179,175,191,230,248, -194,225,121,110, 31,171, 57,175, 57, 9, 52,122, 59, 54, 40, 55,229,173,172, 86, - 19, 25, 63,205,170, 75,142,216,149, 80,168, 36, 10,213,162, 82,180, 73, 68,161, -148,141, 77, 52,206,100,250, 36, 36,214, 53,239, 64,194,201,194,179, 26, 29, 95, -184, 88,175,185,226,175,164, 98, 45, 59, 16,122,229,152, 27, 47,109,152,109,183, -195,143,221, 85, 62,108, 57, 9,232,107, 31, 54,200,220,188,115,192,255,156, 14, - 0,107, 5, 93, 20, 78, 47,114,201,146,178, 31,251,250,109, 27,199,174,185,166, -186,188,162,252,141,137, 14, 2, 66,250, 71, 13,112,246,216,226,234, 98, 87, 90, -145, 80,148, 36, 67,218, 80, 45,180, 41,161, 80, 8, 26, 98, 39,210, 32,201, 75, -128, 95,217,111,210, 60, 41,230, 21,192, 65, 87, 29,241, 43, 91, 54, 92,169,146, -214, 44,189,159, 52, 49,255,186, 37, 43,202,239,152,248, 32,100,164, 94,213, 24, - 99, 15, 45,174, 46,114,228, 21, 9,166, 73, 50,164, 13,213, 66,155, 18, 88,134, -160, 33,118, 34, 13,146,188, 4,248,149,253, 38,205,147, 98, 94, 1, 28,116,209, - 17,191,146,216,182,204,177,126,116,171,126,153, 96, 27,134,143,221, 85,126,216, -122, 18,242, 87,166, 27,151, 37,226,188, 38, 0,216,202,226,202, 30,134, 14,137, -143,249, 4, 45, 1,148, 23, 1, 38,181,160, 38,224,148,186, 1,200, 70,254,243, - 59, 92,191,207, 11,176, 47,223,255,243,242,240, 76,188, 18,191,112, 5,109, 34, -222,227,223,164, 12,102, 88, 99,188, 16,153, 0,146, 0,147, 0, 15, 71,198, 3, - 2,101,162,179,201,199, 92,224,197,133, 7,117,206,100,247,213, 57,178,179, 85, -136,202, 25,144,200, 71, 97,135,166,108, 90, 87, 53,220, 91,157,204, 95, 7,198, -166,113,186,127, 9,113, 71,102,218,211, 30,153,207,114,123,223,100,228, 86, 59, - 43,123, 16, 83,231,145,174,242,143,162,199,149,206,140, 3, 10,166, 22, 75, 74, -171,253, 89,219, 90,248,103, 69, 28, 97,177,105,156, 77, 59, 45, 68, 52,158,163, -147,163, 76, 89, 13,187,131, 46,107,184,231, 91,204,212, 44,241,159,155, 72,180, - 17,193,240, 81, 73,232, 73,133,187, 17,166,204,165,149, 19,134,127, 13, 13, 80, -101, 50,241,107, 52, 81,197,212, 47, 19,125,225,160,143,193,243,189, 47,132,158, -250,254,192,126,152, 69,193, 1,108,222,113,173,249,233,240, 90,136,175,228,148, -244,203, 64, 23, 54, 6,185, 29,114, 87,144, 91,131,220, 23,204,232,142, 50,197, - 27, 1,189, 9,202,104,128, 76,110,211,206,231,232,180,158,153,156,231,170,126, -112, 0,122, 52, 15,245, 17,238,191,214, 43, 67,157, 95, 5,117, 39,227, 42, 39, -183,250, 36,212,121, 2,205,175,223,230, 70,246,198, 51,250, 77,157, 31,206, 67, -165,164,145,243,234,173,210,238,224,206,131,139,247,172,182,110,192,187,208,125, -168,143,135, 13,177, 63,116,194, 91,252,140, 36, 76,146, 64, 29,248,238,243,118, - 8,249,220,104,151,137,170,202, 90,202, 90,174, 84, 90,107,173,181,110, 59,198, - 72, 69,200, 84,132, 21,196, 24, 99, 36,152,248, 29, 43,112,150, 42,144, 0, 89, - 85, 93,193,200, 27,176, 24,221, 99,140, 81,140,113,179,105, 96,231, 92,146, 6, -251,170, 92,240,186,174,203,189,114, 76, 82, 47, 24,230,152,199, 24,221, 35,135, - 30, 99,124,199, 16,226,135, 56,136, 22,226,155,228, 66,168, 16,144, 6,202,235, -167, 93,223,139, 53,116, 33, 99,216,139,222,244, 60, 28, 69, 44,178,205, 76,165, -221,157, 17,130, 52,145, 18,186,175,110,106,225,157,241,146,101,157,196,229,129, - 59, 1, 21,203,132,226,209, 89,166,138,165, 98,153, 80, 38, 20,203,100,153,252, - 94,127,154, 67,252,120,146,145, 17,159,133, 46, 28, 20, 69,114, 14,177, 70,114, -174, 76,199,169,218,245, 36,201, 69,242, 19, 60,252,249, 44, 61,231,140,225, 48, - 76,164,101, 10,195, 20, 38,227, 47, 31,152, 49,152, 54,240,204,155, 95,110, 50, -178, 49, 45,185, 89, 43, 9,190,129,129,235,215,175,214,224, 0,199,220, 24,234, - 29, 60,104,235, 70,168,119,178,201, 73,119, 12,254,137, 11, 86,173,219,212,154, - 97, 28, 12, 16, 36,138,164, 96,185,170,162, 24, 99,140,177,170, 98,188,174,232, - 30,227,197, 34, 77,199,198,121, 84,185,151, 46, 5,142,123,168,148,187,125,181, -129, 32,160, 1,131,115, 0, 8, 12, 12, 74, 35, 50,137, 68,138,146, 44,229,252, -212,128,134, 66,149, 5, 17,135,152,132,135, 2, 28, 48, 48, 3,129, 8, 24, 64, - 0, 2,144, 1, 4, 0, 6, 12, 64, 4, 33,130, 28, 75, 15, 31,216,125, 63, 10, - 14,237,203, 53,136,204, 46,252,192,243,120, 63, 58,172,143,123, 87, 0,254, 14, - 9,215, 24,208, 81, 31, 59, 29,210,199, 52, 67,191, 45,140,252, 73,244,240, 59, -220,119, 26, 59, 48,156,239, 52, 18, 41,152,198,251,116,219, 12, 88, 50,103, 58, -195, 31, 26, 65,197, 8,195,221,243,236, 50,252, 68,138, 8,136, 96,147,159,168, -113,151,251, 41,152,129,223, 48, 82,125,194, 62,181,108,251,111,178, 17, 49, 63, -117, 72,175,147,192,226, 66,122, 22, 32, 25, 4,196,163, 8, 43,125,210,199,250, - 95,100,146,137, 66,168,213, 54,221,164,215,203,252,249, 22,142,112,126, 64,129, -186,143,117,211,224, 11, 29, 17,162,214,230, 85,199,117, 67, 45,192,118,254,239, -160, 18,154, 47, 56,149,250, 86,222, 34, 9,157,207, 59, 5,225,178,181, 71, 19, - 88,252,222,110, 29, 78,119,150, 92,227, 86,172, 30, 7, 37,143,111, 89,222,210, -199,215,210,183,200, 9,178,110,135,131, 36, 22,236,247, 98, 95, 89,160,116, 38, - 46,160,227, 13,247,204, 67,150,124, 84,190, 77,163,228, 77,154,188, 21,183,217, - 3,147,184, 68,160, 47,252, 4, 43,187,105,136,223, 16, 86,127,150, 3,172,234, -119, 18,166, 30, 12, 86, 36, 63,108,196,159,242,136, 1,171, 32,250, 24, 33,250, -171,252, 42,221, 85,132,139,245, 42, 44,246,136, 36, 13,110, 17,192, 92, 94, 91, - 13,143,189, 84,126,183,165,166,206,107,116, 55,222,138, 93,245,166,184,113, 82, - 78,163, 56, 18,146,140, 42, 37,163,232,197,110, 14,236,104,230, 30,122, 42,228, -237, 33,139, 96,226,240, 58, 96,219, 86,120,167, 16,207,143,106, 51,130,203,147, - 5,251,107, 37,203,105,234,157,174,184, 31, 94,188,154,116, 86,205,229,161,149, - 48, 85, 40,203,235,209,125, 91,192,149, 87, 93,148,207, 3, 78, 41, 35,177,200, -236,166,168,238,178,139,100,137,111, 1, 49,225,147,227, 96,238,229, 81,154,191, - 60, 53, 20,168,220,111,164, 42, 37, 84,239,142,155,184,201,227,193,242, 54, 1, - 88, 69,181,214,111, 23,126,145,162,215, 9, 33, 86,170, 43,223, 46,159,213,105, - 66, 32,214,130, 38,171,244,114,109, 7, 76, 92,229, 29,197,237,185,206,173,230, -235,100,145,181,171,216, 51, 21, 74,189,105,148,152, 53,187, 58,175,142, 97,196, - 22,238, 74, 8,220, 72,219,200, 97,100,116,236, 5, 51,196, 60,184, 65,127, 49, -184, 98,234, 56,154,179,240,234,201,121,241,187, 52,149, 73,135, 27,184,148,215, -249, 62,213,246,208,177,221,152,139,187,115, 33,111, 21, 82,242,248,195,137, 58, -131, 7, 70, 46, 38, 7, 86,218, 29, 42,222,170,230,216,157,218,105,185, 89, 63, - 86,185,130, 60,115,205,171,188,220,252, 35, 3, 52,199,155, 70, 93, 61, 93,184, -142,128, 14,158, 54,246,137, 89, 91,107,168,185,201,219,106,238, 46, 61,108,177, - 90,205,104,117,231, 52, 37,141, 38,174,246,213,158,118,101, 65,114, 0, 29, 42, -115,213, 12,213, 90, 24, 9, 32,176,106, 91, 18,228, 76,195,255, 90,152, 24,194, -150,199, 74,120, 30,190, 8,152,233, 91,133,104,105, 53, 73, 90, 86,174,190,167, -216,139, 1, 21, 36, 39,254,166,203, 33,204,114, 14, 27, 83,194,203, 82, 66,202, - 14,190, 11, 56,254,246,230, 81, 62, 77,106,213, 7, 79, 10,168,223, 84, 33,238, -118, 21,106,184,131, 3,102,163, 71,199,217, 13,203,108, 41, 36, 68,244,208,231, - 36, 12,159, 73,137,158,177, 89,228, 20,134, 93,184,187,162,164,176, 3,152,147, - 68, 29,217,201,234, 79,169,215,135,236,229,101, 29,248, 73,222,254,250, 15,102, - 83,246,131,139, 89, 53, 46,138,209,245, 0,196,249,220, 55,215,228,117,248,248, -197, 46,222, 74,156, 5, 23,110, 34, 22,240,166,158,176,107, 16, 18,165,153,106, -212, 32,203,187, 99,201,190, 20,248, 72,180, 64, 41, 12,144,103,144,255,180,173, - 51, 69,174, 14, 68,118, 80,138,232, 21,171,240,209,116,214,180, 76,180, 59,166, - 72,116,232, 64,155, 78,224, 83,168, 39,137,111, 0, 67,197,228,148,185, 84, 2, - 61,100,253,130,161,196,119, 78,222,169,211, 60, 29,242,156,244, 37,209,100,139, -167,119, 75, 68,103, 28,186, 8,235,118,209,149,138, 10,223,142,189, 87,113, 10, -174, 56,246, 64, 50, 90, 30,211, 99,197, 94, 87,108, 77, 54,163, 40, 67, 62,118, -137, 0, 31,169,251, 8,222, 77,158,116,121, 38,128,118,190,133, 74,208,173, 96, -249,107,112, 20,166, 97, 34,217,184, 52,190,253, 79,219, 79,172,115,151,162,215, -136, 32,145,241, 48,253,177,111,240,124, 81,217,165, 0,246,139,234, 75,159, 78, - 7, 83,143, 0,244, 36,220,167, 5, 42, 42, 72, 8,229,129, 19,191, 23, 30, 40, - 59,140, 11,101,241, 62,253, 60, 24,241, 9, 45, 52,120, 55,142,201,178,223,134, - 77, 1,182,248, 38, 61,166,212,130,206, 33,215,117, 31, 85,184,119, 61,166, 99, -205,114,185,239, 31,146,153, 83, 97,132, 63,142,250,199, 89,169,211,140,201, 48, -100, 90, 51, 37, 86, 77, 20,104,130, 58,116,127, 21,229,119, 65,193,121,197, 75, -231, 8, 0, 41,158,188,139, 75,154,197, 8, 71,119,158,209,198, 27,116, 74,247, -108,194,133, 17, 3, 87,127, 37, 2,121, 51, 87, 48,208,213, 5, 14,173,233,201, - 73,171,102,132,215,169,252, 7, 49,114,173,138,123, 49, 61,227, 29,124,172,238, -251,136, 3,155, 57,233,215,201, 88,249, 74, 90, 39, 7, 73,235,255, 23, 58,172, -236, 42,171, 4,152,196,205, 89, 97,184,202,163,213, 98, 34, 82,214, 18,114,189, -244, 59,230,173, 1,199,238,224,138,119,133,144, 65, 69,213, 1,128,127,159, 79, - 91, 38,175, 87, 51,125, 64, 48, 84,113,175,181, 40,175,159,183, 93,248, 31, 41, -118, 66,240, 41,110, 20,240,103, 1, 67,205, 94,171, 57,205, 40,114,179, 0,239, - 80,163,179,221,232,254,182,124,245,146,171,146,174,246, 62,100, 51, 34, 85, 52, - 31, 76,148,235,106,168, 6,170, 66,123, 94, 52, 71, 69, 67,182, 11, 61,104, 39, -225, 11, 53, 75, 81,226, 73,137,162,159, 49, 72, 0,165,236, 87, 91, 74, 39,101, -193,158, 97,155,190, 13,143,228,239,104,120, 58, 58, 27, 53,217, 48,127, 95, 60, - 5, 12, 6,186, 87,241,175,202,155,229,141,180, 40,134, 24,125, 42,176,159, 30, -216, 2,241,194, 52,130, 0, 69, 47,193,163,220,219, 0,142,167, 0, 22, 14, 87, - 24, 75,209, 64,157, 64, 74, 41, 49,162,117,222, 44, 70, 84,142,109,216,127,254, -136, 21,203,194,178,195, 27,208,175,217, 92,108, 0, 71,195,170,213, 9,135, 90, -206, 25, 42,115, 93,166,174, 9, 13,207,248,170,145,159,142, 91, 28,123,120,129, -241,108,176, 31,136,194,210,189, 31, 22, 27,109, 25, 23,182, 98,167,149,254, 83, - 29, 45,205,244, 55,127, 98,107, 4,160,191,118, 62, 26,179, 94,171, 65,146,116, -143,143,166, 46,225,167,226,105,243,166,223,227,126, 18,205, 61,134, 22,164,120, - 67,186, 66,185,104, 62, 37,107,243, 26, 32, 74, 67, 82,173,205,104,120, 51,107, -111, 81,228,201, 3,167,195, 42, 32,183,136, 43,223, 49,202,189,113,138,131,205, - 22,245,197,116, 58,101, 43,117, 47,125,106,125,204,243,208,234,224,229, 61, 92, -177, 66, 16,211, 50,249,165, 10, 1, 88,124,151, 38,193,121,140,208, 20,106,194, - 84,125,182, 88,139,187, 14,138,136,245, 78,174,227,234, 47, 41,245,127,246,184, -139, 25, 71,207, 66,104, 56,206,230,160,197,107,209, 47, 12,223,192,210,205, 7, - 56,249, 23,140,118,167,129, 31,204,200, 88,183,209,176,163, 74, 53,113, 95,202, - 67, 56,196,188,226, 93, 3, 47, 61,185, 71,115,229, 93, 60,193, 50,193,123, 61, -224,127,219, 53, 60,112,132,176,164,124,192,230, 77,156, 50, 15,215, 79,186,126, -115,144,205,110, 55,186,149,176, 38, 93,188,184, 62,245, 96,209,148, 85,234, 14, -129, 50,217,224,238, 94,203, 67,191,182,111,150, 47,153,191,109, 90,174,240,142, - 15, 39,179,151,210,233,237, 29,204, 35,216,204,125,192,249, 34,127, 3,158, 15, - 89, 35,243,235,208,112, 2, 61,112, 76, 78,142,160,226,146,229,173, 4, 64,168, - 85,108,253, 27, 12,212, 62, 85,216,235,179,107, 5, 98,182,209,125,186, 57, 73, -188, 64, 95, 7, 2, 4, 37, 58,134,142,251,255, 64,170,170,228, 38,106,203, 19, - 79,114,124,215,198,230,134, 20,200, 59, 58,195,237,180,139,164,116, 30,227, 69, - 36,206,234, 17, 28, 56, 99,148,104, 0,190,238,136, 53,196,248,107,193,145,149, -204,215,222, 80, 96,218, 94, 65,132,172, 50, 17, 25,122,186, 85, 49,194,252, 40, - 22,125, 65, 20, 9,107, 98, 60,150,238,212, 91,189, 19,179, 6,121,122,154, 9, -158,207,238,157,112,160,149,138,156, 96, 16,227,102, 1,123,197, 72,121,216,133, -199,180,167,121,130, 73,156,194, 48,108,137,234, 21,236,143,198,135, 11, 79,199, -228,237, 46,124,250,175,193,153,110,120, 20, 89, 52,134, 94, 71,128,233,148,209, -118, 76,104, 21, 97,189, 97,191, 3, 84, 50,190, 22,203,217, 77,234, 90,159,206, - 24, 32, 87, 51, 60,121, 30, 98, 99,221, 41,179,234,221,135,148, 47,123,106,232, -194, 8,190,107, 79,255,167,101, 91, 28,222, 96, 10, 59, 57,248, 7,213,187,192, - 26,174,173, 23,126,249,171,142,120, 26,182, 42, 36, 36,211,199,208,153, 45,111, -122,100,126,176,208,209, 99,238, 73,139,226, 82, 85,165,133, 18,186,153,245,176, -234,122,133,112,150,127,120,145,136,154, 12, 78,155,197, 35, 42,129,201,100,179, -135, 37,239, 64,214,137, 99, 97,130, 80,117, 40,167,206,107, 70, 76,211,144, 42, - 52, 34, 28,216, 89,163,255, 6, 66,125,188,176,145, 60, 59, 53, 90,103, 43, 83, - 48,135, 69,193,225,128,205,222,138,132, 19, 71,205, 13,240,163, 38,190, 90, 81, - 30,140,227,172,234, 22,226,173,157, 26, 96,118, 38,153,210, 19, 10,162,190,214, - 1,236, 39, 53, 28,243, 24, 9,100,178,136, 35,247,145, 59, 48, 18,150,243, 66, - 96, 89, 88,101,151,228,192,112,194, 0, 58,230,218,171, 5,137, 90,111, 16, 76, -249,148, 37,180, 14, 95, 55,224,150,110, 13,215,126,248, 45,152,218,202,128,104, -195, 95, 28,170, 15,123,121, 14,180,204,116, 40,100,179,127,174, 6, 46, 63,235, - 33, 46,226,231,163,182, 47, 0, 97,156,102,146,177,127,213,147, 52,108, 88, 85, -146,208,213,250,184, 19,192, 92, 6, 57, 35,168,237,162,138, 76, 76, 84, 51,175, -162, 57, 77, 38, 78, 50,216, 96, 38,105, 95, 34,199,147,127, 34,213,188, 14, 36, - 81,104,194,226,125,102, 50, 86,185,197,211, 29,188,218,143,191, 81,176,202,170, - 88,229, 53,245, 70,217,215,136,244, 29,183,207, 39, 28,250,200, 29,126,157, 29, -157, 84,124, 14, 79,245,113,185,190,136,161,230,228, 18, 43,170,214,112,109,232, -178,180, 7,242, 97,246, 46,148,217,229, 8, 19,164,228, 72,159, 17, 17,170, 26, -178,140,197, 56, 24,100,224, 14, 57,239, 78, 52, 61,134,137,164,134, 74,174,196, -247,202,113,188,165,235, 38, 94, 14,107, 5,166, 58,123,125, 43, 16,131, 77,152, -255, 9, 84,179,202,145, 38,224,255, 41, 12,210,129,134, 57,238,192,163,188,104, - 88,223,194,129,233,252,133, 82,124,107,141,193,143,217,210,212, 56,233,175,207, -197,101, 81,183, 54, 53, 74, 78, 3,135, 0,176,108,199, 90,151,223,134, 73,193, -135,175,203,158, 78, 63,232,227, 9,173, 33, 79, 75,178,217,230,105,139, 30, 15, - 20, 77,207,129,210,197, 72,239,252, 74, 39,106,199, 62,236,190, 39,140,236, 79, -226, 28,119,199,134,106,202,156,132, 18,157, 43,193,248, 4,161,171,252,253, 53, - 92,186,114, 40,139, 45,156, 76, 38,123,136,196,208,122,151,234,215,106, 14, 94, - 38,227, 18,213,252,153,169,223,135,192, 63,130, 57,162, 81,188,129, 69,207, 76, - 69,124,174,146,133,175,232,253, 26,195,227,133,208,101,194,168,181,196, 69, 5, -107, 36,176,126, 92, 4, 96, 79, 76, 97,109,178, 6,151, 60, 58,134,110,173,135, - 62,235,117,252,177, 70,146,250,212, 10,109,160,192,184,181,112,241,189, 75,104, - 99,173, 53,138,244, 39, 33,119,189,155,241,113,215, 67,238,142,245, 27,230, 86, - 73,228,163,223,210,217,141,203,211,245,158, 34, 53,165,212, 21,199, 27,192,170, -179,129,223, 20,105, 5, 29, 64,218,208,193,196,125,242,130, 27,113, 68,208,116, -128,193, 97, 44,243,193,182,124,254,123,174,104, 31,253,103, 71, 10, 68, 98, 35, -134,104,137,184, 12,133,127, 21,132,163,128,189,166,164,128, 52, 89, 10,200,225, -175,122, 42,244,102, 88,210,209,177,181,237,121,149, 8,194,241,109,141,209, 46, - 96,248,204, 81,175, 13,168,203,218, 49, 27,246,178, 6,126,220,197, 96, 43,133, - 86,222,128,179,129,239,181,181, 58, 77, 5,126, 82,183, 12, 78,221,104,181,217, -202, 93,135, 87,220, 84,224, 70,133,102, 61, 82, 6,204,240, 43,249, 95, 30,104, - 82,227, 97,238,142, 71, 65,224, 56, 34, 98, 1,125,137,112,224, 10,130,186,142, -204, 84, 78, 39,174, 33, 54,186,255, 11, 76,225, 51,105,222,116,163,217,180,129, - 27,152,199, 0, 99,247,233, 65,217, 50, 18,102,186, 58, 87, 11, 34,174,115, 6, -195, 69,239,115,205,254,156,168,161, 1, 30,176, 68, 79,180,147, 33, 13, 39, 86, -154, 75,168,125,238,127,233,121, 99,174,236,155,200, 40,247,122,162, 81,244,142, -140,117, 95,232,213,231, 60,208,115,109,112,201,204, 98,202, 2,236,179, 25,107, -252,192,168, 86, 18,241,237,230,128,137,205, 7,125,253,128, 30,125,119, 50, 22, - 23,244,211,124, 10, 64, 71,231,175, 58,188,228,230,111, 57,197,211,240, 8, 51, - 58, 51, 94, 3, 76,243,172,141,197,248, 64, 38,249, 4,184,137,101, 68,173, 97, -214,160,197,154,129,202,144, 13,219,221,172,223,229,207,146,225, 67,101, 48,135, -220, 29,202,216,204,149,148,200,231,150,249, 19,146, 42,245,113,116, 53,227,190, -193, 85,137, 54, 85,163,218, 25,111, 44, 19,166,103, 8, 11,228,150, 58, 77,242, -148,209, 15,102, 14,218,165, 43,140,174,209,180,209,247, 38,153,189,253,138, 91, - 58,236,121, 36,215,119,191,196,221,136, 49, 69,110, 69, 55, 63, 71,198,181,111, - 22,228,112,226, 80,123,128,147,172,167,233,254,182,127, 72, 53,162,161,213, 32, -237,224,182, 26, 46,233,172,252,113,203, 73,186,233,162, 80,185,220,222, 19,215, -219,132,115,226,246,247, 94,199, 53,216,114, 48, 82, 90, 77,199,253,178,193, 5, - 87, 92,163,136,219, 48,112,128,184, 61,124,217,253,231, 50, 34,114,102,150,156, -127,192,237,183, 12, 6, 57, 60,165, 19,141,234,106,151,183,221,104, 69,182, 48, -181, 19, 64, 3,111,128,224, 46, 9, 22,238,246,154,100,245, 23,238, 99, 10,191, -119,155, 84,193,146, 46,192, 45, 83, 44,144,243,189,162,224, 85, 39, 91, 14,218, - 50, 34,163, 22,135,250,149, 54, 0, 16,147,216,151,177,115,109,255, 48,146, 17, -106,182,230,236,128,140, 26,140, 63,196, 61,164, 76,222,138, 29, 63, 84, 38,182, - 60, 25, 63,131,109,135,188,237, 59,144,217,189,255, 57,245, 96,227,234, 24,223, - 23, 71,185,150,116, 41, 92,244, 85, 53,106,181, 33, 87,171,230,162, 95,120,184, -215,167, 5, 28,231, 40, 78,167, 6,188, 9,163,114,207,101, 67, 65,193,176,188, -249, 97,209,206, 80,207,135, 60, 68,220,109, 28,220,237, 44, 68,192,198,165, 32, -166, 15,169,204, 7,100,195,206,159, 59,200,124,230,219,138, 33,214,151,118, 95, -228,201, 60, 75,108,131, 80, 52,190,173,134,221,240,195,213,101,142,140,249, 48, -177,116,141,173, 17,131,243, 53, 19,154,151,244,165,172,138,122, 24, 85,214, 41, - 26, 8, 83, 11,160, 45, 8,163, 28, 68, 72, 23,187,100,222,131,123, 35,180,155, -202, 76,241,173,229,242,255,105,109,209, 71,185,255, 56, 25,112, 35,200,249,102, -237, 36,218,212,233, 51,205, 40, 37,147, 22,122,199,115, 22,167, 95,251,143, 58, -233,145,199, 90,159, 61,182, 57,200,167,227, 51,131,106, 51, 39,120,146,103,183, - 45,204,150, 70,150,212, 84, 98,217,101,136, 68,183,115,137,108, 36, 48,174,217, - 11,127,152, 71,159,160, 12,194,140,147,184,151,128,190, 57,254, 99,226,214, 89, - 84, 33,226,207,130,173, 11,125,248,132, 38, 18,151,225,139,218,207, 28, 3,165, -172,107,176,112,238,108, 81, 55,222,223,255, 25,145,222,246, 96, 64,150, 37,145, - 78, 52, 75, 49, 6, 75,237, 97, 97, 74,211, 82,111,175,114, 33, 58,192, 34,126, - 79, 17,183, 25,247,181,227, 62, 52,184,170, 12, 64,215,234, 63,131,112,133,188, - 49,169,106,165, 5, 81,124,160,132, 51,140,137,108,175,102,143,217,203,155, 27, -184, 43, 58,209,129, 45,224, 42,243,178,201, 90,115, 4, 30,241, 8, 86, 51,130, - 73,118,181,131,165,236,140, 23,147,106,247, 28, 4,242,204,176,175,166, 22,221, -114,249,123,219, 87,221, 21, 20,131, 78, 97,183, 93, 47, 11, 20,159,135,243, 14, - 64,186,239,254,122, 53,209,138,163, 67,227,246, 18, 44, 51,201, 65,117,242, 30, -185, 91,139,141,176, 22, 43,223,218,241,110,119,217,246,140,236, 35,168,186,182, - 18,203,116,116,119,184, 3,243,111, 58, 70,208,107, 58,174,144,116,138,103,255, -246,154,254,243,117, 7, 5,241, 16, 18,226,140,222,134,127,204,193,145, 80, 37, -244, 25, 62, 26, 6, 11,127, 40, 83,148, 46,188, 80, 30,218, 56, 40, 46, 12,144, -239, 48, 78, 50,229, 92, 33,237, 12, 69,141, 42,166,203, 32,202,249, 48, 1,208, -204,109, 26, 19, 47,141,142, 75,180, 81,109,205,209, 34, 23,208, 51,151, 56,136, - 36,183,196,223,165,137,197, 76,204, 56, 33, 2,103,126,185,179,212,184,243,228, - 16,227,251, 4, 96,113,167, 59,254,198, 8,122,238,140,106, 12,123, 11,235,168, -232,139,189,190,161,113, 70, 21,168, 53,206, 84,153,106,201,200, 16, 29, 68,244, - 5,162,169, 71,213, 44,154, 96, 21, 8,153,154, 60, 99,209,116,175, 81,126, 5, -251, 80,250, 51, 44,161, 85, 83, 89, 35,220,188,156, 0, 18,227, 7, 69,126,154, - 62,247,110, 20, 4, 97,172,131,181,163, 28, 80,227,212,249, 98, 54, 41, 64,105, - 2,196,210,199, 73,248,121, 53,131,175,138,244, 86, 81, 52, 47, 43,126, 37, 64, - 3, 51,243, 4, 27,149, 69,198, 37,227, 86,101,158, 58, 51, 75,179, 19, 70, 67, - 18, 30,192, 46, 46, 67,189, 20, 78,132,251,221,221, 48,122,210,226,108,249,217, -123,126, 82,149, 28,104,180,118,153,187, 45, 48,101,212, 30, 18, 76,133,108,232, -106, 88,205,148,236, 30,196, 2,142, 33,192,122, 6,248, 80,242, 11,167,168, 21, - 15, 47,142, 13,155,144,125,137,184,151,174, 44, 42,106, 81,100,138, 12,102, 52, -188, 17, 51,185,252, 16,181,173,162, 53,185,140, 56,254, 40,160,163,179, 61,169, - 34, 56,137, 50, 74,172,166, 10,128,251,141, 94,196, 89, 82,112, 79, 45,247,126, -195, 83, 80,203,117,207, 82,133,192, 10, 98,101, 61, 70, 31,156, 89, 50,254,168, - 96, 1,125,204,210,179,250, 48,148,238,123,251,207,165,181,147,222, 7,122,184, - 93,192, 47, 42,154, 40, 24, 21,199,134, 81,177,247, 85, 66,111,242,242,123,203, -166,137,168,150, 14,135,179,202,129,233, 55,126,196,121,188, 93,209,242,255, 74, -250,228,113, 3,194, 75, 5,167,165, 10, 55,200,114,182,203, 53,164,214,246, 92, -206, 49,115,159, 55,220,240,145, 49,243,134, 38, 67, 96,197,144, 54, 72,178, 17, -194,149,131,226,197, 96, 82,227, 89,249,104,185, 33, 84, 4,246, 60,102, 89,133, -113,197,222, 37, 16, 59, 79,185,241,219,166,179,252,182, 52,137, 59, 42,164, 7, - 84,232,156, 19, 77, 93,113, 93,122,218, 28, 37,108, 66, 15,166,117, 43,219, 32, -233,186,215,142,211, 56, 41, 20,139,219,119,125, 96, 80,232, 32,115,195,190, 99, - 78,254,148,228, 21,212,214, 91, 55, 5, 78,101,195,246,130,190,230, 9,246,178, - 79,140, 55,245,179,178,232, 54,242,225, 45, 23, 37,250,227,222, 45, 69,240,225, -148,176, 89,247, 80,144, 16, 84, 13,129,174,110, 86, 76,221,172,122, 38,145,140, - 33,195,194,229, 76, 68,139,158,155, 33,181,173,186, 39,168, 49,165, 83,196, 5, -168, 25,236,136,196,252,198,152, 11,210,135, 58,121, 35,171, 24,157,142,186,170, -164, 90,126, 7, 64,228, 75,250,118, 56,206,159,153, 71,212,146, 0, 24,220, 15, -175, 65,165, 74,172, 56, 36, 60, 90,191, 79, 53,239,155,106, 78,160,154,202,178, -180,127, 86, 96,136, 30,145,232,183,150, 75, 0, 4,186,116, 95, 37, 80,102,208, -234,100, 47,109, 14, 72, 36, 24,123, 47,175,193, 42, 68,215, 84, 99, 85,222,216, - 69,158,228,241,110,161,210, 71, 91,222, 47,188, 95,106, 58, 53, 58,217, 18,141, -243, 89,226, 62,194,185, 93, 17,222, 37,189,224, 68,199,150,253, 52,187,151,241, -221,163, 61,113, 83, 94,215,155,159,141,172, 67, 52, 41, 33, 13,204,249,198, 50, - 36,186,111,145,104, 85,196,244,166,232, 45,156, 57,241, 19,199,177,166, 26,225, - 66,193, 40,166, 97,150,232, 10, 47, 65, 53,189,168,141,243,237,163,146,226, 7, -221,175, 79,139,220, 79, 97, 88, 70,121,251, 12,146,127, 36, 77, 71,232, 41,252, -226, 58,160, 44, 77,201, 20, 42, 77, 37, 16,157,172,134, 42,199, 92,208,168,141, -202, 53,250,203,213,179,196,168,169,231, 7,225, 69, 48,169,120, 53,135,104,146, - 53, 64, 24, 66,198,210, 9,234, 55,187,161,103, 25,211,153, 53,245,182, 91, 26, - 61, 67,198, 62, 25,226,129,132, 31,158, 12, 56,142,109, 10,203, 45, 88,115,218, -122,122,128,217,198,224, 80,251,169, 8,118,162, 81, 32, 98,254, 54,109,226,253, - 83,233, 89,226,178, 60, 10,185,179,133,202, 66,175,120,174, 20,179,179, 67,127, -168,118,175,126,223,218,212,206, 67,208,164, 91, 58,115,130, 83,176, 25, 93,188, -192, 24, 52,127,214,215,120, 57,231, 22,169,198,185,166, 7,111, 96, 67,250, 88, - 49,114,106,102, 96,186, 51, 47,147,249,156, 84,193,150,164,230, 21, 76,184,128, - 28, 35, 7, 1, 28,117,231,153, 6,236, 46,222,160,185, 68,109, 45, 71, 20,234, - 66,109,153, 20,122, 48,182,200,243,160,240, 75, 83,129,169, 99,177, 5,193,201, -185,179, 67,204,130, 59,253,149,139,176, 58, 16,103, 32,185,236, 78, 39,230, 70, - 38, 13,239,206,173, 32, 31, 91,191,133,134,115,244, 95,176, 10, 97, 18, 66,112, - 33, 87,239,120,154, 98,145,184, 23, 94,106,161,194, 20,150,169, 49,253,240,167, - 89,162,226,185,161,157, 56, 68,110,163,238,235, 79,200, 66,174, 7, 19,111, 96, - 42, 97, 83,130,151,125, 68,196,164,160,157,121, 78,188, 76,205, 26, 25,211,128, - 78,152,128,174, 48, 4, 43,187,209,166,210, 1, 85,168, 52, 87,244,108, 39,100, - 27, 94, 33,117,140,238,148,118,171,254,226,205, 28,120, 29, 30, 82,178, 55,221, -194, 10,101,111, 80, 12,179,148, 52,144,192,181,112,146, 56,232,115,162, 12, 37, -137,179, 40, 66, 20,107, 25, 62,139,240, 59, 85,100,190, 97,150,203,102, 54,113, -221, 48,205,104, 9,153, 15,129, 25,178,221,125, 80, 40, 95,101,194,208,176,241, - 29, 60, 10,198,210, 66,214, 47, 32, 92, 50,181,170, 62, 69,151,244,128, 4,145, - 12, 62, 41, 19,251,107, 77,202, 53,149,221, 28,111,112,230,228, 62,114,119, 38, -252, 10,154,224,188,172, 17, 66,205,156, 40,196,166, 20,197,184,114,166,155,144, -100, 76,169, 73, 47,179,237,129,161,130,227, 86, 2,231,218,164, 20, 96,147,254, - 49, 33, 80,252, 84,166, 98,151, 36,215,137,148, 57, 52,184,111,164, 22,177, 57, -210,227,196,124,222, 16,101, 35, 65, 3, 64,220, 92,187,233, 28, 97,105,200, 79, -160,248,197, 6,148, 54,227,192, 85, 25,142,167,100, 69,223, 73, 34,121,137,129, -218, 58,165,178,134,121, 66,122,162,206,203,208,152, 99,232,200,112,174, 48,163, -205,114, 40,155, 35,207,202,155,127,175,187,131,129, 90, 75, 32,141, 87, 86, 53, -139, 16, 86, 20, 60, 68, 53, 10,169,130,149, 33,167, 27, 42,250,216,244,113,190, -131,186,154,111,185,180, 84,110,161,125,133,206,221, 24,160, 6,238,144,242, 61, - 85,129, 27,184, 87,243, 34, 63, 73, 87, 93, 11,255, 89, 48,152,224,195,196, 14, -124,183,157,109, 11, 33,210,232,255, 2, 49,218,118, 13, 88,182,152, 41,234,210, -192,187, 25,143,177, 69,164,114,198,224,177, 27,255, 28, 31,135,188, 68, 60,100, -230,249, 36,100, 6,124,127,101, 98, 30, 80, 39, 78,119, 22,113,103,127, 74, 57, -169, 66,174, 87,186, 72,247,128,204,194, 11,211,135,139, 24,125,160,242,107,162, -173, 31,224, 69, 11, 7, 45, 38, 46,240,193,215, 98,214, 78,167,148, 76, 74,218, -173, 11, 23,156,148,142,149,103, 40,150,218,242, 92,185,179,225,211,106, 42,127, - 58,168,247, 73,225,165,244, 81, 80, 91,196,156,191, 7,162,192,221, 49,249, 8, -231, 59,219,140, 76,204,247,120,219, 27, 25,248,177,229,138,228,214, 76,229, 77, -214, 8,116, 83,180,246,201,114,187, 73,197,250, 43,245,197,250,145,166, 85,243, - 51,209,102,111, 24,110, 11,190,169,207,230,135,194, 8, 35,162,114, 25, 56, 83, - 62,223,183,182,236,169,148,123, 60, 83,248, 84,139, 72,203, 19, 8, 31, 72, 54, -159,166, 74,169, 47,200, 94,184, 73,155, 87,232, 78,188,212, 64,110,181,155,100, -230, 71,197,230,235,145,147,120,198,170,147, 66,157, 62, 18, 17,222,174,232, 65, -170, 17, 12, 73,232,149, 47, 49,137, 55,185,249,184, 31, 12,101, 14,224, 73,144, - 65,136,160,252, 60,156,246, 71,235,251,233,249,148,207,249,136,116, 53,162,188, -213, 56,153,140,200, 16, 39,175,179, 84,180,180, 71,118,244,103,155, 92,236,152, - 22,172, 56,104,202,183,148,108, 61, 47,171,123,133, 20, 95,248,131,237,215,196, -153, 85, 98,111, 93,158,236, 87,114,168,169,135, 47,214, 24, 38,127,226, 11,213, -156,253,240,200,120,104,166,229,126,158, 43,134,151,162,149,219,121,112,242, 58, - 71, 22, 64,241, 8,210,231,155,254,124,197,217, 30,251,121,142, 82, 36,179, 68, -193,204,229,117,156,168,236, 76, 20,248,241,148,196,185, 20, 79,210, 73, 18, 98, -181, 64, 62,169, 34, 48,217,103, 27,195, 95,221,190, 45,171, 77, 41,196,180,107, -234,128, 33,143,184, 75, 30, 89, 81, 94, 96,221,101,187, 66,107, 11, 27,133, 50, -113,202, 38,194,149, 78,128,206,230, 34,203, 13,255,178, 8,223, 40,222,108,234, - 19, 90,147, 8, 63, 56,215, 81,237,108,172, 90, 11, 10,143,152, 65,110,166,111, - 56, 66,200,211,173,178, 15, 29,112,178, 5, 12,177,139,197,194,116, 20, 99, 73, -169,137, 70,154,180,217,140,214,195, 71,156,156, 77,145,157,230, 25,192, 3,246, -224, 90,128, 55,161,243, 88,172, 67, 24, 21, 74, 30, 81,160,241,243,115, 93,235, - 64,237,222,255, 13,210,216,145,226,252,112, 16,203,245,184,141, 62,193,255, 26, - 7,240,120,159,254, 56,153, 70,166,245,133,176,218, 93, 63,105,161,114,162, 44, -142, 36,198, 18,114, 15,155,181, 36,107, 95,163, 7,226, 65, 66,212,134, 85, 65, - 34, 59,241, 37,148,203, 13,187, 93,221,158,216,223, 66,172,241,160,182,130,211, - 7,245, 68,244,201,192,124,206, 47,238,191,178,146, 23,184,236,190,164,214,137, -177, 19, 11, 49, 99,255, 89,203, 51,153, 64, 73,237,212,252,237, 43,246,253,103, - 30,106, 36,132,124,222, 44,190,149,176, 43,105, 98,165,168,111,130, 60,175, 86, - 87, 15, 85,184,164, 86,211,175, 3,224,235,243,235, 85,133,119,120, 17, 1,109, -214,220, 51,239,108, 73, 84,185,139, 21, 32, 63,123, 94, 7,213,235,243,184, 97, -143,160,177,117,198, 83, 65, 33,196, 89,235, 68,107, 20,196,196, 34,169,176, 45, - 30, 4,223,250,118, 39,144,144, 67,141, 74,128,107, 28,163,152,228,208,154,245, -141,201,104,178, 60, 49,157,228, 3,208, 4, 95,212,161,112, 91,202,175,224, 51, -219, 48,237, 93, 80, 8, 3, 15,222,109, 53, 17,197, 82, 96,253,221,150,244,247, -133,163,190,182,134, 71, 33,108, 39, 9, 76,244, 77,163, 22, 35, 43, 70, 80, 59, -130,115,230,149,105, 70,213,206,145,150, 28,115, 61,199,234,193,203,241,142,222, -116,160, 35,243,123,190, 22,103,166,161, 49, 1, 12,190, 35,228, 49, 11, 88, 82, -111,145,202,197, 94, 74, 6,214, 32, 23, 88,181,200, 66,106, 40,121, 7, 46, 36, - 49, 23,185,140,182,232,143,233, 38,220,210,248, 74,184,220,186,189,100,177, 84, -138,173,156, 7,125,113,141, 15, 12, 83,184,124,111,220,189, 24,215, 66, 36,214, - 87,233, 8,194, 70, 54,102,175, 61, 44,194,233, 5,140,139, 28,165,152,114,211, -242, 4, 96,162, 43,186, 26,161, 35, 15, 63, 42,156, 44, 55, 11,145, 35,130,121, -119, 41,116,102,188, 66, 99,102,233,227,132,220,199, 8,135,158,216, 31, 88, 23, -182, 25, 81,191,241,103, 18,175,222,120, 18, 14, 44,120, 30, 31,152,125, 86, 52, - 51, 90, 41,190,187,100, 59,207, 75,232,189, 2, 5,222, 94, 96,214,244,181,174, - 80,100, 87,225,197,194,203,104,209, 59,111, 77, 92, 97, 7,102,137,117, 37,153, -129,155,184,225,177,213, 99,190, 2, 64, 16,137, 98,164, 83, 0, 67,218,206,254, -207,249,128, 78,171,188,221, 30,189,233, 98,127,183,234, 94, 14,236,118,218, 42, -184, 33, 86,222, 97,142,210, 87,162,190, 92, 38,153, 96,215,234, 56,114,225,130, - 22,108,178, 29,153,160,163,133,170,187,170, 19,198,131, 50,152,253, 4, 41,246, - 72, 45,240,133,125,131, 1,120,133, 5,153,176,163, 6,225, 80, 66,146,241,162, - 49,135,101, 2, 17, 38,106, 58,245,123,153,139, 27, 77, 27,145,153, 35, 65, 4, -154, 8,101,239,141,140,249,140,124,133, 31, 93,191, 70,225,208, 62,131, 78,230, -104, 75,161, 61,141, 85,199, 52,101,251, 24, 84,223, 34,204, 47,130, 13,135,124, - 63, 45,243,231,207, 88, 38, 77, 71, 29,253,243,234,174, 61, 24,210,172,111,123, - 99,124, 69, 72,207,214, 10,171, 18,116,196, 87, 39,151,246,141,189,115,178,160, -185,118,197, 89,160,154,137,123, 92,242, 66,167,128,246, 84, 62,129, 41, 35,233, -242,251, 47, 30, 25, 84,115,155,119,244,155,238,248,182,233,180,162, 42,249,183, -110,159, 91, 51,229, 89, 50,251,195,136,108,105,146, 94,131, 93, 29,248,123,140, -162,196,252,114, 81, 38,113,192,172,184,188, 90,131,206, 51, 68,174,132, 91,151, -175,116, 13,251, 52,255,116, 86,103,100,194, 55, 9,149,175,244,105,141,121, 96, -208, 51, 95,160,214,155,154, 46,242,239, 72,138,145, 62,242,146, 49,162,224, 50, - 23,121,109,169, 81,225,235,121, 16,224, 28,180,251, 34,157,118, 3,248,212, 97, -229,194,108, 11,144,120, 77, 21, 80,212, 92,209, 73,161,138,149, 98, 58, 75,203, -131,150,174, 27, 72,213,178,144,225,109, 64,142, 53, 35,129, 99, 55,178,151, 43, -129,246,111,252,254,208,166,128,150, 40,148, 1,145, 25,248, 14,140, 10,113,153, - 53,155,161,239, 70,121,155, 86, 78,251, 44,123,165,174, 94,176, 49, 66,151, 37, - 26,163,125,140,146, 9, 37, 25,159, 15, 43,215,136,164,117,102,221, 16, 37, 29, -124,101, 43,171,218,169, 98, 39,150,121,198,219,237,213, 21, 38,109,195, 46,147, - 89, 0,176,128,164,157, 34,232,185,166,197, 79, 86,123, 34,203, 37,237, 81,243, -185, 8, 21,245,108,255, 19, 68,164, 5,150,134,234,130, 24,105, 33,173, 60,223, -183,192, 47, 60, 21,106, 93,173, 59,125, 56,129,242, 33,148,197,249, 39,203, 13, - 59,165,113, 52,189, 85,156, 47,204,181,236, 84,110,190, 53,190,234, 53,134,110, - 72,245, 34, 69, 82,196,107,222,255,114,117,149, 77, 44,116, 54, 10, 44, 38,100, - 77, 68,120, 43,105, 37, 22,142,193, 49,254,193, 7,234,113,156,154,141,211,202, -240,255,239,205, 81,109, 58,206,148,142,241,216, 70,238,159,114,250,238, 83,104, -102, 23,216,126,196,174,133, 22,155,231,243, 61, 32,252,205, 78,208,186,238,184, - 91, 69,167,171, 41, 17,218, 18, 11, 65,152,225,117,209, 66,216, 55,170, 20, 25, -133,147,110,250,161, 83, 69,241,100,231,152, 22,220,174, 71, 15, 88, 26,140,173, - 95,225,203,131,121, 40, 64,255, 7,206,222, 99, 56, 35, 16,111,208, 19, 44,209, - 27,130,159,112, 53,232, 6, 76, 90, 52,128, 97,217,227,141,204,183, 28, 35,168, - 48,100, 18, 26,155, 45,140,219,110,175, 50,102, 28,185,206,161, 41,211,131,222, - 63, 31,232,122,138, 38, 6, 1,192, 33, 94, 40,226, 26, 42,190, 18,182, 16, 69, -129, 52, 89, 6,168,129, 14, 45, 50, 30,178,212,130, 2,248, 18, 78,227, 8,164, - 2,203,235, 40,101,203,207, 6, 71, 25, 89, 60,191,192, 52,163, 53,176, 39,181, - 26, 50,228,241,248, 29, 57,106, 55, 47,151, 2, 19, 20,193,168, 72,140,170,191, -140, 86,189,103, 99,131,190, 15, 3, 76,205,128,212,124,239,114,137,238, 24,124, -118, 22,221,197, 11,248,118,218,163,187,135,168,128, 19, 60,135, 19, 13,146,107, - 52,177,163,101,235,210,116,149,148,237,167, 89, 66, 65,203,154,191,164, 41,102, - 0,254, 84, 8, 73, 14,102, 29,114, 25,156,121, 89, 89, 56, 48,131,118,199,226, - 64,109, 69, 17, 55,104,227, 67,152,105,204,129,242,179,246, 52,224,243,195, 95, - 73, 67, 10,187, 68, 26,105, 1, 14,118,127,126,130,171, 41,127,131, 32, 84,109, - 7, 18,111, 13,225,240,231, 17, 52,218, 74, 46, 3,113,222,129,204,173,110, 34, - 13,196,104,122, 30, 52,250,221, 5,164, 63, 38,112, 93,196, 19,127,155,193,195, -235, 7,176,123,158, 90,243,176, 71, 34, 57,104, 69, 99,184,155,132,140,130,132, -231, 13, 24, 71,129, 33,105, 5, 51, 37, 42,155,193, 91,203, 7,161,123,159, 90, -243,176, 70, 34, 57,106, 69, 99,152, 45,220, 72,179, 98,180,241, 6, 1,249,166, - 0,102, 53,155,177, 50, 2, 99,116, 63,151,171, 27, 43,179,133,159,221,114, 66, - 2, 66,179,163,187,230, 81, 32, 32,227, 3, 16,173,208,242,193, 74,143,204,187, -140,247, 11,204,191, 27, 50,144, 28, 5,252,206,169,213,148,228, 55,157,106, 71, -196,200,138, 7,160,221,124,133,227,217,144,197, 8,128,213, 42, 76,195,140, 75, - 4, 0,210,189, 75,252,239,200, 42, 80,132,190,134, 0,170, 13,102,166,186,208, -246, 30, 17, 84,216,168, 30, 47,193,201, 74, 74,224,240,167,145,104, 28, 78, 85, -121, 96,134,225, 2,243, 17,112,151,170, 39, 39, 55, 16,136, 82, 87,159, 26,160, -181, 67, 3, 25,252, 38, 39, 17,199,169,211,129, 15,252,184,102, 79,195,196, 52, - 12,171, 41, 60,200, 61, 1,216, 84,121,129,193,226,131, 81, 44, 2,166,185,222, -160, 3, 37, 92,128, 13,201,173, 70,237,173,182,164,129,144, 87, 45, 25,198,115, - 90,123,150,177,100, 20,230, 9,119, 45,184,152, 9,148,188, 50, 56,168, 2, 94, - 37,191, 69, 35,115, 0, 8,252,115,115, 3,120,197,158, 21, 96,164,225,233,150, -220,173, 85,179,164, 25,193,136,236, 47, 64,219,170, 82,128,130, 77,209,238,232, -131,203,243,198,110, 55, 66, 42,242,113,244,151,111, 87, 42, 64,120, 79, 88,214, -159,167,172, 38, 88, 66,171, 44,168,112,182,213,138,196,196,165,209, 35,209,117, -102,189,149, 23, 9,160,199,236,139, 2, 48,136, 84, 16,100, 3,219, 2,252, 88, -152,201, 13, 74, 98,203,213, 84,192,130, 19,204, 66, 48,206,139,234,180, 60,111, -112,128, 11, 18, 2,131,238,110, 84,228, 63, 65,161,102, 49, 66,214, 2, 81,185, - 51,212, 37,157, 42,124,203,222, 54, 44, 98,128, 15, 28,134,173,141,208,194,239, -145, 25,141,200,218,187,223, 48, 0,214,194,237,163,145,206,104,219,204,191, 19, -147,119, 29, 74, 46,174,191, 34,106,152,136,229, 32, 67,160,182,108,162, 92, 91, - 56, 82,214,244,194,181,104, 39,193,173,180, 35,249,160, 67,249,179,209, 42,213, -179,225,226,242,208, 46,238,127, 75,154,234,160, 97,142,103, 24,236,190,224,172, -207,105,134,234, 2, 92,210,140,125, 15, 68,223, 33,236,246, 49, 1,141,191,242, -191, 17,180,175, 43, 57, 15,212,245,252,124, 19,248, 69,103,114,250,229,146, 17, -131, 6, 85, 53,131, 84,145,254,121, 50, 30,252,136,199,144, 57,125, 69,110, 65, - 80, 21,250,161,211, 41, 83,247, 60,146, 17, 20,187,208,134, 55, 83, 73,209,159, -201,177,155,143,166,145, 28, 6, 47,197, 18, 41, 96, 16, 88, 18, 5, 45, 91,199, -128,246, 49,146,100,120,101, 96,164,129,115,228, 89, 93,132,235,192,209,106,131, - 1,149,127,237, 23, 87,175, 25, 54,175,168,177, 36,198, 82, 59, 20,185,211,202, - 29,185,192,146,170, 77,186,138,104,247, 49,104,209,218,255,233,168, 71, 52, 0, -133, 34,197,111,192,200, 99,101,123,142, 62, 95,202,194,242,160,181,143, 90,209, - 84, 57,102, 32,159, 3,244,219,188,147,153,175,110,252, 15,242,106,159,223, 34, -126,204,182,202, 32, 4,225,211,111,196,166,246,140, 32,193, 5,132,242,131,212, - 26,124, 73,189,161,204,205, 24, 87,200, 62,238, 21, 5, 29,233, 94, 75,201, 55, -164,144,225, 73,168, 54,242,126, 87,152, 53,147,201,123, 26,117, 5,229,121,252, - 35, 13,111,191,158,146, 96,209, 32,172,237, 6, 76, 60, 59,235,210,118, 82, 67, -238,248, 47, 64, 78, 27, 62, 96, 56,145,119,213, 90, 48,112, 13,154,153,242,153, - 56, 44,180,193,122,247, 69,223, 73,246, 10, 63, 88, 43, 32,172, 34,132,130,173, -169,239,186, 67,118, 63, 75, 55, 61,104,189,134,117,131,120, 51, 3,146, 61, 47, -214, 89,192,243,180,149,119, 95,254,248,186,197,210,196, 23,101, 0,165, 54, 64, -190,155, 87,138, 19,106, 24, 99,163, 61,208,190,219, 91,107,244,129,220,215,157, -246, 95,155,177, 98, 5,196, 98,172,201, 31,122, 87,244,177,108,224, 34, 9, 30, -235,210,139,249,140, 55, 86,212,148,252,196, 43, 44, 77, 94,167,180, 84,206, 77, -180, 51, 37,234,154,213,214,169,170,234, 93,152, 42, 12,253, 1, 1, 6,186,174, - 40,192,146,209, 3,116,103,175,165,216,226,239,100,228,234, 41, 34,203, 72,139, -238,123, 97,229,166,229,180,226,143,148, 45, 48,171,131,235, 42, 10,211, 85, 0, - 2,167, 0,160, 0,163, 0,174,101,154,155,247,111, 68,110,134, 22,240, 25,113, - 30, 49, 46, 57,186, 66, 84,160, 10, 26, 99,154,205,231,207, 38,242, 9,101, 17, -231,215,106,152, 14, 56,203,244, 73, 37, 34, 22,141,252,214,121,179, 92, 79, 54, -120,130,181, 21, 97,217,238, 68,114, 34,144,180,148,247,103,145,253,104, 36,105, -106,109,239,208,254,139, 23, 48,198,150, 7,128, 62,123, 24,171,238,163, 80, 63, -155,223,207,193,252, 33, 12,187, 91,213,239, 88,197, 28,103,239,119,114,180, 25, -179,247, 90,214, 83, 35, 25,140,101, 34,214,146,160,219,247, 29,156,235, 10, 16, -165, 34, 43, 89, 81, 42,148, 10,165, 34, 43, 89,201,170, 66, 85,168, 23, 37,141, -117,192,180,120,244,237,108, 19,169,123, 25, 52,209, 16, 23,128,137,226,205, 56, - 57,122, 89,171, 63,108,222,176,175,238,225,207,125, 71, 83,247,174, 22,191,218, -134,223, 85,223,215, 98,112, 98, 32,212, 39, 84, 71,127, 14,226, 45,229, 36,165, -164,168,138,114, 41, 41,159,100, 53,185,156,156,154,222, 70, 40,227, 48, 21,105, -233,175,180,251,212,182,133,218,209, 19,154,207,140, 63,238,150,136, 15,221, 93, -179,223,218,122,228,145,244, 24, 70,119, 57,215,163, 72,224, 18,130,106, 89,149, -154,160,154, 77,131,141, 79,124,221, 59, 26,157,109,135,243, 14,119,195,217,221, -178,181, 53,142,168,220, 64,186,251, 68, 77,156, 1,227, 64,185,128,240, 72,175, -251,185,163,109,222,239, 10, 22, 57,226, 72, 47,254, 92,243, 47,205,225,115, 95, -186,106, 28, 23,124,181,255, 39, 65,201,155,206, 69, 74, 18, 53,164,205,140,126, -189,203, 73, 36, 18,244,205, 71, 40, 93,115,195,167, 38,187, 40,213,137,181, 71, -176,234, 9,225,252,160, 20,178, 65, 93,131, 62,211,161,150,183, 60, 21, 94,139, -121, 42,168,102,250,237,165,205,167,171,214, 30, 90, 4, 97, 18,169,146, 4,173, -140,115,181,122, 75, 88,143,109,217,166,161, 16,245, 61, 28,107,197,135,171,218, -156,241,247, 40,231,124,122,130,191,202, 73,138, 75,144,154,200, 73,105, 88, 34, -161, 88,110, 35,115, 45,195, 94, 51, 78,205, 90,192,128,139,150,213,220,138,213, - 76,246,142, 2,161, 36,113,131,236,253,234, 24,198, 92,220,191, 11, 31,207,227, -123, 80,226,207,121, 72,211, 60,204,123,211, 39,172, 31,195, 31,136, 62,232, 54, - 74, 69, 86,238, 16, 8,134, 82,145, 85,133,202,234,221, 30,161, 79, 40,185, 22, - 59, 66,215, 99,135,191, 14, 80, 84,224,113,236, 47,155,120, 60,158,247,120, 96, -198, 88,107, 20,122,186, 48,187, 68,173, 50,220, 31,224,248,235,197,233,104,164, - 55,188,113, 48, 86,239, 83, 64, 88, 45,206,246, 34,116, 45,216,251,248, 44, 54, - 95,216,178,154,246,151,206, 56, 86,143,215, 69, 77,114, 68,253,197,251, 14,125, - 90,124, 90, 46, 8, 22, 4,127,159, 7,217,252, 71, 39, 55, 96, 62,168,239, 54, -231,252,249, 26, 18,113,238,199,107,194, 55,113, 77,115, 0,127,250, 1,140, 5, -172,228,186, 85,175, 36, 0,160, 0, 99,129, 0, 0, 12, 12,139, 36, 18,154, 56, - 78,244, 48,143,248, 1,236,245, 89, 11, 34,212,209,251,114,141,234,157,188, 52, - 17,246,156, 66, 76,159,148,148,172,129,244, 60, 33,237,235, 68,228, 15,209,195, - 8,248, 34, 21,231, 83, 38, 76, 64,218, 28,119,173,111,185,102,181,144,122, 41, -207,186,184,215, 49,190, 66, 85,227, 62,166,229, 33, 85,161,104,253, 42,101,115, -192, 1,169,184, 53, 54,240, 26, 85,159,216, 95, 9,207, 58,119, 47, 18,161,203, -244,233,135,169, 5,218,227, 35, 25,126, 0,231, 65,134, 54, 70, 25,144, 92,104, - 78, 39,142, 2, 59,244,203, 27,178, 16, 5,142,187,242, 98,131, 47,139, 67, 27, - 1,116,162, 14, 85,224,227,123,223, 70, 82,200, 41, 60,207, 70,134,113,134, 66, - 52,109,199, 63,208, 56, 73, 0,235, 19,108,201,202,195,226, 83, 56,240,129,154, -170,233,157, 29, 33, 82, 45, 14,167, 59, 88,187,214,181,140, 33,222,152, 4, 1, -234,150,117,195, 22, 75,173, 66, 5, 41,141,239,255,251, 94,229,115, 89,125, 55, -101, 65, 72, 2, 42,250, 5, 43,230,246,182,163, 90,150,129, 86, 45, 72, 93, 63, -122, 5, 22, 60, 66,167, 7,140, 32, 16, 28, 47, 24, 59, 91, 58, 64, 9,132, 26, -177,136,160,138, 55, 49, 83,226,160,147, 75, 27,240, 20,159,136,207, 51,249, 50, -125,182, 14,208,125,204,171,195, 20, 74,124,254,132,252,148, 34, 84,140,138,163, - 41,246,131, 31,130, 43,214, 42,125, 78, 0,204,209,250, 24,244,153,208,139, 22, -243, 60,232, 95,180,124,179, 13,111, 42,157,190, 16,173, 16, 30,254, 25, 13,182, -171, 10,227,132,130, 50,243,237,154, 24, 32,105, 47,177, 31, 80, 12,195,233, 83, - 84,201,103,237, 43,114,250,200,124,142, 21,136, 93,210,236, 6,128,114, 14,230, -234,212,120,197, 80, 70, 39, 23,191, 67, 23,212, 37,248,191,204,132, 71,124,129, -233,135, 72, 71, 11, 19, 62,201,150, 1, 15, 25,135, 3, 45, 48,142, 33, 6,145, -246, 49,145,230,174,254,175, 85,106, 75,133,239,201,186, 18,187, 37,148,189, 70, - 30,254,124,238, 58, 55,105,225,162,107, 62,194,141, 61, 63,205,123, 37,163, 65, -189, 78, 27, 54,101,119,236,121, 60,217, 21, 64, 8,214,249,206,115,188,231,225, -121, 71,127,230, 20, 58, 0, 81, 39, 40, 55, 13,252, 16,105, 59,185, 10,119, 25, - 69,102,153,162, 44,244, 1,202,227,128,244,130,106,230, 75, 62, 45,242,184,126, -125,230,174, 65, 71,212, 9,244,234, 7,120,179,177,197,105, 41, 17, 42, 36,189, - 73, 39, 90,231,246,126,195, 25,118,219,110, 91, 97, 39,103, 35, 65,238,181,127, - 96, 82,167,219,160, 88,114, 34, 78,152, 66, 48,208, 26, 39, 24,173,187,203,137, -238,125,210,252,226,255, 86,220,136,177,143, 20,131,148,233,126,195,156, 64,150, -186,192,199,236, 39, 95,192,244,166, 44, 4,183,141,160,176,218,102,239,174,222, -168, 43,175,239, 96, 8,179, 23,225,158,133,193,206, 71, 18, 11,141,215,163,127, -223,138,248, 3, 85,172, 5, 3, 80, 24, 36,218, 37, 90,238, 61,231,195,161, 7, -184,236,105,222, 8,188, 80,178,211,145, 15,106,157,167,136, 94, 49,135,116,143, -189,153, 41,232,146, 46,100, 64,180,187,213, 32,174, 85,238, 36, 31,250,244,160, - 9, 2,165,242,168,253,226, 17,146,185,153,131,230,219,189, 10, 46,109, 65,170, - 24,149,211,104,192,127,214,212,173,145,252,188,233, 48,237,220,209,158, 90,177, -110, 7, 15,116,148, 65,176,160, 60,184, 17,151,245, 56, 80, 64,221,109,111,102, - 51, 29,170,127, 77,147,238, 5, 88,250, 1, 51, 27, 73, 70, 41,166,124, 7, 82, - 46, 37,185,169,162, 63, 5, 54,170,141, 6, 86, 14, 62,197,175, 91, 47, 10, 43, - 4,179, 5, 83, 34,107, 83, 32,234, 49,209,209,242,245, 61, 30,185,161, 44,238, -238, 80, 53,253, 39,236,227,107,113, 96,175, 48,146, 10, 67,236,181, 83, 38,155, -227, 88,166, 95,146, 28,249,181,132,104,111,216, 35,201,145,210, 28, 97, 73,223, -105, 97,183,147,175, 11,171,108,133, 75,106,101,135, 33,181,190,116,173,169,251, -134,236,155,166, 51,234,251, 50,117,140,116, 74,193,106,158, 42,113, 10,115, 8, - 26,133, 32,113, 33, 93, 77,189,174,194,235,171, 3,113,246,244, 7,175, 30,191, - 10,102, 23, 83,181, 62,240,142, 66,238, 97,224,228,206,146, 98,177, 82, 99, 73, - 37, 83,109,168, 20, 52, 51,100, 49, 7, 60, 79, 70,159,214, 12,241, 4,234, 33, -194,203,110,197,235,125, 7, 13,217, 16,209,229, 92,228, 8, 25,157, 11,233, 73, -154, 87, 4, 10, 6, 84,101, 10,145,105,247,211, 58,195, 5, 34,248,219, 24, 0, - 80, 4, 18,190,152, 24, 8,224, 1,197, 85, 60, 74,100,227, 5, 48,209, 68,134, -242, 64, 97, 47,192, 74,230,148, 83, 56,228,138,211, 92, 37, 87,123,192,116,101, - 15,184,199,166, 45,158, 73,220, 89, 87, 86,191, 70,112,196,174,245, 69, 69,167, - 23, 13, 59,231, 94, 23, 97,175,141, 1, 85, 46,127, 10,198,168,134,170,212, 27, -205,253,252, 82,127,217,112,148, 0,160, 33, 87,182, 47,143,224,151, 52,151,118, -121,138,129,241,145, 84,215, 70,194,177,252,166,124,164, 49,115,232,115, 54, 11, -168, 7,176,119,192,237,158, 89, 56,149, 65, 12, 97, 37,204, 46,176,244, 88,125, -142, 26, 76,225,154,159,144,237,112,221,182,188,251, 95, 71,221,194,125,193, 17, -236, 15,217,223,225,245, 41,217, 65,167,226, 35,147, 75, 95,165,247, 90, 13, 68, - 71,192, 27, 40,157,215, 93,255, 12, 40,149, 97,138, 80,148,147,202, 13, 51,136, -254,155, 2, 24,206, 88,114,138,150, 10,225,185, 15,179,159, 86, 81,224,142,194, - 85,162, 67,210,197,165,158,173, 74, 46, 53, 7, 60,205,138,112, 30,183,135,228, -247, 19,159,213, 88, 40, 75,254,233, 50,168,198,211,238,242, 61,247,121,134, 47, -160, 92, 4,206,229,248,126, 13,127, 57,171,186,104, 20,127,231,112, 38,200, 76, -191,225, 78, 96,222, 45,114,160,212,170, 5, 47,131,224, 78,114,181,244,195,129, - 92, 21,178,141,121, 92, 59,159, 47,129,227,218,129,130,210,193,210,176,115,114, -240,233,215, 5,234,118,184, 46,156,110,207, 16,235, 66, 73,108, 38, 1,158,200, -131, 69,119,198, 1, 95,174,145, 93,237,154,111,245,208,174,148,201,121,185, 89, - 10,245,212, 79, 86, 67,204,153,241,111, 91, 31, 43, 16, 83,144, 36,171, 51,241, - 36,150,138,122,140,189,241,186,226, 11, 37, 33,163,220,244,209,102,189, 31,202, - 66, 76, 85,175, 55,253, 59, 46,209,135, 82,221, 27, 86,128,190, 70,199,224,206, -215,161,103,239,253,244, 77, 5,189,187, 94, 84, 7,147,144,247, 24,232,184, 17, -132, 55,187,213,230,156,187,114, 78, 56, 41,136,246,175,131,219, 38, 47,187,147, -108,181,240, 20,246,216,207,115, 17,140, 23,135, 8,179,235, 70, 98,143,229, 37, - 10, 34,118, 36,164, 96,100,171,102, 22,223, 52, 83,111, 74, 82, 61,168,254,103, - 65, 4, 58,212,131,202,151, 56,120,167, 62,152, 63,103,148,206,136,120,187,176, - 65, 12,128,168, 69, 87,137,113,138,109,118,119,167, 54,106, 14, 42,171, 63,198, -107, 65,192, 85, 41, 29, 69, 98, 97,212, 60,158,200, 35,128, 43,129, 8, 81,226, -203, 41,147,193,173, 98,193, 70, 92,150,233,126,203, 39, 10, 97,129,245,144, 31, -157,186,177,152,111,143, 43, 90,119,175, 3,174, 7, 80,181, 15, 89, 37, 45,242, -155,228, 28, 34, 79,210,124, 61,189,204,126, 53,209,232,232,195, 83,221,163,152, - 9,185, 94, 81,182, 61,139,247,156, 84,115,253, 21,207,201,199,129,146, 10, 89, -187, 12,195,229,145, 43,139,154,115, 76,223,168,133,107, 59, 90,247, 17, 97, 68, -237, 81,212,177,233,125,215, 65,160, 52, 93, 4, 8, 70, 36, 55,132,128, 24,114, -195,104,182,235, 88,222, 20, 95,143,173, 37, 87,213,197, 92,236, 8, 52, 98, 97, - 17,234, 1, 61,241, 87, 95,108, 50,103,135, 76,133, 74,167,243, 11,115,245, 54, -226, 25, 20,152,193,212, 19, 47, 99,255,104,179,210,254,114, 2,193, 20,112,254, -207,102,179, 89,116,249, 15, 8,116,169, 63, 26,130,148, 15,232,110,220,159,229, -157, 26, 12, 18,254,235, 66, 85, 14, 88,155,226,110,107,140,145, 39, 32,128,243, -149,148, 48,148,178,207,209,127, 3,102,246, 26, 27,200,170,115, 34,118,161,175, -101,212,172, 65, 43, 29,210,162,138,252, 76,213, 22,206, 28, 67,135,224,154,232, -176, 26,215, 90, 3,188,212,180, 75,130,185, 23, 71,126, 39,123,223,213,194,175, - 92, 0,189,231, 53,228, 68,118,117,219, 13,123,216,183, 43, 96, 63,234,200,113, -178,104, 72, 7,179,193,238, 7,149,160,126,135, 56,244,145, 69, 76, 16,191,147, -152,165,208,178,253,149,192,199, 72,183,228, 34, 45,179,237, 33,119, 42, 64, 16, -121, 94,243,100,137,105,223,198, 28,164, 6, 96, 92,222, 85,111,132,204,255, 61, -229,120,194, 5, 97,206, 17,166,221,212,101,246,164,126,169, 59,145, 15, 34,254, - 51,130, 32,251, 91, 31,111, 97,143,192,117,184,154,204, 96, 19,201,170, 77,108, - 58,157,183,212,122, 15, 96,134, 14,189,201, 50, 85, 27,231,235,137,144,134, 87, -164, 23, 13, 28, 82,155,210, 96, 9,123,232,237, 36,193,144,204,160,135,127, 53, -141, 90,137, 14, 62,166,165,159, 91, 17, 16,228,153, 72, 40, 8,103,168, 39,239, - 40,158, 51,219,242,138,182,195,160,102,230, 21, 11, 17, 76, 34, 69, 19,208,142, - 23,252,223,166,252,142,197,158,167,118, 44,161,212,179,194,175,178, 73,143,155, -212,248, 91,185, 89,153,101,224,143,216,203, 11, 63, 37,169, 3,110, 55,182,109, -193,188, 91,252,137,169,154,182, 38,189,153,199,225, 92, 11, 10, 4, 93, 83, 96, - 53, 19,164,151,247,252,171,175,183,218, 29,237,181,217,127,107, 35,190,145, 52, -199, 49, 33, 15,111,184, 42,205, 23,245,140,110, 98, 83,232, 96,216, 10, 30,174, - 42,126,250,137,166, 99,112,164, 43, 56,210, 38,105, 49,246,111,196, 3, 82, 12, -215, 12, 38,152,193, 41, 50,252,184,142,150, 99,196, 24,192, 61, 33,190,220,208, -153,120,104,106,175,143,228, 93, 8,158,174, 7,138, 57, 29, 75, 54,130,161,139, - 51,157, 3,202, 59,253,227, 26,169, 11,102,211,182, 37,170, 1, 62, 49,168,104, -124, 59,239, 13, 6,222, 78,233,110,121,166,147,107,107,108,210,197,237,252,190, -193, 80,133,238,240,233,186,223,247,236,223,213, 58,144, 91,212,117,241,183,228, - 5, 17, 76, 24,235,216,234, 19,128,200, 93,234, 1,108,104,202,139,147,232,126, -110, 48, 59,223,108, 81,242,112, 29,226,140,165,123, 91,169, 79,171, 3, 81,218, -234, 11,172,207, 98,156, 32,147, 49, 28, 61, 72, 51, 25,118,250,214,156,114,219, - 70,171,148,107,129, 38,147,227, 3, 67, 13,181,237,154, 88, 68,148,238,184,166, -200, 10, 15,119,102, 26, 8,230,195,199,164,197,150, 41, 95,205,147, 2, 9,204, -199,225, 57,194,224, 64,149,202,153,146,187, 54,170,201,135, 35,114, 35, 81,155, -171, 79, 47, 40, 46,205,177,166, 1, 12, 54,169,172,233, 95, 25,237,177, 32,148, - 40,181,212,175,235, 63,125,199, 52, 80,203, 81,173,150,193,255, 19, 1,157,247, - 16,166,124,152,194,109,125,244,199,147,145, 79,238, 16,248,121,253, 80,164,183, -195, 91, 13,107,187,229,253, 50,205,193,199,173,144,162,141,147,212, 48,235,231, -146,254,190, 28,195,103,162, 87,169,247, 19, 72,164, 17, 72, 9,151,141,197,202, -185, 12,163, 71, 57,234,124, 68, 5, 57,118, 12, 99, 53, 63, 37,230,167,238,195, - 56,166, 1, 11,130, 51,203, 30,173,170, 98,102,171,112, 94,154,195,123, 39,197, -195, 19,235, 56,124, 50, 6, 52,164, 77, 6,211,169, 78, 81,242,250,253,200, 30, - 12,198, 36,228,107, 81,103,223, 78,233,178,128, 93,102,157, 85,112,177,125,196, -108,152, 8, 29, 73,233, 72, 72, 55, 32,222, 28,123,147,142,120,251,124, 67,124, - 76, 86,181, 47, 52,171,152,159,231,146, 49,219, 73, 62, 62, 17, 47, 71, 12, 44, - 31, 69,122, 66,191,160,193, 30,116,191,165,171,100, 21,204,204,253,254,212,223, - 31,173, 54,241,110, 61,240,190,249,114,194, 8,167, 20, 77,102, 68, 67,236, 78, -225,116,142,163,220,148,103,187,155,224,132,136, 59, 80, 84,122,222,190,187,110, - 69,237,225, 49,133,119, 31,142,113,166, 29,170,151,189, 5,206,178, 34, 33,181, - 92,137,191,149,130, 81,154,244,199, 56, 74,204, 38,118,214, 57, 9,195, 91, 50, -167, 51, 95, 68,103,185, 76,243,184,205, 97,132,220,196, 45,145,234,130,146,166, - 9,196,218, 51,154, 48,155,189,153, 2,189, 26, 24,112,138,122, 22, 81,245, 5, -208,162, 29, 55,204,184, 51,182,220,144, 84, 40,119, 98,121,226, 47, 36,226, 30, -163,226,157,245,122,119,210,128, 42, 41, 48,175, 6,231,112,236, 53,250, 94,108, -223,111, 14, 58, 13, 21, 73, 12, 43, 64,158, 37, 57, 87,136, 47,247, 57,180,191, - 12, 97,120, 5,122, 15,244,160,142,175,159, 81,144,101,171,180,175,122,173, 9, -145, 59, 71,248,144, 22,117,227, 87, 5,230,133,145,199, 13, 37,193, 35, 99,112, - 89,173, 32,173, 82,232, 71, 96,226,104, 31, 6,254,146,108,248, 61, 46, 50, 95, -215,146, 26,211,204,241,140,173,134,228,237,167,221, 71,166,145,109, 34, 79, 82, -203,248,114,168, 64,102,190,238, 84, 76, 95,137,157,159,194,200,112,150,220,178, - 61, 92,244,233,125,228, 58,114, 71, 40,170, 41,239,138,115, 41,114,117,143, 54, -224, 86,132,163, 67, 58,250,222,207, 78, 10,144, 33,127,237, 41,194,172, 0,133, - 44, 71, 17, 61,232, 25,220, 89, 71,189,218,135,229, 73,137, 89, 65,180,204,127, - 64, 28,198, 29,159, 6,183,162, 81,129,175,169,103, 56, 38, 39,138, 82,228,126, - 15, 4, 6,252,129,221,158,169, 97,223,103,120, 12, 60, 7, 13,175, 16, 76, 83, -212,236,135,205,133, 59,222, 51,207, 48, 4,233, 26,216, 38, 50,230,239,117,106, -133,223,254,104, 80, 69, 48,232,255,235,224,118,109, 83, 76,130,114,197,123,147, - 87,228, 69,181,118,210,149,120, 28,149, 36,177, 12,132,237, 22,180,234,162,215, -250, 27,240,159, 14, 50, 25, 71,137,134,146, 70,147, 33,211, 64, 76, 47, 68,156, - 84,159,240, 52, 90, 4, 44, 60,162, 60, 88, 45,105,167, 91,120,241,172,238,109, - 71,179, 49,222, 9, 16, 75, 35,125,120, 87,149,251, 98, 71, 88,159,183, 85,255, -248, 15,121, 13, 6,115, 25, 31, 80, 91,126, 63,187, 80,125, 7, 40, 64,212,182, -255, 17,159,229,118,172,245,196, 20,143,230,255, 41,235, 56, 49,128,118, 54,136, - 38,197,118,132,180, 22, 19, 59,188,126,173,115, 47, 62, 71,236,237, 41,220,170, - 83, 2, 55, 46,141, 90,197,200, 68, 56,103, 30, 72,191,154,203,159, 8,107,237, - 48, 66,216, 80,135, 75, 71,249,225,117,159, 98,139,183, 81,155, 30,160, 18,113, - 25,166,127, 27, 88, 34,249,150, 61, 15, 64,115, 74,128,155,170,152,193, 74,140, -113, 65, 90,150, 77, 38,191, 95,154, 63,199,208,132,229,110, 26,148,240, 2,155, - 73,182,118,114,255,181, 7,171, 70, 88, 21, 45,130, 4,236,144, 70,107,207,219, - 53, 42,255,129, 94,115,213,253, 72,111,174, 26,157,164,140,237,251, 26,129,162, - 82,253,162,101, 95, 72,237, 76,177,233, 43,213,103, 83,175,205,173,162, 38,128, -247, 96, 39,181, 19,214, 98,244, 99,115, 17, 89, 16,150,161, 66,145,156, 17, 54, -217,192,242, 22, 71, 7,116,207,114,176,249, 12, 80, 68, 86, 70,173,234, 1,196, -211, 54,150,136,234,174,122,157,208,162, 99,105, 80,229, 7, 68, 89, 61,226,208, - 37,255, 86, 38, 72,192,223,222, 85, 18, 79,215,212,162,130,123, 17,102,143,163, -125,220,171, 11, 62, 43,241, 21, 39, 15, 49, 9, 38,231,106,122,140, 8,125,141, -152,110,208,108,230,143,226, 71,133,254, 44,178,150, 67,244, 55, 33, 73,189,162, -118,187, 20, 88,149,204, 6, 39, 46, 46, 10,236, 97,208, 28,211,235, 15,184, 38, - 22,224,185,144,253,105,168,171, 18,231,226, 42,106, 74, 86, 65,158, 2,130, 87, - 44, 27,247, 23,224,235,225,197,130, 99,162, 4, 70,203,252,116,216,216, 30,148, -121, 7,109,185, 14,201, 63, 34,131,123, 60,164,135, 15, 71, 78,100,159, 15,251, -199, 99,252, 56,221,225,110,135, 61, 50,182,217,244,215,221, 88,225,151, 14, 18, -179,192,170, 25,137,208,112, 32,160, 63, 69,179, 14,219, 39,221,179,135,173,151, -233,106, 36,225, 39, 87,248, 14, 98,213,227, 66,214, 53, 97,247, 73, 4,236,193, -242,191,149,112,149, 70, 44, 8, 62,114,147, 21,197,167,103, 1, 21,236, 52,100, - 89, 76, 20,215, 41, 45, 98,128,230,233,195,158,172,138,193,169,115, 57, 31, 34, - 1, 66,244, 38, 44,106,132,198,137,129,235, 50,167, 4, 99, 18,243, 47, 82,174, -171,119,219,183,197, 60,220,106,146, 80,210,139,101, 27,219, 35, 8,220,190,150, - 34, 95,216,135, 15,216, 61, 48,251, 78,225,224, 48,136, 31,116, 97, 94,111,216, -175,165, 25,197, 98,155,159,133,123,112, 96, 68, 50,247,142, 87, 86,134, 39,144, -169, 75,208,231,133,148, 49, 42, 47,118, 46,111, 38,136,163,191,201, 68,154,186, -122,193,145,212, 99, 98,201,240, 33,143,178, 73,125, 84,147, 61, 10,253, 32,219, - 37, 61,132, 33, 61, 16,168,238, 49,189,113,157,247,134, 52, 56,163, 46, 86, 83, - 37, 34, 21,211,215, 53, 34, 94,220,184,169,184,106,232,163, 81,162,224, 83,249, -102, 53,255, 27, 40,157,242,152, 56,205, 88,193,175,209,123,164,130, 99,143,128, -173, 24,248, 90,172, 6, 6, 79, 12,235,199, 41,231, 56, 74,227, 27,213,118, 34, -240,121, 76, 97,218,180, 90,204, 23, 46, 34,114,241,182,236,135, 88, 52, 67, 58, -146,148,134, 31, 16, 98,153,194,218, 32,102, 96,242, 48,153,246, 94,201, 46,254, - 78,131,126, 84, 66,254, 13, 98,162, 4,170,211, 34, 39, 41, 16, 24,190, 56,118, -203, 49, 91,122,158, 76,170, 18, 95,238,143,249,164,216, 63, 68, 94,235, 32,194, - 93,194,110,120, 85, 17, 73,206,251,148,245,178,189, 3, 27,160, 89,105,110,234, -203, 19, 3, 58, 21, 20,138,163,100, 40, 40,207,146,191, 47,164,173,233,100, 23, -105, 66,198,209,228,130,208,171, 28,205, 5,125,174,192,213, 41,137, 54, 41, 33, -187, 55, 18, 68,118, 96,192,166, 89,167,116,148,105,154,198, 58,222,184, 24, 31, - 86,134,141, 26,233,221, 15, 73,147,241, 32,199, 48, 84, 36,239, 44, 74,189, 74, -118, 44,140, 28, 72, 67,244,140,204,121,117, 41,114, 30,213, 88,159, 96,187, 96, -253, 80, 22, 37,218,118, 7,189,179,140, 56,220, 93,179,157,112, 9,125,231,169, - 74, 92,189, 22, 83,243,113,178,196, 91, 81, 61, 28, 59,252, 5, 7, 7, 57, 18, -193,150,130,246,196,247, 70, 40,224, 88, 92,157, 37,163, 23, 86,250, 89, 66,232, -139, 14,247,137,237,115,201,228,113, 10,160,210,169, 6, 13,130,233,152,222,163, - 97, 53,110,234,174,109, 35, 6,252, 6,249,132,245, 18, 26,115,120, 40, 18,222, -148,218, 36,218,120,194, 40,197,169, 83, 9,253,251,100,148, 20, 99,104,148,207, -195,225, 16,244, 72, 66,196,219,251,141,151, 83, 55,144, 78,152, 42, 31,158,196, -129, 5, 8, 95,136, 22,126, 19, 26, 99,155,240, 29,154,114,104,254,220, 75,109, -250, 89, 51, 53,218,142,144,157,246,116,252,223,143,165,108, 98,167,248, 71,142, -137, 12, 78,177,177,150, 18,165, 48,135, 34, 5, 88, 51,176, 71,218, 73, 21,244, -164,192, 55, 2,143,173,224,142,205,244,250,222,145, 63,149,213,245,100,179, 56, -134,157,155,208, 19,109,237, 98, 93,199,162, 0,152,204, 7,213,190,130, 11, 41, - 95, 20,185,198,196,103,226, 46,236, 52, 12, 44,235, 75,111,156,151,164, 93,215, -118, 33,174,202, 72, 91, 94, 47,173,167, 41,245,194, 82, 27, 53,155, 3, 82,109, - 1, 0,230,220,128, 78,173, 99,147,187,201, 51, 92, 10,185, 32,236,131, 56,233, -197,163,207,154, 65,202, 32, 57,210,174, 96, 36, 50,131,106,239, 51,213, 93, 2, -170,140,125, 32,223, 13,123, 58, 10, 8,197, 61, 33, 64,237,222, 0, 60,161, 65, -212,184,127, 84,219,201,249,245, 20,144,113, 56,195, 0, 8,240, 43,250,222,199, -244,225, 5,108,116,115, 8, 38,158,240,186, 89,119,229, 69,210,238,169,198, 40, -133,192, 82,185, 68,209,173,253, 9,169,163,231, 64,111,137,109,239, 16, 71,190, -133,134, 3,228,166,196,205,207,202,134,179,125, 72,198,206, 57, 5, 89,216, 8, - 52, 34, 59,106,220,234,243, 55, 25, 92,134, 46, 91, 42,238,247,103,210,111,150, - 49,247, 31,235,179, 87, 84,202, 4, 95,233,106,209, 15,121, 2, 95, 14,229,214, - 43,200, 43,155,182, 95,129,161,120,133,128,186, 30, 91,202,108, 9,143, 54,229, - 68, 41, 0, 38,229,194, 8,143,136, 14, 80, 25,130,140, 65,169, 52,248, 64, 91, -100,203,148, 28, 19, 98, 14, 67,233,217,186,112, 49,174, 76, 0, 79,175,233, 77, -171,251, 74,246,141, 39,204, 11,213,161,118, 36, 42, 41,100,201,160,206,132,229, -182, 14,136, 46,105,220,226,165,169, 24,167,171, 46, 46, 88,215,111,215, 65,199, -211,143,194, 53, 82,115,121,253, 7,175,138,110, 91,240,241, 71, 12, 74, 47,226, -237,150,113,119,253, 11, 24,222,240, 65,241,244,216,219,207,228, 63, 84,162,106, -162, 86, 96,119, 47,135, 96, 77, 89,233,186,246, 38,186,131,191, 11, 54,113,251, - 35, 24, 85, 29,211,220,206,138,183, 78,244, 12,141,232, 15,185,131,111,217,105, -220,126,148,238,223, 81,107,139, 93,170, 90, 7, 42, 90, 56,236, 68,172, 81,101, - 60,230,150, 32,237, 15, 76, 10,184, 48, 8, 84,144,209, 53, 20, 74, 72,143,179, - 40, 67,145,220, 66, 91,128,111, 64, 25,124,222,151, 20,173, 23,132,242,116, 12, -121,168, 77,213,155,238,138,224, 86, 41,208, 80,106, 81, 48,175,110, 51, 82, 6, - 56,225,115, 60, 27,250, 84,146, 63,212, 38, 98, 11,137,192,166, 0,226,165, 29, - 40,196,242, 33, 99,141, 29,100,181, 59, 26,126, 90,213, 82,131,172, 87,170, 68, -243,188,154,136,104,163,229, 6,111,170,123,198,203,166, 81, 63,146,243, 31,117, - 55,132, 36, 26,153,251,195, 27,131,136,104,106, 36,134, 95, 20,233, 66,121,163, -188, 94,229,201,240,159, 39,229,232, 61, 51,128,254, 68, 72,236,252,200, 64,118, - 89,143,220, 61, 55,152,244, 8,115,243,143,162, 63, 24,154, 0,149, 92, 56,200, -142, 17,140, 7,199, 80,172, 23,148,151, 15, 87,104,167,105,230, 76, 85, 84, 38, - 47,248, 39,174, 14,198,121,180,222, 73, 7,109,179, 42, 63,103,101,211, 16,154, -204,159,227,189,253, 24,157, 76,247,121,200, 50,185, 77, 27,207,253,167, 70, 29, -219,190,219,102,100,219,103, 74, 72,157, 83,191,123,255, 68,203, 82, 53, 28,109, -222,110,116, 78, 23, 45,141, 41, 35, 64,183,139,173,145,171, 43,190,176,216, 33, -145, 13, 79, 39, 92,252, 13,123, 84, 36,242,193,122, 28,112,107,192,185,192,216, -168, 55,233,214, 8,242,218,191, 74, 30,126,242,183,103,168, 52,223, 26, 86,226, - 41,185,250, 81,194,234,203,156,123, 60, 88,119, 1, 34,154,197, 66, 30,106,123, - 83, 26,147, 61,109,151,201,193, 14, 20, 81,133,219, 59,208, 35,214,237, 46, 29, - 10,250,110, 45,170, 76,133,246,100,189,129, 76,111, 84,212,134,245, 80,217,175, -218, 2,146, 17, 49,235,132,234,168,122, 8,229, 29,159,136, 64,244,139, 9, 90, - 44,195, 91, 60, 23, 18,170,254, 27, 10,198,239, 84,230, 53,242, 73,243,156,175, - 78,112,187,225, 90,140, 12,134, 29, 53,181,225, 53,245, 41,183, 1, 41, 70,179, -153,235,165,236, 6,117,144,131, 41,233,146,245, 52,252,239,121, 66, 10, 30,200, - 43,227,135,216, 20,195, 16,193, 65, 72, 47, 79,172,251,117,208,198,192, 13,236, -202, 76,127, 93, 14,221, 84,157, 7, 57,168,248,211,131, 38,173,164,152,102,193, - 11, 81, 75, 17, 94, 70,178, 91, 47,189,131,113,242, 78, 59,180,244, 64,229,149, -133,244,214,201, 42,195,152,151,168,189,114,158,186,163, 72, 28,205, 81,170,120, -107, 48,208, 69, 43, 20,228,152,233, 33,139, 30,131,153,130, 86, 94,184,243,186, - 43, 24, 22, 39, 27,168, 75,116,132, 5,176, 21,105,170,239,142,202,233,175, 10, -166,105,209, 32, 12, 19,245,146, 73, 89,151, 54,117,179,206, 59, 59,146,124,121, - 35,154, 76,174, 14, 2,187,155,221,148, 22,158, 53,162,124,201, 12, 84, 31,134, -163,139,171,225, 52,121, 60,215, 86, 27,249,126,166,123, 21,100,119, 5,220,228, -176,230, 89,214,205, 84,252,245, 78,137,123,125,178, 92, 67, 98, 36,243, 26,150, -158, 89,208,130,206,243,170, 3, 34,185,104, 65,255,133,138,183,129, 20,155,239, - 5,162, 48, 27, 78, 96,126, 30,211,201, 26,144,136, 62, 7,184,163, 82, 74,162, -228,151,125, 2,220, 11, 74,248, 47,220,233,178,231,243, 75, 45, 67,107, 95, 81, - 22, 27, 66,181,104, 15,202,115, 27,158, 7, 87, 1, 97, 84, 12, 18,126,118,243, - 12, 50,252, 14,215,228, 1, 8, 38,231,143,129,181,210,243,151,252,227, 70,168, - 83,200, 70, 54, 8,124,214, 34,208, 70, 83,204, 78,100,115,254,247,103, 42,153, -216, 87, 27,210,233,179, 87,190,156,187, 85,209,224,192,162, 3,243,165,209,138, - 0,194,240,168,224,152,118,142,183,102,238,193, 18,242,238, 31,181, 92, 6, 16, -252,176, 7,196, 81, 10, 51,127, 43,181,116, 94,204, 89, 84, 34,228, 75, 69,107, -102,151, 27, 26,135,242, 34,121, 97,155, 92, 84,192,113,118, 1,162, 48,169,236, -238,145,236, 64, 88, 88,248,153, 0, 51,237, 88,114, 53,147,114, 99,245,144, 2, -167,161,233, 54,124,116,228, 49,136,130, 3,200,230, 26, 58,136,222,139,155, 44, -136,145,184,163, 89, 46,136, 79, 99,206,100, 69,235, 63, 39,112,211,207,151,145, - 22,234,127, 68, 23, 75, 48,150, 0,197, 85, 84, 16,238,236,178,217, 35,170,144, -108,162,121, 94, 87,124,199,195,230, 18,101,124, 71,148,222, 5,225,191,177, 81, -240, 17, 12,200,216,233, 91, 24,190, 25, 55, 60,240, 93,178,162, 73,210,201,251, - 96, 96,152, 70,186, 16,102,159, 51,252, 51,169, 1, 6, 72, 59, 71, 49, 57, 93, -134,125,153,105,180,109, 58,254, 82, 94,152,178,165, 29, 48, 10, 20,228,139,170, - 24,129, 80, 16,245, 37, 27, 22,216, 28, 35,101, 91,239, 96,224, 36,152,157,118, - 88, 48,150, 25, 78,194,156, 4, 1, 40,117,123,197, 75,113, 8,160,164,220, 42, -228, 22,218,184, 13,112,161,232, 7, 93, 15,215, 0, 95,107,207,141,143, 0, 82, - 99,206,193,184, 96, 9, 87, 14, 99,146, 65, 44,165,143, 1,137,130,122,100,243, -150,239,247,162,160,196,145,184,137, 3, 79,152, 24, 4, 88, 71, 83, 24,197, 94, -242,143,163, 90,190,184, 87,147,112,223, 98,216,253, 34, 84,197, 61,106,133,193, -119,151,160, 21, 43,171,161,249, 34,140, 42,243, 45,241, 32, 61, 18,232,115, 77, -184,108,231,207,249, 80,178, 98,161,190, 21,173,211,168,246,210,207,128,254, 1, -166,218,138,203, 42, 98,125,110,184, 46,132, 35,214,174,155,193,214, 97,155, 80, -109, 27, 5, 32,114,125, 57,129, 33, 96,102,180, 50, 32,107,107, 92,183,186,139, -238, 59,206, 66,130,116, 35,148,142,214,179, 70,137, 42, 94,108,136,203,151,255, -206,124, 46,217,155, 11,178,253,144, 97,111,209, 81,109,137,245,219, 71,175,160, -145,191,147, 9,126, 77,219, 7,151,118,234,151, 57,226, 61, 59,221, 9,232,201, -159,123,202,155, 17, 10,123, 40,173,218,220,249, 60,251,126, 2,141, 26, 86, 12, - 89,103,172,122,159,118,177,163, 21, 74, 22, 35,117,245, 82,181,107,141,111,153, -170,207, 14,135,181,193,140,254, 31, 84,101,216, 92,239, 43,132, 91, 27,104,207, -175, 85, 9, 16, 44,157, 11,196,184, 4,118,247,242,200,171, 73,138, 49,154, 11, -218,101,199, 74, 23,206, 1, 71,243,155, 98,170,198,106,199, 79, 26,197,120, 89, -254,249, 66,152,125, 30,128,197,188, 6,118,128,176,103,169, 16,198, 64, 65,239, -189,172,223,227,177, 56,166,195, 89, 69,209,135, 75,216,217, 56, 33,117,154,129, - 75,159, 25,212,218,242, 53, 37,190, 64,108, 15,143,218, 75,119,185, 41,185,217, -164, 16, 95, 79,142, 69,197,101, 44,195, 68,159,205,183, 91,248, 26,139, 57,229, -106, 78, 3,117, 5, 99,186,196,108, 58, 91, 54,180,202,167, 3, 65, 75, 49, 94, -229,142,115,234,224, 42,135,246,209,227,211,247, 30, 74,168,114, 30, 92,114, 75, - 84, 45,152,150,218,111, 88,140,234, 16,150, 51, 42, 22, 56,229,166,174,232,221, - 22,193,191,110,128, 62,139,135,176,207,194,190, 82, 5,125, 48, 65,249, 36,114, - 47, 49, 10,176,190,233, 43,213, 92, 1,116,177,148,251,209, 0, 76, 28,135,154, -160,140, 97, 5,152,114,135,240, 20, 22, 14, 57,218,180,248,149,200, 2,125,117, -164,212,253, 3, 70, 76,143, 73,179,147, 60, 87, 91,236,189,212,224, 48, 56, 54, -174, 25,164,237, 60,159, 19,192, 93, 63,247,194,101,180,129,197, 79,151,156, 94, - 44, 0, 9,100,180,146,144,119,210, 46,178,223,182, 31,224,114,187,173, 95,121, -213,243, 70, 0,100,110,208, 95,219,158,105, 64,180,222,120,156,128, 18,206,161, -209,235,180,194,143,225,131, 93,161,242,100, 60, 70,247,125,116, 80,145, 45, 87, -155, 21, 62,136, 50,176, 42, 82,222,176,144,113,203,124,192,239, 45,231,107,126, -110, 25,189,150,142,173,189,114, 34,241, 99,229,114, 20,151,218, 92,123, 38,122, -117,196,127,100, 99, 57, 96,130,169,160,137,185, 1,148, 41, 33,174,188,211, 47, -222, 50, 24, 99,205,133,222, 12, 14, 13,177,158, 40,222, 8, 48,161,113, 58, 86, - 67,255, 62, 98, 71,226,224, 3,172,236,191, 25, 57,171, 38, 56, 92,101, 46,160, -121,230,204, 60,250,119,216,114, 20, 8,171, 70,216,106, 32, 16, 54,187, 2, 93, - 27,179,193, 99, 83,235, 72,129, 22, 65,107, 5,182, 58,129, 1,123,219, 30,222, - 98,101,197, 33, 1, 47,219,232,103, 62,195, 65, 22,211, 65, 22, 6,145, 40,208, - 87,168,160, 71, 58,145, 39, 27, 10, 57, 46,117, 20,170,175,206, 98, 36,228, 1, -220,225, 47,236,253,179, 62, 8, 66,163,232,219,184,126, 41,158, 99,232,199, 54, -143,208, 92,122,111, 28,232,209,250,235, 92,127,242,147,235,202,234,214,244,215, -175,204, 28, 50, 96,106,139,144,131, 4,128,126,172,145,204,186, 1, 23, 47,159, -241,134,232, 43,168,181, 17,226, 45,255,221,157, 6,204,102, 79, 72,119,227,167, -171, 24,192,130,156,102,166, 13, 80, 52, 5, 42,117,245, 75,163,121,106, 22,244, - 73,225,197,245,197, 16, 26, 41, 26,238, 86,223,137, 64,213, 20, 24,243,254, 62, -219, 72,127,251, 39,253,129,165,146, 61,210,140, 45,104,130, 1,231,121, 49,146, - 84,240,208, 49, 60,200,162, 13,212,206, 53,207, 14,173, 68,144,133,155, 67,134, - 21,236, 9,238,181,140, 0,163, 8,218, 41, 55,167, 62,174,245,191,136, 48, 80, - 9, 78,240,151, 90, 78, 60,178,143, 90,159,246,118,107,120,204,228, 25,140,254, - 15,136,151,160, 4, 59, 81,156,248, 50, 0,158, 48, 7,217,129, 51,155, 64,215, -195, 46,211,169, 5, 5,147, 71,195,165, 50,177, 99,103,226,223, 78,139,220,202, -107,135, 88,231,227, 83, 27,232,237, 26, 64, 70, 65, 86,230, 69, 43,164,220,158, -143, 91, 53, 47,213, 34, 45, 15, 17, 59, 61,196,191,212, 67, 21, 60,170, 21,113, -254, 16,149,202,190, 88, 11,237,184,227, 41,169,146, 20,199, 16,115,102, 6, 48, - 26, 29,215,212, 84,141,224, 65, 98,143, 53, 69,244, 23, 26,105,172, 32,158, 32, -218,206,177,128,219,128, 13,153, 46, 86,213,101, 55, 69,135,218, 35,165, 22, 13, - 3, 17,128, 54, 38,129, 63,213, 12,147,198,117, 25,162, 88,151,101, 2,159,175, -114, 51, 36,161,235,162,183,192,210,184, 43, 81, 96,146,169, 19, 76, 3,193, 26, -213,248,120,170,235,238, 77, 95,160,129,101,150,111, 72, 99,105,111,178,149,128, - 93, 9,252,123, 67,129,126,170, 93, 47, 41,237,179,179, 90,143,143,219,173,131, - 98,134,135, 95,196,178,219,232,147,168, 86, 31,152,207,201,186, 56,145, 45, 60, -117, 76,162, 69,185,229, 1, 27, 72,157, 91, 10,196,182,212, 1,182,148,178,122, - 16,169, 21, 60,229, 65,106,238, 63, 92, 40, 85,117, 8,253, 71,189,120,113,244, - 2,202,227, 80,193, 15,145,125,164, 41, 49,132,151, 19, 36, 38,110,120, 3, 59, -186, 1, 48, 35,136, 12,178, 22, 58, 49,188, 1,196,145, 95, 67, 83,191, 33,161, -217,254,232, 40, 75,210, 27,189, 20,115,172,113, 29, 61, 13, 67, 35,156,220, 71, -118,232,240,121, 60, 8,252,211, 68,238,224,143, 5, 79,163, 82,161, 89,218,129, -113,163, 16, 76, 16,244,137, 20,135,162,215,105, 87, 79,152,232,158,179,117, 50, - 54,229,105,223, 33,169,131,217,127,177,161,196,223,124,145, 86, 35, 58,240, 58, - 28, 62, 97,167,243, 27,130,160, 79, 34,158, 12, 9, 12, 35, 76, 48,244, 19, 41, - 13,185, 73,120,238, 4,177,215,244,235, 25,155,236,116,239, 35,172,131,174,130, - 53,162,203,107,253,232,227,220, 20, 32,194,131,109, 58, 45, 63, 56, 76,114,128, - 8,126,225, 67, 85,213,198, 8,209,137,243, 80,183,200,187, 5, 72,155,252,252, - 13, 72,146,128, 88,160,129, 86, 69,138, 47, 16,154,206,222,175, 99,145, 93,152, - 73, 21,235, 74, 6, 73,103,114,137,232,103, 11, 68,135,149, 74, 68,108, 12, 33, -251,221,200, 37,101,139, 44,146, 57,237, 9, 33,128,139,192, 46, 3,106,175,216, - 2,238,121,154,155,165, 14,119,133,191,203,113,245, 93, 97, 78, 59, 25,219,198, - 79, 92,120, 52, 86, 61,123, 15, 3, 76,106,172,156,138, 43, 13,241, 51,238, 65, - 63,135,149, 50, 9, 75, 80,153, 83, 58, 59,129,193, 53,219,232,151, 77,226,188, - 44,176,179, 39,157,196,252, 68, 29,196, 29, 34,255,131,107, 91,238,107,216,172, - 35, 99,124,132,173,114, 55, 84, 89,189,243,181,249,119,165,156,236,153, 34, 70, -190, 59,203, 41, 63,138,147, 85, 89,181, 52,201,216, 15, 2, 24, 74, 52,148,252, -213, 21, 36,199, 2,183,215, 54, 46, 66, 69,184,104, 32,251,144, 4, 36,159,172, - 95,186,176, 13,200,221,208,175,126,150, 8,245,172, 63, 8,171, 49,202, 90, 86, -161, 0,192, 59,143, 24,177, 81, 34,226,194, 27, 11, 66,231, 46,224, 61,179,248, -130,236, 1,227,239,105, 47,232,183,208,158, 10,105, 75,160,254, 17,113,148,209, -125,240, 84, 24,175,200,197,249,228,201,169,224, 92,104,111, 98, 28,191,119, 65, -124, 68,161, 77, 4,163, 33,214, 34,124, 91, 2,105, 59, 47,204,151, 67,166, 5, -244,249, 80,233,225, 62,251, 80, 64, 47,160, 60, +uint8_t GB_JITpackage_0 [56682] = { + 40,181, 47,253,160, 55,246, 8, 0,180,210, 0,202,186,212, 33, 45,176,174,172, + 27,186,140,104,187,228, 76, 62,247,248,153,136,243,110, 92,153,138,157, 64,114, +219,231,255, 7, 86, 85, 78, 24,194,179,248,215,172, 23,254, 41,253,105,112,118, + 60, 3,233, 1, 34, 2, 32, 2,254,221,111,187,255,217,233,161,254,232, 30,235, +181,103, 76,183,211,155,171,150,178,173,236, 85,120,107,110, 63,105,181,143,237, +124, 59,189, 65,233,252,104,212,178, 22,251,190, 70, 63,219,253,167,161,166,185, +229, 15,115,228,169,229,120,161,119,112,208, 60,114,157,161,243,214,232,241,227, + 44,143, 77,229,157,240,175,108, 10, 28,203,117, 58, 46,157, 16,223, 94,172, 92, +219, 51,185,255,127,251,116,155,178, 59, 24, 95, 24,234,189,183, 46,163,119,175, + 76, 2,194,224,251,113,227,200, 22,202,217,117,220,122, 33,106, 59,142,230,112, +141,146,219,191, 27,123, 99, 57,189,107, 99,100, 16, 72,117,227, 87,203,237,221, +105,254, 91,202,200,205,225,107, 43,223,255,188,208,253, 56, 12,155,114,230, 79, + 15,135, 40,141,114,214, 78,246,229,255,186,251,115,114,186,114, 38,193, 96, 80, +119,231,135,191, 41, 39, 86, 89,191,141, 63,189, 49,197, 60,181,246, 81, 89,103, + 0,182,210,251,191, 58,227,173, 86,114,211,185,241,207, 78, 51,189,244,186,187, + 53,114, 77,187, 90,214,250, 35,135,223,235,238,116,203,213,121, 99,187,228, 13, +183,159,246,162,111,220,158,249,223,222,161,223,230,253,177, 29,109,122,172,115, +247,187,181,105,244,204,175, 66,115,123,148, 19,126,203,144,172, 45, 35, 5, 45, +218,203, 90, 79,218,233, 68,174,221, 57, 96,158,190, 59,161, 91, 35,191,219,208, +237,233,209,195, 90,223,233, 77, 90, 63,190,111, 61, 26,185, 58,255, 99,248, 92, +157, 62,189,142,206,105,142, 70,173,181,218, 23,212, 92, 99,244,238, 88, 6, 77, +191,209,227,191,253,221,201,217,125, 24,106, 30,181, 26,239,111,150,227,173,237, + 77,238,219,180,227, 89,201,145,127,178,132,163, 59,138, 35,222,115,155,183,182, +118, 57,250,107,203, 73,113, 60,152, 96, 38,173, 61,222,223, 25,254,219,113, 51, +195,148, 82, 12, 39, 36, 30, 18,142, 3,144,135, 4, 75, 50, 98,248,211, 19, 39, + 60, 81, 28,234,174,245,166,134, 97, 67,115,113, 67,198, 14,119,119,217,237,198, + 95,237,188,179,206,173, 53,142,116, 19, 59, 34, 34, 26, 30,211,196,132,128, 49, +138, 34,233, 58,209, 49, 34,253, 30, 59, 88,223,249, 97, 28, 17, 17, 60,221,249, + 28,249,251,125,219,155,215,193, 69,222,144,221, 73,111,142,247, 85,251,185, 78, +173,219,202, 17, 11, 5, 89, 38,165,167, 50,117, 77, 46, 13, 75,150, 85,149,134, + 37, 99,254,143,118,228,253,118,233,202, 32,120, 0, 75,146, 71, 82, 20, 73, 81, + 36,225,113, 31,170,140, 21,137,201, 0, 75,201,125, 23, 12,129,244,103, 28,177, + 22, 77,178,139,236,110,118, 86, 26, 32,140, 93, 50, 21, 85,201, 48, 42, 67,154, +208,163,139, 7, 21, 1, 3, 10,154,114, 62,171, 85,240,205, 36, 38,170, 11, 86, +112,163,165, 91,130, 72, 68,187,127, 41,144, 3, 6, 84,217, 3,139,178,209,166, +147,239,197, 60,117, 83, 4, 22,209,210, 63,139, 69,116, 64, 17, 16,252, 5, 96, +136,136,134,204,194, 50, 20, 6,179, 52,215, 6,147, 62, 13,210, 16,189,181,221, + 63, 25, 49, 53,217, 84, 15, 10, 4,237,125,255, 13, 20,138, 7,129, 2,144, 7, + 5, 5, 5,132, 35, 20, 20, 18, 16, 8,132,242,128, 68, 14, 64,170, 44,179, 92, + 46,108,146,181, 39,118, 86,227,230,226,199,213, 72,161, 3,237,167,182,205, 7, +197,157,146,230,246, 19,234,141,134,136,221, 94,250,197,231,169,255,206,250, 73, + 19, 7,115,145, 90,239, 56,224,196, 77, 29,105,120, 10,121,244,251, 28, 61,235, + 27,195,234,210, 80, 26,140, 82,141,163, 44,227,234,246, 94,183,144,255, 99,181, + 58, 29,196,138, 53,153, 11,230,129,149, 81, 40, 19, 12, 11, 69,193,128,129,114, + 97, 42,151, 42,163, 88, 26,203,149, 69, 25, 75, 35,171,176, 74, 54,117,166,203, +111, 13,190, 54,109,181, 30, 67, 40, 73, 76, 96, 46, 50,108, 67,193,244,198,164, + 20,218, 39, 26, 57,150,122,164,178,181, 8,133,146, 92, 40, 24,222,116,110, 83, +171, 18, 73,255,166,159,118,128, 6,135,110,114, 0,129, 64, 15, 60, 35,129, 24, +102, 21,140,136,153, 37, 80, 52, 57,170,173,221,159,219,177,251,254,216,142,225, +211,174,222, 27,254, 73,105,191,173,230, 61,169, 71,111, 15,247, 91, 89,231, 51, +252, 88, 74,109,203,184, 45,208, 34, 34,152,153, 27, 36,182, 42,151,198,178,201, +100,154,139, 65, 6,128, 5, 8, 96, 41, 98, 10,165, 97,133, 56, 64, 0, 6,177, + 20,130,160, 72, 66, 67, 85,222, 55,210, 8,201,176,132,162,104,168,138, 23,107, + 59,231,241,214, 73,173,229,112, 38,213,170,123, 43,232, 38, 59,181,251, 9, 66, + 28,214,218,157,223, 34, 64, 67, 70,150,129,161, 50, 24,188,181, 86,183, 25, 64, +179,221, 13,149,203,228, 45,231,179, 4,180,200,105,207, 62, 87,192, 9,199,228, +178, 95, 71, 34,115,193,100, 90, 91,152, 52,114,237,135, 16, 7, 91, 76,172, 8, + 23,133,178, 92,150,205,127,177, 3, 53, 5,130,199, 1,182,192, 54, 84,198, 3, +171,161,191, 37, 10,112, 70, 20,132,176, 5, 91,155, 44, 82, 35,165,253,129, 15, +182, 96, 12,179,170,106,131, 93,104,240,200,154,202, 98, 32,185,100, 16, 52,152, +138, 53,177, 52, 23,139, 5,154, 12,120, 58,158,189, 30, 87, 99,231,121,239,171, + 29,210,166, 54, 49, 65,238, 87,219,147,219,173,199,219,247,252,241,179,221, 24, +185,250,119,219,105,156,214, 93,186,119,118,181,222, 91,133, 4, 97, 7, 75, 15, + 3,156, 32, 1, 36, 98, 41,138, 36, 15, 3, 19, 36, 32, 3,124,246, 71,163,231, +126,115,254,192,154, 88, 42,248,115,123,229, 79,111,106,112,114,245, 62,202, 31, +235, 17, 16,172, 80, 23,198,240,122,115,232,196,152,166,214,252, 0, 41,246,216, +117, 82,120,179,117, 82, 92, 59,221,128, 67, 94,123, 51,168, 60, 72,152,167, 13, +105,221,139, 20,106, 75,184, 26, 33, 48,245, 88, 49,140, 62,219,109,133, 31,250, + 45,131, 26, 41,157, 21, 89,225,123,173,196,254,222, 88,145, 31,253, 36, 92,167, + 22,162, 96, 4, 86,252, 63, 61,239, 78,245,246, 88,174,123,206,102, 56,177, 92, + 13, 24,130,133,226,139,107, 98,185, 84,156,185, 48,102, 81,153, 12,229, 32, 67, +115, 57,128,216,133, 81, 18,118,144,128, 93, 83,107,143,159,121,167, 59, 23, 63, +145,126,211,186,137,248, 8,206,237, 20,167,207,231, 83, 37,220,200, 28,203,252, + 89, 8,204, 83,203, 26,103,157, 18,212,161,232,241,103, 67, 92, 33, 57, 72,112, +144, 16, 49,100,214, 44,204, 98, 85, 23,197,161, 74,152, 66,119,214, 13, 87, 4, + 80,252, 17,212, 92,181, 88, 0, 79, 83, 98,236, 93,221, 78, 79,152,167,255,136, +136, 72,231,222,174, 74,112,112,208,108, 46, 18,138,195, 15,247,179,156,248, 0, + 27, 38, 13, 9, 72, 1, 8,123,172,229,193,204,146, 13, 54, 97,185, 16,112,230, +194,128,170, 48,124, 76,176,236,137,134,154, 56, 56,176, 85,161, 44,153, 36, 81, + 40,155,199,227, 1,129,144, 56,223, 67,183,117,122,208, 45,133,232, 69, 79,219, +211,212,155,235,203,145, 35, 17,246, 72, 63, 57,175,199, 78, 36,123, 16, 31, 19, +129, 9,242,128, 4, 32,196, 98, 85,174, 15, 77, 76,117, 78,211, 36, 77,192, 7, +148,136, 44, 76,100,195, 1, 21,239,225,246, 79, 66, 38, 32, 18, 21,130, 96,114, +101, 82,196, 7, 26, 88, 54, 25,149, 1,108, 66, 89,153, 12,141,229,223,118, 46, + 26,237,121,145,105, 30, 25, 34,131,168,223,199,210,175, 44,204, 45, 75,126, 35, +214, 96,148, 4,225,136, 35,120,127,214,142, 89,153, 43,123,219,154,171,213, 56, + 92,241,161,248,161, 49,226,170, 19,130,214,219, 66,140,215,222,207,240,158,176, + 90,246,166,246,186,253,126,240, 62, 10, 15,147, 99,228,107,107, 21,156, 84,200, +111,237,134, 15,210,164,216, 34,162,105, 74,239,157,212, 61,145, 12,203,137,210, +191,142,131, 70,205, 90, 78, 99,162,104,108, 25, 59, 47, 63, 34,114,240, 31,170, +253, 16,140, 88, 46,152, 6,133, 17,225, 79,217,218,247, 6,189,221,199,140,247, + 68,208,244, 56, 18, 85,204, 17, 8,152, 7, 20, 22,111,212,182,205, 58, 59,232, +247,237, 60,241,127,114,235,233, 28,140,207,237,253,162, 20,253,244,175, 59,255, +236,230,129, 60,208, 3, 61,144, 87, 39, 67, 9, 4,117,171,157,221,196, 2, 81, + 90, 71, 32,151,227,244,104, 48, 79,161,248,161,245, 98, 59, 95,163,195,159,142, +143,247,125,110,154, 7,134,115,163,214,222,218,124,206,198,191, 63, 35,212,249, +128, 17, 44,102,197, 95, 99,123, 12,177,240,220,214,219, 15,173,204, 70, 83,109, + 50, 26, 12, 54,192,168, 74,132, 10,126, 88, 84, 21, 17,166,164,129, 85,100,193, + 10, 42, 9,170,122, 77, 27, 31,189, 47,222,109,114,197, 21, 82, 48, 86,198, 45, +107, 40, 27,234,194,154, 68,166,183,211, 19,187,230,104,118, 2,193,151,155, 95, +191,169,126,206, 26,183, 57,137,187,125,227,118,134, 18, 74, 55,107, 11,243, 35, +150, 56,203, 32, 34,134, 96,109, 90, 15,148,183, 25, 74,143, 65, 82,131,173, 81, +231,227,235,241,190, 67,229, 80,145, 62,250, 88,138, 13, 6, 35,131, 92,157, 28, +209, 92, 80,153, 9,215,199,176, 92, 13,170, 11, 69, 98,169, 92,172,209, 99,171, +117,231,110, 77,237,237, 30,242, 36, 45,229, 48, 71,188,143, 60,133,236,214, 28, +230, 10,182, 91, 67,134,134,134,200, 6, 96, 1,108, 98,233,124,238, 63, 31, 29, +247,217,218, 28,138,238,209,170,168,171,186, 46, 46, 54, 88,200,173,215,158, 4, +132,204,165, 98, 85,178,139, 75,246,177,117,163,126,143,234,178, 80, 24, 4, 33, + 45,182,211, 3,154, 13,166,147, 6,174,235, 89,173, 64, 70,165,161, 42,216, 69, + 5,135,234,168,195, 41,138,148,132, 78,141,204, 72,146, 36, 25,198,147, 64, 16, + 8, 16, 16,149,141,168, 99,117, 25, 63, 19,209, 19, 57, 69,154,134, 50, 14,242, + 8, 81,132, 32, 66,132, 68, 68, 68, 34, 17, 17,145, 36,205, 3, 20,202, 92,133, + 53, 14,195,217,177, 63,128, 87, 90,240,111,155, 8,132,166,120,160,169,232,196, +124, 4,104,104, 94,138,126,240,121, 14,186,140,128, 55,202,137,211, 64,133, 32, + 36,215, 40, 51, 34, 66,143,151, 20, 59,230, 23, 30,178, 97,139, 16, 49,211,147, +188,216, 47,237, 23,129,154,133, 68,232,158, 91,102, 83, 3, 20, 76, 34, 52,225, + 66,170,208, 25,214, 90,109,224,224,198,249, 66,100, 85,120,150,249,254,219,225, + 81, 28,242, 41,185,196,142, 16,208, 57, 95, 70,164,190, 97,138,206,189, 10,116, +136,233,240, 98,120,240,123, 93,188,111,103, 22, 45,102, 46, 24,106, 90,144, 87, + 52, 87,215,192,183,229, 49,138, 98, 63,214,131,104,118,105, 12, 33,190,109,215, +145, 38,159, 68,150,128, 77, 99,178,186,164,153,194,116,132,248,202,135,207,125, + 44, 76, 77, 68,221,160,240, 42,230, 79,144,158, 92,176,163,248, 93, 56,185,156, +238,228, 20,160, 52, 2, 53,239,212,249, 2,175, 59,180,196, 52,254, 66,210, 40, +248,202,146,115,197, 45, 15,254, 7, 15,240, 74, 16, 53,182,161, 65, 16,130,214, + 83, 2,242, 46,155,251, 45,200, 73,195,134, 84, 57, 80,217, 27,201,246,231,221, + 3, 1,152, 22,247, 29, 50,121,118,193,147,241, 40, 26, 34, 77,131,166, 66, 63, + 52, 99, 78,113, 71,220,143, 5,232,138, 62,232, 86,254,123,237,213, 0,238,112, + 85,227,229, 84,193,178,114, 59,241,244, 25,100, 83,166,181, 97,186,165, 20, 23, + 86,125,199, 20,130, 48,113,215, 28, 27,223,141, 91, 49,110,146,234,106, 54,161, +225, 17,186,111, 9,112, 0,222,198,184, 43, 25, 34,236,103,195, 99,137,181, 91, + 59, 93,104,137, 71, 5,177,238, 20, 18, 16,111, 4,142,132, 3,144,228, 16,163, +164,213, 87, 17, 19, 36, 37,136, 33, 84,212, 21, 48, 44,161,196,171,171,237, 65, +220, 71,173,112,107,128,103, 11, 17,207, 94, 37, 23,126,252,225,166,179, 11, 74, +151, 78,134,113,179, 37,166,112,221, 79, 27,147,210,185,233,162,147, 96,192, 86, +114,255, 41,203,131,122, 57,132,250, 8,178,225,196,240,132, 28,191, 32,218, 3, +160,182,194,207,224,252,144, 5,226, 87,221,185,238, 89,176,178, 27, 17,143,168, + 58,142, 96, 29,203, 34,253, 10, 62,147, 92,193,133, 25,189, 86, 51,252, 76,219, +205, 26,166, 38,156,228,206,119,210, 48,218, 50,117,249,248,115,119,242, 74,193, +175,209,196, 65,135,138, 13,126,127,161,228,230,132,123,197, 26, 29, 2,164,239, +187, 44,150, 41,171,185, 90,160, 45,136,145,201,213,162,180,132, 38, 84, 48, 63, + 7, 39,245,121,164,154, 20, 84, 99, 21,204, 34,115,144,226,149,169,115,137, 34, + 14,209, 6,226, 19, 51, 0,220,120,154, 75,213,159,158, 44,140, 82, 22,191,115, +124, 29, 26,197,217, 53, 42,217,153, 94, 32, 67, 20,214, 26, 80, 96, 66, 11,216, +212, 37,120, 70, 78, 28,172, 90,222, 85,153,196, 74,110,136,186,218,252,248,120, +198, 3,192,126,180,228, 94, 9,146, 65,249,173,213,150, 66, 54,128, 11,201, 72, +130, 22, 11,168, 73, 75,219,131, 74,216, 5,185,202, 8,197,152, 89,144, 77,121, +162, 7,153, 89, 90, 51, 96,159,146,112,234, 36, 74,242, 43, 79,166, 20, 32,134, + 45, 51, 74,176, 95,232,133,116,118,218,158, 23,104,201,158, 69,167,135,207, 96, + 85,217, 56,102, 61,246, 94,207, 33,144, 44,195,118,129,114,239,164,124, 49,159, + 99, 80,196, 21,193, 82,133, 89, 12,183,130, 12,115, 37, 14, 0,176, 45,182, 65, +121,226, 26,205,134,134,235, 11,243, 90,152,192, 97,163, 74,160,186,128,252,112, +192,164,117,150,131, 24,206,145, 73, 55, 84, 24,114, 3,100,101,233,195, 29,101, + 72,116,138,239, 81,195,202, 78,131, 26,200, 11, 63,194,130, 42, 84,100, 64, 65, + 83, 35,154,132, 42,235,123, 22, 69, 55, 40,187,226, 8,119,179, 83,240,133,250, +252,126,221,180,224, 60, 97,148,203,163,100, 88, 52,155,197,171,164,168,130, 83, +185,145,112,206,105,201, 35,164,165,151, 37, 92, 90, 31,195,237,197, 86, 59, 73, + 82,202, 54, 35, 23, 81, 76, 1,137,125,190, 34, 0,171, 81,213,163,209, 16, 87, + 9,164,127,237,239, 28,132,134, 51, 94,183,165, 26,215,102,110,120,133, 39, 2, + 13, 23, 11,230,199, 83, 69, 72, 38,254,236, 19,137,215,208,143, 2,131, 91, 71, +129,249,164,110, 7, 65,189,113,169, 46,227,212,243,130, 78,242, 45, 95,160,198, +189,204,232, 59,146,226,217,131, 75, 76, 88,127,191, 49, 7,196,168,164,209,226, +122,240,135, 26, 56,191,225, 60,172, 66,154, 1, 15, 7,151,203,168, 29, 54,208, +157,227, 6,189,116,175,232, 27, 30, 38, 56, 27,131,161, 61,118,167,238, 50, 68, +198, 79,228, 99,131, 78,175, 31,201, 1,107,216,205, 8, 33,227, 99,214, 53, 86, + 62,121,173, 40, 66,229,232,193,194,144, 76,200, 50, 60,231, 46,100, 57,113, 55, + 25,161,206, 59,207, 77,255, 13, 40, 80,125,176, 45,159,130,159,124, 9,107,115, +168,113,245,170,152,176, 89, 32, 25, 10,154,136, 89,244, 27,189,212, 97,187,165, + 56,192,209,241, 6,150,123,159, 82, 61,159,246, 64, 38,255, 24,101,186, 42,182, +239, 63, 11, 36, 17,208, 87,115,111, 17, 82, 59,117,172,141,184, 22, 40, 3, 2, +224, 58, 33, 3,126, 0,175,180,102,158,153,246,164, 0,153,182,204, 2, 18, 25, +131, 24,167,230, 35, 80,100,217,114, 22,183, 9, 25, 51,109,124, 9, 4, 31, 81, +102, 37,136, 59, 77,183, 53, 33, 53, 4,133, 81,201, 36, 11, 95,234,241,178, 37, + 20, 92,204,172,130, 19,120,160,139,176, 19,145, 32,171,128,112,222,192,178,180, + 3, 24, 88,138, 15, 25,180, 42, 10,131, 5,182, 97,183,228,253,146,169, 94,224, +247, 99, 98,195,189, 16,231, 51,110,248,187, 79,154,103,184, 40,197,132,192,237, + 37,202, 45,204,182, 19, 75,239,205, 64, 44,146,237, 19, 14,197,207, 66,225,191, +253, 63,239, 68, 4,134, 97,113,149,185,205, 66,114,128,218, 30, 31,141, 36,168, +208,107, 51, 20, 67,234,115, 62, 43,169, 93,161,231,251, 87,189,108, 96, 15, 99, +185,177, 9, 82,146,220, 25,107, 2, 69,241,228,244,175,152,184, 2, 99,134, 6, +123,126, 33,234,143,144, 31, 12, 28, 17,249, 41, 4, 89, 36, 93,146, 81, 19,120, +244,149,191, 52,246,126,119,128,201,231,225,188,198,106,187,119,185, 38,247, 47, + 21,179,251,166, 95,160, 8, 35,248,192,156, 46,251,199,114, 17,185,142,125,199, +120, 76, 26,254,128,113,254,164,221,207, 59,254,216,201,249, 85, 87, 39, 26,197, + 83, 8, 68,138,108, 79,159, 58, 47, 27,210,140,231,201, 51, 98,254, 71,238,148, +208, 85,186, 15, 37,128, 29, 64, 17,222,209,124, 97,107, 86,123,184,139,245, 41, + 80, 93,182,158,239, 7, 7, 26,198, 22,184, 89,199, 18,159,230, 61, 33,206,176, +108, 59, 33, 50, 44, 69,130,211,177, 32,127,248, 56,189,214, 16,244,251, 39,193, + 16,169, 88,171,164, 54,111,198,141,160,188,215, 38,139,252, 9, 3, 16, 5, 69, +252, 85,153, 39, 31,247,194, 27, 64, 66, 44,144, 66, 24,110, 92,178, 66,145,154, + 89,253,123, 90,166, 11,167,193, 22, 77,164,228, 4,183, 27,180, 0, 10,242, 78, +161,233,217, 66, 23, 31,213,113, 36, 19,216,158, 21,188, 28, 48,189,161, 27, 48, +218,221, 70,196,175,108,187,140,206,171,141,128, 68,242,210,194,233,114,187,112, + 59, 60,130, 4, 37,154,189, 62,246,144,202,182, 37,127,218,158,122,189,198, 90, +135,129, 95, 94,176,101,216,140, 92,187, 32,201, 59,156, 53,233, 10,132,154,202, +209,155,108, 61, 1, 70,140,153,241,160,196, 21,252, 63,241, 6,111,180, 99, 78, +230,147, 5,215, 98,177, 14,181,159, 77, 33,178, 33,115,162, 13,157,127, 76,157, +213,103,145, 54, 20, 61,216,152, 15,140, 40,223,172, 43,247,126, 55, 28, 7,129, + 89,135,135, 54, 14,202, 34,196,138, 1,234, 68,240,243,199, 7, 11,169,159,194, + 75,194,251,177,128, 92, 19,218,217, 39, 0, 77,250, 58,225, 51,255,171,248,158, + 92, 19,125,213,132,117,136,148, 19,222, 94,177,128,150, 55,201,153,112,236,111, +109, 24,105,191,127, 76, 40,136, 8,135, 44, 18,154, 37,243,226, 68,115,128,194, + 99,118, 95,107, 36,100,212, 70, 90,184, 31,167, 88,216,154,237, 58, 96, 66, 99, + 3,130,196,154,231,107,135, 74,236, 98,255, 69, 86, 85, 37,223, 89, 9, 66,110, +148, 42, 0,159,251, 96,208,252, 20,236,225,245, 0,133, 40,154,158, 25, 0,103, + 16, 28, 14, 30, 88, 82,234,108, 80,107,115, 44, 70,230, 30, 81, 5, 35, 91, 31, + 47,201, 87,227,145, 95,144,166, 21, 26,245,229,215,100,153, 45,107,199,158, 20, +168, 71,111,177,254,243, 34,102, 51, 93,199, 48, 29,155, 39,122,135,184, 98,100, +196,143, 65,109,252,120, 61, 81,147,130,144,243,103, 22,203, 11, 86,211,207, 66, + 26, 21,228, 4, 70,179,247,128,136,229, 96,214,107, 45,130, 56,138, 12, 66, 81, + 78,187, 91,119,133,214, 46,126, 20,224, 76,157, 31,182, 10, 8,159, 58,155,194, +176, 62, 19,193,220,186, 75,168,148,159,241, 48, 31, 1,240, 48,180,236, 22, 18, + 13,150,152,191, 54,160,219,152, 49,214,244, 62, 99, 68, 48,193, 27, 83, 44, 5, + 58,122, 59,137,251,174,206, 19,252, 44, 38,184,202, 14,145,186, 77,196,174,254, +207, 28, 60,219,195, 1, 32,206,119,104,158,160,138,176,223,191,142,240,120,231, +119, 17,135, 65, 85, 58,125,144,246, 9,186, 10,101, 21,165,181,179,107, 63, 53, + 37, 5,116,216, 35,137, 8, 6,241,231,212,160,180, 25, 78, 52, 62,105, 14, 43, +199,190,198, 6, 80, 32, 5,214,248, 58,133,244, 72,232, 94, 68, 80, 22,250, 80, + 92, 4,241, 77,127,168,115, 89,139, 35,243,195,164,152,224, 89, 8, 64,154,153, + 77,147,243,169,218,215,203,251,236,164,202,185, 4,142,144,236, 33,228,248,238, +117,134, 52,165, 85,195,243, 35, 82, 87,227,200,152,244, 42, 10, 59,134, 78,170, + 47,105,144,252,197, 92, 21, 72, 25,149,232, 88, 7,104,169, 31,183, 12,179, 13, +105,143,120,122,170,102,127,205, 27, 90, 42, 34,253,139,152, 60,141,160, 48, 69, +179, 73, 73, 58, 37, 28, 26,210,166,244,219, 97,250, 34, 10, 81,142, 68,242,139, +247, 99,149,120,149, 33,142, 69, 7,107, 61,226,156, 42, 70, 53,184, 98,241,138, +173, 45, 58,121, 54,142, 68,102, 61, 49,243, 93,158,146,150, 2,254, 74,235, 50, + 61, 79, 77,186,199, 12,121,132,151, 23, 38, 32,186, 94,162,200,255,104,138,189, +193, 70,173,202, 61, 38, 7, 72, 91,251,237,178,189,187,244, 82, 76,141,249,117, + 80,114,100,163,116,186, 23,187,160,241, 98,167, 48, 52, 16,161, 19, 27,213,121, + 20,164,243, 36, 25,198, 54, 14,183,105,166, 54,107, 9,135, 46,133,167, 32, 70, +169, 82, 90,207,232,103,205,154,107, 0, 51,133, 94, 50, 8, 81,126, 70,120,213, + 89, 16,114, 87, 31,143,191, 22,115,144,137, 28,108, 26,200,131,195, 0,239,130, +169, 94,221,155,146, 81, 98, 58,122,152,104, 28,213, 54, 46,134,201,201, 6,105, + 74, 78, 58, 89, 29,189, 37, 24,172, 19, 9, 54,201,190,128, 13, 15,143,137, 40, +203, 97, 4, 21, 12,210,179,143, 37, 21,112, 87,208,142, 60,217, 53,166,227, 74, + 45,110, 64,102,156, 32, 27, 7, 6,172, 91,146, 31,129,155, 99, 23,139,236,160, + 50,122, 87,161,101,127,228,235, 53,226, 52, 89,209, 14, 46, 81, 82,222,248, 82, +255,134,115,186,217, 64, 49, 25,247, 22,154, 61, 46,198,116,141, 15, 33, 74, 15, + 64,251,240, 9, 12, 66, 51, 71,138, 18, 48,171,175, 44, 47,240,162, 49, 43,179, + 97,241, 26, 2,105,136, 35,158, 6,132,101,142,116, 40, 83,231,233,127,192, 85, +219,135, 90, 13, 75,170,188, 32, 38,182, 18,220,112, 76,204,129,204,100,150,187, +100,236,135, 2,250,244,223, 16,142, 46,184,163,145,166, 17,157,100, 65, 97,129, +159, 63, 66,234,120, 28, 12, 66,133,127,218,223,196,193,186,164, 4, 70,106, 56, +137,130,216,136, 81, 73,143, 18, 34, 56,125,220,175,149, 0, 88,164,211,125,149, + 68,179,132,211, 78,226, 4,211,201,244,190,108,132, 90, 56,117, 79,161, 41, 10, + 18,133,150,255,123,201,127,172, 71, 56,110, 85,223,244, 34,154,163,241,182,105, +205, 23,253, 24, 80,197, 46,108,194,164, 7, 19, 3, 98, 34,186,142, 94, 99,171, +226,178,254, 79,159,169,194,172,173,164,208, 13,206,129,144, 14,152,162, 59,210, +245,216, 97,169, 24,170,165,130, 13,138, 53,233, 4,237,247,253,244,103, 27, 62, + 80,198,103, 11, 65,100,185,168,174, 21,145,233, 37,154, 83, 70, 87, 70,242,136, +169,128,196,232,108,246,224,118,181, 55,186, 25,225,155,118,251,225, 15, 47,170, +210,117,201,149,195,216,246, 5, 49,192, 79, 69,164,243,190, 52,166,143,203,121, +232,240, 29,233, 0,182, 64, 35,135,175, 74,212,149, 42,245,182,210, 61,227,138, +101,249, 56, 39,171, 20,143, 98,215,121,171, 39,227,199, 74, 13,129,114, 28,248, + 31,184,169,105,119, 39,234, 66, 88,250,182,107, 4,150, 56,201,129, 84, 39,180, + 62, 86,138, 70,174,254,167,204, 91,153,228,164, 57, 23, 99, 21,148, 98,117,217, +129,143, 39, 8,133, 25, 33,135,101,194, 57, 91, 27,174,139,212,122, 22,253,159, + 99,190,140,171, 5,143,166, 6,148,211, 59,122, 41,212,250,139,206,195, 71, 59, + 12, 47,212,252,141, 23, 30,143, 22,196,210,214, 71,170,115,223, 80, 90, 73, 11, + 37, 29,108, 70, 79, 54, 72, 93, 11, 93,113,128, 8, 74,107,169,158,176,125,109, + 31,200, 91,154,168,187,156, 10,132, 25,107,138,148,160,146, 31, 21,206,130,113, + 70,210, 97,159,182,129, 8, 69,230,245, 88,109, 76,167,180, 80, 75, 23,196, 88, + 31,103, 44,117,131,188,173, 73,117,162,119,161,124,118, 92, 97, 62, 57,159, 70, +155,151, 85, 52,208, 5,167,222, 9,108, 50, 61,158, 89,182, 43, 51, 66,137, 72, +247, 79,203, 40, 33,138,130,141, 20,149, 47, 86, 55,133, 95,146,193,216,222,104, +197, 45, 37, 93,107, 53,217, 99,167, 86,246, 53, 78, 25,188,165,225, 49, 45,210, + 91,107,184,162,104, 14, 71, 89,114, 50, 54, 72,136, 11, 46,107,251,251,226,211, + 19,206,143,195, 14, 20, 26,117,148,176,144,147, 54,238, 8,102, 79, 50,155,242, +232, 99, 36, 40,240, 62,212,244, 18, 27,132,231,229, 69,249,250,140, 82, 77, 9, + 0,245, 13, 1, 36,101,150, 99, 14, 22,131,241,185, 26,230,131,169,250, 70,123, +110,192, 44,186,119,190, 44,186, 47, 34, 12,124,182,204, 63,212, 40, 59, 49,166, + 97,186,192,104, 12, 10, 35, 7,139,154,135,193,181,199, 60,157,214,130, 24,154, + 55,210, 85,191,199,249,102, 57, 97, 58,223,235, 6,131,182,236,186, 36, 63,155, +104,195,122,249, 12, 15, 78, 8, 81,166,133, 54,182,154, 38, 60,235, 65,194,168, +125,180,228,231, 9,111,134, 20, 77, 57,205,113,188,155, 82, 5,237,172, 43,115, + 50, 41, 17, 73,103, 71,148,132,215, 49,174,118,173,217, 36,199,216,196, 19,104, + 34,137,221,124,124,117, 28, 5,176,240,205, 90,145, 98, 53,219, 7, 25,238,188, +217,195, 72, 21, 69, 29, 45,114, 52,215, 53, 98, 40,241, 20,177,182, 91,126,193, + 55, 41, 90,252,187, 92,202,184,209,131,127,197,171,140,211,211,156,178,242,183, +116,104, 45,111, 63,237,202, 96,122,216, 33,201,202, 25, 75, 17, 97,149, 17,255, +132,101,178, 17,249,128,248, 24,249, 0,122,202,206, 71,123,149,126, 77, 45,246, + 79,194,179, 27, 8, 42, 43, 70,141,167,228,128, 25, 9,126,150,163,179,161, 68, + 7,163,228, 38,175, 31,254, 97,126,197, 73, 49,132, 63,225,247,235, 52, 98,151, +121,235, 47,156,163, 56,210, 35,235,146,126, 88, 62,165,244, 45, 8,189, 1, 67, +138,122, 83,110, 27,113, 5,163, 84, 13,213, 89, 71,215,153,172,106,247,254,197, +118,160, 0, 79,209,100,208,177, 67,214,192,202, 40,180, 72, 65,204, 54, 84, 47, +188,174, 59, 60, 1,175, 2, 25, 8,130,239,128, 27, 20, 37, 39,140,211,156,132, + 95, 43,213,155,226,219,218,237,120, 27,120, 43,175,148, 28, 60,160, 14, 16,157, + 63,119,234, 37, 34, 74,204,254, 95,135,255,101,204,198, 67, 46, 66, 30,179, 54, +177, 46,189, 5,112,163, 15,206, 12,133, 26, 72,121, 3, 53, 14,197,187,156,194, + 62,254,237,183, 35,174, 17,128, 30,184,120, 9, 73, 34,198,158,173,231, 73,230, +254, 45,229,118,240, 34,166,218, 81, 50, 93,213, 77, 70,189, 51,171, 31, 84, 54, +195, 65, 15, 97,139,167,126,236, 16,104,238,173,219,228,151,132, 98, 27,186,180, +145, 53, 22,213,175,218, 5, 15,130,193,210,233,165,165, 3,156,105,156,139,195, + 26,225,140, 76, 77,170,116,126,249, 80,130,240,116,250,173, 21, 99,233, 58,248, +193, 31,105,194,112,170,125,162,152, 29,247,113,144, 78,164,158,191, 16,212,226, + 59,143,171, 20,161,104, 98,218, 12, 48, 97, 22, 89,145,156,155, 91,187, 36,226, +135,184, 94, 98,131, 15, 87, 75,149, 91,153,112,159,253,240, 32,250,145,252, 12, + 77,178, 54,155,119, 31, 67,142,240,189,166, 68,148,131,109,195, 22, 88,182,197, + 20,156, 74, 20,145,225,130,148, 77, 8,128, 92,243,107, 56,192,180,157, 77, 34, + 46, 45, 34, 72,124, 89,163,205, 67,190,255, 60,180, 62, 80,231,101, 11,105,154, +131,212, 42, 61,236,175, 38,115, 79,183,141,246, 0,204,244,129, 4,109,207,150, +162,190,161,196,100, 78,101, 55,255, 61,196,182,106, 83,181, 45,189,125,249, 74, + 61,143,188,189,158, 14,154, 24,195,255,200, 41, 75, 13, 28, 6,185,136, 92,245, +161,128,242,152,114,162,133, 58,104,180,228, 85, 74,184,116, 76,159, 83,163,190, +240,187,251, 12,199, 40, 55,133, 4, 43,141, 11,155,161,171, 9,252, 52,130,112, +247,176,157,138, 17,106, 37,137,221, 77,116,102, 27, 40,164,208,131, 62, 96, 50, + 84,163,163,140, 41, 82, 46, 30, 84,251,185,116, 34,237, 27, 28,113,189,231,185, +206,241,242,147, 44,172,126,192,207, 94,210,245, 61,214,159,210,144,248,107, 53, + 27, 78,217, 24,223, 71,131,255,242, 26,108, 58,143, 4, 66, 24,138, 47, 66, 48, +238,154, 71, 80,140, 53,130, 63, 73,158, 29,235,229,131,136, 39,123, 79, 5,194, +138,111,144,179,217,145,165,169, 9,208, 23,133,135,191, 14, 60, 34,119, 4,108, +214, 1,179,177, 26, 74,132,104,112, 22,102, 60,110, 36, 53,240,222,209,147,203, + 97,207,210, 50, 65,122,151, 61, 49,182,232,237, 67,167,204, 44,127, 88,180,241, +175, 90,174, 13,167,111, 66,233, 24,245,105, 86,122,219,126,130,239,116,189,199, + 97,155,102,105,196, 35,183,230,120, 74,137,159,217, 75, 92,151,205,153,189, 8, +228,247, 61,160,121,148,149,147,194,170, 54,161,196,124, 86,185, 92,250,248,116, +244,190,125,163,104, 26,142,183, 43,155,234,116, 53, 60,221,111,187,134,153,110, +191,243,236, 2,204,119,111,124,116, 25,135, 38, 46,205, 27,233,100,143,245,244, +154,154,157,122,133, 71,167,221, 86, 66,202,166, 6,232, 63,145,243,216,117,199, + 98,102, 50,139,209,219,200,144, 12,192,132,226, 9, 72, 4,191,106,214,216, 28, +172,123, 59,165, 70,206, 33,180,136, 3,131,146,137, 42, 17,233,205, 58,234,250, + 67,139,153, 91,110,172,198,170,160,131,162,172,112,169,152, 98,205,241, 26,238, +145,164, 26, 37, 54, 62,164, 50, 96, 62,122,240, 75,172,201,218,172,124,209, 51, + 30, 41,226,193,128, 22, 75,165,216,183,242, 42, 8,199,218,125, 91, 40, 45,161, + 5,191, 16, 57,155,236,246, 12,233, 70, 5, 14, 38, 73,253,153,159, 84, 12,105, +148, 42, 46,253,216, 96,250,230, 6,162, 96,221, 51,128, 29, 64, 13,211,226, 53, +202,246,148,103, 90, 98, 10,101,197, 39, 98, 48,117,123, 78,221,176,207, 59, 62, + 47,206,192,205,172,218,165,106, 43,192, 80,162, 58,111, 49,214, 16,173,142, 12, +142,138,136, 28,105,131, 76, 12, 48, 65,171, 13, 81,244,195, 19,176,253,234,195, +102,237,124,209, 18,225, 4, 60,114,103, 47,128, 96, 21, 29, 68,154,103,152, 14, +127, 42,108, 55, 49,128, 39,245,120,114, 35,120,192, 12, 45,107,128, 24,116, 66, +247, 19,146,232,106,212,220, 25,179,183,129,224,138,122, 1, 47, 89, 53,233, 56, +131,139, 73, 85,248, 17,127, 32,165,126, 28,207, 79,150, 15, 26, 79, 82,132,185, +132,153,143,218,251,186, 97, 99, 20, 84,233,153, 14,216,178,117, 73,136, 88,109, + 69,125,241, 56, 14, 13,186,100, 70, 31,229, 70,235, 49,135, 11, 55,143,230,247, + 63,248, 20,105,214,187,201, 4,118, 37, 72,246,182, 79, 77, 9,160, 27,135,112, +221,220, 26, 85, 71,205,155, 79,209,173,164,212, 46,110,194,166,251,227,170, 87, + 60, 66, 65,172,252,228, 41, 12,248,149,186, 72,235, 6, 76,144, 0, 70,244,162, + 40,192,206,206, 3, 24, 97, 50, 34, 2,115,170,248, 5, 30,168,153,151,203, 37, + 7,202, 58,248,102,151, 19,188,204, 86,208, 49,173, 31, 96, 89, 4, 1, 34,168, + 64,150, 0,150, 0,149, 0, 20,234, 42, 93,189,208, 21, 59,159,154, 79,251,191, +182,157,159,143, 78,106,210, 78, 63,144,182,164,104, 61, 18, 77,169,137, 80, 17, +138,111, 16, 16,188,199,108,155,133,145,101, 6, 45, 75,154,158,206,184,115,197, +187,119, 4,253, 72,142,150,243, 75,103,139,226,128, 85, 36,173,174, 18,172,235, +176, 7,247, 28,214,117, 15, 12,123, 60, 40,229,109,176,174, 50,253, 63,245, 0, + 86,166, 74, 21,244,171, 72,198, 2, 49,248,223, 18, 83, 75,157,206,125, 91, 69, + 14,150,190,190,149,222,150, 22,149,204, 27,133,207,239,160,239, 63, 34, 14,244, + 7,147,167,226,217, 36,123,221, 19,173,116,201,193, 82,243,205,119, 18,173,130, +217,228,241,249, 21,105, 50, 88,134, 30,196, 31,142,109, 52,104,163, 65, 7,160, + 6, 51,171,165,133, 57,126,198, 75,126,162,146,248,142,193,239, 55, 65, 12,170, +201,252,166,138, 34, 68,126,242, 21, 65, 37, 69, 40, 90, 39,203, 27,141, 90,235, + 24, 85,204, 39, 81, 44, 49,221,218,114,176,234,234, 1, 17, 32,148,135,119,176, + 21,191,215, 17,218,148, 70, 37,196,193, 46,208, 27,223, 57,215,246,194,130,208, +249, 57, 14, 90,125, 57, 17,244,147, 7, 55, 97,150,160,167,112,153,195,252,172, +230,120,127,229,190,168,251,247,190,153,139, 95,125, 43,243, 94,130,196,105,244, +244,233,230, 31,122,235,163,184,242,157, 65,124, 33, 25,133,205,227, 26,186,135, + 60,215, 22, 59,170,160,143, 32,141,197, 63, 20,124,223,218, 3,112,181, 98,206, + 20,199, 39,139,246,138, 29,165,162,109,118,223, 15,191, 31, 47,197,252,111,113, + 30, 75,158,241,183,191,218, 49,234,109, 26, 38,187,104,132,119,241,180, 74, 66, +199,226,183,251,142,215,228, 55,122,252, 36,224, 59,244, 1, 5,212,212,207,126, +195,176,244,246,182,252,228, 29,146, 36, 97, 59,150, 29, 93, 43,104,138,246,130, +220, 86,247,179,211, 51,180,112, 39, 12, 39,231,151,111,145,155,169, 43,214,216, + 73,103,201, 17, 81,190,171,253,140, 35, 74, 57,207,193,217, 12, 15, 91,165,243, + 58,238,242,159, 76, 86,137,213, 20,111,195, 93,174, 12,128, 5, 25, 80, 27, 44, +200,163, 77,120,107, 59,147,154, 38,189,223,165,244,222,123,239, 39,153,105, 22, +118,122,210, 16,234,253,164, 39,149, 62, 2, 1,240, 71, 18, 52, 48, 96,121,171, + 61,174, 56,196,119, 95,238, 82,184,178,139,174,157, 58, 94,139, 65,219, 40, 42, + 16,156, 99,204,148, 99,139,115,221,251,114, 92, 71,171, 67, 10,215,159,133,243, +174, 44,187, 20, 48,161,230,117, 28,107, 71,212, 53,243,160,168, 12, 66, 62, 40, +106,132, 96, 26,199,109, 27,198,130,185, 84, 48, 16,235, 44, 94, 11,102, 26, 77, + 97,193,227,185,180,203,235, 54, 76,187, 4,135,234,168,243,156, 49,170, 73,210, + 1,195, 3, 17, 12, 46, 10,203, 99,114, 49, 12,115,241, 3, 83,176,130,112, 53, + 22,137, 75,113, 12, 37, 49, 16, 33,138, 24,226, 8, 33,132, 16, 9,100,132, 68, +100, 72,164, 14, 98,100,219,199, 18, 96, 40,128, 16,220, 17,205, 34,184,142,154, +100, 80,166,125, 20, 44, 84,184,165,147,252, 18,103, 87, 24, 33, 3,112,241,168, +215, 36, 96,245, 32, 32, 65, 78, 57, 65,133,178,170, 52,131, 17,183,113, 98, 7, +245,167,174, 87, 32,114, 16,161,177, 30, 40, 74,133,209,104,112, 25,125,202, 84, +110,117,204, 72,198,122, 81,108,217,143, 75,131, 33, 66,250, 34,212, 88,132, 45, + 0, 33,141,125,137, 92,233, 98, 7, 46,136,141, 2,193, 68,199,216, 8, 88,120, + 68,153, 93, 33,138, 68, 18,153, 2,239,169,202, 86, 79, 98,147, 64,173,104,192, +249,208, 72, 79,156,193,123,225,214,188, 20, 73,215,112,107,109, 51,185, 67,176, +100,152,211,157, 5,227,240,180, 38,189,220, 37,190,179, 99,191,188,128,206,136, +169, 82,181, 40,132, 3,238, 79, 11,175, 33,168, 77, 5,198,245,216, 14,220, 16, + 65,230, 55, 34,214, 90,195,220, 16, 68, 11, 54,210, 73, 0,123,142,142,151,177, +172, 85, 31,251,180,141,171,101,126,176,218,183,218, 5,126, 90,205,123,163,233, +178, 26, 93,109, 49,150,128,163,127,103,116,188,253,216,128, 47, 54,246,202,181, +226,162,248,137,131,205, 82,170, 19, 64,215,232,202, 53,136, 27,126,116, 92,107, + 10,253,153,136,140,183,214, 23,141, 47,215, 6, 20,181, 6,248,114,134,172,209, + 99, 13,120,119,102, 30, 88,131,186,169,219, 93,142,121,156, 93,110,237,105,193, +176,171,144,121,194,204,222, 50,169, 40, 70,247, 54,177,197, 88, 91, 48,160, 27, +163,174, 13,253, 20,255,135,249,120,157, 46, 75, 80, 0,162, 63,136,159,166,240, +214, 88, 27,244, 14, 65, 41, 12, 69,186, 81, 38, 88, 11, 37, 43,163, 56,255,241, +161, 86,164, 60,137, 5,220, 13,254, 61, 40, 10, 72,205,112,204, 66, 41, 37,197, + 58,246, 48,120, 12, 43, 34,101,150, 68,245,181,174,103, 94, 93,186,127,188,100, +250, 4,231,239,240, 35,251,225, 28,139, 86, 18, 61,113,118,117, 71,167, 22, 5, +228,132,220,106,190,197, 23, 56, 1,249,153,232, 97,140,161,223,176,107, 80, 54, +236,107, 86,190, 2,205, 74,169, 81,189,138, 94,113,127,231,241, 38,241,138, 58, +246,100,186,179,140,207,136,141,128, 25,245, 14, 69,106,143,103, 82, 43, 45, 99, + 36, 78,111, 67, 8, 72,156,159, 11,208,212,223, 44, 5,169,202,114,249,243,233, +202,206,237,200, 73, 67,199,178, 67, 1,138,168,195,108, 56, 55, 13, 31, 95, 48, +239, 30,152,113, 94,246, 78,187,129,122, 31, 21,168,130, 45,111,198, 69,147,185, +175, 97,164, 7, 65,103, 55,128,107, 84, 49, 44,187,195,139,130,161,134, 24, 4, + 83, 2,245, 61,103, 81,142,102,131,150, 51, 48, 87,187, 88,137,234, 9, 69, 55, + 77,109, 61,113,176, 50, 18,204, 40, 82, 59,215, 58,146,179, 19, 21,119,202, 34, +127, 9, 92,179,158,105, 47,124,132, 58, 1, 29,120, 7,186, 94,244,153,186, 35, +138,132, 80,144,123, 74, 90,237, 37,148, 98, 99,192,136, 62, 33,174, 80,151,194, +199, 12, 90,152,241,110,243, 86,158, 60,165, 29, 82,183, 9,180,205, 48,154, 5, + 81, 14,249, 68, 81,116,142,207,151, 9,108,226,199,144,133, 50, 20,173,113,234, + 17,113, 75,178, 90, 61, 30,221,227,221,175,249,148,250, 5,119, 96,219,243,129, + 45, 14,185,221, 36,241,147,155, 39,154, 48,172,104, 71, 25,243, 24, 54, 91, 32, +184, 53,118,155, 50, 54, 21, 86,162, 30,225,129,110, 10, 37, 18, 33, 48, 93,198, +204,193,196, 44, 65, 56,128,170,213, 29, 39,101, 92, 62,131, 99, 42,121,119, 48, + 91,198,163,111, 16, 54, 52,119,129,251, 84, 41,152, 25,123,250, 40,133,230,186, +207,131, 56,195,131,217,138,249,112,244,250,221,143,238, 49,186,167,186, 30, 12, +125, 39,117, 28,105,251, 19,135, 0, 27,195, 17,202, 25,207, 51,227,211, 52, 22, + 33,152, 51,247,209,121, 4,177,225, 93,121, 73,221, 13, 92, 81, 37, 4, 70, 1, +187, 70,222,176,112, 56,128,111,209,197,216,228, 1,222,144,252,148, 53,101, 18, +109, 66,186, 29,178, 20,137,134, 83, 47,168,117,202,207,107,210, 21, 35,139,163, + 7,153,197,104,105,164,112,228,201,240,167,223, 6,235,248,238,148, 9,168,212, + 9, 3,113,248,232,238, 9,176, 9,137, 0, 84, 41,252, 87,146,126,101, 27,166, + 84, 59, 72, 70, 32,112, 44,214,118,156, 78,114,106,131, 13,114, 10,231, 0, 97, +199, 2,104,195,209,202, 35, 8, 72, 80, 95,133,253,150, 60, 66, 6, 91,190,183, + 37, 40,151, 24, 84,213,107,250,101,247, 45,222, 85, 90, 98, 95,113,134,157,206, + 47,175,176,126,145, 20,201, 29,148, 7,254, 16, 74,147,237,185, 87,202, 67,126, +176,135,176, 92,150,105,200, 83,227,182, 43, 89,132,140,142,159,152,109,200, 52, + 40,200,147,119,118,129, 5, 89,175,248,248, 2,127,220, 18, 59, 21,165,105,137, + 61, 37, 1, 57,140, 34,148,136,197, 92,114, 3, 26,139,124, 75,113, 65, 71,211, +119, 62,145,241, 79,147, 44, 5,240, 40, 41,113,145, 37,136,107,179,169,144, 22, + 20,162,251,241,121, 26,205,189, 74, 94,179,117,210,189, 48, 62,129,152,244,232, + 77,100, 48, 35,149,161,124, 2, 15, 55,151, 11, 67,123,107,132,225, 67, 79,196, +198,193,208, 74,142, 10,114, 19, 27,137,134, 30, 79, 80,196, 7, 67, 55,158,234, +152, 72, 71,224,125,237,123,222,160,234,144, 99,168,183,188,216,193,139,141, 86, + 76,119,210,142,183,102, 12,146,100, 82, 51,204,245, 35,141,134,218, 23, 9,250, + 56,233,101,136,175,186,153,112,247,236, 72,245, 35, 2, 72, 53,250, 98,122,169, +167,234,240,232,242, 66, 96,240,165,107,171,157, 67,183, 74,147,139, 14,130, 56, +151,174, 9,218,183,246, 37,230, 6, 0,174, 98,201,133,153, 94,185, 52, 66,113, +252,123, 73,187,109, 54,241,201, 78,193, 47,109,141, 25,251,182,209, 19, 37,220, + 14, 42,172,222, 73, 70,134, 13,120, 23,192,193,128, 42, 58, 35, 96, 58,236, 9, + 2,151,100,209, 23,224,170,242,188,100, 41, 6, 63, 18, 52,192,111,185,119, 81, +135, 31, 83, 41, 21, 2,145,225,160, 85,226, 84,226,164,220,101,235,208, 61,148, +162, 27, 43, 91,240,246,151, 54,202,193,127,235, 64,234, 13, 21, 47,139,149, 1, + 18,248,141,246,165,196, 67,254,217,195,139, 35,250,240, 22,169,109, 20, 31,137, +102,170,150, 58, 66,120,240, 97,236, 33, 74, 73,172,250,109,172, 36,192,214, 81, +184, 47, 50, 45, 27, 74,106,117, 9,253,122, 99, 77,122, 22, 35, 65,250, 45,174, +172,220,210,189, 21,162,237, 28,201,156, 31,106, 9, 21, 50,241, 45,249,172, 91, +123, 72, 32,190, 47, 19, 35,126,236,208,232, 47,130, 50,248,203,181,157,101, 48, +199, 0, 80,198, 7, 24,212, 65, 52, 37, 60, 8, 65, 28,152, 75,249,197,195, 9, +202,252, 67, 22,143,155,199,210,231, 81,207, 94, 36,141,147,202, 6, 27,137,198, + 97, 4, 63, 19, 43,215,162, 53,194,196,146,138,103,151,184, 28, 14,235, 31,184, + 15,120,226,130,152, 79, 91,170,217, 53, 52,158, 74,162,137,124, 3,236,205, 71, + 47, 8, 39,164,251, 66,103,143,168, 51,210, 4, 16,117,193, 52,121, 12,237, 41, + 0, 43, 84,255,129,236,254, 8,133,220, 72,134, 56,166,135,175,164, 46, 3, 25, + 77, 36, 15,133, 10, 73,199,193,136,174, 90, 70, 9, 74, 29,254,173,135,129,198, +101,146, 81,199,207, 55,132,200, 89,141,194, 8,135, 25,164,150,135,226,204, 33, + 18, 25,102,133, 23, 10, 39, 65,147, 17,226,176,147,204, 96,157, 78,182,142, 19, +147,246,198, 71,147,122, 43,103, 33, 70,248,107,138,182, 9,206, 45,214, 52, 64, +164,161, 59, 75, 77,169, 46, 92,163, 76,109, 75,140, 59, 1,173, 13, 73,107,124, +198,194,154,223,253, 3,167,175, 87,130, 44, 59,221,186,153, 49, 48, 92, 92, 86, + 50,224,217,113,230, 72, 15, 4, 99, 80, 80, 37, 9, 95, 44, 68,119,222, 40,209, +150, 37,197, 82, 31,192,209, 12,235,152, 70,159,193,141,190, 92, 51, 90, 14,179, +238,166, 91,242,109, 83, 70,200,187,249, 35, 88,118,154,212,246, 8, 71,158, 21, +249, 23,122,167, 34, 25, 94,254,201, 9,202,198, 56,203, 69,164, 78,146,174, 75, +162,114,171, 45,251,210,105, 88,141, 37, 6,100, 63,236,107,191, 67, 93,128,209, + 19, 67,188, 5, 29, 68,193, 62, 67,245,110, 27,118,145, 22, 38, 37, 81, 19,252, +164, 17,145, 58, 65, 85,124,163, 87, 69,144,180,128,217,121, 74,178,126,115,218, +102,240,145, 3,164, 49,166,150,157, 81,200,249,177,165,251,236,253,180,115, 14, + 35,209,176, 26, 15,146,105,112,224,195,200,208, 22, 80,169,103, 15,109,231, 45, + 13,106,237,190, 89,184,144,249,192, 59, 53, 90, 33,229,244, 95,241,214,124, 86, +209,215,128,122,200,159, 6,212, 8,112,241, 31, 9,168,220,126,153, 94, 80, 2, +183, 94,178, 3, 98, 40, 22,197,235, 11,160,139, 19,253,107,103,200, 65,117,192, +177,233,145,120, 54, 36,137,242,103,147, 69, 95,212, 32, 54, 32,243, 75,227,114, +186,232,169,197,127, 15,209,175, 70, 94, 15,175,110,135, 43, 67,216,192,111, 68, +102,253,253, 70,239, 91,116, 60,254, 24, 49, 90, 60, 18,181, 0, 19, 52, 33,112, +204,196,130,239,239, 86, 53, 34, 66,210, 64,235, 74, 1, 67,204,236,136, 24,210, +234,153, 11, 39,168,122,243, 4,205,144, 94, 0,219,255, 96, 63,192, 96,100,173, +196, 99, 3,209,140,132,142, 62, 88,146, 17,111, 52, 97, 17, 22,113,210, 70, 80, +104, 64,166,157,236,175,210, 18, 31, 99, 84, 37,115, 33,192, 94,198,123,215,117, +230, 74,105, 42, 36,111, 24, 99,116,157,169, 70, 48, 22, 59, 50,175, 59,152, 52, + 10, 15,252,177, 12,104,143,243, 48, 24,236,140, 92,133,241, 40, 70, 61,222,205, +204,239, 8,225,232, 37, 41, 56,144, 42, 50,156,190,237, 22, 72, 57,144, 18,249, +137,217,126,150,113,129,121,105,179, 46,161,120,106,136,211, 96, 32, 12,170, 15, + 12,159,176,131,132, 79,230,185,205,101,221,188,130, 62, 2,192, 71, 80,104,189, +152, 64, 99,165,144,221,151, 25,207, 10, 32,142,111, 14,128,237,159,225, 4, 88, +109,111, 92,149, 37,197,122,133,215, 83,116,219, 92,255,114,184,209,166,182,216, + 68,243,154, 15,188,121, 95, 39, 65,117,104, 24, 18,145, 68,136, 71,175,159,130, +101, 87, 23,228, 92, 67, 9,188, 51,192,131,247,238, 70, 23,120, 3,206,172, 89, + 72, 3, 6,206, 12,245, 68,146,155, 53,226,221,104, 76,193,162,231,246,154, 71, + 22, 18,142,209,221,151,197,193, 77, 3, 8, 24, 72,181,208,126,191, 52, 20,153, +194,209, 73,117,182, 29, 56, 91,152, 82, 84,253,120, 84, 65, 99, 85,215, 8, 36, + 16,144,161, 79,216,170,131, 26, 63, 95,150,112,110,214,189, 25,221,133,207, 41, +143, 20,182,176, 48, 57,213,211, 63,236,167,161, 55, 47,246, 52,162,133, 75,110, +200,129,141, 2,254, 83, 67,190,102, 55,181,185,197,226, 97, 88, 25,171,114,172, +249,180, 49,116,105,155, 5,175, 46, 16,214,206, 35,136,129,144, 17,240, 91,224, +242,248, 53,244,103,182,178,185,160,234,202,235,160,207,225, 80, 76, 70, 0,238, +250, 41, 16, 58, 97,193,243,134, 88, 9, 1,241,150,150, 47,200, 99,175, 32,196, +194,129, 91, 11, 97,255,226,157, 70, 38,222, 40,253,204, 99,200, 37,172, 83, 37, + 41,182,156,111,105,172,102,149,135,118,109, 6,166, 33, 92, 30, 7, 68,101, 19, +232,203,105,209,135,205, 2,185,107, 75, 30,183,141, 73,179,129,219,131,173,132, +249,244,115, 92,157,153,247,128,221,221,220,123,196,190,198, 49, 51,121,101,169, +225,178,110,135, 48, 20,148,150,158,180,141, 61,139, 54,225, 0, 46,150, 30, 16, +120,222, 17, 44, 22, 97,123, 34, 68,114, 73, 80, 69,220, 51,232,137,124,235,197, + 77,252, 0, 51, 65, 48, 13,150, 5,240,155, 49, 15,153,128, 85, 19,174, 23, 6, +242,145,180,142, 84,218,206,236, 17,128,179, 46,215,240,140,160, 35, 43,123,243, + 41,187,108, 51,252,185,127, 29, 64, 46,109,118, 42,112,105,255,169, 39, 96, 84, +200,251, 13,252,217, 19,240,146,206, 30,160, 87,244, 62, 66, 42,114, 3, 66,136, +235,167,216, 26, 82,131,176, 74,156,171,242, 51,243, 50, 35,114,110,202,250,191, +221, 66,134,140,194,227, 3,235,160,215,213,221,206, 79, 62,204,252,188,176,199, + 15,172,161, 18,172, 3,237, 58,147,230, 40, 0, 81,231,231,146, 75,132, 8,206, +245, 89,239, 7,106,191,192,130,236, 91,191, 46, 27,137,208,130,231,213, 71,216, + 45, 90,156, 93,195, 94, 71,242,226,120, 47, 63,253, 95,192,178,245,178,187,229, + 27, 84,240, 94,191,130,108,246, 13, 21,198, 79, 57,110, 3,189,114,168, 3, 61, +140,209, 51, 96, 81,145,237,173,180, 97, 38,134,208,103,215,173,214, 49,134, 80, +180,176, 3,250,220,101, 20,210, 80, 76, 23,213, 85,112, 61,121,227,114, 76, 61, +217,127, 57,100, 40,171, 38,126,230, 18,218,213, 81, 13, 91,194, 55, 4, 46,206, +192, 69, 65,190,101,194, 54, 42,182,216, 83,175,244,213, 88, 64, 52,185,189,167, +213, 68, 0,165, 64,174, 17,234,167,132, 20, 34, 8,176,107, 4,125,235, 5,224, + 91,247, 96, 33, 70,147,201,186, 35, 83, 4,232,163,123, 68, 45, 86, 63,196, 62, +114, 88,235, 80, 70,150,123,176,244, 97,132,171,123,146, 74,233,162,249,236,225, + 67, 57,237,198,149,144,228, 69,128, 95, 53, 63,139, 77,238, 97,195, 11,253, 86, +101, 56,217,134, 8,181,245,137,197, 22,202,218, 99, 86,159, 76, 48,125, 35,169, +226, 70,227, 48, 19, 9,231,111,144,190, 58, 0,246, 4, 40,146, 84, 1,255,145, +138,157, 35, 5,172,255,136, 62,251, 84, 25, 83,227,210,237,170,173,252, 28,211, + 77,116, 40, 75,163,138,228,197,249, 66,164, 37,145,203,130,138, 1,117,156,145, +190,161, 48,230,243,133, 38, 77,196,152, 45, 59,169,110, 61,240, 22, 45,165,163, +125,162,174,212, 28,150,192, 9, 9,218, 3, 52, 54,183,215,221,255, 93,185, 41, + 65,160,179, 34, 42,174,208, 74, 77,143, 90,146,130,251,133, 77,244, 92,132,123, +192,139,190, 53,129, 89, 13, 39,115,214,236, 97,141, 94,163, 22,112,113,157,114, + 22,207,134, 38, 74,245,101, 12,140,130, 21,141, 22,167,250, 4, 23, 29, 51,224, +177,128,140, 61,158,133,162, 20, 85,182, 94, 49,195,104,173, 71,208, 19, 26,137, +232,233,134,214,208,137,145,148, 9,159, 15, 11, 33,212,197, 29,254, 54, 64, 46, + 9, 54,241, 27, 64, 14,207, 80, 64,214, 45,240,252,242, 82, 72, 6,188, 15, 5, +226, 78,210, 36, 35, 52, 33, 50,188, 72,107,116, 21,212, 77,189,233,224, 81, 61, + 90, 3,255, 72, 50, 47,182, 95, 72, 75, 24, 15, 46, 91,204,213, 74,226, 40,136, +164, 42, 58, 24,151,100,190, 35,233, 36,188, 89,177,158, 69,211, 69,143, 44,178, +191,205,176, 25, 63,145,161, 0,144,224, 81, 8, 68,160,237,243, 69,141,194, 92, +117,103,130,148,195,212,120,155,119,250,224, 98,182,217,218,119,158,201,194, 35, + 83, 86, 78,190,251, 12, 0,129,147,172,140, 82,105,112, 18, 19,155,156,176,244, + 84, 17, 92,205, 59, 85,194,214, 12,254, 26,124,239, 51,104,173, 68, 54,213,189, +118,230, 21,145,178,204, 4,163,184,136,195,232,106,188,182, 15, 83,251, 83, 53, +249, 58, 21,241,112,159, 36, 97, 51, 78, 9,130, 52, 53,167,207, 11,221,162, 12, +242, 36,121,155, 84,115,130,208,150, 25, 57, 57,114,217,112,195, 25, 53, 27,179, + 40, 3, 57, 38, 3,161, 39,192, 49, 72,134, 33,156, 39,217,225, 44, 70, 96, 18, + 68,131,206,235,127,111,166,228, 7,102, 59,213, 74,209, 92, 20,132,162,243, 97, + 73, 46, 37,161, 98, 16, 37, 1, 89, 33,131,180, 5, 18,185, 0,238, 1,160, 13, +135, 30, 94, 73,204,199,248,121, 14,191, 52,132,130, 15,216,139,153, 65, 8, 21, +214,136,184,186,221,196, 60,171,252,137,133, 65, 40,120, 69,181, 95, 72,253, 4, +118, 6,108, 49,165,213, 19, 81, 67,238, 79, 28, 9, 53, 68, 17, 74, 35, 4,205, + 70,129, 19,146,147,208, 51,124, 11, 11, 58,247, 33, 95, 11, 96,174,147,200,175, +188, 67,231,130, 29,199,112,167,187,113,165,196, 61,205, 46,194,175,136,237,233, + 34, 76, 58,155, 34, 20,172,215,152, 14,212, 53, 47,110, 25,200,249, 87,172, 75, +198, 8,168, 39,234,187, 54, 38,194,134,233,160,166,166, 95,180,123,114, 93,224, + 78, 83,139,114, 22, 61, 72,102,136, 52,206, 54,215, 34,156, 16, 0, 28, 99, 54, + 2,135,149,134, 21, 89,206, 83, 4,243,157, 36, 91,238,224, 13,194,248, 71,157, + 7,245, 50, 96,239,236,226,242,231,146,252, 0, 7,253,229,181, 63, 20,222,164, +222,135,213, 48,142,198, 68,142,108, 52,194,107, 44, 48,146,168, 84, 96, 60, 46, +168, 83, 24,177,139,163,201, 15,214, 84,172, 19,137, 61,108,251, 95,131, 93,216, +104,140,134, 79, 36, 51,156,203,228,100,209,175, 89,216, 27,229,250,102, 50,176, +100, 94,104,218,192,138, 43, 97,118,101,152,151,187,218,232, 91,205,197,223,254, + 18,178,142, 81, 29,193, 74, 8, 25, 29,105,105,234,201,133,144, 6,114,180, 53, + 63,212,182,197,212,110,100,205,154,178,147,140, 53,132,125,197,150, 76,144, 73, +232, 73, 34,180, 73,107,131, 12, 90,194,207,246,224,131,189, 66,109, 4, 4, 90, +212,163, 99,110, 39,101,127,247, 3,106, 7, 49, 3,147,211,185, 0,211,152, 73, + 10, 12,128, 53,125,233, 65,180, 91,239,238, 23,151, 2, 51,231,205, 0,246,202, + 21,199, 8, 40,192,210,129,128, 38, 21,240,238,141,221, 73,144,129, 59, 50, 4, +155,216, 68,195, 53, 70, 35, 4,235, 48,119, 23,222,100,125, 77, 14, 28, 58,126, + 98,176,114, 58,192, 57,216, 23,221,228, 68,225, 96, 28,250,150,129,213, 54, 21, +195,111,128, 42, 6, 30, 52, 71,121,164,254,133,205,153, 30,217,126, 89, 57,200, +145, 57,238,138,125, 44,120,194,142, 67, 61,145, 27, 32,180, 2,211,222, 50,183, +144,190,126, 32, 17, 45, 65, 15, 70, 64,101,105,249,163,196, 30, 1, 10, 75, 8, + 14, 40,192,150,113, 3,120,185,133,101,149,145,128, 56, 73, 8,166, 83,128,165, +194,200,227,193, 65,191, 76, 24,153, 68,180, 73,115, 24, 93,236,191, 41, 74,182, +233, 64,216, 0,217, 0,217, 0,149, 86,102,180, 84,111,142,216,105, 26,189, 44, +249, 39,211,201,108, 36, 86,226,150, 23, 22,255,100,250,200,163,243,127,114,253, + 77,186,199,143, 36, 9, 56,135, 46, 18,241, 84,210,202, 22,110,249,250,201,180, +239,104,155, 29,119,110, 29,163, 43,234,116,253,100,145,123, 83, 90, 34,160,136, + 77,130,161,161, 47, 70,245, 94, 94,150, 47,140, 29, 44,144, 68,226, 29, 10,118, +175,197, 50,123, 35, 39,253, 59,223, 79,103,131,161,113, 52, 38,209, 79,146, 10, + 77, 10,135, 52,124,245, 78,110, 36,123, 14, 11,136, 14,163,236,228, 76, 25, 10, +205, 67, 17, 1,242, 88,112, 72,116,147,163, 46, 79,179,227,234,201,171,158, 14, + 83, 77, 10, 63,158, 10,110,110,206,152,214, 80,102, 96,128,254,252, 11, 97,123, +204, 98,228, 73,253,164,117, 64, 28,135,135, 11,237, 98, 48,118,190, 73, 98,220, + 85,158,241, 50, 91,120, 78, 47,165,117,169,180,151,107, 45, 87, 99,131,184, 88, +215, 98,111, 65,208,227,190,208, 56, 86,154,194,173, 85,124,184,175,253,184,157, + 78,219,251, 49,159, 27,196,225,142, 21,134,205,249,156,161,100, 55,102, 86, 78, +143, 61,106,121, 98,172, 32, 3,180,228,207,204, 17,153,144, 96,176, 96, 16,187, +234, 78,158,170,144, 21,152,197,194, 61,162, 91, 1,118,137,156, 33, 36, 44,176, +166,105,219,228,166,231,205, 14,117,189,167,156,171,200,247, 92,198, 24, 25,139, + 24, 99,157, 75,212, 52,241, 36,121,224, 73,217,164,171,204, 22,179,133,229,137, +189,143,204,151, 26,124,208,255, 48, 87,247, 98, 33, 23,220, 57,242,223,144, 70, + 0, 26, 76,196,140,156, 36,250,254, 14, 12,144, 42, 70,230, 90,100, 64,136,104, +156,217, 53, 87,233, 75, 70,125,220, 75,148,101,209, 13,131,209,192,154,182,165, +210, 68,140,190,197, 56, 75,188, 83, 82, 2, 53, 86, 85,130, 97, 76,193, 54, 81, +141, 64,190,214,124,223,152,151,193, 1,130, 2, 63, 55,227, 65,136, 1, 95,149, + 74, 15, 14,150,101, 99,191,175,178,172,237,158,146,100,103,135,170, 46,170, 20, + 15, 28,142, 3,168, 19,160, 85,100, 64,206, 46, 52,190, 60, 90,158,102,177,224, +102, 24,255,104, 84, 3, 48, 40,212,247,144,241,145, 80,233,157,199,239,165,110, + 18,233,156,165,148, 85,183,192,225,135,163,181,155, 41, 79,122,110,114,145,188, +124,239, 85,171, 74,229,242,134,231,163,117, 58,158,141,229,188, 43,200, 21,223, + 82, 87,185,114,152,106,176,150, 58,230, 41,121,185,157,187,228, 18, 85, 77, 85, +116,241,188, 10, 85,161, 6,234,104, 32, 14, 64,123, 62, 90, 71, 68,132,135,147, +217, 32, 50,186,179,101, 16, 26, 40,179,209, 62, 22, 26, 4,228,191,247,222,123, +175,181,214,102, 90,223,203,215,170, 40, 92, 51, 83,117, 68,178,231,163, 19,230, +250,144,186, 70,195,153, 66,188,184, 51, 25, 81, 1,235, 87,218,125,222,201,142, + 75, 68,142,130, 23, 95,220,246, 70, 7, 91,185,252,182,194,121,168,110, 27, 43, +192, 13,161, 20,105,161, 29,226,174, 94,182, 17, 99, 24, 36,212, 41,189,121, 60, +232, 33,251,155, 38,191, 59, 63, 70, 42,101, 59,229,156,249,198,126,221,149,195, + 19,238, 10,194, 80,213,125, 2, 67,220,222,109,236, 23,218, 60,174, 66,166,145, +211,188,161,142,189, 65, 12,159, 48,103,150,255, 60,233, 61,215,247, 84,167, 26, +190, 19,140, 3,133,145,210, 78, 89,211,223,226,219, 66,104, 63,110,182,181,255, +154, 72,118,158,157,253,149,173,108, 63,188,186, 77, 87, 81,168,239,173,101,161, +221, 88,254,236,219,254,246,166,230,205,127,152,189,192, 36,145,159, 81, 69,238, + 42, 99,208,154,254,158,123, 34,249, 86,149, 34,127, 57,242,178, 59,107,120,249, +126,137,108,198, 29,199, 73, 11,131,223,217,251, 37,201,250,174, 42, 91,117,119, +119,119,247,229, 85, 74, 37,188,242,196, 77,105,170,184, 27, 66,120,177, 2,143, +213,168,244,250,245, 82,141, 64, 16, 0, 19,164, 0, 8, 28, 9, 10,100, 18, 53, +205, 20, 65,126,180,160, 72,131, 23,139,137,136, 21,130,162,224, 70, 16, 14, 32, + 32, 66, 1, 36,128, 0, 12, 0, 8, 0, 8, 48, 64, 0, 82,128, 97,246, 45, 51, +232,248, 74,102,129,219,234,170,188, 25,229,211,106,123, 33, 85,156, 57, 98,182, +181,128, 12,139,214, 60,192, 74, 36, 75,105,152, 73, 10, 60, 91,231, 50, 71, 55, + 44, 85,115, 97,117,176, 89,119,134,183,205,176,123, 19,173, 58, 32,146, 90,195, +155,119,180,111,155,225,174,102,203,100,171, 19,193, 8,124,185,101, 68,188,164, + 81, 48,148,168,153, 15,126,185,137,150,144,151, 29,154, 68, 85,213,176,221,185, +108, 32, 38, 76,150,131,128, 85, 37, 91, 48,115,146, 41, 35,229, 94,128,126,131, +200,200,205,173, 61,133,161, 37,243,111, 94, 23,156,140, 99,161, 98, 64,197,229, + 94,158,102, 76,208,109,221, 9, 24, 84,211,158, 23,252,138,201,217, 1,165,157, +196, 5,253, 67, 93,166, 40,198, 95,137,102,246, 76, 44, 55,121,132,188, 29, 67, + 2,223, 31,176,100, 94,128, 3,160,229,104, 54, 30,101,172,162, 84,222,216,233, +126, 48,253, 74,178, 62, 23, 89,241,200,143, 8, 88,131,232,163, 88, 52, 50,233, + 7,115, 29,240, 40,100,179,231, 56, 90, 6, 0, 62,212, 52,252,156,107,204,142, +154,233, 89, 26, 96,228,252,184,233,224, 5,224,159, 52, 1,229,120,101,141, 86, +170,169,176,132,191,230,190,188,138, 34, 85,114,117, 39,110, 51,205, 25,137,206, + 6, 3,169,153,119, 82,156,227, 48, 0, 87, 8,119,231,140,217, 66, 8, 28,159, +164, 55, 20,120, 1,174,108,199,161, 54,201,117,198,234,226,107,226,187, 96,223, + 26, 66,165, 60,234, 59, 75, 33, 56, 31, 56, 38,140,195, 70,136,143,141,182, 22, +123,220, 89,236,123, 68, 65,147,103, 28,230,233, 35,123,226,222,163, 72,129,177, +159, 57, 75, 98,180,107,184, 88, 0,239,165, 72,118,187,202, 7, 47, 70,153, 88, + 25,115, 9,151,167,227, 41, 82,202,199, 53, 93,182,152,111, 69, 46,142, 55,239, +226, 31,124,120, 83,165, 18,108,157, 74,169,182, 87, 44, 79,164,212,195,209, 53, + 74,144, 21, 54, 60, 64,109,226, 63, 41, 20,215,128, 64,249, 17,209, 39, 97, 56, + 18, 81, 54, 79,198,177,156,224, 82, 4, 45, 67, 22,155,255,103, 41, 42,142,198, + 71, 50,215,147,157,177,253,145,240,216, 19,163,183,223, 67,240, 99, 72,184, 62, +136, 37, 52,227,229, 62,105,252,132,235,109, 41, 99,234,239, 61,158,138,122,204, +140,254, 68,108, 72, 62, 49,220, 1,101,138,176, 77,194, 84, 15,148, 5, 66, 59, +127, 49, 71, 80,226,133, 23,231,101,255, 65,201, 21,130,163, 11, 64, 8, 69, 42, +153, 76,146,203, 10, 37,134,200, 55, 45,111, 54, 20,129, 33, 33,178,112,114,253, + 62,150, 53,246,208, 42,162,192, 9,245,189,149,249,222, 10,218, 33,214,125,223, +149,247,202,125,127,210,159, 34, 21,189,178, 60, 65, 16, 66, 9,133,204,122,241, +138,238, 43, 1,126,189,146,147,155, 61,193,162, 66,107, 10, 48,179,165, 36,125, +218,218, 12, 73,160,250, 0,142, 98, 89, 1,178,229,138,229,172,129,107, 9, 76, + 82, 93, 33, 73, 59,200,160,120,123,200, 46,205, 34, 88, 76, 36,184, 92, 22,233, +140,226,208,105,103, 53, 58, 55,169,100, 3,141,207,222, 5, 79,231,148, 98,135, + 16,233,219, 9,193,248,137, 43, 24,222, 44, 78, 69,210,241,150,254, 92, 64, 91, + 82,207,241, 83,151,139, 93,123, 14, 63,189,210,235,132,118, 13, 95, 3, 8,222, +222, 97, 16,254,212,103,150, 71, 46,130, 10, 93, 23,113, 25,120, 60,160,150, 63, + 57,169,197,176,161, 99, 34, 16, 52,119, 6, 91,204, 47, 19, 18,122, 92, 48, 78, +178,102, 50, 66,121,207, 71,183, 63, 41,221,112, 52,189,234,247,242,218, 93,102, +152,241, 20,168,232,188,122, 21,208,131,172, 48, 41, 67,196,232,128, 38, 65,228, +155, 80, 88,131,191, 6, 28,106,164, 76,100,164, 54, 48,156,223,105, 98, 88, 88, +115,167, 86, 36, 82,190,201,239, 72,105, 76, 46,240,196, 83,236, 69,165,164,208, + 71,190, 15, 99,118,199,189, 22,201,139,248,124, 83, 24,217,136, 36, 17, 54, 24, + 96, 94, 67,118,127, 74,233,163,208, 92,142,206, 84, 46,228,161, 82, 47,179,145, +235,184,155,139, 19, 53, 2,188, 40,203, 14,177,165,214,148,130,219,175, 61, 38, +236,201, 33,155,247, 89, 30,174,238, 96,146,239, 16,180,155,200,164, 61,116,216, +156, 8,201,200,183, 26, 29, 8, 57,166,108, 32, 59, 79,197,245, 69, 33, 19, 79, +200, 96,200,231,145,105, 82,150, 55,180,100, 52, 93,190, 69,164,178, 31,219, 50, + 13, 93, 12, 66,117,155,171,205,239, 26,143, 36, 39,179,177,110,125,205,180, 44, + 41, 69,113, 24,114,185,103,237, 40,106, 19, 6,216,206, 85,212, 86,134,237, 47, +143,168,178,236, 13, 97,237, 52, 11, 97, 94,151,122, 97, 41, 87,191,213, 72,157, +140, 94,223,197,201,234, 50,105,254,114,248, 85, 59, 23, 67,156, 70,152, 75, 1, +209,130,209, 83, 49,136, 37, 48, 2, 99, 74,154, 65,187,156, 40, 48,196, 68, 60, +188, 11,226,235,178,253,225,137,212, 33, 33, 82, 21,100,252, 50, 77, 52,188,166, +151, 64, 5, 63,145,169,239,254,125,188, 76, 37, 72, 75,248, 31, 25,225,103,137, +127, 13, 15,193,174,223, 47,217, 39,129, 88,195, 38,141,213, 46,155,242, 28,162, +221,111,214, 58,204,206, 27,145,100, 14, 85,217,175, 57, 39, 6, 38, 15, 79,231, + 42,147,187, 68, 4,164,186, 46,230, 35, 47,117, 27, 22,109, 51,197,247, 81, 25, +117, 78,168,208, 45,222, 36, 58, 53, 38,243, 38, 76, 23,254, 30,194, 47, 31,158, +238, 86,211,139, 80,112,228, 55, 70,153,206, 35, 91,183,193, 80,129, 82,152,104, + 24,245, 34,219,231,179, 1,187, 99, 24,152,147,213, 17,104,135,150,140,160,157, + 81, 74, 25, 17, 47,169, 29,240, 93,198,140,222, 29,172, 25,110, 7,164, 59,184, + 20,137,187,131,132,179,192,221, 73,194,118,174,221, 33, 21,239, 5,138,187, 10, +235, 29,191, 78,180, 2, 48,211,230, 93,211, 7,244,197,218, 60, 14,150, 19,210, + 1, 53, 77,107,208,130,228, 20,143, 12, 93,106,184,136,173, 54,185,165, 30,215, +145, 87,198,143,219, 92,175, 16,180,160,241,153,203,222, 2,228,230,100,180,135, +175,120,136, 92, 20, 32,195,129,228, 50, 36, 25, 50, 70,233,100,114,123,191, 97, +228,232,108, 25, 9,180, 53,243, 25, 56, 38, 94, 23,149,129, 82, 12,183,171,106, +147, 8, 71,119, 8,246, 29,109, 92,246, 29,236,118, 23,175,204,140, 38,111,140, +209, 10, 72,210,110,197, 56,168,222,141,215,104,195,128, 69, 10, 45,139, 55,101, + 2,233,225,110,106,158,162, 12,222, 22,248, 89, 99,223, 36, 5,216,134,134, 9, +168, 52, 43,210,178,164,187,171,216,113,181, 69,103, 56,163,162,246, 95, 91, 83, + 90, 68, 36, 40, 89,107,139,218,207, 50,216, 79,177, 44,148, 41, 75, 85,110, 44, +237,112, 97,121, 71, 56,190, 18, 16, 35,232,186, 18, 78,254,117, 42,158,120, 39, +122,132,130,235, 88,141,200, 36, 81, 34, 94,113,125,196,140,248,175,210,249,204, +154, 18, 66,149, 36,113,166,146, 92,167, 4, 98,213, 66, 40, 66, 82,172, 59, 42, +161, 20, 66,213,107,199,152,102,120,224, 9,228,201,133,154,137, 13,247,214, 97, +139,127, 95, 2,233, 55, 95, 80, 18, 13,246, 86, 28,172, 34, 1,253, 43,175,134, +211,145, 39,138,232, 61,143,181,103, 98,136, 72,110, 47,175, 96, 69,218,207, 25, +107, 94,109,138,164,134, 76,180, 84,180,121,209,118,206,113,183,148,187,163, 36, + 29,114,152,197, 21,231,186,144, 72,240,133,188,210,129, 51, 34,126, 60,183,136, + 16,228,103, 15,195, 72,229,169,192,113,200, 14,101,139, 41,139, 54, 36,129, 19, +156, 36,177, 53,236, 6, 71, 66,198,139,148,249,200, 9,145,247,115,172, 61, 18, + 44, 83,144,141,115, 30,201,110,152,147,130,172,135,175,189,191,202, 81,182,109, +202,130, 33, 84, 74, 66,229,237,179, 2,239, 87,191,179,232,135,192, 53, 59,206, +208,241,209,118,240,235, 4,187, 16, 59,242, 67,148,161,161,235, 32,222, 14, 73, + 16,166,180,131,204,196,230,226,241,197, 25, 74,107,189, 35,140,181, 67,255,116, +112, 18, 12,113, 83,218,212,178,218,167,234,233,214,108, 67,203, 49,142,116,213, + 47,115,219, 1,167,206, 17, 4,233, 8,252,155,237,232,120, 71,196, 62, 67, 50, +190,204,107,195,242,190, 34,141, 7,220,119,250, 88, 51, 33,236,192, 8, 48,160, + 60,186,224, 20, 67, 58,202,215, 54,132,235, 89,202, 68,104,132, 50, 47,226, 19, +230, 51,154,193,212,159, 74,196,190, 30, 55,219,198,221, 29, 31, 40, 25, 7,169, + 11,202,154,244, 5, 95,246, 36,171, 73,179, 94, 5,208,105,120,161, 97, 8, 71, + 25,156,145,230,215,105,116, 38, 29,119,137, 79, 84,101,115, 99, 83, 40, 53,179, +111,223, 41,120, 1,158, 48,151, 7, 27,196,121,162,143, 5,137,160,112, 96,130, +148,157,168,168,184, 0,119,194,251,216, 87,188,215,100,208, 25,195,168,174, 71, +209, 79,243, 38,126,185, 96, 70, 70,252, 14,188,207, 62, 23,198, 90,186, 7,149, + 94,161, 55,132,159,170,208,193,142, 9, 36, 7, 89, 98,172, 29, 56, 97,135,135, + 79,183, 35,184, 62,255,120,237, 33, 50, 33,135,179,237,118, 35,110,100,238,193, +105,161,177,243,151, 38, 29,216, 22,159, 23, 88, 16,215, 15,236,136, 47, 4, 0, +176, 83, 21, 99, 35, 82,219, 83,151,180,187,160,118,222, 60,213,221, 60, 33, 10, +113,106,135, 25,158, 27,219, 35,104,164, 56,199,232,235, 82, 53,252, 73,155,252, +185,233,225, 26, 34,157,186,235,110, 54,123,129,211,206,109, 90,222,146, 72, 69, + 4,140, 8, 4,231, 34, 0,189, 60, 86, 36,176, 11,107,230,132,234,238,248,174, + 81,155, 79,230,210, 68, 50, 76,118, 92, 92, 19, 68,102,167, 97,207,113, 51, 15, +163,170, 0,230,140,113, 54,223, 53,236,113, 92,205,124, 37,244, 56,227,232, 36, +129,113,111,136, 10,175,109,203,211, 73,248, 91,106,158,143, 60, 84, 11,163,211, + 90,154, 35,207, 76, 85, 98,245, 80,120, 53, 31,220,253,195,219, 85, 27,227,197, + 91,182,216,234, 69, 62,174, 30,209,103,113, 1, 16, 17,172, 5,230, 60, 4, 0, +157,140,115, 61, 50, 18,154,178,102,100,108, 14,149, 31,126,157, 72,228,160,209, + 41, 37,202, 95, 49,133,132,111, 86, 49,242, 15,149, 12,189,217, 85,157, 74,211, +160, 60,134,100, 74, 23,238,205, 96, 70,230,138, 16,205, 20, 11,133, 19, 61, 38, +153,246,113, 33, 37, 19,190, 52, 50,150, 12,141,156, 81,184,176,223, 52, 17, 70, +165,239, 16,149,225, 27,112,146, 63,232, 42,191, 32,171,112,146,186,200, 74,114, + 5,232,161,189,154, 72, 80,236,113, 48, 97, 14, 85,158,104,169,137, 47,208, 38, +137,208, 13, 92, 39,245,147, 84, 82, 0,113, 20, 36, 36,198,108, 17, 2, 54, 22, +248, 35,146, 20,147,172, 59,150,240, 48,139,203,154,177,126,243,209, 83, 98,228, +140, 85, 55, 32, 36,224,101, 49,242, 45,183,142,161, 53,167, 17,139,227,100,105, +117,163,218, 87, 58, 46,241,219,195,232,222, 42, 65,110,187, 78,169,161,192,163, +158, 59, 58, 9, 95,235,160,155,113,196,164, 81,104,228, 73,207,132, 70, 37,121, +251,109, 13,203,157,163,126, 43, 31, 73,204,178,194,162, 99,217, 78,214, 77,244, + 13, 47,147,190, 46,116,217,111, 27,156, 33,217,246, 63, 60, 50, 75,189,119, 70, +203,246,139,144,203,173, 52,192, 21,119,240,228, 60,153,134, 40,160, 78,195,137, +139,225, 8, 85, 7, 14,166,136,154,139,196, 29,136,178,116,153, 75,165,159,163, + 42,203, 76,199,232, 98,211,242,249,126,101,118,209,200,195,165,221, 14,194,137, + 66,189, 79,147, 75, 4,251,211, 15,209, 89,240,182, 53,125, 16, 32,135, 27, 63, +167,209,124,166, 42,162,215, 8,249,154,170, 50, 20, 3,191,116, 54,151,239,173, + 28, 45,184, 90,185, 33,182, 97,245,215,244,188, 21,128, 27, 22,208,174, 64,171, +195,190,160, 72, 33,201, 60, 64,118,183,224, 93, 66,132,121, 34, 3,180,247,155, +146,215, 97, 3, 28,159, 78,181, 7,152,203,138, 83,206, 58,212,107, 91,143, 88, +115,143,255,181, 88,113, 64,204,148,102,105,230,228,112, 75, 60,189,104,196, 8, +114, 6,208,183,128, 28, 7,166, 2, 0,226, 65,129, 9,236,247, 99, 87, 4,206, +116,191,140, 21, 18,188, 98,102,123, 38, 1,250, 65,227, 47,203, 32,119, 72,229, + 40, 16, 11,158,213,195,226,180,232,157, 56,188,133, 74, 62, 14,136,115,112, 39, +139,229,140,129,180,158,117,149,196,145,136, 92, 7, 80,228,129, 57,199, 83, 14, +199,189,110, 83,184,105,151,228,163,148, 44,146,242,124,201,102, 57, 3,122, 37, +179, 77,237,120,243,213,224, 14, 29, 94,129, 60, 33,241, 49,152,238,168, 79,175, +107,199,109,188,203, 19, 38, 28,219, 68, 14,160,195,131,207,131,252, 11,242, 71, +136, 14, 90,132, 53,184, 58,193,178,111,156, 78,190, 2,229, 94,231,227,124,145, +167, 30,179, 55,212, 36,122, 20,243, 5,234,100, 30, 99,218,161,142, 61,199, 20, + 63, 93, 32,126,210,229, 36,203,128,142,210,149,182, 18, 13,149,139,171,198,114, +142, 24,237, 9,143,185,157,158,187, 1,207, 91, 33,153, 99, 3,159,189,232, 51, + 53,211,177,225,181,217,172,198,236, 33, 80,151, 20,189,172, 42,180, 58,228, 51, + 2,247, 1,214,109,156,104, 97,125, 97, 44, 5, 59,114,191,176, 53, 38,215, 14, +218,232, 49,137, 33, 95,169,203, 28,186, 31, 18,124,169, 62,228, 77,183,150,161, + 56, 85,153,196,226,199, 73,250,255,195, 74, 2, 31,214,101, 77, 32, 8,244, 43, +145,136,159,247, 67,186,191,252,246, 7, 20, 88, 71,214,142, 65, 2, 23,163,235, +116, 9, 98,249, 70,155, 71, 67, 79,130, 24, 54,163, 50,184,224,251,162, 8,112, +100, 59, 56,154,119, 39,140, 20,115,250, 14, 65, 26,174,231, 73,229,181,145, 29, + 72,217, 29,224,245, 11, 8, 25,117,177,111, 36,175, 34,224, 45,235,234, 36,172, + 32, 79, 58, 99, 69,166, 35,233,238,114,234, 66, 94,179,101, 36, 2, 14, 55,201, + 43,210,146,239, 31,209,142,179,202,201, 71, 7,176, 25, 65,229, 31,109,234, 96, +164, 18, 75,251,127, 71,114, 56,176, 56,248, 10,237,115,195,176, 24,109,164, 3, + 77,202,140,171,174,121, 44, 68,109, 71,245,156,207,236, 43,146,200, 31, 75, 35, + 59, 64,135, 40,235,138,203, 24,147,158,255,244,230, 52, 70,218,219,135, 64,218, +210, 38, 15,141,208,151,117, 84, 9,182,233,198,105, 43,122, 99,207, 99,134,100, + 9,100, 72, 68,161, 39,177,135,218, 15, 33,215, 10,135, 67, 92,216, 82,198,154, + 76,223, 72, 64, 20,110,172,224, 21,172, 1, 19,199, 21, 66, 41,132,134, 8, 7, +243, 40, 2,105, 40, 17,250, 77,199, 30, 55,200, 47,121,161, 60, 22,202,194, 72, + 29,195,203,231,163, 87,202,112, 60, 65,139,188,224,142,146, 29, 30,106, 97, 41, + 4,172,138,158, 26,169,201,166,229,129, 34,185, 24,157,140, 76,182, 40,122, 85, + 22,237, 19,158, 14,129,132,221,132, 70,168, 48, 44, 90, 27,111,158,161, 69, 43, +120,113,186, 86, 7, 95, 82,197,215, 80, 54, 42,110,103, 24, 15,166,133,207,115, + 1,121,203, 78, 87, 18,156, 7,195, 57,240, 75,109,171, 24, 82, 42, 42,104, 61, +220, 41, 76,127,158,213,211, 25,137,248,204,134, 18, 52,127,209, 92,131,121, 1, +187, 22,139,220,160,161,130,107, 5,186,192, 58,128,139,148, 84,204, 5,108,145, + 86,185,201, 23,163, 62,134, 83,250, 41,220, 38, 50, 18,166, 42,248, 32,162, 25, +235,219, 55,250, 17, 32, 80,187, 53,130, 92, 11,198, 71,156, 72, 23,172, 88, 60, +165, 1,163, 3,208, 81, 36,150, 23,129,234, 22,137,153, 97,168, 90, 58,152, 45, + 41,240, 74,109, 38,200,218, 43,174, 80,163,112, 73,190, 3,116,124, 34,204, 25, + 38,186, 5, 13,231, 7,210,110,184,184, 83,214,197, 87,168, 6, 99,197,205,154, +207, 9,144, 90, 11, 27,219,179, 63,210, 47,235,206,150, 22,193, 52,133,201, 7, + 66,189, 77, 93,131, 54,219, 98, 53,132,225, 69,161,111, 80,231,193, 25,180, 8, + 3,207,162,205,128,192,118,176, 2, 8,200,106, 6,205, 74,247,173,190,123, 69, +217, 36,255, 17, 35,196, 51, 51, 14, 81, 8, 3,117,188, 82,121,233, 60,215,118, +174, 82,152,172,163,127, 37,235,255,200, 22, 1, 3,185,157, 93, 7,238,112,140, +146, 37,233, 44,195,113, 19, 50, 7,121,206,101,168, 15, 9,210, 59,169,157, 24, + 2, 4, 50,131, 0, 67,169, 86, 86, 27,157,132, 27,147, 40,203, 21,159,202,162, +247,101, 21, 83,140,142, 78, 55,170,161,138,243,255, 40,216,139,244,109,106, 93, + 71,210,105,180, 26,128,234,234, 13, 74, 59,165,148,244,250, 98,187,255, 80,236, + 14, 75,222, 92, 19, 60, 11, 39,102, 76, 50,197,238,187,214,250,153,218, 39, 16, +188,166, 95,136, 45,246, 56,164, 27,127, 1,188, 36,144, 21,253,250,158,214,244, +245,144, 95, 18,106,245,158, 28, 79, 85,134,146, 40,200,227,244,188, 94,226, 9, + 48,201,155, 50,247, 92,111,255,164,254,136,218,186, 11, 25, 95,255, 38,137, 64, + 50,183, 43,212,184,122, 40,191, 34,242,100, 92, 53, 81,158,160,245, 1,188,237, + 45,145,177,186,123,120,108, 68,125,167,134, 29, 14,133, 10,224, 82,228, 53,127, +218,173, 31, 16,182, 79, 21,150, 84,211,176,227, 63,209,253,190, 37,133,207,118, +109,197, 31,245,214,142,110,100,190,216, 38,162,136,248,198,211,252, 62,212,173, +159, 71,113,222, 16,177, 39,195, 21,184,157,198,149,206,185,179, 6,197,207,145, + 2,144, 26,136,230, 18,144,209, 96,219, 25,193,217, 36, 63, 11, 5,127,206,244, + 46,206,213,243, 4,204, 9,160,103, 92,191,183,237,225,208, 78,236, 73,246,132, + 3,240,253,161,166, 31, 43,145, 69, 44,187,121,104,248, 67, 50, 39, 30,123, 59, + 33,244, 58,225, 61, 63, 86,193,204, 4, 39, 15, 31, 86, 72,209, 60,111,249,177, +165, 41, 69,231, 64, 57,106, 64,148,105,123, 70, 79, 71, 45, 41, 29,225,218,213, +231,155, 6,203, 95,110, 89,194, 70, 57, 28,176,223,189,109,249, 75,127,200, 22, + 60,197, 79, 20,107, 0,139,223,111,246, 97, 36,168, 82,133,137,236,130,173,251, + 17,121,126, 39, 64,234, 11,230, 92,205, 32, 55,107,130, 27, 52,162, 51,150, 26, +196,252, 81,132, 56, 44,108,158,176,183, 73,123,149, 22, 74, 7,210,184,157, 58, + 3, 44,163, 9,250,131,130,161,208,189,195, 91,185, 87,255, 93,183, 65,254, 87, +236,211,117,191,174,105, 47,198, 29, 23, 40, 19,153,114, 27,209, 13,111,217, 71, +243,243,243,122, 58,242, 2, 28,136,136,100,169,197,101, 93,229,140,223, 54, 18, +252, 89, 21,197, 21, 63, 41,219, 84, 57, 52, 33, 87,199,112, 94, 77,200,129,134, +209,141, 20, 44,178,123,115,122,221,227, 32, 7,242, 35,218,178,174, 76,226,178, +230,181,126,175,231, 40,103,221, 85, 33, 30,230, 92,151,109,148,231, 30, 80, 68, + 80, 12, 90,255,152, 73, 54, 81,229, 4,211,241, 78, 50,146,183, 17, 56,130,184, +206, 83,134, 64,156,174,119,247, 48,129,227, 1,180, 14, 9, 18,161, 87, 88, 60, + 54,170, 31,168, 6,137,139,163,105,176,108, 56, 22,197, 91,248, 50,135,145,155, + 7, 43, 41, 35,163,200, 5, 59,149,105,142, 31, 26,234,183,118,148,174, 0, 87, + 61, 84,249, 51,151,115, 10,183, 9,253, 65, 71,187, 47,208,173, 79,125, 40, 59, + 81,208,241,247, 39,166,117,197,147,105,139, 33,140,156,232, 8,131, 1,206,108, +148, 1, 20,110,173, 76,131,211, 43,246,164,191, 87,182, 84, 62,158,161, 69, 45, +189, 94, 24,157,161, 79,224,233,163, 17, 79,166, 87,157,107,125,115, 75,201,171, +162,111, 60,186, 78, 90, 49, 72, 61,220, 87, 52, 53,213,137, 26,174, 61,177, 82, + 41, 82,127,100, 47,133,216,193, 5, 8,187,161,205,128,220,113,193,121,224, 22, + 55,169,159,194,133, 10,132,214, 83, 45,170,174,209,196, 9, 79, 39,237,168, 14, + 24, 83,224,212,154,236,203, 80,105,162,174,108,217, 81, 76, 28,209,209,167,230, +250,133,174, 8,166,162,192,196,255, 20,244,115,159,115, 67,118,212,191,104,112, +216, 97,217,186, 15,159, 67, 12,101,171, 50, 8,158,238,114,159,195, 68, 56, 55, + 61,196,250,110,235, 67, 40, 56,135,104,249,242,173, 9,166,175, 78, 85, 42, 95, + 94, 19, 3,151,224, 69, 78,169, 12, 57, 47,176, 93,191,167,192, 42, 88, 15,194, +212, 28, 55,169,183, 32, 73, 25,172,219,147,218,228,125,248,177, 42,154, 15,247, +147, 65, 39,248,238,173,129,176,141, 82, 70,114,118,205, 78, 7, 30,159,104,189, +109,233, 9,198,202, 59,117,119,108,247,155, 50,156, 13,229, 18, 39,217,250, 11, + 47, 32,149, 30,108,146,150, 93, 24, 58, 56, 94,207,253,157,191, 35, 54, 61,179, +187,152, 32, 88, 44,105, 0, 1,217,168, 39, 48,176, 82,212,219,187, 13,218,125, +174,167,249,162,158,236,129,180,118, 16, 2,250,214, 70,132, 24,165,214,167, 45, + 27,192, 92,199,211, 84, 47, 78, 27,207,129,200,169,156,153,234,102,242,144, 97, +244, 1,170, 62,121,107,204,188,228, 16,234,230,204, 72,228,132, 64,242, 18, 56, +207, 83,146,248,113, 67,250, 70,142,161, 14, 45, 35,183,166,226, 36,228,113, 45, +137, 90,150,104, 23, 5, 67, 14,159,112, 76,196,233, 49,191,203,231, 74,254, 41, +148,119,225, 19,228,130, 91,186, 14,228,240, 18,182, 52,103, 43,228, 23, 52,184, +244, 56,160, 95,109, 13,194,253,244,183,190, 5, 25,166,227,130, 63, 57, 85, 29, + 63, 24,156,116,102, 38, 64,147, 28, 9, 13,196,151,242,136,255,140,105, 27, 71, + 50,108,196, 21,147, 26,232,115, 56,142, 25, 97,111,185,113,226,198, 61,206, 46, +227,109, 92,144,177,113,111, 35,243,139,251,243,158, 67, 47, 46,118,173, 12,119, +113, 64, 51,183, 92,250, 81, 62,105,175, 10,106, 44,116,100,126, 30, 15, 89,235, +236,200,143,184, 25,176, 27,144,235,140,194,104, 70, 84,173,198,164, 69, 34,171, +156,110, 11,207,122, 94, 3,229, 23, 64,208, 18,225, 2, 47, 95,178,104,205, 20, +234,133,196,211, 45,192,190, 41,235,219,186, 3, 59,153,110,158,198,239, 59, 64, + 82, 55,173, 13, 72,139,175,126,123, 99,174, 51,194, 64,193, 55, 56,204, 55,223, + 10,134, 15, 91, 5,211,108,156,126, 60,140,159,112, 11, 39, 43,100, 53,174, 52, +173,207,230,232,173,230,184, 97, 12,148, 34,241,148, 37,222,242, 38,222, 42,143, +206, 63,208, 56,116, 80,206, 93,119, 79,215,251, 72,148,143,234,206, 24, 21,252, + 40,242, 78, 29,114, 14, 62,200, 25,203,247, 51, 31,166,150, 32,224,134, 55,138, +142,206,240,250,235, 98,200,189,134,163, 61, 51, 26, 32,126,210,231,245,111, 26, +160,193,208,130, 16,182,151, 94,200, 79, 68, 42,144,102,131,232, 15,114,150,163, + 69,228,221, 68,114, 38, 17, 23, 94,146, 15, 75,133, 4, 27,220, 21,152, 74,157, + 20,221,208, 66,118,189,135,164, 53,148, 97,156,209, 27, 37, 72,148, 79,246, 63, +243,105,168,167,191,142,170,224, 23, 4, 69,161, 13,252,123,100,216, 58, 84, 63, + 53,123,233, 53,134, 59,128, 47, 61,246,225,139, 90,200, 97,221, 32,168,199,224, +220,140,108, 39, 92, 3, 78,135, 69,225, 2,107,188, 20, 91, 37,151,246, 56, 28, +216,241, 20, 2, 36,173,125, 54,204,222, 37,163,237,247, 24,114, 91, 13,233,247, + 23,216, 97,200, 51, 94,173,240,174,201,202, 4,197, 78,229, 8, 25, 74,117,100, + 66,209,213,117, 92,215, 85,190, 5, 72, 62,134,128,135,118,124,109, 45,106,209, +117, 32,218, 48,100, 94,228,116,137,246, 40,210,212, 50,253,135,100, 64,169,157, +208, 0, 40,213,167, 54,164,184,150,220,122, 44, 29,118, 57, 73,144,127, 80,179, + 80, 59,168,161,182, 95,234, 98, 44,151,211,214, 2, 95,166,110, 60,124,202,176, +169,170, 59,248,202,157, 72, 56, 61, 87, 38,182, 9,167, 67,241, 0,142, 94, 51, + 68, 89, 94,124, 14,147,196,243,182, 34,164, 25,231, 15, 97,129,104, 91,132,169, +237,154,125,198, 9,136, 30, 25,140,187,245,250, 58,230,178,176, 28, 72,148, 34, +235,202, 97,251,181,136, 53,109,222, 94,121,212,234, 85,128, 22,169,143,249, 81, + 96,175,199,102,168,182,108,254,226, 47,132,143,116,239,139, 88, 72,188,126, 2, +185, 59,212, 95, 80, 47, 10,183, 71,221,146,230, 62, 77,214,185,247, 0,166,239, +217, 45,255, 29,244,169,194,175,167,128, 30,224,111,203,234,128, 53,108,146, 29, + 15,139,208, 94,120,142,255, 81, 47, 81,167, 8,176,209,230,252,197, 74,208,195, + 49,247,206, 9, 16,194,212,223, 52,201,121,224, 11,173, 1, 26,196,163,140, 23, +158, 12,156,244, 88,209,146, 26,149,168, 32, 1,112, 36,180, 45, 20,144, 15,133, +109,185,227,246, 49, 54,160,190, 10,239,197,231, 65, 46,187,232,110,237, 72,249, +120,252, 3, 43, 25,219,248,238, 18,101,224, 75, 76, 56,226,208, 52,244,132,153, +193,121, 8,227,231, 71, 2, 56, 14,247,228,143,221,200, 1, 28, 21, 90, 37,193, + 51,212, 66,240, 97,128, 32,155, 41,238,215,196, 34,135,121, 84,118, 7,215,172, + 6,238,187,214, 83, 28,150,151,175,192,227,152,223, 85,143, 92, 75, 41,119,158, + 48, 52,252, 11,155, 18, 61,216,227, 61,252, 85,164, 38,120,164, 91,145,125, 64, + 88,255, 47,253,155,100,254, 12, 9,126, 48,241, 22,239, 92, 90,221,222,119, 45, +192, 19, 55,247,208,249, 88, 50, 39, 56, 11, 83,242, 84, 14,102, 38,232,150,141, +107, 16,177, 76,198,193, 16, 17, 22,146, 90, 1,208,221,121,240,242,168,194, 92, + 31,228,246, 91,226, 20, 92,130,104,138, 14, 10,124,209,126, 81,106, 52, 55, 78, + 0, 88,123,231,251, 22, 91,153,109, 18, 20, 46,178, 0, 10,241, 64, 78,137, 7, + 57, 9,196,232,225, 52, 55,149, 62, 84,215, 30,233,101,167,242, 92,218,115, 18, +200, 65,141,107,161, 49,109, 51,144, 25, 28,207, 39,125,202, 45,196,253, 86,106, +172,220, 73,239,143, 22,233, 13,157, 64,196, 58,212,102, 80, 54,172, 80,153, 17, +101, 0, 32,189, 22,185,203,121,242,121,135,132,143, 32,158,198,119,248,129, 93, + 41,132, 28, 17, 93,161,238,151,225, 5, 32,246, 63,169,249, 47,169,234,228,167, +179, 72, 29, 19, 8,119,116, 19,203,139,219, 58,155,152, 59, 88,172,198,173, 2, + 76, 40,150,136,218,139,212,249,224,208,179, 53,122,198, 84,101, 29,146, 27,177, + 89,176,205, 90,207, 71,170, 21, 13, 46,111, 58,154, 83, 38, 61,117, 76, 44, 80, + 37, 8, 23,164, 89, 80, 69, 22,210, 38, 71,185, 90,194, 50, 36,228, 46,110,164, +167, 8,244,145, 75,111,156,240,169, 35,152,167, 62,160,227,234,141,219,198,164, +144,192, 67,220, 29, 78, 44, 37,233, 38, 48,120,212,245,230,182, 20,252,128,162, +168, 77,172,198, 37,157,206,124,106, 93,164, 45, 35,199, 3,140, 34,100, 28, 83, +218,230, 9,121, 19, 81, 63,118,255,197,195,242, 46, 9, 68,105,135,240, 11,247, +115,162,255, 96, 62,185,184, 8, 38,108, 85, 96, 75, 73,237,225,203,160, 80,104, + 59,141,245,232,169,213, 71,166,207,203, 63,254,107,154,181,181,108, 39,188, 49, + 69, 64, 21, 19, 56,195,122,205, 82,216,172, 94,226,246, 86, 53, 26,201, 33,214, +145, 0,117,107, 29,213, 99,145, 60, 94, 77,113, 85, 99, 18,166,204, 18, 33,230, + 35, 35,163, 84, 88, 77,145, 74, 28,218,201,201,130, 66,128,229,245,212, 5,128, + 66,161, 40,174,135, 2,186,150, 57,182,255,137,135, 99,226, 7, 2, 63, 6, 76, +195,177,137,103,128, 54, 14, 58,229,141,254,244, 82,187,105,115, 54, 15,174,236, +119,105, 34,159,110, 26, 17, 30, 45,120, 48,128, 12,156,136,178,129,187,146, 35, + 34,217, 4, 88, 7, 21,138,248,172,200,147, 19,157, 81,252,126,207, 78, 73, 16, + 96,120, 82,187, 92,158,209, 15, 77,183,222, 42, 9, 68, 72, 81, 13,129, 11,239, +184,169, 30,126, 66,173, 60,213,205, 45, 57,156,240,132, 4,105, 14, 2,176, 51, +205, 78,218,238, 12, 65,191, 85, 24,212, 40, 49, 21,189, 95,184,226,189,156, 30, +128, 6, 18, 45,203, 9, 20, 89,217, 32, 65, 50, 71,143, 58, 75,108, 63,224,130, +243,177,171,105, 10,228,208,186,139,142,224,249,205,122, 59, 42,135, 4, 59, 68, +162,103,229,240,206,225,167, 69,122,207,220, 88,102,152, 11, 22,156,162,206, 14, + 58, 66,224, 15, 0, 96,144,230,104,100, 95,176,191,148,133,144, 86,236,193, 74, + 6,113, 98,110, 10,159,215,117,169,136, 94,215, 6, 29, 20,111, 54,124, 79, 90, +240, 27,166,241, 29,181,228, 84, 58, 98, 25, 45,108, 33, 23,253,108,195, 9,179, + 20,162, 41,181,233,183,154, 30,181, 93, 27, 54,161, 95,161, 74,214, 74,115,214, +169, 55, 69,119,174,169,101,203, 84, 94,133,226, 98, 2,105, 58, 32, 48,134, 35, +132, 1,209,199, 7, 95, 11,165,231, 81, 68,113,216, 3,236,221,221,210,106,112, +100,215, 29,190,207, 29, 19,193, 58,126,105, 69, 99,164, 72, 51,197,219,106, 55, +230,155,227,193,113,143, 10,141, 14,189,240,132, 79,206, 4, 1,144,237,237,244, +252, 28, 80,143, 33,179,111,203, 54, 92, 90,225,110,163, 44,226,120,208,175,175, +132,243,252,183,235,206,254,164,147,103,235,123, 25, 84,100,194,164, 19, 66,177, + 79,135, 86,174,230,188,211, 53,230,187, 30, 52, 15,210,192,136, 59,188, 27,180, +150,122, 78,248, 79,103, 81,154,123, 44,231, 12,206, 10,245,165, 45, 29,111,178, +143, 52, 31,165,169,162,176,154,205,102,150, 30,202,173, 23, 27, 79, 2,145, 65, +122, 62,107,168,202,198,145,243,198,110, 23,194, 22,162,181, 16,143,177, 71,171, +228,201,154,255,159,240,133, 37,230, 97, 69,137, 63,245,183,222, 39,233,116,213, +253,134,107, 30, 23, 95,148,178,184, 11,106,132,100, 52, 68,221,248,254,169,158, + 81,184,223, 44,164,221, 62,121,191,188,228,147, 28,144,214,235, 44,213,173,194, +196,220,117,201, 69,237,214,162,187, 24, 57,246,211, 40, 61,132, 41, 38, 21,222, +216, 19, 85, 25, 97, 40, 83, 54, 90,254, 30, 60,225, 25, 58,225, 81,210, 14, 39, +213,177,125,220,194, 41,114,102, 26,146,186,135,174, 52,228,131,206,155,142, 85, + 11,170, 66,163,126,168,235, 27,212, 18,117, 34,173, 99,111,232,245, 64, 86,127, +248,233, 37,105,116, 50,106,115, 84,177,100,199,116,213, 93, 59, 63, 50,146,144, +252, 16, 56,173, 71,120,218,168, 35,160, 28, 6,225, 68,103,109, 15, 29, 42,149, + 39, 71, 44, 41, 59, 78,172, 32,123,202,207,198,132, 37, 67,118,240, 94, 26,180, + 16,162,232, 96, 69, 14,140, 90, 31,202,198,219, 99,110, 51,220, 97,183,141,191, +183,185, 22, 58,151,213, 13,228,215, 73, 42, 97,242,214,147,156,100, 5, 47,108, + 81,209, 22,167, 17, 97,192, 41,181,235,171, 10, 93, 40,134, 19,146,147, 87,238, + 53,151,243,117,177,112,222, 93,152, 93, 4,186, 51, 19, 18, 96,132,218,103,194, +121,247,251, 97, 86, 56, 71, 76,196, 15, 91,135,198, 71, 8, 79,193,229,163,102, +176,212,115,238,240, 12,185,102,229,166, 82,161, 95, 53,151,226, 56,176, 25, 15, +114, 0,245,122,126,121,199,225,142,203,118, 61, 70, 65, 38, 9,136,219,220, 90, + 15,190,251,146,215, 50,137, 13,132,121,144,170,134,116, 58, 63,188,179,142,195, + 90,213,102, 21,254,185, 76, 36,195, 63, 2, 58, 28,106, 78,222, 40,227,210, 73, +111,210,215,191,101,236,177,209, 38,133,151, 37, 52, 45,198, 23, 86,235, 13, 89, +171, 69,163,114,231,173, 14,135,174,224,223, 96,139, 75, 68, 21, 30,204,254,172, +228,223, 64,162,233, 88,253,230, 25,133, 77,241,202,116,198,246,135,189,175,245, +123,116, 49,165,231, 66,209, 5,150, 12,194,157,183, 65,242,229,189, 64,122, 61, +193,142,235, 70,236,142, 45, 76,115, 32, 84,200, 59, 9,219,184,163,158, 83,221, +139,148, 46, 72, 87,224,254,248, 83,238,109,198,225,108,172,150, 5,233, 44,172, +102, 4, 67,144, 5,206,105, 23, 37,236,233, 30,137,167,106, 22,149, 73,188,163, + 85,153,140,196,118,236,255,168,246,171,184, 58,126, 43, 7,206, 95,115, 29,111, + 99,231,180, 5, 68,234,135,145, 90,101,244,169,224,109, 69,241, 98,226, 10,227, + 49,248, 21, 76, 88,121,252, 63,224,209, 76,145,173, 18,132,139,226, 27,173,228, +145,113, 49,208, 5,195, 81,157, 55,142,154, 1,212,109,105,173,148, 41, 22, 59, + 91,154, 8, 16,192,174, 37,149,102,125,145, 13,192,199, 74,221, 65, 17, 8,109, + 81,137, 35,109, 24,100,179, 83, 98,116,124,230, 4,192, 48, 27, 68,145, 36,105, +184, 29,163, 17,243,189, 34,182, 1, 42,244, 24,180, 76,163,139,131, 49, 78,132, +212,253,212, 70,216, 88,223,211,111,128,145,158,145, 3,204,212,215, 69,236,141, +201, 3,234, 90,130, 65, 52, 62,160,223, 86,161,251,200,118, 54,211,204,223,208, +179, 90,183,104,129, 7,149,108,162, 33, 91,147, 69, 47, 23,145,142,246,104,146, +104, 70,238,122, 48,209, 15,166, 64,182, 0, 49,251,227,225, 48,232, 4,136,232, + 30,144,132, 78,187, 75, 99, 62,225,203,167,176,107, 39,124,124,177,238, 24, 41, +220, 97, 31,232, 50, 82,233,122,118,217,115, 77, 87,164,165,245,235, 39,194, 90, +160, 26,141,237, 40,116,229,251, 28, 51,235,178,110, 40, 61,214, 13,187, 43, 87, +154,121, 85,165, 66,226,230,248, 47, 15,100, 14,229, 38, 43,221, 69,190,198,162, +234, 39,216,235, 33,183,219,109, 92,199, 87, 37,248,159,182,196,142, 23,113, 84, +127,152, 28, 89,149,195,158,222,183, 3,162, 39,178,159,225,249, 3,128,151,103, + 36,168, 62, 45, 62, 33, 16, 18,115, 83, 58,245,155, 60,117,201,207,204,145,242, + 95,224, 10, 63, 36,109, 60,129, 16, 77, 95,215, 22,199, 51, 56,184,234,143, 39, + 57, 43, 18, 26, 9, 60,246,160,187,109,116,119,243, 61,232,224, 51, 33,107,239, +180, 7,159, 21, 76, 97,237,189, 70, 8,126,174,157,120, 95, 4,238,239,113, 28, +236,243,194, 94,227, 16,232, 98,216,117, 77,205,134, 64, 24, 79, 83,233,212,249, + 79, 28,186, 55,246,131, 82,120,116, 27,155,249,160,244,254, 80, 56,175, 56,130, +210, 20, 38,117,202, 65, 68,121,144, 39, 60, 0, 63, 63, 17,175,183,120,163,194, + 73,139, 96,200, 86,117,198, 36,225,131,156, 58,110, 37,247, 67,136, 87,169,113, +207,152,116,210,191,124,241, 18, 62, 78, 40,248,182,236, 28,133,154,211,100, 0, +159, 39,184,193, 13,105,225,150,206, 98,208, 25, 75, 88,239, 73,138,217,137, 61, +133,199, 46, 20, 12,201,110,114, 23,163, 9, 66,228,253,211,225, 11, 42, 62,196, +102,120, 55, 70, 5, 29, 51,191,252,221,207, 14,152,228,157,212,215,182,233, 89, +185,179,103, 94,144, 72,244,130,131, 50,166,148,169, 92, 11,190,211, 36,171, 33, + 89,132,240, 57,210,148,138, 53, 81, 65,184, 39, 52,121,224,220, 70,112,134,169, +250,151,166,240,171,123, 47, 14,168,120,201, 21,113,215,175, 87, 37,171, 2, 17, +213,136, 6, 18, 78,112, 4,180, 78,249,123, 12,174,104, 6,192, 76, 42,254,183, + 66, 36, 65, 24,156, 32, 57, 41,129, 2,216,239, 68, 90,194,230,102,220,244,112, +177,119,131,139, 7, 46,146,118,236,212, 48, 50,133,181, 38, 58, 43,132,118, 83, +192, 51,140,201, 86, 83, 90, 75,227, 57, 73,121,215,255,115,139,138,242,235,134, +158,163,136,118, 92, 80,197, 14, 94,143, 60, 70,149, 18, 29, 57,105,182, 93,145, + 67,186, 39, 46,238,128,142, 68,129,121, 69, 6, 43,128,203, 98, 30,179, 63,191, +189, 8, 38,162,230,251, 25,189,237, 37, 0,163,228,206, 37, 30,119,165,150,106, + 57,218,149,144,249,135,141, 78, 83,200, 44,119,185,134,204,189, 51,137, 46,240, +104, 60, 48, 85, 61, 39,128,193,228,197,211,215,154,108, 73, 49, 80, 30,226,196, +218,184,109,163, 39,108,129,163,156, 54, 11,136,117, 82, 86,208,214,117, 41,175, +116, 98, 47, 68,211,109,240,255, 32,143,249, 66,122,206, 51,234, 47,247,104,247, + 62,152,223,112,226, 80, 49,136, 97, 54, 94,175, 22, 90,159,209,243,149,235,182, +233,241, 19, 52, 77,118,190, 75, 90,132,178, 44,206, 4,204,247, 54, 4, 5,116, +191, 18,112,120,232, 9,203,170, 93,242, 99, 51, 11, 75,133, 13,162,194, 68,180, +220,123,117,147, 40,155,115,136,237,118,143,239, 7,105,186,139, 89, 56,130,215, +157,128, 65, 69, 7,168,156,231,149, 40, 46, 88, 35,160, 27,250, 57,111,236,222, +129, 94,132,107,242, 18, 67, 88, 78,161,241,130,137, 32,203, 46, 32,191,135, 18, + 20,219,157, 94,195, 24,193, 37, 83,125,253,176,244, 42, 10,240,108, 41,154, 92, +135,218,131, 38, 65,140, 37, 57,103, 2,240,105,238, 24,242,184,136,165,108,192, + 22,243, 80, 35,100, 95,151, 8,160,237,218,186,162, 81, 90, 7, 71,152, 79, 24, + 20,191,102, 19, 37, 29, 94, 36,101, 51,119,113,172,123,179,137, 66, 19, 65,198, +203,194, 14,238, 65,223,100, 44,238,166,198,166,141, 6,244,226,116,188, 60,180, + 44, 54, 29, 78, 3, 37,129, 57,161, 70,246,133,103,156,163,158, 85, 98,218,152, + 94, 57, 33,160,108,201,210,192,172,252,242,224, 33,253,128,164,198,142,103,140, +143,170,195, 29, 73,236,211, 59, 79, 99, 28,177, 25, 97, 83, 88,112,232,209, 78, + 68, 59, 14,197,175, 46,236,152,236, 98, 76, 30,113,177,215,171, 39,222, 38, 26, +126, 52, 40, 35,121,121,195, 81,121,104,120,161, 68,230, 34, 79,239, 90,216,136, +182,191, 8, 95,220,113, 26, 31,110,161, 52, 64,176,106,254,109, 20, 21,148,209, + 99, 26,151,155, 92,114,195,187,125, 8, 31,129,188,114, 66,138,125,189,152,211, +170, 28,239,117, 88,148, 33, 24,105,241,241, 52, 55, 78, 16, 13, 48,168,194,185, + 47, 68, 3,141,227, 73, 73, 25,224,225, 59, 10,163,123,209,176,102,120, 22, 64, +126,224,147, 69,159,177,110,183, 3,116,234, 28,192, 48, 36,215, 52, 13, 14,138, + 22,161,120, 75,185, 83,252,242,129,223,200,174,143,116, 92, 1, 42,103,196, 19, + 41,192,240,108, 3,250, 31,141,146,212, 35,245,104,138, 81,190,178,156, 50,111, + 1,189,255,118,143,244,230, 0,223,157, 36,227,247,168, 33,219,166, 40,186,174, +115, 1, 36, 1, 63, 1, 47, 1, 10, 88,244, 78,180, 36,182, 22,151, 89,234,191, +166,111,125, 69,241,180,122,159, 80, 71, 43,250, 20,179,244,108,170,208,159,160, +155,114, 76,223, 16,235,252,166,199,131,132,100, 16, 19, 36, 63,137, 98,102, 61, + 48,249, 68, 99,175,158,181, 46,247,163,230,123,166,247, 76, 38,136, 21,175,233, +241,122, 99, 19,165, 69,246,145,175,169,191,194, 88,204,229,104, 29,205,219,228, +254, 89,128,122,145,103,215,159,255,230, 50,156,212,145,189,121,131, 50, 8,217, + 97, 19,160,210, 4, 8, 79,228, 76,102,139, 12, 75,139, 81,159, 37, 70,173, 95, + 85,159,202,252,228, 91, 17,139, 86, 89,108,252,164,209,198, 21,218, 79,150,220, + 88,228,111,150,148,223,208,146,225,173,112,201, 86,165,138,122,141,169,113, 44, + 97,143, 51,121,106,211,142, 52, 14,173,123,249,218, 26,167,151, 3,114, 8,153, +101,153, 70, 6,201,215,117,105,153,187, 6,246,216, 68,119,197,171, 53, 48,234, +190, 25,247, 43, 28, 75, 18,230, 8, 78,250,118,210, 6,149, 30,217,194, 19,110, +150, 37, 75, 66, 50,246,112,188, 36, 18,251,229, 57,246, 80, 57, 95, 60,158,244, +182,163,180, 98,170,106,122,169, 87, 76,173,102, 90, 75,254,158, 71,165, 94,114, +239, 49, 30,198,195,120, 24,143,212,213,171, 86, 57, 34,209,202,189, 66, 41,128, + 2,213,227, 75,185,128,255,134,222, 56, 56,227,183,164,198,118,164,239,152, 79, +255, 71, 4, 82, 81,156,239, 58, 7,208,218,255, 43,199,243,169, 30, 27,145, 63, +165, 69,147, 2,187, 85,148,107,153,127, 27,200, 33, 67,219, 1,174,145,197,254, +215,212, 86,239,108, 53, 78, 8, 51,136, 23,222,255,201,182,150,202,201, 68, 38, +218, 7, 60,221,124,154,157, 79,109, 8,111,104,203,113, 28, 59, 13, 0,128,199, +182,207,224,123, 2,137,199,219,124, 18, 66, 30, 39,147,169,213,100, 32,235, 56, + 73,193,111,175,125, 70,153,165,255,246,161,144,128, 28, 16,252, 58,237,235,124, + 76,150, 28,101,157,143,161,106, 72,219,158, 34,152,196, 83, 27, 66,223,130, 87, + 65,207,198,171, 9,223,197, 4,223,197,148,241,200,176,209, 29,133,154, 73,240, +220,243, 50,109, 37,150,175, 83, 43, 89, 40,195,225, 52,132, 72,250, 28,179,133, +206, 39, 67,177, 51, 54, 79,152,150,224,217, 92,192,134, 17,222,186,204, 6,153, + 10,248,169, 84,151, 38, 77,249, 36,165, 79,105,208,228,123,226, 52,104, 54, 95, + 3,135, 32,227,192,129,108,203,178, 75, 67,205, 66,109, 43, 30,203, 12, 10, 50, +224,135, 96,219,144,211, 14, 9,229, 3, 21,181, 69,128, 21,172, 92, 50, 55, 44, + 37,159,133,163,137,232,188,142, 23, 1, 59,175,121,170, 6,228, 36,100, 13, 85, +227,185,148,251, 49, 12, 35,184, 60,116, 66,224, 7,208, 93, 29, 1,192, 8,159, +244,241,120, 60,200,128, 71, 62,195,176,158, 74,170,250,206,191, 58,149,221, 87, +158,187,123,245,149,175,127, 42,253,247,185, 79,118,196, 93,149,226, 65, 41,251, + 66,173,235,244, 82, 64,120, 3,116, 89,129,237, 41, 52, 45,105, 67,236, 1,214, + 21, 80,177,174,135,104,206,138,158,251,130,180, 28,167,127,133,163, 2,173,132, + 21,239, 28,150,195,241,112, 60, 69, 34,159, 85,197,170,110, 94,180, 67, 83, 18, +253,110,135, 14,125, 41,172,134,124,247, 21,117, 77,150, 19,234,202,248, 1,252, + 70,136,190,163,200,110,125, 55,182, 21,223, 89, 79,125, 25,203, 70,103, 81, 20, +197, 80,168,163, 0,214, 80,117, 8,133,188,251,234,186,174,207, 68,211, 82,150, +181,205, 82,103,217,195, 95,100, 89,239,127, 89,161, 15,189,101,158, 34, 43,181, +100, 40,107, 11, 52,225, 34,139,116,165,118,103, 11,253,214, 44, 77,129,167,172, +221, 26,107,141, 67,191,162, 21,243, 21,223,202,252,230,242, 0,224,178,100, 64, +206, 67,200, 3,241,141,204,179,212,221, 78, 47, 5,214, 5, 47, 34, 68, 89,140, +106,220, 22, 68,184, 44,146,111,197,189,126, 64,227, 48,241,205,210,234,124,191, + 77, 39,162, 62,100,202,221, 17, 16, 64,112,109, 43, 11,187, 53,135,100,101, 75, +243, 44, 83,150, 84,129, 20,216, 44,115, 73,185, 30,173, 53, 93,248,234,206,159, +170, 1,233,198,109,220,198,109,156, 38,209, 36,154,196,236, 58,179,235, 76,252, +221,128,251,119,239,213, 64,154,166, 30,203, 26, 71, 27,241,188,132,141,219,184, +141,219, 56, 77,162, 73,210, 90, 75,249, 61, 47, 97,227, 54,110,227, 54, 78,147, +104,146,243,252, 72,164,105,117,158,216, 98,220,120,132,211, 39,237,201, 59,208, + 68,200,225,192,245,252, 52, 61,211,138,224,105, 9,251, 99, 44,233, 56, 49,133, +224, 32, 43, 74, 48, 59,201,211, 51, 48, 25, 25,151,140,203,211, 80, 30,126,209, + 35,182, 20, 94, 93,168, 10,215, 29, 38,177,190,188,238,183,252,152, 82, 69,168, +194,199,249, 47,127, 62, 89,238, 72,105, 44,189, 18,174, 46, 84,166,153,214, 39, +254, 32,201, 62,137, 38,246, 7,105,190, 57,231, 5,142,101, 19,126, 71, 89,167, + 65, 58, 44, 43, 51, 70,185, 62,195,115,227, 44, 90,210,219, 92,180,142, 5,172, + 15, 12, 94,173,100,144, 10,162,106,190,148,175,146,222,152, 92,134,159,229, 2, + 82, 42,237,215,167,176,169, 22,103,203,230, 3,109, 46, 10, 95,229,242,218,229, +157,146,203,107,148,113,120,195, 42,204,183,203, 88,188, 34, 74,162,253, 4,147, +201, 84,202,165,163,198, 49, 87,154,242,248,196,138,206,238,191,146,254, 91,210, +105,180,118, 95,145,246,223,218,138, 42, 87,143,247,209, 61,106,165,114,138,188, + 90,215,216,109, 14,144,147,168,212,217, 86, 41, 27, 18, 0, 20, 0,179,178, 0, + 8, 10,139,141, 69, 18,137,156, 7,138, 82,123,148,128,199, 67,149,140, 9,137, + 20, 3, 6, 3,211, 96,224, 0, 12, 18, 3, 3, 48, 1, 6,128, 16, 2, 6, 0, + 64, 0, 3, 32,128, 3, 1, 73, 35,242, 1,144,198,118,200, 75, 37,144,105, 6, +161, 76,127,238,121,247, 38,234,224,135,128,201, 86,203,136,224, 11,189, 98,220, + 54, 0,133,198,120,224, 72,210,131,202,198, 20, 80,244,175, 65,112,219,217,116, + 65, 12, 51, 68,183,141,100,174,216, 76,235, 7,222,113,186,190,128,180,228, 62, + 94, 11, 28,216,133, 47,191, 70, 11, 4,137, 93, 0,180, 19,186,184,128,110, 31, +212,187, 64, 20, 39,184, 40,136,129,208,133,218,243,175, 7,106,231, 12, 72,152, +237,234,130, 23, 32,119, 73, 1,187,155,251, 10, 96,250,174,111, 9,176,135, 61, +171, 65,254,217, 11,177, 60,184,174,248,116,171, 33,128, 62,206,159,192,240,120, +163,121, 56,159,108,251, 6,195, 24,142,214,169,228, 15,140, 64,122, 68, 35, 12, + 79,125,147,138,251,224, 72,193,136,166,209,194,148, 20,249, 97, 1,146,109,217, + 43,135, 33, 53,250, 51, 52, 96, 90,172,180, 7, 9,186, 55,175,101, 12,245, 74, + 34, 67,157, 74,138, 49, 80,133,115,107,163,135, 50,212, 27,185, 12,245,213, 54, +210, 75, 89, 8, 96,154, 41, 30,214,129,116, 60,114, 32,192,195, 79, 0,247,201, +177, 58, 5,105,135,114,245,149,163, 84, 82,174, 41,255,148, 82,241,194, 54,169, + 90, 42,147, 28,165, 25,106,160, 36,244, 64,145, 38,208,248, 74,223,160,200,154, +103,112,231,100, 30,176, 85,200,250, 16,232,125, 54, 40, 40,146,104,101, 14,154, +176, 65, 53,138, 47, 27,184,115, 40,212,253,195, 98, 68, 48,121, 63, 52, 83,232, + 69,125, 46,190, 1,186,206,188, 2,137, 56,110, 15,124,218,237, 44, 38,204,182, + 3,160,113,112,233,173,201, 25,203, 51,238, 57,210,102,128,225,112,139, 68,102, + 34, 9,164, 4,165,209,233,174,200, 87,240,137, 68, 23,144, 28,192,164, 33, 63, + 9, 38,241, 66, 18,229,244,198,182,144,175,189, 6,113,244, 34, 47,206, 34,132, +246, 87,105, 38, 25, 62,120,164,248,117,161, 32, 29,167,207,241, 69, 48,140,112, +243,241,214, 13, 66, 92, 33,244,169,176,181, 5, 89,150, 60,105,248,194,228,111, + 23,133, 80, 34, 17, 54,143,180,162, 43, 62,113, 71,230,140,149,132, 23,107,213, +174,106,113,198, 34,139,170, 31, 30,166,150, 97,106,136,112,158,112, 50,110,235, + 92, 37, 98,172, 29,183,179,149,180, 43, 98, 35,215, 82,250, 87,145, 46, 9, 35, + 43,157,189,233, 41,137, 35,118, 84,185, 26,197, 50,164,241, 30,193,132,139,226, + 76,161,242, 14,192, 37,132, 78,176,212,228,232,227,102, 16,102,126,244, 61,157, + 1, 13,226, 40,128, 18,190, 94,188,217,128,118, 40, 37, 81,108,108, 16,100, 61, +178, 75,134,169, 1,236,144,105,152,132, 80, 9, 33, 65, 19,141, 58, 68, 55, 30, +194, 49,136,236,137, 71, 21, 21, 17,225, 49,148,146,104, 8,199, 63, 93, 5, 15, + 80, 23,198,111,202, 29,136, 11,227,246, 8, 41, 5,238, 25,129, 47, 32,104,175, +104, 82,128,165, 86,160, 13,140,239, 0, 57, 46,136,162,205,136,208, 26,107,175, + 86,173,107,130, 32,171, 18,193,195,205, 13,217,254, 50,142, 88,145, 96,146, 65, + 59, 54, 88, 74, 83,173,118, 94,107, 88, 64,227,168,211, 16,214, 80, 27, 42,222, +157,202, 63,195,105,152, 32, 62, 44,106, 96,216,131, 82, 80,192, 74, 85, 69, 67, + 9,226,218,100, 48,133, 65,176, 24,211,194, 13,150,245, 66,212, 33,140, 8,217, + 43,164, 22,132,101, 9,226, 83,200, 66, 96, 17,134, 8, 84,161, 99,242,142,164, +214, 12, 70,216,136,180,245,129,160, 49, 97,147, 92, 41, 21,172,181,254, 80,168, + 10,211, 66,160,120, 15,161, 18, 65,151, 54,216, 57, 66,244, 15, 67, 56,218,213, + 98, 79, 48,130,100,158,117, 92,144,107, 18, 21, 6,186,188, 44,185, 99,193, 66, +220,250, 13, 41, 2,216, 87, 55,244, 12, 86,155, 77,129, 11, 66, 40, 60,128, 73, + 62, 9, 97,186,201, 94,114,244, 2, 65,119, 56,179,214, 8,118,216, 20,145, 8, +104,100, 38,126, 48, 52,183,214, 84,198,236, 17,195, 33, 43, 17,221,217,104, 79, + 93,137, 69,155,196, 25, 0, 46,141,106,112,242, 68,246, 98,142, 3,119,242,246, + 93, 9,245,211,141,100,139,147,201, 1,116,180,248,221,223,119,204, 55,223,119, + 31, 90,205,235, 86,107,155,167, 52,251, 71,241,167,179, 31,253,174,249, 78, 74, +126, 80, 84,235, 68,147, 33,239,164,233,254,250,154,229, 69,190, 12,149,122,161, +232, 5,119,246,183, 64,203,149,233,157,118, 74, 21,134,150,118, 3, 3, 31,110, +117, 92, 39,114, 2, 80,185, 25,129, 74,242,148,148, 93,185, 36,138, 20, 8,140, +103,162,123,112, 13,174, 9,142,233, 99, 81, 76,204,161, 25,195,152,165, 22,252, +148, 57,152, 47,249, 17, 5, 93, 90,201,130, 88,253,175,183,238,103,218,184,112, +235,229,242,134,217,146, 61,142, 30,112, 45,126,127, 18,184,123,176,210, 50,209, +190,249,151, 79, 75,172,213, 1,131,184,108,228,228,192, 64,160,122, 69, 59,189, +112,214,176,130, 53,160,196,107, 75,242,215,104,110,102,241,145, 38, 45,227,181, + 79,154, 70, 73,220, 9,125, 44,231, 21, 68, 4, 58, 75,138,150,158, 12,183, 85, + 13, 70,247,145,109, 59,176,133, 75, 61,203,129, 32,143,128, 5,105,247,149,218, +158,232,156,183,188,105, 79, 47,168, 23,196,121,179,204,246, 14,188,138,166,133, +121, 88, 89, 13, 39,142, 99,160, 21,115, 13,158, 44,106,187,183,103, 82,162,100, +209,197, 48,165, 99, 66,101, 7, 13, 73,131,172, 72, 34, 35, 60, 5,179,208,222, +226, 3,232,179,143, 72, 2,229,230,223,100, 38,236, 24,180, 14, 92,162,212,125, + 36, 53,242, 92,198, 97,119,232,106,252, 73,198, 82,213,134,120, 49,125,198,141, +131,156, 39, 10,224,191,103,193,113,115, 3,201, 96,219, 3, 53,148, 0,138, 34, +165, 66, 30,113, 95,195,129, 51, 39,145, 73, 8,197,157,230, 15,208,223, 7,130, + 60, 53,180,108, 88,220,140,248,184,253, 6,210,163, 33,131, 14, 1,241,236,103, +161, 56, 18,255, 90,223, 45, 86, 12,172, 74,176,154, 22,137,198,141,230, 13, 18, +240,144,174, 8,168,133,155, 67, 94,235,184,250, 1,255, 20,201,137, 77,174, 26, + 93, 48, 8,223,250, 22, 6,225,128,163,168,152,169,219,255,163, 58,162,141, 69, +193, 3,130, 11,162, 51, 94, 32, 43,232,175, 39, 18, 25, 24,226, 30,220,225, 40, + 24,170, 66,169, 13,189,177,110,233, 10,240,186,242,115, 78,208, 9,249,225, 50, + 78,130, 83,194, 86, 6,210,163,149, 23,174,204,236, 33, 78,193,210, 74,142, 19, + 16, 19, 24, 24,116,211, 30, 22,236,204, 19,181,118, 37, 61,209, 36,110,125,214, +178, 52,199,115, 82, 36, 72, 76,132, 13, 40,227,121,137, 78, 49,190, 50,179,118, + 4, 84,145,112, 97,131, 5,128, 2, 42, 23,169, 32, 57,128, 21,162,196,252,126, +234,170,171, 0, 87, 85,122,234, 57,128, 86,191,168,128, 17,117, 8, 85,105,240, + 75,227, 61,133,119, 62,103, 36, 36, 20, 32,248,110, 56,218, 17,195,102, 42, 85, + 63,207,225, 2, 10,160,249,180, 41,113, 95,250, 83, 68,135,214, 65, 68,111,139, +140,160, 82,214, 44,190, 7,172, 57,138, 31,147,250, 26, 20,204,179, 77, 95,113, + 90, 8,254,198,234,102, 90, 77,150,123,198,208,181,243, 11, 82, 33, 39,242,129, +135,151, 32, 70,216,164,166,145, 3,134,242,120,228,226,147, 23, 21, 35,191, 68, + 10,167,165,183, 14, 15,102, 61,235,118,121, 66, 68,235,167, 41,136,179, 66,119, +183,187, 98, 89,229,146, 27,243,158,228,216, 9, 68,217,168,136,128,237,253, 14, +239, 68, 34, 67,228,127,172, 88,176, 12,180,124,202,175,244,216,236,253,254, 51, +233,250,129, 92,149, 24,182, 70,147,142,238,250, 26, 65, 9,176,252,224, 59,184, +168, 50,207,141, 76,145, 42, 23,149,165,247,226, 91,120,123, 81,200,139, 64, 84, + 13,121, 86,152,212,143, 38,170,112, 0,172,174,123,227, 15,244,150,161,148,160, + 56, 71, 91,217,203,187, 23, 14, 33,207, 2,253, 46,129, 86, 13, 62,158, 77,132, +109, 78,192, 75,147,138, 15,155, 86,133,120, 1,184,188, 50, 54,160,175,230,247, +161, 50,177, 33,210,182,198,133, 59, 16,208,233, 43, 69,157, 33, 45,225,196,114, + 33, 50,155,139,251, 4,113, 33,238, 19,130, 35, 72,198, 26, 69, 72,100,125,224, + 84,123,158,125,217,151,223,249, 83,197,239,143,133,182, 63,176,147,112, 82,195, + 58,165,212, 52,200, 2,163, 68,137,192, 54,222,103, 94,195, 70,193,240,250, 39, +114,150,121,169,245, 9, 32, 48,217, 57,226,163,213,197,200,120,229, 24,238, 7, +110, 82,200,102, 55, 41,138,158, 77,103, 73, 14, 99,187,219,226,218,169,190,146, +212,244, 89,102,234, 72,235,111,173, 55,134,190, 44, 85, 88, 7,219,173,240,221, + 28, 80, 61,142, 72,165,240,255,198,177, 46, 65,244,184, 81,245,199,207,131,201, + 72,113, 40, 24, 43,192, 8,181, 7, 99, 82, 22,215, 5,147,163, 70, 82,125, 19, +216,206, 28,107,125,178, 90,212, 37,208,129,125,209, 16,128,222, 49,219,133, 82, +207,252,101,208,100,204, 85, 85, 5, 64,121,140,211,138, 89, 80, 82,189, 80, 80, +237,125,183, 63,110,204, 23, 72, 18,145,174, 81,163, 76, 13, 82, 32, 7,233, 5, +216,109, 92,253,149,186,196, 24,147,138,204,146, 99,111, 94, 15, 29, 68,143,138, +116,238, 97,220, 55, 43,156,176,195,162, 57, 76,210, 83,176,239, 1,150,243, 87, + 5, 38,238, 84,103, 72,222, 27,181, 38,125,163,215,140, 20, 91,151,188,202, 49, +134,106,182,189, 34, 49, 79,222, 5,181, 21,226,123,115, 32,193,105,242,151, 8, +185,188,137,248,205,199,137,192, 91,136,197,148,242, 67, 80,183,190,115,114,157, + 16,157,245,144,207,165,109, 69, 10,161, 55,112,139,141, 19, 34,193, 41, 57, 26, + 99,162,241,174,195,236,236,213,139, 35,169,250, 9,146,126,166, 10, 84,230, 26, +128,228,144, 76, 61,154,192, 89, 85, 77, 17, 50, 90,226,115,161,176,188, 87, 81, +191,174,249,224,182,133, 18,157,164,135,101,242,238, 71, 6, 6,149,107, 74,128, + 73, 67,208, 94, 44,134,168,197,138, 5,176,139,185,105, 79, 19,198, 9, 57, 92, + 97,191,158,140, 65,214, 79,102,239, 97,146,110,175, 23, 91, 71,239,127,157,102, +221, 19,231, 58,175, 3, 6,157, 51, 74, 54,186,146, 39, 66,249,109, 42,112,107, +202, 5, 39, 55,198,174, 51,207,115, 54,135,175, 62, 93, 70, 62,184, 52, 69, 62, +127, 75,248,144,137,103, 5, 17, 35, 25, 57, 43,178,178, 18, 19, 29,125,160,177, +203, 68,160, 67,114, 16, 84, 0,190, 69, 49, 55,193, 2,203,125,152,138, 53, 72, + 83,118, 71,163, 81,111,178,239,190, 71,131,204, 72, 71,228, 84,218, 22, 86,153, +203, 40, 58, 37, 43, 94,100,137,102, 91,193, 46,206,157,248, 91, 61, 18, 39, 47, +122, 11,139, 74,174,150,147,139,241, 63,126,104, 36,249,156,236, 50,166,251, 68, + 39,152, 42,183,237, 79,117,185,169,206,184,143, 48,222,103,183,246,255, 50,136, +239,254,108,225,224, 37,160,195,224,162,251, 17, 51,165,212, 76,132, 22,185, 14, +163,222, 32,158, 12, 32,236,132, 38, 1,216,105, 39,203,255, 37,178, 16, 35,176, + 48,167,232, 83, 10,122,176,137,183,132,131,131,130,167,118, 65, 27, 37,195,156, +171, 70,168, 57,103, 77,116, 16,181, 51,170, 34,202,138, 66, 95, 18, 5,249,212, +208, 63,229, 7,241,164,223,144, 15,185,175,146,252, 64,163,176, 68,168,219, 70, +121,148,161,119,106, 37,184,253,122, 2,200, 74,250, 19, 88,252,112, 42,128,239, +217,172,176, 19,240, 29,152, 8,148, 22,220,154, 38,211,104,132,157,233,130, 62, +255, 20,203,132,250, 88,158,243, 79, 37,239,159, 48, 2, 27,111, 9,230,131,234, + 13, 86,171, 10,203, 91, 16,173,186,137,254, 31,173, 19,203,190, 32, 45, 24,243, +232,148,202, 92,222, 62, 23, 39,194,107,185, 68,160,200,197,142,249, 90,116,244, +133,108,216, 43,170, 47, 33, 88,228,175,160,103, 53,119,106,172, 57, 45,161,155, +179,205,118, 85,104,205,149,183,243,141,108,112, 55, 0, 50,149, 73, 36,182, 33, + 7, 91,151,106, 15,223, 8,167, 25, 12, 71, 24,124, 20,137,165,198,244,218,116, +188,247,230, 14,140, 46,112,244, 54, 56, 40,138, 13,245,120,220,144, 17, 52, 1, +212,210,122, 3,169,201, 19,121, 5, 44, 22,146,176, 16, 85,240,183,152, 95,163, + 92,215, 86,184, 57, 89, 72,231, 27,104,204,109,204, 54, 29,130, 46, 71,163,221, +110,187,139, 4,141, 73, 42, 81,147, 63,139, 45, 0,195, 56, 62, 20,249,240,158, +129, 11,213, 57,196,194, 99,220,108, 62, 64,186, 62,168, 36, 5,141, 98,179,129, +198,254,167, 64,243,169,128,129,179, 51,173, 53,222,224,100,200, 53,210,197, 62, + 85,157, 23, 54,171,147,126,245,168,110, 87,133,249, 45, 59,247,148, 9,117, 10, +103, 93, 33,173, 93, 55,153, 2, 91, 97, 46, 46, 48, 75,225,168, 90,213,239,143, +111,147, 98,134,229,213, 67,194,242,169,241, 10,249,105, 37,252, 52,114,108,231, + 81, 96,208, 16,228, 70,140,113,148,132,168, 26,152,140, 34, 88, 25,239, 62,108, + 75, 1,149,169, 76, 51,103,232, 94, 42,138, 1, 55,164, 21,223,208, 14,160,102, +142,233,184,133, 7, 93,170, 22,195, 16, 78, 37,122,241,208, 90, 94,148, 35,196, + 39,107,161,191, 28,137, 70,167,191,104,134, 61,189,127, 82,148,208,160,181,185, + 74, 88,241,102, 24,238,218, 66, 44, 51,255, 14,106,223,229, 80, 45, 93,130,184, + 81, 45,130, 56,145,216, 72,203, 60,104,105,207, 64,177,142,130,175, 45,133,108, + 35,213,172, 34,252, 12,230,201,165,244,237, 3,169,233,154, 90,174,244, 75, 45, + 52, 40, 43,141,208, 44, 54,176,139, 15, 38,154, 69, 43,146,197,160, 5,201,239, + 66,176,152,165,179, 45,168,165,105,112, 43,212, 26,170, 72,253,181, 19,165,177, +160, 0,198, 51,163, 0, 7, 3, 69,251,152,251,207,206,228, 51,215, 84, 17, 21, +252,106,154,106, 80, 63, 51, 85,166,130,178,112, 72,228, 82, 15, 68, 89,183, 60, +132, 72,219,178,102, 25,183, 74,249,168,151,182, 61, 95,235,225,108,162,167,231, + 83, 98,236,252,108,146,205, 52,209, 74,163, 68,195,114, 49, 32, 69, 10,153,248, + 77, 9,252,227,109,198,165,112, 78, 35,141, 61,253,221,224, 18,182, 75,219, 13, + 81, 66,188,172,202, 91,163,118,132, 7,163, 76,132, 1, 9,130,155,105, 86, 35, + 4,126,188,121,178, 92,147, 36,131, 68, 51,179, 92,153,176, 16,177,104,169, 4, +188, 34, 42, 2, 50,173,238, 28,134, 13, 86,125, 37,199, 56,169,238, 99, 41,212, +111, 78, 29, 5, 51,121,216, 40,197,102, 27,140, 98,148, 18,133, 1, 33, 6,161, +210,135,179,191, 4,194,167, 16, 14,184, 41, 25, 85,178, 2, 58,107,216,130,149, +138, 57,233, 85,227, 3, 25, 88, 42,238,222,180,109,179,145,170,206,224,254,158, +124, 37, 62, 4,205,123,245,230, 84,130, 15,181, 87,182, 84,180,184,133,147,236, + 62, 46, 35,162,108,183,213, 26,153,185,104, 93,180, 64, 9,187,153, 2, 57, 37, + 38,192,185,250, 60, 28,189, 52,111,174,238,180,206, 78,119, 92,244,237, 78, 87, + 58, 84,153,117, 12,180,169,244,157,243,246,174, 43,157, 86,108,151, 58,161,224, +177, 92,133, 71, 65, 87,219, 57, 59, 71,192,172, 22, 85, 94,203, 9,210,139,148, +113,250, 62, 7,147,153,173,157, 67,122, 93,208,249, 18, 30,184, 60, 42,240,139, +184, 47, 91,221, 92, 96,116,164,135, 26, 20,253,252, 14,212,222,126, 59, 40,102, +175,121, 73,124,161, 89,217,125, 52,222,204,214,121, 87,129,136, 2, 81,231,227, + 26,169, 8, 69, 15, 58,144, 25, 4,204,198,216,137,152, 7, 79, 24,173,186,200, +195,141,106, 92, 33,183,230,104, 77, 46,159,182,203, 80, 68,193,181, 44, 46, 50, +127, 69, 84, 74, 32,253, 90, 41,251,102,191,131,218,246, 94,216,159, 50, 73, 32, +217, 23, 8,210, 65,139, 96,232,165,235,141,218, 61, 61,202, 19, 55,107, 46,219, + 0,250,190,163, 54, 78,122,175, 84,224, 70,197,180, 79, 52,150,170,239,174, 84, +188, 75, 18,204, 82, 79, 38,232,211,195,231, 49, 0, 37,240,233,214,193,208, 30, + 18,214,130, 8, 14,246, 45, 84,220,149,119, 82, 39, 24,214,171,228, 54, 47, 94, +224,244, 49, 91,178,122,220,232, 63,203,168,152,161,182,243, 29,165,234,230,153, + 78,101, 45,105, 96,162, 15,155,166,185,146,196,191, 88,249, 68,105, 17,187,200, + 22, 29,246,205,231, 71, 40,218, 33,161, 70,167,169,121,132, 74,198,164,110,209, +205, 82,176, 90,252, 84,144, 29,227,140,209, 30,141,214,210,173,186, 58,231,194, +210,176, 13, 83,168,246,218,192,231,143, 68,232, 55,225, 23,140,190, 79,149,154, + 95, 41,102, 37, 48,104,105, 2,255,211, 97,145,218, 60,155,253, 8, 58,215,129, + 31,173,119,112, 21,193,181,234,237, 74, 59,177,246,216, 75, 42,166,186, 13,204, + 85,130, 57,217,120, 56, 11,206, 87,102, 98, 2,145, 88, 44,223,156,217,150, 99, + 69, 61, 62, 49, 27, 78,186, 68, 82,107,240,225, 2, 23, 21,153, 74,137,117, 44, +216,185, 98,244,181,236,117,182,217, 42,152,209,118,234,207,164,191, 18, 83, 3, + 97, 0,173, 15,185,202, 99,232, 23,255,238, 92,117,204,145, 34,191, 43,184, 59, + 7,151, 35, 80, 39, 79, 77, 82, 65,191, 21,230, 54, 75,237, 93,146,145, 1,100, + 50, 51,112,167, 46, 8,160, 20,241,161, 19,166, 38, 22,164,171, 12, 43, 11,214, + 15,145,169,171, 70, 56,232,147,223, 18, 99,168, 34, 10,242, 26,226,182,196, 26, + 32,122, 93,209,148, 64, 56,194, 11, 3,193,158,160,132,112,106, 2, 5,201, 65, + 91, 46, 19,243, 9,190,131,167,172,215, 12, 50,223, 66,242,230, 40,143,137, 42, + 48,124, 31, 21,229,120, 45,157,226,183, 19,180,225,186,186,163, 99,190,178,175, +201,218, 79, 47, 63, 8,132, 66,122,162, 70,171, 71,134, 97,254,187,234, 29,245, +133, 46, 33,105, 36, 98, 66,197, 5,197, 29, 86,248, 83,228,189,216, 34,255, 94, +221,206,168,154, 79,101, 72, 8,140,123,184,248,150, 9, 76, 48,156,218, 96, 27, +220,156, 27,206,226,204,107,125, 15, 96,197, 15, 78,218,105, 37, 48, 96, 11,170, +208,102,143,196,165, 94, 58,219, 81, 25,173,147, 86, 8,132, 4,200, 51,199, 64, +175, 93,251, 8, 96, 54,158, 23,232, 1,220,111, 48, 66,116, 90,131,139,100,141, + 14,139, 45, 23,224,173,236, 30,169, 4, 80,209, 45,127,166, 3,243,153,166,113, + 80,220,229, 40,243, 39, 55, 30, 42, 20,213,117, 51, 92,136, 19,209, 30, 2, 41, + 55,185,155,225,200,184,105,113, 47, 34,178,155, 92, 81, 24, 12, 39,230,109,218, +246, 20, 75, 40,222, 96, 27,194,121, 16,189,107,177,132,186,191, 32, 89,103,154, +114,125,170, 57,145,101, 50,126,173,147,154, 7, 45, 86,156, 18, 65, 90,251, 3, + 25, 16, 62,157,137, 72, 9, 64, 81, 16,166, 52,127, 96, 46,229,200, 5,117, 25, +223,148, 52,101,126,211,254, 50,137,191,117, 95,243,160,195,176, 30,202,128,251, + 97, 94,125, 67,168, 26,208,176,248,129,172,123,200,238,128, 91,211,174,208, 57, + 36,160,107, 64, 24, 13,137,247,195,231, 38,177, 9,113,157, 59, 8, 39,125,231, +181,105,191,100,167,233, 37,102,172,132, 47,167, 68,164, 62, 53, 75,187,190,253, +229, 53, 8, 30, 81, 55,246,144, 28,210,128,110, 39,245,249,139, 60,232, 60, 72, +141, 12,186, 10,176, 20,152, 1, 82,242,100,222, 70, 12,200, 66,247, 81, 10, 17, +148,135,248, 64,253,240, 64, 24,132, 61,199,228, 10, 96,106,254,178, 66, 91, 85, + 3, 11,104,113, 80, 85,204, 38, 80, 6, 17,207,162,252, 88,207, 45,207, 7, 0, + 75, 98,221,108, 58,132,151, 22, 27,144, 56, 29,148,200, 5, 56,101,143,207,183, +217, 59,250, 50,154,164,229,162,143,131,144,142,134,158,117,210, 20, 4, 79, 6, +161, 14, 83, 26,154, 40,210, 34,196,133,131,149,129,250,198,200,139,189,164, 98, + 13, 92, 49, 49, 99,168, 3,221,144,169,216, 4,166,187,146, 36,247,209,249,118, +154, 30,103,102,146,174,232,224, 93,109,196, 80,174, 28,149, 58,175,105,155,145, + 13,133, 31,162,211, 59, 86, 63,168, 2,226,224,141, 4,218,128, 82, 40,135,201, + 3,175,210, 17,152,124, 14, 75, 15,160, 9,124, 46,104, 69, 16,127,194, 65, 48, +235,128,139,193, 92,224, 0, 31, 82,201,161,223, 8,108,100,186, 56,221,185, 12, + 13,210, 18,172,248,104,198, 1, 97, 43,146,240,240,173,163, 49,233,221, 3, 28, +222, 42,252,192, 49,187,171,109,115, 68,166,232,180,193, 29, 66,138, 15, 35,202, +131, 69, 66, 12, 27, 15,214,231, 32,158, 65,117,131, 81, 24, 59,136,127,243,133, +180,231,223,205,234,113, 9,199, 95, 23, 87, 53,245, 94,192, 25,160,140, 18,130, + 98,234,114,232,114,201,155,101, 64, 96,187,107, 66, 55,146, 18,226, 24, 83, 56, +139, 24, 94,235,194,165, 22,254,218,176,164, 29, 47,121,224, 75,135,144, 12,178, + 57,194, 84, 7, 82,231, 67,185, 24, 49, 15,197,254,138, 73,181,128,106,228,115, +236,234,108, 42, 79, 64,105, 43,225, 78,162,242,166, 79, 5, 98,208,101,164, 48, +168,244,223,146,146,131,142, 15, 62,242,142, 78,167, 92,163,138, 94,224,160,204, +219, 73,250, 77,143,241, 15,128,140,128, 99,119, 18,168,157,241, 38,182, 4,124, +132,171,200,172,122, 56,157, 22,121, 22, 98,114, 22,113,217,128, 21,171,120,131, +135,140,115, 25, 19, 87,241,103,132,253,138,248, 12,161,204,143, 9,221,221,171, + 54, 65, 48,205, 89, 98, 54,169, 88,252, 97,250,200, 30,195,157,177, 37, 50,245, + 96, 94, 94,183,130, 93, 18, 49,157,113,173,221, 87,208, 82, 19,104,187,222,157, +227,175,232, 14, 68, 68,144, 97, 95,111,166,132,152, 10,131,174,164,146, 30,171, + 1,235, 26, 39, 22,189, 54,112,226,114,101,143,251, 81,185,128,132,108,123,216, +175,116,168,117, 34,126, 69,121,129,247, 26,141,234, 65,174,216,225, 44,104, 2, +221, 96, 44,150, 47, 84,225,254,142, 9, 19,170,255,196,211,221, 46, 62, 18, 63, +196,204,221,201, 86, 88, 96,126,193, 79,244,161,229, 22, 30, 59,104, 57, 52, 32, +134,138,161,193,108, 89, 13,231, 37,216, 45,156,181, 29, 55,102,148,230, 92,200, + 60,191, 57, 57,135, 10,142,153, 31,180,135,205,117, 41,115,135, 56, 85, 57, 12, + 1,208, 26, 95,227,102,223,196, 41,128,104, 32, 7, 43,106, 85,105, 0, 56,132, +148, 49,216, 84, 34,108,240, 66,150, 25, 34,241, 57, 12, 36, 48, 45, 4, 61, 51, +160, 64, 42,170,107,155,132,116, 21,222, 2,218, 16, 63, 86, 49,127,143,236,189, +196,163,170,218,226, 95, 82, 70, 7, 32, 77,209,185,137, 25,159, 68,129,216,165, +215, 82, 55, 30, 68,183, 21, 89, 22, 39,132, 99, 14,253, 30,198, 98,105, 20, 56, + 73,164,249,222, 43, 74,149,113,225,111,195,188, 0,167, 54, 29,251,165,214,100, + 39, 47,161,113,167,224, 28,125,227, 54,162, 77,249,153,214,199,206,146,145,149, + 48, 87, 76,229, 27,190, 63, 53,137, 1,106,141, 20,159, 32, 86,121,219, 72,130, +199,184,234,205, 92, 0, 94,253,142, 70,209,145, 86,133,249, 75,224,155, 9, 52, +162, 43,157,184,166,222,249,125,236, 57, 91,158,234,139,121,137,141,179, 59,179, +162, 36,202, 29,252, 77, 29, 49, 64,233,163,255, 39, 30,248,177,141, 78, 0,166, +241, 9, 89, 95,132,164,146,112,144,171,123, 41,132, 78,130,122,210,162, 56, 84, +171,100,205,118, 8,196, 75, 22, 79,103,172, 32,231, 92,237,210,181, 83, 90, 69, +143,185, 31,101, 81,216, 52,188,157,106,112, 88, 43,131, 63,144,199,238,158, 27, + 42,220,123,171,227,143,239, 79, 4,168,127,156, 35,182, 68,215, 33,243, 83, 73, +105,240,143, 38,110, 72,108,195, 57,141,108,204, 43,251, 95,125,212, 11,225,170, + 20,161,165, 8,201,178,195, 77,101,134,245,156,234, 10, 77,125, 65,188,192, 22, +201,184, 72, 99, 34,145, 12,100, 89,227,161,163,229,106,103, 4, 55, 40,110,247, +234,250,217, 62,239, 73,165, 93,142,238,116,131,141,219,152,173,147,220,214,254, +188,178, 99,148, 11,108, 17, 36, 25,142,184, 19, 8, 70,101,141, 61, 42,178, 32, + 31, 71, 84,180, 48,106,157,179,222,182,127,203,233,193, 11,242,154,238,202,250, +200, 85,243, 5,200,224,147,180,107,103, 98,163,231, 27,236,193,137,120,102,127, + 8,183,252,197, 15, 8, 43, 70,203,247, 11, 6,156,165,243, 60,164,205,213, 12, + 6,171,192,126, 33,219, 5, 32,149,127,215, 91, 14, 68,198, 59,105, 36, 38, 40, +102, 98,237,199, 6,119,143,212,116,192, 89,185,148,112, 98, 18,225,207,101,202, + 37,157, 5,226,202, 31, 90, 12, 48,118,169,116,150, 90,144, 28,147,203,149, 13, + 88, 83,135,241,105, 1,209,254, 37, 72, 59, 63,161,174, 54,221,162, 92, 66, 76, +110, 9,138, 28, 39,218,228,114,100,240, 25,147,239, 7,248,203, 76,171,165,117, + 41,185,144,111, 49,247,124,244,202,146,191, 24,118,190,172,227,200, 19, 27,227, + 79, 22, 49,215,106,153,220,108,122, 88,162,139,159,192,169,236,195,111, 93, 93, + 55,208,231,211,150,214, 11, 4, 23,224,139, 7, 15,218,166,143, 84,189, 57,171, +117,149, 45,142,205,183, 60,231, 66,204, 79,202,249,158, 13,110,205,234,213,215, + 35,236,190,135,120, 60,228, 66,171, 96,175,183, 37,125,186,158, 10, 30,215,240, +251, 33,177, 59, 22,171,228, 1, 27, 1, 75,143, 93,112, 46,110, 17,103,203,217, +158, 68, 5, 82, 70,122,218, 24,113,208, 44, 6,246,237,214, 27,143,146,100,167, + 68,195,249,199,186, 5,156,198,120, 11,213,121,112, 44,134,184,201,207,223,224, +192,241,190,102,144,140, 20, 57,182, 4,185, 7, 70,239, 44,106,189,229,237, 66, +101,225,218,211, 55,205, 83,142,197,220, 8,243,186,124,145, 67,243, 76, 90, 28, +234,154, 12, 51, 90, 12,174, 16, 87,110,126,141,123,138,211,139,142,250,228, 72, + 54, 69,170,225,231, 5,194, 73, 5,196,179, 6, 24, 78,229, 93,152,188, 90, 51, +164,208, 86,109,230,143,228,208,146, 68,139,226,150,121,135, 53,199, 54,190, 73, +140, 90,103,209,194,118,192, 50,194,108, 84,149,145,202,215, 42,140,164, 50,179, + 86, 72,206,101,247,217, 56, 71, 48, 41,198,146, 31, 99, 87, 89, 57, 68, 27,218, +185,202, 75,244,238,187,135, 89, 59, 67,146, 19,105,126, 59, 76,192,102,157,253, +253, 64, 7, 34, 90,172,128, 23,217,189,128,230,217, 51,128, 81, 48, 70, 2, 84, +183, 71,229, 14,227,249, 43,182, 1, 65,158, 68, 16,216,128,244,184, 15,190, 69, +157, 42,155,113,195,219, 11,102,143,203,254,170, 59, 67, 5, 36,205,241,188,228, +199,163,169,207, 41, 64, 26, 35,151,222, 13,206,232, 35, 54, 17, 31,156,187,181, +148,251,117, 5, 37, 59, 35, 43,126,131,146,201,189,182, 77,177,128,159,158,209, +234,222, 50,222, 81,167, 68,223, 55,103,121,158, 6,163,147,139, 85, 28,166, 36, +102,151,183,134,132,232,199, 68,187, 70,237, 66, 18,119,131,123,219,128, 72,128, + 71, 41,102,105,247,234, 57,163, 46,150,223,135, 62,207,122,151,252,214,162,247, + 25, 89, 76, 96, 64, 93,174, 50,124, 72,203, 34, 88,219,109, 29, 15,166, 47,116, +184,166, 19, 99, 14,127, 28,131,148,141,126,185, 6,241, 30,189,104,255,153,109, +239,224,252,198, 85, 71, 16,214,241,165, 68, 75,227, 29,222,211,254,151, 99, 64, +139, 72, 78,254,143,189, 56,200,166,211,200, 11, 62,168,138,122,140, 17,111, 31, + 3,195, 49,117,125,122, 56, 74,101,202, 82,102,195, 85,253, 61, 77,195,199,123, +108, 2,230, 7,183,224, 92,237,141,178,221,207, 23, 76,125, 39,104,157, 81,237, +180, 41,230,188, 37,215,149,120, 49,177, 75,219,158, 58,181, 27,158,126,128,100, +216,220,225, 88, 88,102,232, 63,133,250,242,175,145, 6,183, 67,155,104,238,122, +212,146, 72,238,121,148,243,135,141, 60, 76,128, 88,108, 10,102,136,161,148, 18, +178, 47,169,205,236, 13, 65, 52, 58,147,132, 27,232,220,158, 54,153,127,119, 41, + 99,113,167, 76, 57,144, 73,195,227,158,154,232, 81,145, 40,107,203,124,150,113, +215, 28, 44, 68, 39, 85,208, 95,160,220,239, 95, 92, 96, 43,186, 48,227, 98, 67, +225,163,226, 57,189, 98, 16, 18, 6,154, 87, 84,209, 91, 18, 44, 3,253, 53, 33, +200,239, 15,119, 2,207, 69, 81, 92, 23,198, 58, 11, 21, 16,229, 79,159, 60,164, +148, 70,128,169, 1, 94,235,139,123, 51,122,146, 25,232, 16,231,170, 27, 36,131, +178,174,177, 92, 74, 22, 71, 46,114, 84,157, 82,132, 50,170, 97, 97,221, 32, 89, +138,206,108,214,251, 65, 75,118,220, 12,238, 7, 67, 90, 63,219,212,153,192,173, +117, 43,140, 3,137, 76,158,148,104,144,166,146, 18,235, 72,182, 84, 65, 89,199, +125,215,212,189,245, 4,140,129,239, 88,107,120, 86, 6,190, 29,106,199,134,117, +117, 97,211, 30,188,127, 76,201,170, 19, 37, 97,245,163,111,234,123,138, 13,126, + 68,213, 73, 2, 76, 82,171, 53,133,238,200, 42, 7, 96,132, 4,148, 80,208, 5, +123, 17, 76,156,248,193, 14,179, 12,234,182,141,138, 73, 68,111, 93, 72,141, 61, + 35, 9,112, 18, 99,226, 92,223,133,165,161,184,211,146,198,232, 37,139,166,134, +186, 83,199,233,120,244, 36, 92, 31,129,140, 54, 21, 65, 97,104, 78, 78,233,192, +145,183,216,187,102,169,246, 53, 71,202,211,196,161,179,135, 75, 58, 93, 61,173, + 32,176, 92,232, 49,245,168, 1,195,239,107, 36,157,176,210, 0,165,200,207,226, +201, 87,192,177, 84,182,165,173, 29,246, 66,234,199, 97, 12, 38,161, 44,190,199, +195,246,211, 3, 24,224,131, 4,142, 86, 8, 93,131,234,214, 21, 83, 13,124,135, +103, 56,128,105, 98,181,141,248, 92, 10,109, 28, 0, 58,237, 45, 35,118, 77,152, +196,147, 12, 38, 49,252,216, 22,123,106, 60, 74,222, 17,120, 60,240, 77, 92, 11, + 42, 38,179, 28, 43, 18,223,210, 65, 40, 19,112,133, 63, 82,130,101, 10,171, 85, +135, 10,230, 59,228,189, 64,157, 0, 41, 63, 34,152,122, 81,253,183,167,100,183, + 77,157,241,232, 28, 45, 53,156,216,127,212,209,119,161, 16, 45, 22,137, 45, 25, + 56,115,202,143, 40,158,219, 48, 13, 48, 29,169,171,122,241, 8,215, 35,151,210, + 93,149, 4, 14, 49,135, 98, 21, 84,239,128, 30,130,140,203,176,167, 80, 49,244, +242, 43,245,213, 88, 66,248,117, 27,219,199,114,113,201,194,204, 80,193, 15,179, + 48,125, 51,152,244, 58, 75, 74, 40, 67,162, 41,192,161,146,232,164,148,161,188, +164,121,104, 20,133, 87,214,249, 66,149, 37,185,234, 65,133, 65, 4, 58,158,228, +180,120,189,200, 67,196,170, 74,202,233,229,135, 52, 34, 68,123,211,178,125,239, +250,250, 5,109,139, 29,186,146, 44,202, 58, 53, 17, 2, 74, 40,128,197,203, 59, +240,220,208, 32,122,192, 92,224,204,132, 41, 27,176,232,143, 33, 77, 38,132,225, + 67,167,149, 73,111,242, 36, 54,207,243,230,162, 18,115,100,103,141,225,117, 75, +192,130, 4,234,215, 68,152, 5,163,102, 73, 75,122, 87,162,251, 98, 97, 8,168, + 11, 42,242, 37,114,202, 84, 34,191,155,161, 94, 71,121, 19, 97, 5, 76, 47,223, +109,109,245, 83,135,224, 15,116, 5,180,118, 30,244, 41,149,252,187,233,175, 21, +132, 15,230, 31,181,239, 27,117, 76,224,214,240, 85,225,251,183, 59,136,182,188, +213,135,145, 45, 16, 90, 49,145, 98,120, 67,222,142, 78, 36,210, 4, 9, 42,105, +197,188,171, 43, 51, 94,137,216, 11, 13, 50,159,250, 82, 18,194, 26, 74,250, 2, + 56, 98,124, 59,106, 30,178,150,228, 59,153, 18, 44,196,104, 36,252,234, 25, 87, +153,100,153,126, 45, 20,103, 72,161, 78,180,162,123, 88,105, 74,222, 13,162, 33, + 21,134, 51,207, 2,217,177,168,174, 39,139, 8, 41,153,148,138, 6,117,119,139, + 18,151,104, 89, 60, 89, 74,106,130,133,124, 76, 1,249,156, 93,150, 56,207, 56, + 59, 13, 84,168, 28,183,132,131,170,180, 14,210,217,141,181, 28,234,232, 60, 33, +172, 44, 25, 99,230, 1, 83,234,242, 62,148,238,197,164, 40, 48, 33,139,252,232, + 68,231, 87, 18,221,150,163, 75,220,233,190,201,242,214,213,225, 98, 57,175,146, +137,251, 86,245,210, 13,151,248,220, 5,108,124, 25, 23, 47, 97,100, 50,124,232, +209,206, 68, 7,198, 69,160,136, 68,228,101,136, 17, 60, 73,144, 17, 58, 12,157, +228, 11, 20, 52, 13, 64,236,236, 45,255,165, 17,172, 91,184, 71, 27,190,110,161, +135,157,151,150,214,234, 49,226,219,146,157,218, 89, 18,161,122,125, 3, 11, 18, + 99, 18, 68, 78, 29, 31,134, 56, 77,196,197,241, 56,107, 49, 26,160,226, 4, 4, +242, 23, 95,184, 5, 66, 75,185, 51, 24,136,191, 11,131, 31, 59, 81,126,183, 9, + 86, 67, 97,144, 89,137,240, 37,162, 78,225, 40,134,163,133, 73,165, 4, 99,124, +192,191,104,121,165, 0,160, 19,153, 13, 20, 2,215, 73,162,232, 42, 64,199, 92, +166, 12, 14, 64, 96, 14,199,223,182,120,248, 66,248,107, 69,191,215, 18,190, 33, +229, 31,181,137,211,154, 48, 21, 81, 92,152,202,185,162,133, 5, 14,171,157,132, +208,202,212,206,112,170,235, 58, 50, 12, 14,241,119, 24,180,188,235,239, 71, 12, +138,204,119,171,177,122, 98,228,200, 20,213,226,214,174,251, 44, 83, 27,104,108, +221,140, 96, 6, 71,143, 93, 87, 63, 20,125,161,208,119,155, 46, 87, 62, 4, 53, + 89,219,215, 64, 52,195, 80, 31,254,236,184, 12,211, 64, 68,135,187, 94,165, 51, + 14,164, 82, 82,180,192,106,214, 41, 31,245,232,198, 29, 57,108,144, 44, 54,108, +108,136,207,228, 16,241,134,112,161, 11, 3, 38, 77, 12,139,169,145,150, 82, 34, +230, 0, 41,228, 79, 50, 1, 80,180,124,237,136,112, 17,103,175, 70,118,178,100, + 32,155, 51,164,144,127,107,203, 15,151, 71, 35,174, 97,212, 74,203, 41, 1,253, +224,125,136,177, 66,199,174,163,126,239,216,153,198,244, 88, 83,246,178,235,235, + 61,156,114, 68,170,203,102,202,215, 74, 82,137, 5,135,186,158,216,241,235,151, + 27,113,237,198,154, 80,134, 48, 23, 71,104, 28, 97,106, 17,243,229, 93, 16, 92, + 78,132,227,239,169, 19, 7,211, 15, 3, 27, 39, 70,149, 62,240,222,144, 29,127, + 15,121, 87,159,157, 93, 20,195,238,233,192, 58,212, 67,208, 22,135,205,143,100, +135,196,189, 19,172, 18,219,156,244,114, 92, 50, 63, 54,140, 68,151, 12, 84, 82, +208, 99, 10,187, 66,222,245,180, 29,161, 10,141, 31, 86, 34, 10, 57,136, 92, 94, +145,255,228, 32, 65,220,163,147,247,223,140, 29, 33,155,228,141, 23, 51, 38, 80, +183,249, 74,112,189, 40, 65, 21,111,145,117, 12,175, 61, 41,167,218,210, 63, 87, +131,222, 93,188,209,106, 49,123, 9,197, 20, 46, 83,179,215, 60,125,130, 30, 93, +112, 29, 14,122, 93,148,168, 27, 26,158,160,221,229,212, 62,110, 2,132,163,195, +128,179,218, 98,216,173, 23, 52, 9,102,182,149,108,112,190,237, 26,181,225,191, +203,165,194,191,130,105, 85,146, 29,235,147, 4, 23,192,113, 28,203,150,211,235, +254,192,188,137, 30,245, 77, 79, 68, 28, 94, 41,249,211,107, 95, 39, 50,145,136, + 35, 64,172, 95, 55,187, 4, 30,175, 91,224,106, 5, 71,213,226,203, 45,255,147, +213,150, 87, 58,210, 16,158,112,175,170,137,180,254,168, 70,254, 8,112,130, 59, + 12, 4,162, 51, 55, 30, 1,130, 73,115, 98,220,177,138, 74, 34, 89,113,128,148, +105,244, 59,125,124,186, 14,118, 39,164,215,134,167,233, 73,212, 4,245, 37, 18, + 20,172,150, 58,177,215,212, 28, 50,235,136,125, 32, 15, 43, 70,140,160,168,165, +209,141,190, 82,203, 86, 52,172, 44, 3, 57,254, 9, 45, 32,219, 0, 90, 28,181, + 29,160, 82, 34, 66,249,220,166,187,164,176,210, 26, 38,230, 70, 66,234, 23,251, +205,138,231,202,175,210,161, 67,255, 72, 8,171,143,183, 97, 72,252, 46, 39,122, + 38, 1,202, 12, 35,137, 76,128,133, 18,224,219,225, 16,198,210,149,226,139,148, +213,167,120, 38,103, 90, 40, 95,213, 84,146,134,237,132,181, 84, 32, 19,243,215, +181,141, 47,248,178, 13,121, 1,169,115,181,208,218,220,134,183, 22, 58, 8,195, +222, 55,185,193,205, 85, 65,202, 65, 52,217,244,114,190,193,251,134,117, 60,250, +250,124,115,176, 61,235,127,112, 22,136,214, 80, 7,214, 44,181,161,188, 1,250, +142, 77,166,125,178,250,217, 1, 62,158,253, 54,149, 8,203, 28, 24,126, 6, 15, +105, 69, 65, 59, 84,235,150,130,125, 66,189, 77, 28,106, 27, 72, 80,121, 92, 38, +128,115,144, 63,156,153,184,123, 45,130,235,126, 26,112, 97,200,192,102,232,254, +174,243, 84, 48,149,144,181, 11, 82, 51, 23,117,132, 8, 29, 84, 59,176,231,115, + 92,218,211,179,196,116, 71,217, 26,179, 30,128,138, 88,228,252,193, 58, 0, 30, +240,170, 67,234,209, 32,142, 9, 10,144, 18,160,120,145,235, 42, 80,121, 63, 73, + 88,128, 48, 82,120,175,170,233,163,227, 34,123, 88,148,226, 87, 13,232,133, 33, + 45,251, 21,166,107,166, 83,219,194,170, 91,230,238,191,148, 10,109,201,137,140, +115, 32,123, 10, 74,218,106,211,205, 16, 47,248, 23,196,120,167,115,204,224,120, + 2, 28, 59,151,178, 36,111, 51, 52,216,146, 97,242, 20,112, 47, 24,148, 36, 22, + 61, 12, 68, 98, 66,211,195, 13,197,107,166, 82, 28, 27,188, 43, 76,141, 68, 36, +202,194, 72, 81,161,157, 38,240,222,120,249, 0,194, 50, 6,170,183,116, 45, 36, + 16, 52,211,155,200, 77,176,191,117,100, 21, 90,252,148, 54, 15,252, 80, 1,102, +178,235,215,177,123,149,211, 69,122,229, 58,251, 21, 93,239,177,124,198, 26,120, +126,100,180, 45,113,231, 3, 18, 4,145,244,174,252,159,136,124, 39,215, 6,196, +233,198,113,156,202,106,200, 38,190,118,249,212,202,122, 98,137,150,235,241, 58, +120, 25, 87,248,209,180, 55, 50, 33,176,112,152, 69,164, 25,249,128,140, 2, 45, +182,108, 8,129,112, 97, 64, 73, 54, 27, 34,196,221,216, 42,138, 97,219,176,143, +181, 4, 57,142,180,173, 17, 34, 40,165, 8,248,180,234, 34,210, 92, 16, 36, 91, + 76,132,165, 95, 59, 83,100, 45, 76, 23, 23,200,156,158,166, 41,108, 30, 3,120, + 41, 65, 73, 83,114,253, 24, 53,153, 57, 11, 11,242, 43, 29,252, 2, 99, 84,158, +188,208,240,203,137, 25,124, 20,183,139, 22, 49,230, 32,188, 90,241, 58,185,208, + 24, 19,198, 1,115,239, 5, 24, 41, 77, 64, 88, 83,115,140,223, 9, 56,142, 69, +188,100, 78, 82, 81, 69,156,116,211,161,176, 59,209,188,101,227, 74, 87,190,107, +219,107,147, 16, 20, 31, 27,197,151,125, 54,139, 34,141, 90, 2,130, 95, 34,167, + 58, 66,147, 11,161,145,233,134, 63, 42, 58,196, 22, 37, 88,189,211,215, 87,210, +200,204, 11, 16,190, 53, 79,136,154, 12,212,239,251,109,164, 62,126,122,132,139, +196, 39, 21,195,164,219, 50,199, 31, 42, 68,189, 39,141,127, 46, 30, 53,165, 16, +233,114, 29,114,170, 21,120,134, 68,139, 37, 66,176,207,241,138,244, 95,105,178, + 2,130,110,133, 24,195,118,247,141, 24,213, 43, 33, 30,121,147,199, 12, 99,188, + 9,152, 78,113,122,167,113,121, 81,185,157, 3,174,203,249,145, 63,146,187, 70, +182,139,190, 4, 88,105,207, 65,235,100, 99,214,189,118,195,135,164,198, 51, 78, + 50, 21,140,135,245, 20, 18,106,123, 19,121, 33, 54,102,126,244,170,239, 40,104, + 50, 24, 94, 90,147, 18,115,186, 65, 12, 25, 4,110,207,232, 37, 94,193,226, 75, +183,220,128,138,118, 38, 88,197,248,140,139, 3,243,224,163,134,194,252, 70, 61, +177,115,232, 24,168, 82,148,135,184,249,127,101, 53,177, 95, 92,166, 1, 29, 39, + 79, 64, 61, 27,206, 49, 0,166,115, 93, 68,223,188,198,145,210, 54,166, 61, 12, +222,185,174, 87, 16, 70,205,202,203,234,207,129, 20,175,160,152,122,205,171, 69, +172,219,252,128,208, 15, 70,253,175, 54, 78, 72, 0, 82, 68, 18, 72,191, 76,184, + 85, 97,113,252,196,185,107,242,185,146, 8,130,140,133, 32, 82,153, 86,148,209, +176, 23,113,231, 64,126,176,111,242,165,130, 78, 59, 96,118, 30,185, 95, 7,215, + 35, 28, 59, 95,218,184, 71, 21,130, 39,139,121,174, 40,160, 98,190,155,253,122, +242,211,197, 84,250,145, 52, 70,151,113,172,139,146, 59, 14, 4, 27,108,212,201, + 48,160,248, 92,198,233, 3,236,194, 80,165,112, 12, 25,110,255, 95,186,227,238, + 56, 0,236, 45,158,247, 72, 52,207,246,182, 93, 51,131,219, 8, 61,130,118,191, +107, 95,157,179, 67, 91, 52,110,121, 45,177,151,243,232, 63,179,125, 89,211,141, +235,249,186, 42,217, 32,179,207, 59,179,163,173, 96,108,173,150,222,198,233,244, +147,120,125, 95, 83,215,234, 35,117, 71,193, 90,223,211,187,114,250,179,176,193, +225,125, 54,101,253, 61, 65,130, 66,100,209, 68, 18,196,128, 12, 25, 73,221,152, +235,195, 81, 29, 82,147,234,104, 47,168,128,130, 45,188, 64,245, 24, 30,144, 14, +156,250,108,233,171,240,230,212,100, 87, 18,181, 20,236, 34,102, 11,130,219,212, +211,205,228,211,132, 78, 52,239,110, 64,135,145, 39,118, 34,161, 9, 82, 75, 23, +180, 21,213, 40, 3,181, 52,145, 82,141,159,248,128,154,162, 54,199, 47,154,250, + 43,197,244,154, 20, 96, 32,152, 22,232,180,177,124,225, 97, 89,252, 9,156, 95, + 58,224,169, 56,122,105,144,209, 19, 22,254,111,251, 15,174, 97,193,175, 13,111, +183,233,115, 19, 84,151, 46,177,140, 91, 11,249,180,163,207,100,139,133,250,101, + 0, 71, 71,101,113, 34,109, 22, 42,180, 59, 68,208,254,110,162, 89, 80, 99, 99, + 37, 31,253,144,248, 51,219, 68, 79,192,249, 21,173, 57,192,108,109,243,139,230, + 46,197, 28,133,118, 53,148, 12,224,106, 58,203, 56,188,169,237, 31, 26, 14, 49, +115, 58, 80,124,100, 89,175,109,105,239, 18,141, 67,204, 57, 61, 40,218,248, 72, + 50,254,107,104,164, 19,236,134,139,125,130,159,213, 64,252,229, 24,109, 99,103, + 30, 21,166,228,240,191,194,205, 40, 22,108,121,194,162, 56,185, 56,225, 5,130, +140,229,186, 4,155,251,112,154,164,169,148, 60,191,220,190,132,180,204, 26,154, + 77,205, 88,240,224, 47,142, 21, 28,190,150,173,169, 65, 27,237, 84, 92, 15,216, +131,243,116,192, 20,156, 7,184, 64, 89,101,135, 81, 0,251, 48, 20, 94,164,147, + 72,251, 4, 5,143,167,150,115,134,145, 20, 60,178,128,125,128, 41, 78, 26, 81, +157,128,219, 49, 41,207, 78, 20, 18, 58, 22,197, 16,102, 3,214,205,229, 15,254, + 40, 84, 20,195,123, 95,175,121,214, 5,126,209, 34,242,202,123,106, 41,215, 10, +192, 37, 43,119,143,225,187, 37, 49,166,126, 84,151, 9, 35, 90,149, 59, 4,215, + 92,160,128, 40,219,203,176,226,226,154, 67,222,141, 58, 13,135,241,237, 62,188, +142,153,110,104,162,109, 69, 33,145,185,149,195,207, 93,123, 14,250, 20, 63, 89, + 86,202, 56, 62,126,181,157, 52,180,247,179, 74, 32,181,248,201,225, 11, 48,123, + 27, 96, 30,233,101, 35,158,163,216, 28,135, 32, 83,140,165, 76,135,114, 9, 15, + 60,128,189, 13,178,208, 90, 68, 54,150,229,176, 39,218,207,188, 99,104,254,179, +148, 22, 52, 33, 91, 65,118,216,195,254,216, 38,120,255,166,152,196,188,253, 51, +232, 8,116,221,145, 1, 63,246,106, 48, 36,216,251, 84, 5,239, 99,103,225,108, +233,221,129, 97,143,157,188, 13,159,156,183, 95, 26,192,176,225,104,230,232,249, + 10, 5,147, 81,156,203,215,189,151, 63,125,139,154,107,165,128,112, 35, 88,136, +126, 90,171,190, 88,139,236, 76,176,134,173, 98, 93, 14,110,153, 70, 58, 70,248, + 87,174, 41, 58,253, 13,158, 54, 68,114, 16,145,233,182,132,122, 25,184,120,236, +185, 20,151,172,244,194, 29,135,214, 42,117, 75,152,174, 32,142,135,202, 73,123, +201,245, 79,232,226, 48, 28,105,180, 4, 41, 18,236,120,116,127,228, 44,249, 10, +194, 24, 7, 53, 28,221, 75, 40,232,128,171,239, 88, 56, 62,104, 11, 20, 18,211, +170, 81, 18, 26, 34,194, 3,239, 78,102,173, 14, 16,186, 81, 12,109,142, 79, 62, + 32,209,114,108,146, 50,210, 0,105,167, 23, 74, 32, 66,208, 55, 97,130, 88, 62, +104,142, 23, 65,207, 57, 31,112,203,128, 63, 77,237,102, 43, 19, 44,150, 87,130, +217,157,133,150, 54,162,227,163,106,155, 80,170,215, 67, 72,113,233, 79,114, 21, +254, 61,143, 54, 39, 28, 42,217, 74,244,160,203,103,138,104,203, 38,205,186,148, + 92,144,205,108,122, 85,107,207,237, 22,193,121,183, 56, 96,124,108,205,210,128, +225,239,104,166,229,136, 37,233,179,174,119,129, 25,232,194, 37,143,139, 46,231, + 91,151,134,195,200, 41,227, 52,215, 39,247, 6,204,155, 49, 39, 15,199, 86,161, +242, 23, 75,164,231, 23,201,230,122,219, 73, 67, 33,130,113, 54,252,171,235,178, +164, 40,156, 59, 43,117, 81, 71, 40,164, 77,230, 67,130,249, 73,198, 55,186,145, +183,253,153,226,145, 9,182,222, 79,192, 43,113,159, 59,213,232,133,192, 9, 96, + 33,158,236,139, 18,167, 44, 97, 73,223, 44,222, 75, 9, 88,121, 60, 65, 6, 97, +106, 29, 90,212, 7,139, 21,175,111,154,144, 21,216,235,111,235, 34,221, 79, 7, +176,111, 1, 91,234, 2,238, 35, 31,142,203, 60,224,107, 87,112, 38, 83,240,133, +251, 30,185,151, 96, 1,108, 96, 0, 70, 82, 57, 30, 48,145,115, 6,152, 92,230, + 51,121,235,211,155,168,114, 93, 49, 39,214, 93,162,203, 94,207,131, 8,165,129, + 1, 15,226, 47, 0, 47, 0, 47, 0,236,158,123,252,100, 24,159,162,215, 88,107, +173,181,214,207, 90, 89,110,138, 34,229, 7, 50,100,247,220,227,135,206,150,105, + 30, 13, 20, 5,159, 78,230,106,103,255,253, 49, 12,195, 34, 13, 22, 39, 90, 52, +173, 42,245,147,254, 32, 69,166,205, 92, 86,183,234,147, 18,165,148, 18,242, 20, + 73,200,238,213, 11,186,167, 40, 82, 9, 25,178,123,238,241, 19, 5,111,173, 35, + 63,144, 97, 86, 54, 49, 27, 8,180,109, 77,230,104,208, 33,231,253, 9,224,108, +211,204,138, 22, 36, 4,100,200,238,221,217, 67,151,108,109,137, 1,137, 18,109, +107,219,127, 47, 57,173,167,175,172, 74, 84,255,194, 12,176,107, 31,221,125, 10, +163,144, 33,187,231,222,172, 40,138, 90,201,149,237, 41,106, 13, 6, 67,227,176, +251,200,162,227, 64, 66,200,253, 0,210,138,118,185, 76, 8,147,108,242,130,181, + 9,132,193,168,227, 77,149,179, 27, 19, 53, 17, 8, 6,134, 70,130,241, 72,146, + 99,195, 26,238, 1, 83, 80, 81,216, 48, 28, 8,140, 65, 65, 96, 10, 64, 40, 8, + 4, 4, 97, 16, 18,130, 32, 16,130, 48, 4, 8,132,112, 8,131,112, 20, 66,113, + 12,151,126,171, 54,236, 68,138, 20,161,135, 16,197,149, 97,140,134,234,213, 62, +113, 81,110,194,144, 80, 68, 67,147,245, 77,146,133,118,144, 76, 76,156, 74,144, +151,160,189, 62, 35, 89,245, 62,107, 56,133,117, 54,235, 49, 75, 24, 78,244, 69, + 1, 31, 32, 38, 56,198,155,209, 32,247,181,192,195, 72,184,126,155, 87, 71,182, + 4, 37, 99,227, 54, 50, 48,173,229,106,222, 7,178, 6,204,139,169, 71, 74,140, +164, 37,180,107,127,138, 52, 98, 94,184, 91, 28, 4, 86,179,222,198, 2,132, 87, +169, 73, 50, 73, 92, 1,247,132,236,199,201, 66, 64, 1,171, 24, 33,120,178, 60, + 51,131,102, 9, 81,219,251, 80,250, 21,169, 34, 69, 38,137, 17, 29,189,215, 52, +144,167,228, 54, 70,254, 19,101,103, 9,214, 45,133, 94,221,254, 15, 53,198, 78, +126, 94,111,221,166, 29,166,113,124,123,135,171, 34, 9, 55, 56, 67,208,245, 28, +196,207,245,154,230,242,190,235, 15, 14, 59, 67,125,174,165, 39, 37, 70,214,181, + 98,153, 1,108, 86, 28, 82,120,211,183,155, 62,131, 26,105, 27, 7,191,219, 32, +238,198,157,213, 7,173, 49,183,112, 90, 79,150,118,126,212, 66,146, 73,166,102, +212, 26,114,166,212, 77,244, 68,226, 51,180,176, 88,252, 48,149,233,208, 30,154, +133,106,198, 73, 98,171,141,234,103, 3, 74, 90, 40,220,192,235,225, 24,124,144, +200, 77,170,133,245, 3,162,205, 8,170,107, 19,229,226,116, 84,125,173,154,198, +213, 83,188, 66,141, 83,168,168, 45,117, 55, 85,172, 72,146,167,135,124, 43,198, +105, 49,241,110,146,111,118,207, 42,228, 76,134,241, 6,233, 89, 26, 47, 44, 75, +134,167,165,157,196,104,208,157, 6, 54, 78, 53,210, 83, 17,227, 40, 60,154,205, +151,101,221, 25,227, 15,146,187,171,221,189,255,217,186,129,169,202,171,235, 50, +189,241, 40,100, 47,226,241, 22,146, 17,228, 7, 8,159, 48, 75, 75,177, 17,177, +254,127, 19,176,229, 15,213, 93,133, 66, 12, 6,196,212, 64,113,235, 65,167,122, +120,142, 6, 1, 37, 80,167, 83, 70,207,173, 30, 55,181, 46,156, 59,245,218,104, +228, 9,115, 84,102, 72,186,238,131,180, 97, 57,141, 88,163, 53,157,253, 8,130, +209,212, 10,134, 94,255, 97,208, 59, 72,113,228, 82,162,220,146,164,129, 92,201, +233, 48,174,249,183, 29,177,198,229,151, 41,131, 24,237,219, 0, 29,226,232,130, + 87,229, 22,135,186,145,208,207,149,158, 92,167,219,155,170,129, 46, 1, 57, 13, + 15,193, 90,100,184, 3,176, 40,210, 37,106,252,128,225, 58, 34,236, 82,119,240, +126, 63, 52,173, 31,132,213, 80, 10,101,191,179,218,129, 65, 35,164,206,230,103, + 23,209,171,209,153,250,211,185,109,105,246,250, 80, 41,233, 50,116, 7,222,184, +124,216, 1, 93,101, 8, 52,209,144,180, 21,215, 5,231, 33,218, 10,226, 84,209, +234, 94,238,151,218,192, 18,155, 5,192, 70,174,244,111,205, 2,142,121, 57,188, + 11,212, 23,220, 15,186,160,228,152,117,130,102,252,152,150,111, 8,247,149,112, +169,223,219, 25,252, 29, 53,232,128, 8, 84,112,227,191, 46, 84,240,227,146,159, +190, 65,204,216,227,194,123, 55, 48, 99,131,209,197, 27,145,167,140,110, 22, 44, +174,199, 2,131, 2,105, 65, 52,184,217, 33, 98, 52, 79,151,115,198,130, 71,183, +207, 71,119, 89, 87,161,102,125,144,212,129, 62,172,106, 17,132, 40,120, 45, 89, +202,171,225, 68, 66,231,168, 23,178, 18, 86,219, 25,251,236,171,113,202, 34,163, +130, 56,201, 21, 6, 85,120, 23, 97,164, 92,160, 68,147,131,164,172,223, 6,253, + 45, 81,141,113,114, 33, 57, 21,105,206, 0, 2,131, 9,215,188, 54, 9, 34, 47, +190, 54,226,231, 81,159,161,177, 57, 94, 51,117, 12, 34, 57, 52,200, 87,252,108, + 0,249, 9,190,210,171,165,138,214,142,173, 9,138,118, 3,207, 54, 48,250,103, +102,174, 47,190, 66, 67, 73,116,131,134, 38,172,207, 98, 81,211,222,170,127, 42, + 70, 21, 30,251, 4, 92,178,167,108,122, 4, 55, 18,156, 96, 21, 29, 32,186, 5, +164, 75, 76, 8,108, 10, 56, 75,191, 84, 32, 18, 14,214, 82, 22,133,156, 28,186, + 37, 22,168, 65, 46,169, 1,225,191, 10, 57, 8,187, 36, 1, 64,252, 47, 42, 54, + 3, 68, 23,227, 63, 32, 83, 24,241,148,152, 3,234,134, 65, 45,229, 97, 10,125, +216, 49,224,151,133, 56, 32, 46, 26, 50,224, 9,133,207, 64,167, 10, 40,147, 58, +211,128, 89, 2, 51,105,129,172,204, 41,215, 64, 27, 22,112, 38, 93,182, 1, 53, + 20,128,166,198,230, 12,236,230, 13,248, 53,132,143,243, 74,249, 48,200,113,171, +252,160,200,249,160,124,136,228,120, 86, 62, 96,114, 58, 81, 62,124,114,184, 43, + 31, 76, 57, 62,149, 31, 90, 57,254, 41, 31,104, 57,175,148, 15,187, 28,111,149, + 15,194,156, 15,202,135,100,142,103,229, 7,104, 78,126,197, 81, 62, 92,115,230, + 42,130,114,193,155, 83,111, 35, 60,142, 24,168,124,146, 17, 51,170,130, 86,153, + 77,165, 84,188,178,101, 4,105,127,166,135, 86,249,127, 80,127,141,168,126,111, +218,102, 13,178, 67,117, 53,217, 57, 58, 9, 68,210,186,212,176,226,107,198,158, + 73,199,175,117,117,195,178, 11,118, 29, 76, 71, 75,138, 2, 62, 76,233,149, 55, +251, 89, 87, 22, 53, 12, 80, 68,143, 35,141,102,171, 13,212, 48,166, 79,160, 60, +232,205, 92, 85,227, 28, 29,194, 46,183,116,196, 42,202,143,145,200, 7,118, 49, + 29,125, 69,234, 95,116,145,128, 42, 68,140,211, 91,184,172,230,238, 44,120, 13, +117, 32,110,104, 3,113,184,139, 89,169,208, 75, 50,154, 19, 25,148, 43, 73,115, + 16,172,127,240,165,132,150, 53,137,225, 67,239, 74, 42,155, 7,172, 20, 53, 0, +155, 20, 77,119, 66,138,130,103,132, 99,198, 57,244,134,103,174, 85, 38,109,140, + 45,133, 50,212,251,131,189,153, 87,181,115,246,153,196, 71,122, 14, 8, 7,104, +195,139, 95, 92,217,250,100, 91,161,196, 90, 8,179,142,230,116,108, 52,151, 77, +130, 43, 21,212,252, 99, 60, 0,183,231,128,235,193,141, 71,172,118,175,108, 0, +116,188, 79, 25,250, 26,231, 91,106, 82,245,126, 93, 24, 68,125, 85,177,242, 23, +254, 0, 91, 67,241,194, 61, 14, 31, 97, 24,153,251, 3, 76, 87,130,152, 74,108, +229, 15,202, 95,164,198,128,255, 40,146,100,135, 49,128, 50,243, 25,121,164,182, + 55, 20,164, 47, 99,185, 39,207, 10,131,217, 72, 77, 18, 48,157,176, 95,237,240, +223,235,128,164,157, 36, 24, 5,131,128,234, 89,151,215,251, 39,223,247, 5, 10, +228, 24,147,218,180,121,252,141,151, 25, 0,172,240,254,115, 89,169,134,140, 87, +200, 2,193,185,152,147, 5,137, 13,220, 66, 15, 22,181, 0,248,123,193,125,169, + 23, 25,184, 16,251,119, 22, 4, 49,149,158,177, 11,119, 51,120,139, 88,169,241, + 5, 96, 15,218, 34, 85,202,130, 1,120,131,181, 8, 86, 26,196, 0,134, 65, 90, +228,205, 83, 4, 74,182,169,208,133, 50, 80, 3, 77,194,169,186,139,102,120, 5, + 58,115,170,173, 6, 52, 36,254, 64,237, 84, 45, 99, 26, 8,125, 47,108,243, 84, +229,128, 53, 80, 27, 95,130, 97,118,161, 38,181,178,124,170, 54,232,206, 33, 21, +239,169, 49, 62,144, 80, 4,125, 36, 60, 33, 14,123,160,198, 95, 64,247, 72,110, +144,193,166,134, 66,143,240, 13,158,177,223, 81,236,123,228,120,196, 62,176,134, +213,146, 65,220,145, 93,129,151, 97, 11, 36, 86, 33, 21,247,133,207,176, 17,193, +254, 18,171, 66,103,212, 52,204,113,196,174,176, 25, 2, 69, 54, 44,191,228, 95, + 11,153, 97, 74,244, 14,194,138, 33, 58,248,143, 42,123, 24, 64, 30,180,116, 24, +139, 10,224,129,233,226,199,211, 51,242, 28, 88,195,109,149, 79,137, 55,160,142, +122,179, 66,247, 33, 25,249, 25,148,150, 97,105,244, 72, 32,198,114, 83, 26, 86, +116,166, 59, 25,109,109,176,190, 64, 82,131,199,106,170, 48, 9, 72, 80,165,194, + 82,117,226,148,134,221, 23,235, 47, 59, 83,245, 22,225,144,229, 57, 85, 39, 46, + 58, 3, 39,173, 29,250,169, 98,135,106, 92,224, 17,217,204, 47,170,174, 12, 57, +195, 82, 71,204,117, 95,170, 34, 31, 61, 99, 4, 86, 94, 33, 85, 71,206, 16,194, + 26,167,170,170, 71,205,176, 0,219,216, 70,200,212, 29, 49,195, 1, 48, 20, 69, + 95,140,131, 40,210,171,146,119,216,168, 8,212, 78,194,195, 15, 85,206,185,120, +243, 83,174,154, 28,170, 33, 91, 17, 81, 62,229,190, 3,234,208,165, 5, 91,133, + 72,164, 97, 98, 80, 60, 69,121,153, 8, 70, 80, 66,113,178,216, 68,202, 28, 69, + 14, 78,180,199,206,248, 85,215,161,146, 16,116,129,201, 39,215, 30,133,114,107, + 17, 86,146,253, 98,219, 0, 70, 5, 64, 86,149,108,214, 86, 13,192,160, 1,112, + 97,141,149, 9, 6,188,129, 24,134, 46, 34,198, 9,139, 49,244, 7, 49, 12,109, + 47,145, 12, 28, 67, 25,110,202, 64, 34, 20,204,128,212,112, 47,102,205, 96, 53, +204, 17,115,242, 67, 6,113,207, 31, 35,192,144,142,136, 87, 6,216, 64, 10, 81, +217,192,173,140, 65, 68,152, 59, 44, 16,213,136,142,118, 4, 66,212, 83, 38,230, +241, 24,154,214, 99, 82,112,192, 57, 48,139,174,128, 0, 41,161,195,191, 50,146, + 1,234,160,147, 60,242,215, 3, 33,187,153,166,122,192,215,224, 51,232,245, 91, +147,216,143,154, 77,221, 51,201,100,164, 36,201,164,170,200, 21,148,164, 94, 16, + 1, 36,175,121,249, 49,221, 79, 51, 24,102,128,164,161,104, 15, 96, 86,232, 77, + 88, 95,177, 13, 38, 79, 26,185, 39,236, 77,152, 17,113, 20,176, 28,158, 85,111, +210,134,184, 26, 88,215, 8,177, 34, 62, 79,230, 40,226,120, 18,131,141,169, 8, +174, 58,207,214, 33,181,218,124,217,138, 68,239,230,195, 41, 18,202,197,175, 55, + 1,197, 29,159, 65, 4, 72, 64,100,168, 23, 18, 97,219,155,196, 16,113, 16, 64, +137,169, 91,209,132, 1, 60,158,142, 20, 5,214,222,215,194, 18, 13,191,110, 2, +116,218,164, 36, 7, 2,199,208, 86, 8,124,135, 45,163, 49,248,219,188, 76, 18, +115, 33,223,140, 54, 20,147,144,208, 13,140, 57,211,168,116, 63,162, 50,204,164, +145,221, 76, 14,170, 30,189,220, 6,166, 54,246,171,222,186,218, 57, 90, 9, 7, + 35, 51,155,105,174,163, 11, 43,173,198, 85,126, 86,207,239, 76,207,136,126,206, +100, 74,148, 30, 54, 28,153,222, 43,153, 55,188, 36, 7,156,193,194,214,103, 38, + 69,124, 77, 48,197, 41,237,245,102, 98,170, 86, 36,169,102, 37,130, 49,237,147, + 68, 52, 59, 90, 9,199, 44,171, 79,219,148, 72, 26,136, 99,105, 5, 93, 82, 85, + 7, 95,113, 47,153,140, 45,101, 90, 48, 11,226, 91,142, 76,251,114,204, 78, 53, + 99,118, 77, 87, 56,190,176,230,141,185, 6,236,159, 53, 33, 3,130, 48,181,110, +200,248,169,251, 14, 98,157,238, 70, 66,165, 99, 88,102,198,148,245,185,158,237, +144,121, 58,229,237,224, 57,143, 92,231, 15,148,136,100, 86, 23,156,133,133,124, +252, 16,202,207,229,118,183, 75,220, 37,199,120,108,153, 27, 80, 48,148,134,186, + 72,228, 54, 1,225, 17,123,238, 99, 57,174,114,210,148, 64, 85, 49,139,241,101, + 97,215, 33,239,143, 46,112, 2,211,117,214, 11, 11,221,253, 84, 16, 50,121,174, +203,149, 12,102,211, 59, 87,159,121, 74, 55,232, 35,135,163, 39, 84, 83, 80, 96, + 9,100,185, 49,140,135, 49, 59, 32,222,249, 46,154, 72,163,147,144, 47, 13,139, + 5, 9,138,230,222, 45, 65,128,123,197,204, 56, 3,110,105,232, 68, 74,208,128, +121,110, 20,242,105,114,242,113, 54,192, 17,176,239,103,168,191,153,152,136, 31, +243, 64,135, 6,236,162,163,105, 27, 92,161,243,213,149,111,172,150,102, 10,193, +115, 86,182,194, 69, 86, 4,240,180, 74, 27, 33, 14, 6, 27,176,188, 3,179, 32, +246,109, 53,245,198, 7, 14,252,113, 64,189, 77, 3,126,131, 24, 80,115,188,136, +204, 44,114, 46,132, 88,179, 82,198,115,151,246, 66, 16,169, 47,173,110,186, 39, + 16, 65,137,149,110,106,128, 33,188,238,152, 62, 43,189,160, 66, 71, 16,228,108, +178,247,175,235, 64,240, 93, 33,137, 17, 40,180, 94, 73, 2,157, 23,229, 0, 38, + 80,194, 43, 17,228, 96, 81,129,245, 96,191, 64,181,194,100,141, 21, 6,218, 4, + 47,243, 0,105,225, 57, 44, 55,144,100,129,204,133,130,181, 7,170,199, 66, 75, +241, 17,112,131,133, 8,142, 18, 48,113,126, 24, 51, 99,172, 74,208,110,194, 42, +125,161, 69,233, 27,149, 40,136, 22,180,145, 82, 30,173,122, 5,213, 66,103, 41, +233,120,169,120,193,120, 97, 62, 33, 33, 85, 85, 50,232,180,208, 18,206,169,195, +145,197,178, 6,243,160,188, 50, 32, 73, 88,227, 32, 66,240,108, 21, 28, 80,172, +118, 16, 34,208, 95, 68,170, 29,235, 30,228, 9,242, 50,127,109, 76,142, 20, 14, +206, 13, 8, 63, 37,200,153, 9, 39, 57,234, 88,217, 58, 92, 87, 0,102, 85, 69, + 32, 16,181, 27,149,166, 60, 86,192, 89,132, 59,143, 99, 71, 2,136,201, 20, 31, +180,223,237,133, 8,182,220, 20, 17, 0, 0, 80, 32, 60, 0, 59, 0, 62, 0,217, + 10, 90, 67,117,230,217,212, 49, 30, 21, 74,101,210,185,119, 90,196, 87,118, 70, +209,207,124,146, 61,167,194, 19,178, 35,221, 89,182,159,207, 94,156, 63,128,202, +125,118, 86,171,233,243,155, 93,133,235,182, 5,134,145, 72,252,203,196, 23, 84, +229, 87, 7,247, 63,206,159,131,205,113,141, 16, 52, 55,114, 94,175,139, 62,230, +208,151, 50, 54, 26,163, 98,102,217, 25, 11,176, 44,153,248,122,210,178, 81, 58, +139,155,158,222,186, 94,165,168,205, 35,167, 95, 81, 32,239, 54,199,230, 98,198, +158,247,174,103, 65,237, 81,200,131, 66,168, 63, 10, 25,103,198, 12, 85,104,111, + 11,171, 42, 67,181,174, 78,100, 57,215, 11, 51, 14, 41,189,174, 77,210,152, 38, +189, 26, 10,121, 29,144,174, 23,142, 29, 69,183,205,113,113,159,154,236,236, 3, + 78,152,166,249,201, 22, 86, 85,140,186,119,230, 3,251, 93, 11,122, 24,130,226, + 63,232,149,214, 87, 45, 96, 86,237,128,246,156, 12,138,246, 31,160,149,192,230, +186,238, 31, 63,219,219,165, 95,140,255, 69,112,244,101,240, 19, 4,132,194,168, +163,109,147, 36,133, 76, 7, 99,228, 16, 16, 28,142,137,131, 2, 77, 73, 41,168, + 12,247, 1, 99,128, 81, 16, 73, 40, 24,151,193, 65,160, 19, 4, 67, 24, 12,161, + 8, 40, 1, 33,132, 8, 12, 33,142, 40,193, 16, 99, 82,167, 3, 32, 45, 16, 50, + 98,181,146,103,150,180,163,243,194,168,184,213, 13, 32,188,108,166, 14,218,175, +170, 93,159,148, 92, 99, 29, 76, 62, 23,238, 70,121, 7,135,199,109,216,244,118, +116, 5, 87,216, 69, 42,131,153,248, 65,177,149,177, 91,186, 93, 93,249, 29, 81, + 73,211, 48,195, 6,246, 83,123, 40, 76,148,102, 19, 37, 62,241, 74, 29,144, 90, +215,153,221,156, 21, 95,136,148, 71,160,178, 33,165, 93,184, 51,212,144, 38,119, +250, 32,121,216, 10,132,203, 85, 29, 33,213, 14, 72,208, 26,132,195,165, 15, 1, + 70,175, 36,196, 2, 54,209, 76, 4,109, 2,136, 43,159,156, 92,195, 68, 86, 57, +129, 44,166, 99, 61, 74,147,121, 44,160,201,183,201, 11,118,149,205,118, 9,184, +106, 59, 64,143,169, 21,136,219,243, 51,230,169, 4, 35,219, 84,202, 47, 6,229, + 48,137,175, 86, 37, 80,247, 23,166, 28,169,107,187, 94,173,182,166, 18,158, 16, + 41,160,132, 22, 69,147, 46, 71, 6, 21,164,157,149, 78,136, 67,218,192, 56, 61, + 97, 81, 56,151, 78,196, 33,218,192,156, 80, 65,164,178, 97,138,110, 39,115, 77, + 47, 52, 94,251,162,253,201,188, 75, 35,220,235, 88,228,177,198, 67, 13,173, 87, +219,247,252,252, 29, 57, 30, 6,118,141,201,163,155,216,211, 50, 12,221,118, 66, +155, 73, 49,104,126,115, 43, 42, 35,172,158, 47, 13, 13, 72,133,165,218, 80,212, + 45,238,121,114, 50,175, 37, 32,186,128, 22,213, 29,149,184,189,165,179, 83, 6, +240,131,151, 63,162, 45,229,125, 62,198,211, 13, 6, 89, 61,157,226,239,156,239, + 36, 94,101,136,127, 90,125,140, 26,177,121,103,255, 30,207,165,114, 27,102,119, + 12,106, 25,133,143,220,160, 95, 31, 20,195, 93, 68,251,109, 18,172,182, 0, 21, +148, 85,228, 48,135,167, 46,156,237, 97,185, 66,144, 13,135,120,166, 5, 8, 31, +143,110,238, 26, 59,111, 53,254, 46, 35,201,224,240, 85,178,239,172,237,167, 42, +103, 27, 62, 88,114, 16,243, 0,159, 6, 24,244,210, 70, 81,251,208,172,203,199, + 10, 54, 82, 53, 83,176,114, 15,116,183, 96, 89,200,120,176,171, 22, 90,114, 16, +153,233,221,245,244, 68,194, 72,111, 82, 75, 47,144,215,121,183,116, 19,187, 31, + 3, 7, 39,188,103,105, 78,111, 65,215,120, 55, 55,102, 64,186,105,221, 53, 15, +184,131,130,127, 56,215,119,175, 43, 49,137, 56, 97,166,164,166, 63, 66,255,193, +228, 59, 9, 27,214, 58, 30,133, 3,145,200,171,135, 64,234,102,196,249,222, 95, +119, 90, 94, 92,242, 52,206,213,227,111,115, 84,225,249, 78, 47, 57, 35, 98, 9, +251,217, 42,199,101,202,250,243,162, 75,179, 46, 70, 58, 73,128,231, 61, 50, 14, + 62, 93,197,105, 73, 18, 89, 78,176,170, 95,183, 58,214, 96,207, 62, 65,148, 55, + 23, 68,116, 99, 63,156, 58,115,188,194,242, 83,126,102, 48,130,122,178, 92, 48, +172,128,135, 91,130, 61,112,235, 90,232,105,129,190,221,191,160,224, 32, 30,240, +146,108,238, 93, 39,150,240,244, 49, 74, 25,146, 57,126, 5, 67,182,224,170,168, +154, 56,129,174,182, 88, 16,246,240,234,135,150,206, 61,116, 24,179, 61,138,201, +211, 59,124,108,222,140,249,190, 45, 89,185,166,104,158,121,232, 37,192,100,245, + 15,159, 23, 11, 13,160, 32, 7,253,204,166,118, 32,169,165,196,113,162,207,126, + 87,101,243,170, 90,167,201,234,176,213,118, 54,216,170, 55,207,237,138,197, 74, +152, 98, 37,184,171,102,186, 39,182, 70,216,170, 40, 70, 79,146,241,199,208,180, + 64,118,242,236,137, 38,191,230, 56, 21,251, 14, 96,206,206,104, 68, 11, 50,140, + 89,252,246, 24,252,101,166,231,143,146, 93, 39, 10,209, 98, 74,102,193, 71,226, +103,110,177, 9,238, 34, 89,151, 66,204, 11,250,207,217,211,249, 76,233, 89,222, + 58,191, 32,188, 18, 12,230, 23, 1, 41,182,254,136, 8,136, 56,183, 98, 61, 93, +127,255,191, 84,128, 63,219, 12, 51, 14,142,253,234,114,244,196,223,101,181, 82, + 23, 87,156, 1,236,102, 1,200,124,123,143,215, 59,144, 90, 88,170,253,216,228, +238,215,149, 47, 25,182, 16,211,161,160,167,171, 68, 90,101,120,166, 42,130, 37, + 68, 17,195,197,189,139,163, 75,188,117,230,148, 20, 75, 10,161,111, 70,130,191, + 21,144, 8,225,198, 42, 97, 12,160,222, 69, 29,129,228,205, 66, 12,127, 32, 89, + 27, 77, 94, 26, 83,190,146, 93,216, 26,114,127, 43,187,106,192,192,116, 0,114, +108, 80,168, 44,152,235,233,136, 1, 90,234, 71,222,152, 6, 43, 92, 73, 57, 80, +108,219, 61,108,190,252,254,120,127,213,127,235,185,156,111, 14,216,254,175,137, +162, 52,223, 94, 94, 24, 97,231, 99, 45,228,246, 25,112,255, 33, 83,110,156,165, +245, 10,204, 5,197, 73,125,230,134,243,225,225,167,221, 98,246,148,249, 35,236, +237,177,101,104, 10,203, 22,118, 67,241,224,228,102,135, 89, 82, 28, 29, 6,211, +153,188,253,174, 36, 35, 28, 79,192,135,194,246, 14,108,244,171,114, 77, 46,253, +123,172,203,206,157,251, 83,139,150,244,225, 43,176,169, 49, 60, 90,195, 59, 92, +142,197,139, 51,254, 26, 90, 46, 6,141,252, 90,189,192,249, 96, 90,101,116,127, +132,113, 54,231,200, 65,147,205,181, 15, 27, 97,151, 17, 79,178,129, 68, 1,239, + 61, 75,110, 54, 32,218,195,132,244, 51, 75, 90, 90,107,244,179,214,240,158,145, + 77, 93,152,205, 31, 83,132, 19,191, 40,141,205,235,174, 36,124,111, 62,177,247, +138,190,239, 76,152, 16, 38, 64, 79,136,194, 92,100,100,237,202,225, 81, 39, 58, +218,175,128,135,225,192, 76,201, 0, 58, 68,158,216,130, 59,154,118,139,231,223, +186,191,183,169, 79,225,173, 54, 44,157, 40,125,154, 84, 2,218, 79,161,124,225, + 55, 71, 10, 35,189,188,226,138,140,143, 45, 31, 26,114,112,138,199, 95,102,219, + 28,217,230,253,241,160,162,230,219,239,241,236,177,144,220,220,203, 72,175,116, + 86,123, 87,181,154,205,146,182,101,249, 30,249,241,152, 12, 0,240,100,199, 4, + 68,199,145,184, 72,239, 72, 18,233,113, 70,215,190,175,208, 72, 44, 61,184, 22, +205,159, 52,121,170,231,145, 89,121,148,138,207, 26,126,147,105,241,212,221,227, +164,117,238,216,195,103, 49,168,228,185,104,213,115, 7,217, 64,116, 0,172,158, + 73,200,220,200, 26, 69,108, 3,106,209,242, 97, 89, 35, 73,203,169,247,148,183, + 83,104,238,232, 76,184,244, 26, 30, 46,109,248, 17,137, 80,177,252, 17,106, 4, + 66,206, 39,136, 37, 34,120,148, 14,205,142, 95, 57, 87, 10, 89, 6,168, 73,162, +117, 70,182,152,191,148, 5,189,223, 4, 76, 35, 13,114,202, 22,153,151,218, 55, +174,246,136,131,116, 46,170,137, 62,150, 69,116,197,156,212,160,193,184, 95, 34, +190,196,148,255, 92,114,168, 82,157,112, 95, 64,156,203,225, 41,210, 33, 25,156, +151,177,216, 31,235, 89, 89,248, 13, 26, 31,148,187,190,106,180,136,250, 8, 19, + 74,243,213,209,146, 93,248,217, 2, 65,135,151,200,236,112,122,154,176, 60,205, + 43,162,132,160,225,193,190, 61, 10,176,113, 39, 1,187,224, 5, 98, 35, 31,237, +228, 26,147, 85, 21, 21,167,104,169,185, 45,142, 21, 2,141,174,144,232,150,136, +181,118,138,242, 30,246,238, 88,110,154,244,189,222, 69,175,246, 98, 17,253,178, + 45,238,125,178,133,131,140, 18,207, 28, 19, 0,173, 84,246, 17, 46,136,117,158, +182,210, 72,162,171, 23,247, 71,179,151,192, 62, 18, 22, 53,178, 75,249,113,195, + 14,241,195,233,205, 49, 7, 24,237,157,145,233,144,139, 13,107,207,242,158, 9, + 72,188,195,183,173,166,140,119,116,117,195,140,102, 89, 97,179,129,232, 44, 97, + 19, 25,126, 52,187,103, 34,158,206, 10,123,221,216,206,173,249,109,220,199, 84, +166, 30,126, 55,169,138,242,217, 74,217,191, 37, 82, 43,232,107,111,219, 80, 93, + 96,215,167, 13,199,200, 90,161, 60, 52,143, 1,153,247,203, 96,188,182, 73,242, +234,174, 79,250, 52,178,121, 72, 40,236, 57,136, 8,109,176, 79,134,132,147,122, +181,149,132, 0,128,113,127,179,212,241, 7, 17,114,209, 89,175,241, 49, 82,102, + 67,184, 38,196,113,244,176, 18,143,209,153, 59,149,163,232,229, 64,201, 45, 81, +162,211, 52, 69, 83, 33,216,246, 27, 13, 62,219,207, 71,149,132,106,225, 52,199, + 77, 67,242,228,140,152,132,237,255,243,145,147, 15, 45,153,166,231,140, 45,118, +106,154,103,148, 35, 63, 19,164,144, 82, 70, 73,221,174,100, 29, 13, 49, 31, 20, + 59, 59,124,169,177,157,179,239, 38,207,114,145,194, 22,247,130,170,211, 49, 87, +206,215,142, 30,242,161,200,141, 6,111, 7, 1,137,214, 82, 60,144,119, 2,243, + 71,168, 57,180,193, 88, 96, 34,167, 1,112,213, 24,122, 94,239, 68, 14,181, 59, +189,105, 7, 73, 77,172, 65,170, 17,107,144,234, 68, 44,216,130,225,254,232, 66, +243,118, 4,113,100,183,131, 10,249,160, 14,159, 7, 25, 20,231, 23,141, 8, 39, +164,152, 54, 5,210,240, 8, 54,138,138,137, 58,188, 98,132,145,253,108,252, 40, +179,147, 66,166,145, 98, 42,245,220, 30, 93, 32, 9,149,130,138, 88,226, 36,206, + 38,141,223, 36, 53, 69,130,139,183, 96,236, 98,178, 58,229, 67,138, 11, 40, 82, +146, 96, 6, 53,174, 25, 89, 69, 56, 32, 73,171, 51,226, 70,202, 58,200,158,192, +168,116,182, 41, 20,181,158,162, 74, 34,230,249, 43,208, 53, 33,163, 8,119,133, + 41, 21,133,111,145,148, 45, 17, 81, 65, 15,233,230,194,142,243, 96, 41,175, 52, +138,240, 60,123,180, 45,245,130,210, 57,131,113,110,176, 95,190,160,121, 12,179, +248,244,202,173,140, 35,226,222,248,227,138, 95,192,217, 49,213,232, 12, 85, 31, +217, 48, 35,138, 61,215,190, 17, 66,126, 63,164,203,193,121,103,100,168,201,202, + 47, 63, 46, 63,185,112,156,232,108,227, 3, 35, 53, 53,201,121, 89,115,226,217, +195, 3, 23,220,253,179,193, 3,225,233,191,238,242,128,197,174, 52, 92,233, 46, +172,104,235, 14,138,219, 49, 24,251,104,211, 25, 12,226,135, 68,152, 61,163,189, +127,227,250, 5,203,190,166, 94, 76,190, 0,125,162, 23,202,181,121, 18,177, 0, + 82,150,146, 98,115, 48, 78,220, 22, 13,195, 55, 20, 74, 7,178,188,199, 24,218, +224,104,104, 60, 79,239,214,224,233,171, 82,247,150,153, 56, 51,153,206,217, 73, +176,255, 25,174, 17,143, 42,150, 42,166, 0,201, 4, 21,224, 54,131,200, 29,161, + 73,160,249,198,153, 21,186,217,254, 8,201,237,202, 76, 99,207,221, 48,119,204, +241, 52, 26,178, 27, 78, 18, 89,172,167,102, 13,225, 61, 8, 5,175,156,232, 77, +122, 26, 14, 83,122,122,153, 11, 41, 19,116,205,135, 68, 8,125, 93, 6,127,119, +117,138,127,174,171, 34, 84, 64, 6, 89, 80,189,164,215, 42, 74,112, 32,172,134, +252,196,205, 37,116,219,191,203,253,218,245, 28,203, 10,135, 0,198,194,137,112, +104,176,126,208, 12,178, 37,137,239,180, 80, 60,226, 68,251,179,241,160,227, 15, +229, 20,148,105,208,144,113,170,105,196,139,239, 40, 30,113, 22,106,199, 35, 18, + 44,219, 19,195,145,240,220,215, 62, 61,228,163, 52,174, 20,184, 78, 57,182,160, +169, 35, 75,171, 64,150,184,124, 44,167,172,189,134, 82,186,103, 47,244,178,122, +240, 27,232, 56, 86,185, 58,217, 73,147,227, 86,164, 27, 0, 72, 82, 71, 84, 76, + 76, 71, 69, 76, 76,134,143,168,243,207, 1, 99, 77, 68,192,142,208,136,154,230, + 35, 64, 16,224, 65, 32, 40,168, 8, 18, 1,216, 3,153,104, 2, 9, 72,146,242, + 74, 27,232,225,110, 0, 26,129, 66, 44, 41,220, 33,200,170, 83, 9, 75,138, 73, + 13,238,184, 42,128, 86,163,179,163, 92, 44,227, 74, 38,155,148,106, 14, 50,171, +247, 33, 5,148,148,200,180,162,104,103,164,232, 19,146,176,166,158,214, 29,120, +232,157, 3, 94, 44,104, 11,176, 86,139, 81,133,147, 81,107,233,168,173,192, 4, + 67,132,221,154,137, 71,105, 21,164,159,144,132, 53,117, 81,107, 51, 81,159,211, + 53,157, 5,155, 37, 37, 37, 15, 49, 25, 47,212, 28,234, 8,200,170,221, 75, 47, +137, 9,107,234,105,221,217, 47,152,107, 58,244,163,165, 0,215,232,247, 65,138, + 23,117,196, 65,206, 0,201,239,164, 43, 98,116,169, 77, 88, 83, 23,181, 54, 19, +103, 57, 93,211, 89,176, 89, 82, 82,242, 16,147,241, 66,205,161,142,128,172,218, +189,244,146,152,176,166,158,214,157,253,130,185,166, 67, 63, 74, 10,112, 13,226, +170,192,128, 51,242, 51, 34,149,218, 29,163,181,132,135,218, 9,234, 10,136,214, +121, 36,152,171, 34,253,173,138,162,101, 15,163, 74, 38, 75, 74, 53, 7, 41,105, +222, 1, 16,150, 18,153, 86,108, 34,245, 81, 62, 76, 72,194,138,114, 90,199, 58, + 30,170,214,202, 5,173,173,209, 91, 45, 70, 39, 20, 93, 35,136, 85, 1,222, 66, +246, 47,139,138,144, 75,147,220,135,221, 50,129,202, 60,213,229,107, 62,202, 51, + 16,168,232,107,199,126, 77, 65,121, 6, 2, 21,125,237,216,215, 20,148,103, 32, + 80,209,215,246,181,242, 92, 3,129,234,189,182,175,149,231, 26, 8, 84,239,181, +125,173, 60,215, 64,160,122,175,237,107,229,185, 6, 2,213,123,237,248, 90,225, +140, 65,160,232, 12, 93,161,211,235, 39,137, 2, 84,134,120, 82,112,192, 49,250, +145, 72,197,110,133,164, 61,210, 7, 89, 73,232,162,246,107, 49,197,183, 42, 33, +180,182, 70, 85,183,186, 76,209, 98, 73, 73,201, 65,102,245, 62,164,130,130,146, +152, 90, 54,162, 53,128, 0, 75, 39,132,102, 5, 98,107,196,195, 26,178,162, 91, +208, 22, 96,173, 22,163, 11,213,152, 81,100,216,165, 96,192, 65,196,117,141,212, + 35,117, 20, 92,113, 73,224,166, 91, 45, 32, 90,196,213, 51,212,182, 70,184, 90, +188, 50,232,209,122,128, 62,112,235,220,169,164,166, 69, 21,210, 39,172,172, 82, + 83, 33,101,220, 9, 70, 2,164,140,225, 52, 65, 59,216, 28, 73,191,202,213,243, + 22,179,115,146, 30,115, 5,208, 14, 54,207,124,134,110, 74,184, 67,232, 81,199, + 42, 34,176, 84,201,173,238,100,193,202, 37,213,221,227, 10,125, 33, 1, 66, 13, +161, 23, 38,169, 79,224,185,202,211, 10,103, 35,165,175,210, 18,117,141,145, 36, +164,163,131,174, 0,183,103,115, 36,189, 19, 37,229,232,194,207, 75,218, 24,106, +192,180,231,185,198,103,160, 69,210,222,130,124,117, 97,108, 57, 79, 68,184, 80, + 33,183, 78, 92, 35,120,162, 66,135,231, 86, 69, 81,153,113, 5,147, 37,167,146, +133,152,141, 38, 43, 14,117, 36,188, 72,125,148,111, 81,191, 8, 31,120, 16,141, + 58,209, 38,143,176,115, 60, 0,205,197, 34, 7, 64,171, 34,135,182,126, 51,134, + 62, 27,167,230, 28,157,176, 50, 76, 34, 80, 83,112,123, 49, 18, 34,173,167, 90, +188,157,200,230,213, 61, 98, 5, 99, 23,124, 6, 82,245, 80, 15,218,195,230,133, + 73, 37, 98,133,176, 15,198,130,123,181,184,148, 76, 47,248,108,221, 77,139,149, +203,158, 25, 25, 77, 90, 28, 9, 22,115, 71,223,237, 12, 87,125,166,184, 19,181, + 71, 76, 31, 99,110, 52,105, 6, 24,156, 11, 85,122, 80, 96,111,133, 33,204, 89, +165,235,141,228,170, 91,217, 9,115, 86,233,122, 35,185,170,104, 64,206, 85,157, +174, 51, 13,169,138, 2,163, 92,171,116,189,145, 92, 37,218,144, 15, 62,101, 99, + 26,194, 86,234, 90,137, 68,233, 70,242,250, 86,141,250,225, 71,153, 17, 2,164, + 56, 0,130, 69, 20, 24,128,205, 3, 32,248, 29,213,214,227,236, 37,152,164, 21, +126,178, 37, 30, 7,236, 95, 98,116, 37, 2,191,184,152, 3,247, 56, 12,197, 60, + 66, 90, 41,153,211,137,204, 34, 62, 87,107,115,188, 76,171,181,200, 27, 96,187, +177,108, 89,214,234,179, 0,248,223,222,254,159,120,226, 77,155, 70, 80,116,116, + 91, 90, 51, 69,229, 3,134,144,168,115,111, 51, 28,115,122, 4, 8, 83,194, 24, +131, 10,205, 76, 74, 7, 51,144, 32,136, 32, 16, 6, 34,130,132, 32, 59, 32,136, + 16, 70, 38, 48,129,136,136, 72, 32, 18,164, 32, 77,218, 72, 92, 22, 28, 98, 81, + 11, 76, 20, 83,201,201, 5,194,255,168,203, 60, 53,160,203, 15, 94,102,130,254, +200, 97,125,200,245,234,174, 49,129,135, 28, 84, 92, 29, 21, 30, 32,111,184, 83, + 71, 82, 46, 51, 32,107,112,125,241,221, 58,199,183,213, 13,100, 77,173,215, 62, +173,234,134,210, 85, 80,132, 27,235,131,250, 27, 28, 59, 20,175, 64,249,214,161, + 72,128, 72,249,199,117, 32, 92,143,172,252,120,169, 5,228, 36, 80,184, 58,150, + 80,130,215,208,174,153, 15,170, 73,222,200,151, 59, 80,153, 56,224,232,138,227, +170, 7,112, 26, 88, 95,124, 89,149, 61, 90,157, 0,181,181,213,218,199,117,251, +122, 93,189,250,188,186, 64,221,250,234, 2, 16,156,106,164,126, 96, 0,132, 64, +178, 48,112,185, 73, 37, 38, 15,116, 12,216, 82, 33,216,128,177, 82,219, 73,190, +200, 27,164, 11,210, 10,220, 36, 24,162, 32, 72,170, 77,113,195, 22, 88,170,155, +108, 65,233,148,238, 54,223,200, 26,151, 14,181,195, 24, 91, 91,227, 2,153,145, + 25, 31,178,246,151,223, 58,192,218,204,157,161,233,157,161,126,211,169, 57, 65, +253,174,123,202,197, 21,237,163,168,161,110,150,131, 20,186,218,178,220,229,218, +232, 88, 41, 91, 46, 60, 84, 26, 20,193, 43, 74, 60, 66, 61,200,121,218, 56,140, + 40,213,179, 16, 23, 7, 50, 4, 55,238,195,250,178,160,123,252,133,187,104,151, + 61,118,109, 3,206,234,251,244, 55,213,133,207,175,150, 38, 36,161,144, 8, 72, +128,223, 13,248,192, 73,156,223,102,187,253,103, 74, 76, 19,168,131,198,103,138, + 1, 9,136,110,171,180, 19,188,100, 62, 46,230,156, 21,230, 40,138,239,159, 55, +189,162, 43, 67,139, 39, 25,122,132,145,149,187,115, 46,244, 91,105,167,204,198, +243,104, 37, 60,223,114,211, 27,118,189,176,171,254,140, 5,160,187,195, 67, 6, +174, 12,208,232,250, 91,247, 66,131,224,180,200,178,169,223,133,213, 40,249,182, + 75, 12, 43, 67,139,103,224,129, 98, 86,151, 59,193,100,141,187,168,202, 7,247, +139,249, 20, 11,206,184,242,120, 44,137,170,164, 48, 20, 89, 36,139, 28,201, 5, +165,150,138, 47,153, 84,196,112,246, 55,121,125,168,105,119,255, 2,221,161,108, +157,180, 1,227, 98,186,232,108, 95,156,118,152, 23,204,242,161, 20,183,205,139, + 66,170,114,182, 46,249, 28,224,187,125,160,142, 29,128,124,173, 6,251,201,139, +208, 53,208, 59,116,126,227, 36, 22, 44,243,188,105,220,213,255,216, 54,155,251, + 10, 18, 54,131, 2,211, 80, 45,157,167,117,141,231,155,202,157,123,139, 97,178, + 74, 72, 31,207,235,190,141,239,218, 99, 70, 2,129, 80,120,219,208,232,220, 58, + 12, 20, 82, 55, 32,203,172,131, 35,114,110,235, 19,167,114, 72, 0,215,178, 46, +240,197,204,100,208, 54,140,229,205,233, 61,160,183,187,140,249,128,186, 44,116, + 64,235, 64, 60,219,188, 54, 86,223,123,205, 76,250,165, 27, 6,248, 24,248, 12, + 11, 71,230,207,151,133, 42,109,101,224, 47,215,239,131, 83, 19,255,208,157,174, +205,235,229,178,243, 9, 21, 66,204,117,115,124, 61,187,136,181, 38,195,174,251, + 79,204,239,255,211, 98,197,130,255, 98, 44, 40, 23,250,247,220,199,130, 30,112, + 81,193, 99, 89,237,139,121,246,141, 85,252, 40,121,196,116, 44,151,156,188,155, + 90,101,205,192, 61, 53, 62, 94,105,220,117,248,248,151, 96, 85,145,199,253,250, +143,158, 43,204,198,219,189,211,141, 47,106,117, 60,184,149, 58, 43, 87,150,191, + 84,190,165, 69,141, 42, 22,198, 9, 31, 91,236, 44, 90,175, 50,160,252, 88, 82, +241,186,136,108,141,207,194,216,116,101,213,207,134, 37, 84,224,163, 56, 86,234, +253,103,168,121, 85,120, 47,248,139, 44,179, 4,110,201, 34, 77,143, 92,218,250, +247, 24,220, 48,241,149,190, 92,109,197, 47, 56, 75, 34,127, 38, 78, 40,212, 62, +242,164,255, 98, 61,104,240,149, 25, 50,121,127, 52,109, 85, 62,126,165,204,219, +144,222, 50, 78, 61,208,138, 30,220, 59,136,228,102, 69,213,166,188,158,100, 42, +173, 91,106,162,224, 58,114,145,133,223,201, 63,178,157,239,144,248, 82, 88, 85, +220, 73,108,251, 22, 34,122, 14,148, 98,172,152, 77,225, 0, 8,162, 99, 74,215, +219, 92,175, 47,169,137, 56, 29,240, 18, 95,107,130,124,231,253,193, 82,100,244, +134,180,129,228, 80,207,182, 78,182, 97,180,162,197,105,211,237,212,184, 13,149, +253,119,105,236, 84,212,164, 53,229,116,116,132,105, 43,208, 64,250,211,212, 12, + 32,177, 7,167,201,170, 17,254,254, 8,210, 64, 62,208,157,131,253,117, 50, 63, +143, 11, 3,227, 79,152,232,228,194,123, 43,236, 49,195, 28, 22,229, 94,105,165, + 43,240,160,114,241,165,158, 46, 18, 8,174,219, 94,142,159,129,126,155,109,152, + 26, 48,220,141,196,134,170, 98, 86,177,225,131,196,176, 60, 81, 21,142,235, 14, + 16,188,119, 90,168, 27,117,181,220, 10,142,172,120, 12,184,215, 65,117, 44,134, +209,211, 98,161,234,180, 80,181,158, 7, 97,254,113, 82, 53, 77,128, 90,199,225, +109, 39,188, 7,163,249,204,156,197,219,166,195,249,147, 9, 40, 64,205,205,239, +167, 42, 33,198, 34,169, 10,249,224,202,190, 81, 63, 24, 92,235,145, 94, 24,220, +229,105,166,201, 8,220, 19, 69,154,252,191, 89, 23,185,118,147, 66,112,192, 88, + 23, 24,189,232,110,110, 20, 4, 47,208, 12, 52, 0,213, 67, 82, 0, 57,177, 82, +174,180, 12,118,136, 70,113,214,225, 50,199, 13, 22, 11, 24, 9, 14,254, 60, 76, + 57, 27,152,194,151,228, 12, 55,106, 67,130,232, 46, 76,195,141,194,146,144, 93, + 67,242,205,113,189,190, 2, 38,116, 87,145, 51, 50,168,230,100,116, 13,141, 12, +185,197,204,102, 9, 51,138,170,125,178,154, 99, 87, 26,193,113,157,161, 19, 11, +125,200,181,207, 78,228,152,240, 9, 62, 44,250, 42, 30,229,167, 83,140,104,138, + 17, 39,210, 17,220, 34,162, 52, 85,211,224,124,213,136, 26, 46,189,232,108,227, + 71,122,146,200,166,109,112,121, 17,207, 92, 61,228, 70,106,154,146, 5,157,171, +216,182, 9, 6,138,216, 22,179, 38, 97,199, 52,193,112, 69,163,147,131,175,128, +115,206, 46, 25,197,142, 96, 72, 95, 50, 49,211,192,248, 34, 56,253, 52,161, 79, + 19,244, 23, 77,224, 74,164, 26, 96,214,122, 30,212,164, 29, 55, 90,232,116,192, +143,112,237,187, 21,120,162,106,131, 28,201,245, 9,243,240, 93,180, 96,133, 22, +172,168,106,132, 83, 68, 13,109,213, 20, 62, 31, 53,178,197,113,233, 53, 23, 75, +215, 28, 35,185,105,103,133, 73,249, 90,251,143,141,193, 25,108, 36,209,197, 21, + 44,165,136,119,246,160,234,238,146,155,101, 62,176,205,170,245,136,150, 20,134, +173,234, 65,213,125, 50, 53,203,206,103,203, 80,235, 21, 41, 53, 85,201, 71,147, + 11,118,102,189,198,172,112,218,102,128,189, 46, 94, 67, 66,156, 52, 89,107,101, + 9, 82,232,139, 32, 9,168, 95,247,178, 54, 23,186, 87,183, 34, 17, 54, 53, 30, +116,145,156, 48,240,109,218, 45, 61,196, 96, 4,128,240,175,244,164,175, 93,140, +192,145, 48, 53,176, 20,240,157,186,172, 73,231,127,225, 64, 72,206,240,195, 77, +130,106,132, 93, 37,161,218,171, 43, 40,251, 96, 93, 89,169,165,201,237, 69, 71, + 16,162, 18,168,145, 35,234, 76, 98, 86,168, 27,170, 75,153,158,133, 68, 16, 50, +164, 64,203, 34, 93, 4, 33, 88,209, 33, 27, 86, 33,184, 43,248, 11,201, 21, 11, +240, 97,177, 81,143, 92, 81, 67, 45,124,169, 69, 95,153,232,215, 17,186, 39,136, +246,162,163, 86, 1, 99, 28,232, 18,104,212,113,239, 96,254,253,173, 24,171,233, + 11,165, 89, 69,171,157, 39,186,150,225,108,104, 43, 6, 92, 12, 1, 86, 54,164, + 38,224,148,232, 1,112, 98,217,166,252,186,190,238, 5,248,152, 29, 52, 60, 61, +186,108, 89, 31, 78,165, 62,108, 52,245,128, 74,235, 24,198,152,102, 8, 33,157, + 0,149, 0,149, 0,246,127, 94,141,109, 7,119, 30, 88,188, 71, 53,245, 29,237, +218, 31, 58,225, 41,158,136, 36, 84, 40, 2, 19,141,204, 3, 66, 52,241,209,228, +111, 52,208,194,130, 3,115,190,228,246,210, 61,242,163, 81, 8, 90, 13, 72,228, +139,216,161, 35, 4, 45,219,104,167, 62, 83,181, 98,159,203,223,198,133,150,121, +182,127,233,248, 35,175,236,177,247, 22,153,207, 82,219,222, 71, 56, 82,163, 27, +117, 61,199,152,179,200, 54, 65,208, 99,138, 69,166,208,184,128, 51,115, 64,177, +196, 40,101, 75,155, 90,248, 71, 65, 28, 81,161,101,124, 77, 59, 43, 66,158, 49, +183, 97,111,238, 50, 73,135,123, 62,197,152, 89,226, 63,181, 16, 40, 35,130,193, +227, 18,119, 66, 8, 20, 11, 37,161,106,170, 49, 11,161, 16,231, 59,163,230,186, + 54, 9,205, 3,127, 38, 90,163,129,253, 5,207,119,203, 23,186, 9,125,159,192, +126, 22, 85, 1, 58,211, 53,223,106,119,126,250,179,142,225,181,142,175,244,148, +244,227,184,182, 32,183, 67,238, 9,114,103,144,187,130,153,238, 45,170,196, 27, +225, 94,197,101,250, 51,151,212,166,157,255, 21,155,214,103,135, 51, 61, 95,167, +126,112,192,105,114,210,153, 96, 46, 82,255, 41,173, 56, 88,117,231, 55,185,254, + 92,149, 86,169, 81,128, 39,221,231, 9, 50,175, 94,155, 35,178, 71,252,194, 26, +115,158,120, 38,152,164,116,228,172,180, 25, 10,150,121,154, 98,140, 49,198,105, +138,177,170,220, 99,188, 86,231,194,170, 85,135,104,125,233,148,206,132,239, 62, +111,135,110, 78, 13,219, 56,208, 52, 89,139,177,150, 41, 38,173,181,214, 90,183, + 29, 99,196, 68,200, 24,200, 42,136, 49,198, 88,225,118,171,192,153,242, 17, 32, +167,169, 39, 8,181, 55, 88,149, 34, 70,247, 24, 35, 20, 99, 28, 25,105, 96, 15, + 37,131, 93, 93, 42, 88, 85, 85,229, 78, 43,147, 80,141,101,185,229, 49, 70,119, +200,161,199, 24,227,187,133, 16, 31,196, 63, 50, 16,175, 32, 24,144,143,134,232, +245, 99, 91,223,107,181,187,144, 45,235, 65,175, 50,153, 48, 4,133, 64,157, 25, +124, 47,146, 37,186, 72, 23,233, 34, 89, 34, 75,100,137,164,138, 84,185,125,208, +152, 13,110,248,224,171, 30,170,161,123, 90,188, 24, 18, 23,201, 18,113,108, 82, +229, 34, 93, 36, 75,100,137,164,138, 84,241,123,253,101,254, 28, 75,176, 37,147, +137,214,105, 52, 48,145,172,238,248, 43, 69, 81, 0,154, 85, 79,146,104, 36, 63, +193,195,159,207, 27, 15,131, 69, 90,198,108, 24,179,225,248,203, 7,230,141,220, +180, 52,184,188, 31,124, 57,194,145,189,145,117, 98,148,122, 38, 10, 28, 24,184, +126,189,234, 12, 14,212, 13,247,102, 0,115, 61,247, 28,128,182,137, 96,254,185, +102,149,238, 23,252, 19, 21,164,217, 54, 66,233,181,113, 48, 8,141, 32,168, 4, + 59, 70,107, 3, 1, 65, 3,211,114, 0, 0, 10, 11,138, 35, 82,153, 72, 10,163, + 40, 6,253,196, 32, 7,194, 23,140, 11,138, 24, 67,132,128, 5, 16,143, 97,104, +134, 2,128, 0, 1, 24, 6, 32, 0, 48,160,136, 49, 72, 17,227,152,250,214,150, + 2, 79,243, 63,207,164,148,104,132, 80, 16,243,148, 69,169,185,255,238, 66,129, +223, 33,212, 27,213,139, 41,162, 23,127,143, 67,200, 79, 77,246,211, 16,254, 62, +229, 0,236,197, 13,245,216,221, 18,128,161, 21, 49,227, 47, 58,208,143,180, 19, +249,248, 26,247,126, 87,132, 6,115,196,156, 47,132,161,205,244,139, 26,187,232, +105, 88, 8,132,227,243,200,206,120,166,192, 99,136,127,108,197,157, 90, 45,232, +123,146,129,195, 79, 59,244,121,118,128,186,160,241, 19, 43,247,208,215,113,168, +135,196,237,145, 90, 71, 20,167, 60,232,158,130, 58, 67, 9,108,227,204, 63,197, + 69,226, 42,218, 82, 77,129, 79,242,168, 90, 23,252, 58, 17,247,206,227, 27, 14, +130,212, 79,223,116,252, 45, 21,220,121,190,167,235,215,113,154,236, 88,233,223, +174, 14, 94,130, 26, 95,231, 41, 98, 89, 52, 53,203, 73,122, 48,142, 14,196, 15, + 77,146,220,132, 77, 86,117,168,152,186,207,147,215,157,111,120, 47,159,161, 13, +116,235, 5,164, 79,179, 28,163,117, 69, 34,118, 16, 19,119,118, 14,109, 46,187, +152,155,164, 86, 43,241,143,218, 1, 18, 65,152, 55,208, 33,250, 80, 34, 70, 51, +148, 17,131,113, 39,101,204,211,182, 87, 55,200, 26,242, 44,189, 2,123, 6,181, +215,135,162,223,243,196,104,150, 46,120, 67,132,227,126,101,127,228,180,105,192, +182,205, 91, 46, 78, 66, 99, 39, 41,161,147, 98,105,182, 77,165, 24, 26, 34,242, +120,211,157,202,228, 44,137, 92, 77, 1, 39,100, 25, 92,251, 70,207,211, 16,142, +184, 5,118,116, 18, 40,134,150, 40,187,144, 37, 34, 97,130,235, 36, 44,236,107, + 2,188,143,176,183,232, 42, 42,159,220,121,229, 66,147, 74, 50,164,205, 50,242, +221,207, 83,137, 20, 99, 85,147,181, 28,111, 60, 18,132, 20,202,222, 16,115, 33, + 93, 79,226, 46,144,188,234,101, 8, 21,139, 2,129, 36,146, 16, 64,234,125, 78, +113,161, 54, 84, 26,135,213, 15, 15,161, 94,221, 34,194,108, 86, 70, 7, 21,186, + 91, 62,121,108,163, 94, 2,214, 69,115, 11,222,220, 43,207,193,197,103,140, 30, +230,190, 87,124,193,180, 48,130,128, 17,174, 10,218, 48, 89,140, 10,127, 39,194, +218, 72, 78, 69, 99,161,189,111,222,251, 30,198,224,131, 14,104,154,148,134, 88, +145,235, 89, 19, 72, 31, 89,152,143,133,116, 34,160, 47,159,210,195,251,156, 62, + 14, 26,190, 67,251, 64,231,206,250,153,125,233,138,199,151,223, 97,125,185,157, +121,229,175,187,220,199,236, 29,245,105,237,144, 62,185,134,126, 58, 50,253,255, +208,195, 79,235, 79, 52,144, 97, 56, 31, 35,162, 85, 96,136,163,241,102, 25, 69, + 35,103, 43,195,159, 63,132, 7,232,214,195,121,172, 99, 72, 69,106, 18,128, 25, + 97,206,214, 4,137,126,102, 48,240, 75,138,136, 33,236, 75,195,217,102,188, 54, +116,252,150, 67,250,220, 9,238, 4,217, 86,128,151,241,109,168, 55,165,244,129, + 62,214,214, 34, 3,134, 51,194,176,218, 36, 48,154,120,150, 45,111, 25,118,228, + 7, 32, 25,211, 26, 70,121,223,232,136,176,109, 59,153, 4,233, 22,181,224,145, +122,126, 71, 7,137,104,250,201,245,173, 84, 78, 56,132,190, 55, 49, 16,150,173, +128, 77, 96,187, 4, 12,131, 75, 22, 37, 84,170,244,165,144, 52,121, 52, 51,126, + 75, 79,153,179,213,184, 32, 76,245,112,118, 71,170,213, 38,246,144, 33,159, 13, +197, 21,245,185,145, 62,219, 74,144,201,170,100,141,112,151, 62, 98,189,225, 54, +111, 96,207,107, 48,250, 2,177, 32, 53, 43,168,102,221,127,225, 0, 5, 80, 80, +112,132, 56,169,235, 95,180,171,129, 90, 51, 63,234,138, 85, 9, 4, 45,140,167, +157,160, 38,107, 35, 40, 14,111,179,202,122,123, 68, 46, 4,183,130,193, 92,193, +187, 12, 75, 47,203,189,219,170, 73,211, 53, 15, 25,111,241,160,250, 28,175,180, +103,160,241,208,132, 4,144, 10,249, 81, 20,113, 29,223, 85, 49, 99,149,222, 16, +234, 56, 95, 57, 91, 28,218,132,211, 48, 22,182, 87,200,248,143,234, 9,193,133, +192,130,206,107, 37, 51,245, 89,161, 72,154,190, 80,188,122,208, 89, 33,121,139, +210,112, 21, 10,251,250,110,183, 86,240,202,110,211,235,135,128, 83, 53,137,133, +137,115, 55,245, 3, 73, 68,238,212, 21,179, 94,170,101,160, 60,170,234,234,229, +254,165, 92,195, 60, 9, 94,182, 84,149,135,218,249,164, 9,232, 71,166,236,174, + 98, 21,229,253,229,250, 26, 44, 50, 88, 81,195,225,240, 94, 2,241, 78, 51, 1, + 54,211,132, 8,160, 5, 38, 82, 5,189,108, 59,244,208, 85,154,138, 75,231, 58, + 23,212, 63,144, 42,134,174,143,103,104,104,116,211,182,152, 19, 92,187, 87,151, +118,196,134,118, 21, 0, 55, 98, 54,122, 48, 50, 58,246, 80, 12,177, 90,206,207, +234, 12, 46, 77, 29, 11,115,198,160,220,102,171,124,151,158,198,100,194,176,222, +200, 58, 17,126, 53, 59,180,181,251,165,114, 55,205,231, 77, 21, 37,127,255, 22, +221, 6,120, 96,242,162,222,192, 74,238, 80,199,219,101,142,194, 41, 24, 45,223, +173,223,167, 21,188, 48, 79,189, 74,223,230, 95,108,207, 32,239,155,184, 74,189, +121,108,163, 14,106, 53,118,138,197,213, 26, 10,207,228,221, 23,231,101,143,230, +179, 90,166,209,202,221,105,153, 52,138,138,218,215,248,173, 80, 4,201, 35,174, + 80,217, 83,148,227,176, 48,115,128, 32,204,182, 18,200, 89, 65,255, 49,103, 54, + 7, 8,123,221, 52,167,200, 34,160,219,183, 98,227,165, 85,189,235,229,114,233, +158,226,121, 6,184,186,156,222,166, 27, 3, 83,164, 2, 54,225,132,151,172, 4, +223, 14,190, 0,112, 60, 76,242,244, 79,147,170,122, 59,120, 44,241, 26,109,168, + 87,132,162,235, 86, 2, 53,228,239,128, 37,162, 43, 99,234,254,203,141,116, 19, + 94,122, 8, 47, 9, 75, 51, 21, 14,166,220, 44,164,145, 39,137,177,187, 34, 11, +187, 66,192, 38,149,150,141,109,173, 34, 37, 22,141,238, 41,107, 60, 35,111,171, +232, 63,196, 80,118,214, 23, 11,229, 45, 70, 69,215,222,140,143,251,155, 10,139, +128, 63,104,177,127, 98, 18, 63,203,113,107,192, 0,182, 93,180,147,212,148, 68, + 73,166, 26,109,124,121,187,166,218,151, 16,153,239, 62,184,226, 14, 8, 53, 8, + 59, 0,120, 66, 71,153, 3,145, 47,234,163,116,161,171, 9,104,197, 90, 5, 19, +202,142, 96, 18,221, 28,104,155,196,116, 10,110,147, 8,158,111,172, 88,174, 15, +233, 89, 80,140,236, 73, 28, 20,228, 92,146, 92,234,116,158, 14, 62, 47,127,194, + 50,105,240,244, 16,168,181, 65,210,245,186,219, 21, 37, 21, 44,190, 29,206,174, +194,141, 43,142, 62,137, 25, 45,191,200, 88, 33, 69, 87, 48,206, 51, 49, 41,203, +124,164,201, 31, 95,207,113, 8,222,105,164, 72,219, 58, 21,110, 11,169,229,174, +135, 20, 53, 36, 5,167, 97, 32,187,212, 8,174,243,159, 61, 36, 7,115, 24, 4, +201,143,231,233,143, 98, 48, 59, 63, 20,188, 0, 99, 69,141,227, 54, 53,192, 11, + 35, 0, 63, 71,124,214, 66, 69,253, 16, 50, 62, 47,243, 11,234,161,117,135, 87, + 24, 74,220,159, 74,192,115,138, 35, 21, 27, 20,143,227,184,209, 60, 69,190,145, +160, 35,216, 12,131, 62,145,123,128, 15,145,184,215, 62,166, 11,103,233,239, 75, + 14,137,166, 84, 88,150, 73,233,120,147,149,218,204,142,100, 89,166, 85,163,196, + 71,178,218, 76,168,254,155, 14, 57,242, 11, 47,152,183, 46,223, 71,216, 66,145, +129,187,209,171, 34,143,112,249,243,140, 30,201,109, 14, 71,122, 54,193, 19, 74, +110, 35,206,226,100,108,200,217, 84,250,192, 33,164,254,155, 84,144, 58, 77, 67, + 81,127, 16, 3,215,170, 51, 57,173,102,250, 77,127,215,135,199, 56, 28, 92, 23, +174,225, 28,211, 67, 82,246,228, 32,137,174,255,134,134,141, 93, 85, 9,128, 1, + 27,176,168, 15,219, 60,178, 45, 1,217, 80,130,146, 51, 48,111, 99,103,157,109, +170, 7, 87, 56,137, 53,187, 70,133,186,222, 19, 95, 58, 37, 61, 39,235,213,204, + 19, 80,216,168, 96, 97, 77, 92, 85, 87,105,125,172,218,141, 15, 62, 85,195,149, +158,148,161, 6,165, 86, 19,112, 20, 17,179,102, 58, 84,236,215,110,230,127, 86, +206,124,105,188, 94,156,162,204, 69,148, 5,244,167,141,106, 61, 27,154, 68, 77, +222,158, 11,243,145, 31,136, 4,232, 68, 97,198,133,202,165,146,123,102,162,146, +107, 48, 23, 64,237,250,135,128,178,110,173,188, 17,216, 81,219,181,145,188, 27, + 13,159,142,142,180, 38,211,236,239, 11,219,224,192,202,246,234,141, 65,180,116, +190,148,168,162,152, 42,126, 74,247,126,186,199, 5, 24,139,173, 55, 5, 82,125, +101,123,238,189,121, 1,135, 25, 56, 1,126,153,230, 54, 70,157, 91,233,163, 2, + 66,242, 25, 95,236,168, 6, 25,246, 50,253,248,101,117,217,105, 27, 0,190,197, + 28,218, 12,122,134, 77,120,206, 80,180,110, 25,154, 64, 48, 84, 91, 33,155,154, +191,164,104, 43,142,223, 28, 64, 41,108,210, 5,132,155,236,222, 27,139,141,222, + 44,107, 7, 64,231,166,154, 1,133,117, 67, 28,104,141,197,251, 75,118, 61, 22, + 29, 95,153, 33, 3,236, 12, 96,168, 75,244, 63,233, 0,217, 72,175, 35,186,163, +180,115, 58,249,143,234, 65,176,194, 25,208,202,201,211,206, 77,160,148,210, 87, +237,202,232, 99,123,194, 46, 82,228,169, 47, 78,234,154, 0,162, 96,235,129, 99, +212,175, 41, 24, 42,187, 81,229,197,244, 48,117, 41, 81,200,117,164, 89,203,105, +180, 60,120,233,235,205,137, 77, 16,147,205, 23, 6, 6,129,239,166,128,230,155, +155, 31,204,137, 8, 77,133, 98,127,158, 14,182, 19, 45,139,181,134,107, 80, 94, + 25,118,174, 14, 87,183,164,164,255,211,168, 93, 92, 56,250, 82, 67,195, 97, 91, +205, 22,191, 92,191,100,188,129,245, 82, 31, 64, 76, 45,184,227, 30,200, 13,230, +201, 82,230,195, 29,161, 10,234,112, 95,156, 33, 28,170,158, 18,215, 32, 51, 79, +238,111,174, 60,116,188, 78, 38, 56,127, 7, 60,145,188,134,163, 59,194, 36,208, + 62, 48, 12,143, 35, 20,207,203,136,111,102,165,191,249,195,158, 13, 52,186,185, +110,210, 47, 75,123,198,206, 28,103,181,249,244, 1,164,110,240, 47, 83,203,129, + 47, 5,156,229, 21,205,223,152,148, 43,132,226,103,119,236, 43, 29,250,215, 15, +142, 15,155, 17, 11, 56, 63,153,191, 13,207, 23,172, 65,251, 26,209,156,128,107, + 28,127,146, 35,144,114,197,242,148, 2, 16, 38, 41, 58,255,166, 10,245, 78, 21, +244, 70, 84,172,224, 51, 27, 93,214,155,147,194, 22,104,196, 64, 16,163, 84,197, +176, 85,241, 15, 92, 85, 37,175,149,182,236,131, 26,225, 59,219,153, 27,116,150, +197,168, 21, 66,132,251, 34, 49,227,113,226, 67,226,204, 30, 49,184, 51,134,136, +170, 20,208, 93,201, 12, 49, 41, 70, 45, 89, 97,126,237, 36, 3,166, 61, 71,132, + 38, 49, 17, 25, 86,242, 93, 69,250,250, 81,140,123,130, 40, 9,214,196,252,216, +180, 83,220,253,157,254, 16,121, 26,207, 4,148,143,232,154,112, 0,171,234, 72, + 48, 8, 65, 91,192,186, 25, 41,143, 0,164, 85,246,116,158, 96,179, 41,160,129, + 45, 1, 61, 4, 69, 60, 60,198, 41,203,127, 9,241,219,191,136,249, 99,112, 38, +246, 60,138, 20,173,144,234, 53, 0, 55,166, 68, 59, 2,182,138,176,148, 97,191, + 66, 42, 25, 83,132,232,204, 36,149, 18,159,206, 0,144,203, 83,232,254,199,127, +213,206, 41, 47, 99, 0,254,163, 60, 83, 47, 61,167,137,224,165,254, 48, 21, 45, +251,144,225, 77,252,178,147,163,199,161, 42, 8,169,195,171,215, 88,156,252, 0, +164, 58, 54,175,193, 26,188, 76,210, 67,231,196,219,244, 24,125, 10,206,163, 71, +112, 64,122, 46,170,170,110,225, 60,186,217,240, 48,213, 82, 5,103,146,122,196, + 19,145, 32,131, 51,110, 33, 69,245, 53,153,220,225, 87,249,239,133,115,200, 88, + 84,144,166,190,228,235,188, 22, 98, 26, 21,149,178, 35,226, 48,147, 51,241,111, +184,168,125, 18, 19,228,121, 12, 41, 45,194,250, 20,184,225, 89,112, 32,177,217, + 32, 20, 20,184,115,195, 90, 31,135, 75, 91,193, 15,230,117, 79, 83, 20,162,180, +253, 33, 48,155, 76, 2,197, 19,248, 40,118,237,184,241,211, 48, 71, 64, 12,244, +216,131, 28,203, 15,242,129, 97,180,156, 8, 2, 27,198, 42,121, 66,170, 25,139, +220,218,185,130,124, 95,255,145,158,135,226, 16,111,129,159, 17,232, 18,184, 82, +141,143, 46,206,124, 47,196, 86,135,213, 2,216,202,164,115,192, 75,126, 67,170, + 5, 18,168,149,172,252, 4, 65, 55,226,231, 88,237, 36,160,111,124,109,226,101, +117,211, 33, 77, 67, 86,146,180,223, 53, 60, 48, 10, 80,129, 32,233,153,153,193, +171, 72,195,137,234,249,250, 60,167,201, 78,244,133,237,241, 1,166,156, 74,120, +242, 62,246, 56, 40,129,164, 1,173,205,188,207, 93,198,234, 45, 63,206,121,181, +154,252,171,131,213,224,197,170,126, 74, 62,202, 26, 68,164,151,108,159,233,224, +208, 32,119,168,246, 76,158, 84,164, 22, 60, 85,243,229,122, 41,176, 49, 91, 98, + 13, 43, 4, 32, 31, 93,165,230,161, 62,124,159, 3,101, 74,231, 94, 0, 62,178, +167,197, 32,144, 15,164, 84,198,158, 44,108, 50,152, 71,202, 59,226,166,185,160, +136,212, 0,230,150,110,248, 74, 92,123, 26, 67,236,219,240, 40, 48, 87,243,215, + 55, 37, 49, 88,219,100, 5, 40,205, 42, 73,144,240,230, 19,130,107,182,176,246, +184, 49, 30, 71,137,134,119,118,141,132,163, 23,214,166,146, 99, 11,121,212,175, +223,135,147, 90,224,227,236, 50,168,184, 85,148,220,137, 57,164,141, 59, 26,107, + 37,151, 13, 56, 25, 38,252, 90,176,227,180,130,129, 75,104, 51,253,180, 48,155, + 83, 72, 91,190,118,160, 72,110, 14, 84, 54, 70, 90,231,198,122,162,216,109, 88, + 74, 15,140,204, 73,226, 92,178, 11,240,106, 38, 77,222,140,206,153, 48,206,133, +208,101,255, 94, 54,151,110, 18,148,227, 22,130, 38,147, 87, 71, 98, 72,183, 75, +149,109,117,232,151,121,231, 18,158,125,102,238, 61, 63,155,251,193, 28,227, 83, +188, 47,213, 14,145,136,248, 51, 36, 11,243,167,231, 28, 12, 19, 23, 78,201,132, + 37,107,201, 87,193,214,168,205,122, 90, 19,128,189, 57,192, 26,101, 13, 19,199, +163,159, 35,144,108,214,166,215,121,223,105, 15,169,241, 86,204,199,182,125,172, +205,134,239, 17, 85, 7, 43, 98,252, 79,238, 36, 68,156, 79, 83, 27,119, 61,229, +238,152,127, 3,105,149,242, 62,242, 91, 28,227,178, 53,219, 85,173,200,170,148, + 11,237,120,243,160,157,141,197,230,104, 55,232, 96,187, 67, 7, 45,255, 84,131, + 19,132,231,160, 60, 75, 93, 48,136,198,232, 86,143,218,185, 34,111, 5, 61, 59, +132,102, 9, 27,129,143,193, 80,216, 8,115,242,122, 41,218, 92,156, 21,109,116, + 45,218,226,248,253, 17, 21, 98, 94, 45,149,119,108, 12,237,121,249,184, 65,141, +109,141,233, 46,112,239,204,137,194, 53,212, 77,116,204, 54,120,121,167, 44, 94, + 12,182,119, 3,173,126,214,205,192,247,218,218, 82,211,225,159,212,213,128, 27, + 34, 90, 13, 95, 82, 76,190,142, 59,109, 41,211,209,108, 71,202,174, 25,220,133, +254, 45, 2,154,159, 60, 44, 43,154,121, 6,254,128, 34,218,242,100, 92,128,171, +121, 79,204,112,175, 4, 8,215,140, 54,182,251,155, 41,124, 34,154, 55, 93,154, +113,218,196, 6,208, 51,192,235, 44, 61,149, 43, 70,122,142,187,249,107, 65,252, +206, 63, 98,254,245, 62,119,225,148,124,134,134,172,192, 18,123, 81, 29,204, 24, + 80, 3, 97,146,189,218,207,254, 75,159, 56,215,210, 19, 82,163,238, 93, 19,136, +162,135, 50,190, 80,169, 87,159, 3,160,199,208,180,179, 38, 36, 87,123,147, 94, +108, 8,252,241,195,114,237,195, 84, 69, 38, 2, 38,138,230, 55,212, 17,237, 50, + 9,101, 14, 87,213, 79,132, 41,232, 31,152,143,231, 90,184,121,223,210,221, 7, +225, 17, 62, 62,219, 60, 21, 80,227,185,225,117,248,201,121, 55, 38,235, 41,222, +150,125, 68,153,115, 22,214, 2, 51,224,234,178,145,237, 34,205, 39,249,193,196, + 41,173,222, 37,225, 22, 35, 3,155,209, 66,178, 59,171,101,242, 8, 67,165, 62, +236, 70,205, 24,102,184, 24,177, 83, 53,152,157, 49, 73,217, 16, 61,131, 65,144, +239,134,105, 18,253, 72, 16,204, 28,185, 78,170, 48, 90, 76, 29,210,244,102,202, +222,110, 5,247,139, 13, 68, 81, 91, 71,244, 37,174,223,232,146,114,235,109,122, +110, 25,119, 39,138,110,140, 52, 64,248, 66,186,133,155,152,176,218, 1,116, 18, + 52, 53,184, 13,134,139,155,149, 69,220, 82,147,138, 9,224,142,175, 52,124,137, +219, 58,189,133,184, 69,222, 75, 78, 26,108,107,198,202, 72,237,184,161, 54, 83, +130,219, 92, 29,226, 34,140, 29, 27,110, 23,191, 28,241,185, 55,140,126,141, 62, + 57, 27,112,251,174,193,205,211,117,110, 26, 78,183,171, 37,144,172, 25, 90, 42, + 53,205, 71,186, 1, 12,106,147,177,163,177, 69,164, 50, 93,184,235, 18,137,185, + 91, 16,197, 44,110, 12,220,106, 43,129,156,233, 39,130,255,117,210,249,160,109, + 47,250,213,226, 16, 90, 41, 34, 32, 56,137, 69, 82, 57,215, 34, 78,145,140,219, +102, 43,154,221,128,125,193,248, 67,210, 59, 4,206,246,177,236, 15, 41, 34,226, +208,249,137,129,237,117,222,222, 59, 82,236,202,190, 48,245,132,113,197,140,117, +197,163, 92, 76,186, 41,188,250,106, 9,181, 47,144,123, 87, 99,227, 47, 68,162, + 83, 1,219,193, 24,139, 83,160, 1,154,169, 85,121,185,145,209, 51, 96, 24,101, + 52, 77,180, 2, 40,239,145,169, 33,119,235, 14,126, 16, 11, 49,224,198,229, 33, + 54,128,170,242,105,219,192,180,231,198,178, 93,232, 86,219, 16,175,233,227, 85, + 34,177,208, 18,207, 13,197,123,111,123,204, 13, 67, 72, 13,230, 98, 98, 98,149, +146, 48,163, 11,253,184,159,135, 4, 78,180,210,231,224, 42, 30,195,152, 97, 93, +124, 33, 76,159, 2,173,200, 48, 60, 69,168, 24,196,225,176,102,235, 45,253, 74, +232, 12,144,232,205, 13,110,249,149,181, 54,179,141,156,255,229,108,217,142, 96, +221, 45,218, 63,208, 38,250,207,116,255, 82,242, 66, 0, 5,207,237,117, 77,181, +207,191,244,136,147,221,228, 30, 87,157, 26,165, 99, 1, 3, 48, 51,119,119, 62, +102,135, 80,152,216, 6, 70,234, 55, 57,236, 58, 0, 98,237, 45,241, 69,194, 1, + 45, 81,244,135, 57,246, 4,101, 14,102,234,196, 93, 9, 56,238,230, 63,182,103, +157,178, 10,225,123, 86,182, 50,232,198,175, 66,147,184,204,255, 40, 61,115,108, + 88,179,174,222, 82,231,152,241,120,145,223,255,222,150,222,237, 97, 64, 86, 23, + 68,185,205,138, 0,131,215,122, 88, 57,176, 82, 4,223, 43, 98,136,214,191, 40, +229, 81,235, 53, 67, 22, 15,176, 31, 62,174,254, 1,252, 90,197,201, 72, 92,209, + 92,222,156, 90, 89, 32, 0, 29, 80,184,122, 52,228,120,172, 94, 28,178, 17,208, +201,187, 18,136, 26, 30, 60, 92,213,157,129,158, 65, 83,152,184, 18, 16,236, 50, + 53,217,149, 5,139,169, 19, 53, 76,170,209, 35,130,123,223,201,190,234, 45, 72, +222, 5,162,177, 85,221, 21, 64,159, 78,208,229, 36, 45,201, 88,154,148,167, 32, +233, 83,140,220,201,252,198,147, 26,136,213,150, 96,233, 37,167,185, 83,219, 15, + 47, 45, 82,159, 24, 14, 30,181,177,183,177,178, 53, 24,121,113,200, 93,155,137, + 9,245,180,235,219, 52,176, 35, 56, 68, 16,229, 58,175, 56,234, 36,216,186,157, +156,254, 62,221,249, 65,184,128,127,168,117, 42,114, 75,196,113, 52,171,162,124, + 62,159,169, 65,230, 31,197, 4, 70, 93, 24, 95, 29,145, 94,146, 84, 67,194, 59, + 16, 72, 62,206, 17,210, 41,235, 21, 1,218,118,249,157,114,188, 75, 16,157,180, +253,103, 2, 89,156, 92,157,205,124, 75, 57, 98,222,126,116,114,201, 39, 50,180, + 37, 59,121,238,122, 76, 92,152,102, 97, 62,218,203,130,113, 98, 87,204, 33,213, +196,233,204,206,214,119, 60,127,180,246,156,136,234,198,120,171, 4, 86,196, 69, + 28, 71,202, 28, 58, 69,108,213, 54, 57,128, 21, 81,132,168,199, 68, 25, 68, 95, + 50, 65, 23,209,112, 85, 16,121, 98,212,165,160,157,189,166, 1, 29,148,170,192, +112, 24,167,213, 15, 88, 92, 88,111, 37,136, 60, 93,151, 40,241,166, 53,184,203, +194,127, 24, 99,178,118,130, 1,205,166,241, 23,171, 87,234,219,136,248,189, 3, +133, 16, 11,146, 12, 29, 68,218,188,220,254,181, 79, 3, 20,248, 4, 91, 42,118, +199, 60,119, 96,208, 49, 85, 14, 75,183,114,189,249,144, 12, 0, 31, 39, 66, 29, +197,211,223, 90,132, 52,140,101,165, 37, 22,160,237,125,252,159,176, 23, 3,245, +140,226, 42, 18,174, 29,229, 67, 10, 87, 8,117,221,179,171,245,146,228, 65,241, + 5,188, 96,178,191,133,163,100,204,231,135, 51,226, 21,227,107,115,181,160, 89, +226,244,138, 43, 75, 68, 45,154, 76,213,139,187, 1, 29, 49,217,205, 31,146,190, + 72, 89, 11,194,128,249, 19, 2, 29, 75,172, 8, 32, 31, 13,212, 44,146,170, 43, + 46,232,245,240, 24, 14,238, 9, 20, 10, 32, 33, 46, 36,156, 40,207, 52,209, 21, + 36,251,103, 75,205, 14,115, 58,211,195,252,113,102, 67, 48,153,101,253,249, 59, +108,182,202,174,131, 55,151,147, 78, 25, 41,220, 23,215, 28, 80,187,139, 14,168, +189, 58, 32, 26,175, 30,115, 47,243, 29, 56, 28, 89,236,124,238,228,116, 16, 56, +196, 30,246,126,228,205,215, 91,152,231,171, 77, 90,228,210,124,117,141, 17,177, + 76,144,250, 37,233, 70,220, 3,205, 85,191,136,188, 33,225, 38, 84,253,238, 80, +152, 7, 20, 26, 18,158, 16,239,130,196,125,230,176,122,105, 45, 57,250, 16,253, +149, 71,178,170,152,173, 40, 31,225,215,143, 80,170,118,133,187, 15, 13, 96,165, +129,215,112,176,172, 5,213,177,186,229, 40, 61,201, 73,123,221,121,185,217,200, +172, 33, 94,171,188, 27,104, 61, 24, 7, 90,165,223, 28, 6, 84,251,131,117,186, + 6,191,100,158,226, 89,249,188, 84,215, 81, 94,218,154, 91, 23,126,196,189,211, + 48,225, 40,179,126, 42,134, 51,152,119,244, 95, 93,209,121, 44,170, 37,192,233, +176,132, 15, 7,181,136,177, 66,168,131,158, 73, 81,158, 73,201, 51,229,211,152, +221, 22, 46,208,249, 32, 18,216, 2,193, 22,237,158, 8, 26, 78,136, 81, 92,198, + 30,149,207, 62,152, 32, 65, 42, 89,231,254, 40,106,163, 51,121,215, 50, 41,176, +191,211, 40,210,146, 12,142,190,243, 23,204,163, 90, 86, 0,186,141,173, 63,104, + 78,165,226, 48, 93,251,109,170,249, 11,180,177, 7,166,212, 64,105, 63, 89, 17, + 19, 93, 43,245,168, 70,151, 0, 84,178,179, 14, 78,208, 78,138,101,109, 99, 90, +145,205,128,203,236, 32, 94, 99, 64,154,124,166,172, 25,232, 80, 83, 44,129,203, +127,226, 95,191,149,250, 60, 48,205, 82, 90, 45, 61,137,186,181,203, 31, 9, 91, + 8,113,183, 25,188, 31,189,120, 31, 29,235,241,207, 0, 58,100,198, 95,159,152, + 19,153,114, 71,239,131,169, 78,152, 43,169,158, 9, 6,248,121, 30,238,220,229, + 72, 84,192, 65,100,174,222,165,212,228, 22, 16,199, 71, 83, 89,184, 38,172, 91, + 88,100, 10,130,133, 21, 4,211, 95,210, 6,230,219,190, 82,124, 6,205, 93,149, +138, 78, 7, 57, 47, 62,190, 85, 0, 6, 66, 2, 89,140, 78, 89,172, 80,210, 4, +217, 20,121, 81,210, 95, 56,238, 17,242, 29,219, 72, 28,217, 30,229,172,255,218, +195,190, 51,154, 42, 12,114, 28, 43,200,126, 48, 25, 11, 65, 4, 96,183, 49,124, +162,110,195,198,156, 24,101, 46,215, 71,114,148,169, 99,209, 40,115, 78, 76, 52, +153, 67,226, 27,207, 71, 29, 71,121, 10,250,150, 91,115, 84,248, 9,153,192,215, + 72, 77,251,198,254, 8,136, 54, 38,196,171,119,104, 23,174,158, 71,239, 59,193, + 16, 37,180,215,214,195, 36,189,142, 92,112,101,103,141,191,244, 5,192, 67, 91, +181, 27,101,243,126, 39, 59,117,206,146, 32, 5,171, 66, 39, 9,178, 56,253,140, + 79, 89,195,156, 81, 56,176, 98,237, 16,168, 97,130,130,227,218,193,200,221, 29, +238,114,175,225,228, 18,214, 84,170, 87, 80,192, 5,127, 12,111, 4, 12,107,157, +174,136,108, 45,123,131,166, 18,219,122,180,177, 7, 10,217, 74, 20,162, 58, 29, +233,232, 65,245,123, 80, 65,206, 33,162,245,203,196,148, 55,209,227, 85,165,126, +101, 18,214, 57, 16,255,172, 59, 13,185,116,208,141, 68, 27,126, 62,229, 5, 1, +102,126, 98,105,104,206,200,170, 21, 98,145,160,131,155,222,186,249,105,212, 34, +201,219,213,152,161,194,200,243,176,220,213,113, 35,173, 54,116,194, 93,192, 99, +213,214, 6,130,222,204,117, 2,226,133,193,225, 45, 10,173, 70, 81, 17,237, 84, + 66,240, 78,226,148, 24,138,190,157, 99, 79,130,161, 61,215,163,131,101,165,145, +131, 50,183, 85, 28, 28,184, 38, 79, 37,124, 35, 93,165,135, 29,187,167, 4,118, +110, 32, 23,198, 60,229,212, 4,158, 20,227,221,240,229, 92,115,111, 28, 24,228, + 18, 8, 15,184, 71, 92, 35,246,107, 89, 72,170, 17,192, 79, 11, 16,171, 96,152, +168,208, 51,129, 64,252, 17, 22,181,152, 5,192,182, 54,186,200, 8,176, 34, 16, +134,233,122, 14, 15, 82,213,105,231, 31,204,205,153, 99,243,174, 42, 0,121, 13, +225,118,211, 67,109,148, 90, 58, 97, 8, 48,100, 88,165,204,236,167,154, 60,107, + 82,103, 57,145, 73,119,194, 29,185,132, 38,240, 10, 79,112,233, 12, 17,171,102, + 22, 83,144, 43,117, 48,158,108,211, 77,146,252, 41,114,218,133, 43,181, 6,164, + 96,218, 10,231,156,159,244, 6, 92,234,159,238, 52,129,210,102,142,221, 31,106, + 68,164,202,161,180,186,209,181,200, 34, 91,116,147,125,124, 16, 83, 99, 43, 67, +146,196,185,118,185,230,215,126,104, 35, 53, 65,197, 1,114,155,192,200,155, 19, +133,164, 29, 47,215,106, 88,229, 68, 18, 57, 49,109,152,204, 89,139, 47, 1,218, +170, 43, 5,171, 35, 94,126,129,139,121,214, 70, 81, 57,189,125, 23, 30,146, 96, + 21,251, 7,148, 61, 21, 40,193,187,249,135, 64, 97,101, 32, 83,178, 71, 65, 17, +158, 12, 1,184, 25, 80,127, 70,159,238, 34, 15, 40,163,165,211,180,242,119,109, + 5, 24,171,103,172, 55,166, 33,239,197,106,242,128, 7, 52,241, 96, 32,196, 36, + 25, 4,159, 15,108, 98, 96, 19,249, 46,156,245,222,106,197,106,253,103, 38, 22, +180, 97,208,190, 37, 15, 81,163, 84, 14,194, 90,220, 59,147, 10, 24,131, 9, 55, +182,231,104, 15,121,206, 65, 64, 35,187, 19,110, 38, 61,182, 60, 93,152, 45,168, +139,146,188,141,184,115, 10,231,117, 72,129, 35,234,187,178, 59, 96,134,218,210, +209,142, 89, 70, 39,168,249,166,107,230, 15, 50,136,218,199, 78,209, 44,228, 97, +138,241,158,211, 24,146,165, 37,229,238,226,254,227, 74,240, 25,206,177, 50,224, +215,112,231, 76,199,154, 14,245,201, 20, 64, 41, 75, 2, 58, 23, 37, 32,211, 78, + 29,184, 25,129,254, 4,178,243,204,120,196,198, 30,170,187,178,185,253, 49, 73, +186,251,154, 33, 74,188,105, 10,244, 51,133,125,159,192, 34, 49,165,233, 5,117, +129,193, 81, 8,212, 77, 44, 49,217, 63,210, 91, 90, 55,251, 19,105,137, 2,197, + 16,198,233, 81,100, 78,246,248, 24,133,227,138, 64,143,145,212,188,102, 81, 3, +237, 92,242,193,184,235,142,182,108,154, 65, 88,148, 43, 92,199,166,215,105,204, + 44,127,139, 19,175,233,253,129, 54, 63, 38, 34,201, 51,182, 57,205, 17,209, 62, + 52,230,232, 3, 37, 98, 68,165, 51,226, 4,165, 77,153, 28,226,224,223,156, 23, + 30,145, 42,255,129, 27, 68,251,114,241,160,136,193, 44, 71,208,123,146,255,167, +112,208, 57,142,252,199, 19,194,219,194, 52,167,135, 28,157, 77,195,225,129,170, +179, 25,156,196,236,224, 89,246,237,138,124,163,142, 53, 92,187, 9,104, 92, 9, +245,108, 12,131,104,215,100, 30,200, 19,208,223,201, 66,251, 46,209,172,195,132, +212,168, 9,204,179,145, 99, 48,198,118, 53, 94, 44,142, 33, 47,211,132,201, 8, + 84,225,106, 57,248, 75,211,237,238, 17,251, 7,122,151, 38,149,102, 36,220, 39, + 59,247,193, 97,206,151, 35, 70,149, 31, 10, 3,250,171,173, 55,116, 78,192, 65, +151,241,167, 18, 15,169, 50, 36, 58,105,235, 48, 81,173, 56,171,217, 41,104,123, +254,129,121, 38,131, 3,198, 34,159, 45,112, 45, 43,226, 54, 87,204,132,110,101, + 1,145,166, 82, 46, 29, 38,235,139, 41,126, 80,100,168,120, 23,205, 15,163,236, + 10,250,132,217, 38,242,125, 33,233,203,246,195, 86,205,133, 79, 14,106,115,100, + 72, 90,134, 95, 68, 44,178, 45,118, 21, 5, 58,106,132,151, 86,232,213, 61, 70, +129,192, 65, 55, 89, 65, 64, 81, 74,161,168, 59,159,168,188,181,233,176, 19,225, + 91,254, 33, 55, 46, 57, 32, 38, 26,237, 47, 72,105,141,239, 8,139,190,248,193, +187,224,212, 24,129,149, 93,252, 52,200, 96, 71, 20,163,189, 91,236,150,106,225, +115,219, 10,164,126,254, 24, 16, 49,119, 58,153,137,207,121, 64,209, 78,103,243, + 40, 9,180, 60,169,117,250,220,216,170,134,224,131,207, 0, 1,229,248, 73, 40, + 66, 19,194,126,230,252, 26,121, 62,158, 55,192, 17, 71, 4,202, 97,150, 69,119, +131,145, 86, 60,188,107,254, 21, 46, 7,231,196, 73, 0,194,250, 60,205,181, 84, + 29, 94,212,193, 39,237,120, 70,157, 81,146,236, 5,152,130,101,230,247, 74,243, + 64,101,225, 75,206, 26,174,238, 87,154, 24,188,182,133, 15,112, 13, 84, 76,252, +165, 44,204,153,196,241, 58,205, 1,147,101, 13, 45,171,213,236,253, 16,151, 17, +154, 1,196, 84,104,170,175,148,151,192, 7,114,185, 17,213,161,152,118, 47,231, +129,143,218, 70,133, 92,181, 21, 34, 12,222,217,212,228,168, 57,210, 99,139,125, + 86, 32,254, 69,243,218,162,124,120,214, 42,226, 52,235, 60,184,253,204,202, 11, + 42, 78,112,198, 44, 4, 75, 39, 51,157, 21, 21, 3,236, 25,253,138,244, 75,167, +206, 1,117,184, 89,228,123, 30, 45,110,173,161,141, 3,253, 37,157,237, 7, 5, + 73,234, 48,162,186,208,150,202,109,153, 27, 1,150,162,152,161, 15,165,213,105, +156, 36,252, 38,151,113,208, 44,244,223,132, 43, 48, 95,201,212,173,123, 91, 22, +149, 24, 3, 85, 5,167, 52,236, 83, 72, 48,116, 69,187, 70,121,197, 7,245, 34, +240,127,243,142, 18,219, 73,149,246,254, 48, 26, 78, 34,116, 49, 92,162, 4, 94, + 95,167, 67,225,159,121,133, 91,163,100, 36,226,231, 2, 65, 87, 18,180,231,235, + 73, 67,141,114,159,168, 89, 61, 44,145, 13,228, 46, 23, 1, 0, 98,127, 59,185, +209, 86, 68,177, 77, 37,228,157,204, 54, 23, 14, 44, 42,121,124,249, 58, 46,224, +103,171, 8,181, 83,178, 29,240,150,144, 39,129,142,187,205,162,121,147, 41,236, +174,216,138,122, 81,233,124,178,215,157,183,175, 34, 28,161, 96,150,214, 30,102, +205, 36,150,242, 20, 61,230,120, 0,116, 68, 13, 80,163, 14, 32,246,182, 57, 29, +160, 16,232,106,247,118,131,218,155, 12,251, 29,169,187, 85, 96,241, 4,167,224, +218,175,252,128, 96,138, 13, 16, 53,115, 54, 55,136,176,129,121,193, 78,215,108, +210,142,140,232,188,194,231,174,234,121,123,193,146, 44,235,111, 10,126, 75, 61, +139,235,214,134, 1, 24,168, 49, 36, 54,105, 68, 70, 66,190,242,130, 49,176,101, +171,232, 17,246, 58,149, 73,201, 63,128, 74, 79,192,163, 68,162, 19,141,165,238, + 95,179,228,177,255, 86, 35,205, 65,150, 14, 14,189, 57,244, 9, 71,219, 0,238, +126,182,136, 15, 94,221, 33, 13,136,104, 18,232,124,235, 62,181,204,248, 31,135, + 76,218,135, 90,253,143, 54, 14,118,110, 44,179,200,223, 24,199,101,210,235,230, +198, 92, 18,212,195,169,157, 72,247,125,118, 78, 39,232,132,181,124, 92,102,178, + 18,151, 28,169, 82, 64,191,238, 19,216,126, 36,237, 18, 42,219,125, 6,213,127, + 69,147,181,223,185, 97,203,129, 77, 67,234,201,198,235,115,119,166,224, 61,153, +125, 80,168,192, 31, 73,184,179,106,191, 35, 81,236,132, 59,213, 60,224, 18,150, +210,142,247,107,224,119, 70,203,149,112, 11,240, 85,173, 97,223,221,203, 28,227, + 12, 73, 8, 92, 80,190,214, 61,173, 77, 15,140,161,248,242,121,135,121, 87,228, + 95,110, 41,141, 20,231,117,185, 17,145, 93,214, 66, 94,139,142,176,184, 62,176, + 1,124,170,221,247,239,244, 54,160, 82,238, 44, 45,204, 76,186,240,218,244,147, +162,230, 51,243,211,105, 31, 24,197,180,153, 7,109, 4, 25,135,133,173,110, 81, +180,126,145,220,160,166, 89,160, 27,249,117,117,160,253,235,193, 86,114,165,119, + 17,244,126,152, 13,206,234, 3,227,151, 97, 75, 45, 25,250,102, 46,111, 71, 96, +157, 30,123, 37,123, 24,120, 30,191, 93,156, 41,100,242, 89,148, 54, 41, 30, 7, + 62, 8,217,110,145,180,130,171, 27,185,116,112, 52, 82,217,220, 46, 8, 33, 59, +177,249,207,113, 94,176,112,106,101, 73,119,142, 26,227,117, 0, 80,144,117, 76, + 67,189, 54,190,119,162,246,137,254, 9,167,188,218,159, 2, 47, 87,166,177,191, +217,190,233, 65, 26, 34,100,230,223,180, 84,241,191,179, 64,184,248,235, 59,197, +160,226,248, 12,209,229,148,178,184,252, 57,115,195, 10, 29,103,254,173,226,119, +140,208, 62, 78,229,192, 91,227, 55,199,142,174, 63, 18,219,212, 13,132, 11,208, + 87, 17, 73,149, 70,119, 97, 14, 25,119, 37, 41,175,208,245, 70,173,196,135, 16, +212,255, 31, 92, 67, 61,246,225, 89, 52, 43,217,237,127,111, 94,222,172,237,198, + 34, 29,227,239, 77, 28,126,202,233, 18,132,158, 43, 98,210,185, 66,139, 14,139, +217, 60,117,248,133,178,217,100, 92, 55, 93, 16,135,115,122, 20, 68,104,191, 47, + 4,132,201,234,162,237,229,213,168, 82, 26, 34, 74, 25,185,220,156,212, 51,143, +183, 97, 90, 48, 23, 62,158, 85,104, 68,176,126,101,226, 21, 83, 42,152,243, 15, + 60,146, 99, 10, 72,145,190,161, 39,248,216,211,154, 63,225,111,120,221, 0,181, +104,224,114,217, 67,213,204, 7,198,192,183,155, 56,147,170,217,109,139,219, 62, + 92, 53,133, 17,226,154,177,181,122, 78, 61,160, 77,172,204,128,114, 1, 80,246, + 66,209, 81, 6,171,171,212,117,220, 6, 90, 7,198,140, 26, 88, 90,132, 58,100, + 41,254,138,157,171, 43,251, 50, 36, 24,131,139, 67, 7,162,135,145, 5,168, 23, + 92, 49,154, 7, 53, 39,133, 20,145,199, 59,234, 15,176,178, 47,151,184, 12, 30, + 90, 61,135,142,170,122,232,207,187,173,177, 65,170, 97,128,209, 98, 64, 48, 34, + 42,209,163,230,229,162,250, 44,186,226,224,142, 55, 57, 24,239,115,209, 9,158, +131, 68, 35,140, 53, 26,215,209, 18,115,105,114,105,198,126,154, 5,147, 1, 34, +206, 71, 82, 84,147, 1,106, 42,132, 29,194, 89, 7,165, 12, 11,243,130, 94, 56, + 84,197,160, 72, 33,203,182,162, 23,190, 26,242,143,129,151, 50, 26,151, 50, 26, + 23, 97, 32, 29, 77, 41, 27,173,105, 77,181,234,189,181, 20,112,222,186,247, 15, + 77, 37, 42,216, 64,181, 2,237, 96,184,158, 48, 97,123,138, 94, 43,205, 70, 75, +239,154, 16,196,251, 80,203,157,102, 54,224, 62, 80,176, 23, 35, 44, 97, 58, 65, + 58,187, 41, 65, 61,228, 10,103, 47, 3, 9,111,147,201,110,186,232, 47,226, 32, +125, 85, 45,125, 79,225, 85, 41,164,119, 41, 9,198,213,173, 2, 6, 22,240, 84, + 51,176, 12,236,140,216, 2, 42,117,144,170,117,218,212, 55,114, 16,243,148, 30, +253,142,216,213, 16, 8,210,183, 84,105, 30,221, 43,176,187, 57, 61, 0, 57,213, + 37, 76, 30, 13, 44,235,234, 90,139,163,236,186, 42, 10,142, 93,135,122, 26,181, + 84,163,102,146, 91, 45, 1, 17,218, 72, 64, 12, 43,171,124, 7, 62,251, 39, 29, +213,211, 23,248,186, 27,242,118, 60,234,242, 19, 98,221,212, 10, 81,235,169,106, +101,221,179,194, 6,137, 85,127,181, 64,212,186,172,234,234, 23,181, 80, 91, 47, +224,186,128,182, 30,219,181,248, 81, 35, 84, 52, 68,190,174, 65,127, 26,108,175, +186,228,254,244, 35,248,159,183, 87, 38,171, 91,166,140, 79,128, 21,152,192,148, +144, 43,117,146,157,243, 0,230,118,165, 40,224,208,232, 1, 52, 2,127,225,100, + 89,191,195, 77,134,165,233, 69,250,165,232,111,225,155, 8,133,116, 97,237,127, + 57, 65, 75,183, 41,131, 25,102, 24, 94, 8,155, 0,153, 0,153, 0,121,115,107, + 70,243,222,250, 62, 68,220,224,114,247,202,146,124,225,194, 32,177,112,112,137, +105,246,115, 71,215,140,237,119, 11, 69,150, 87, 98,149, 99, 78, 99,243,126, 25, + 89, 12, 45,224, 51,122, 15,147,113,225,149, 44,221, 34, 45,110,209,119,211,108, + 54,209, 39,196, 69,207,109,197, 23, 27,120,148,233, 19,139, 50, 44,218, 58,119, +153,107,105,115,165,171,179,105,227,118,103,186, 42, 2, 42,239,231,166,250,209, + 80,212,212,161,253,246, 42, 92, 8,122, 14,222,141,190,143,133,126,252, 65,240, +197,252,161,109,203, 84,191,111,244,114,252, 85,251,157, 44,107,222,170,181, 81, +230,110,153,168,102, 84,124,219, 62,131,158, 8,150,110, 52,195,253,147, 60, 44, +136,220,160,167,219,189,120,229,237,202,249,127, 21,128, 74, 2, 78, 89, 61, 76, +171, 29, 53,119,219, 83, 14,135,239, 59, 26, 74,241,183,184,187,255,168,111, 91, +183, 56, 67,219,229,129,185,132,105, 41, 29,190,120,247,117, 85,215,117, 89, 86, +196,242,235,178,188,186, 34,149, 95,149, 91, 21,196,132, 46,147, 43,211, 31,209, +238, 19,119, 10,180,163, 35,176,207,124,101,173, 81,116,129,215,238,127,151,126, +220, 41, 31,178,155,114,191,117,245,201, 39,234,239,140,119,203,103, 57,214, 39, + 73,224, 16, 2, 58, 89, 19, 68,185,105,176,241,233, 29,141,206,181,195,121, 6, +219, 93,206,118, 1, 28,251, 82,155, 17, 74,142,177, 3,248, 99, 63, 95,211, 26, + 62,183,166, 41,158, 26,149,107,241, 63,132,192,249,158,180, 32, 50,131,218, 76, +233, 26,212, 30, 4, 66, 69,223,188,140,148, 54, 49,157,237, 83,147,159,124, 15, +138,206,171,245,140,113, 70,239,192, 48, 12,230, 26,244,153, 14, 70,249,204, 67, +163,173,155,135,130, 40,167,191, 78, 60,161,166,186, 2,127,132, 32, 69,148,162, + 98,190,153, 86, 13,145,253,214,113,157, 6,115,160,239,225,212, 76, 54,104,180, +230,140, 67,104,189,231, 51,193, 97,228, 93, 18,167,162, 37, 93,211,194, 23, 2, +145,100,255, 36, 15,195, 57,230,174, 83,142, 67, 51, 14,144, 89,213, 4, 29,208, + 37,132, 17,226, 16,190,231, 33,172,129, 23,201,228,138, 64, 56,189,186,250, 47, + 28,130, 48, 24, 95, 39,153, 92, 17,247,199,227, 34,153, 92,145,137,197, 81,187, +101,244, 25, 41,199,114, 35,100, 93,110,108,128,166, 2, 15, 39,121, 60,158,247, +252,243,120, 98,190, 87, 99, 9, 93,217,200, 85,186,141,196,116,193,254,128,198, +107, 80,206,135, 77,186,187, 29,231,110,212,190, 68,140,180,222, 92, 45, 66,150, +178,193,151,144,162,221,172, 98,252,154,214,159, 47,117,169,105,150,148, 39,204, +161,180,239,209, 39,197, 39,165,130, 64, 65,240,127,247,121,192, 77, 76,178, 1, + 19, 70,109,187, 57,231,207,154,233,199, 20,139, 58,172,196,250,101,145, 48,128, + 0, 35,113, 0, 8, 12,141, 75, 68,130,161, 56,158,231,105, 30,210, 15, 43, 10, +195,122,202,126,214, 22, 93,105,172, 81,188,231,225, 24,101,145,211,206,244,169, + 70, 81, 36, 72,220, 28,210,204, 44, 34,122,136, 92,136, 64, 43,231,216, 91,148, + 3, 46,181,183,214,183,128,102,120,145,122, 73,125, 93,196,139,222, 87,155,127, +179,100, 72, 63, 52,191, 20,209,175,231,169,156, 20,128, 70,183,246, 76,117,157, + 18,158,221,175, 24,228, 58,199, 69, 74,176, 28,226, 3, 82, 34, 49, 75, 15,115, + 82, 73,157, 85, 30,146, 80,198,104, 67, 1, 15, 77, 31,233,106, 22,126, 9, 4, +234,135,224, 74,135, 20,252, 79,101,100,180,161,166,154,144, 4, 79,207, 15,141, + 96,112,135,126,204, 71, 83, 1, 61,139,136,179, 65,253,161,177, 72, 96,245,137, +211,193,149,140,245, 20, 66, 18, 75,120,252,233,157, 98,127,175,154, 3,167, 59, + 33,236, 50,110, 25, 38,174,156,132, 11, 6, 17, 93, 48,255,183, 48, 0, 39,150, + 91,227,168,170,124,247,167, 63,143,149, 95,115,128,226,245, 51, 99,178,211,214, + 70,181,176,145,170,106, 29,101, 61,238, 5, 10, 58, 94, 53,241,253,207,152,236, + 72,139, 87, 56, 78,195,249,236, 18,114,221,139, 8,155,240,177, 53, 45, 17,205, +252, 72, 55,240,190,151, 48, 62, 7,171, 90, 86, 31, 35, 64,232,143,157,198,235, +134,222,210,126, 26,254,233,199, 20, 89, 28,122,138,239,121,181, 79, 35,147, 76, +236,105, 36, 48,212,198,103,185,159,127,122,235, 9,193,123,189,237,188, 64,105, + 23,162,151, 42,102,200,138,175,134, 18, 82,130,158,120, 3,227, 4,160,204, 48, +238, 36,107, 67,185, 89, 78,161, 9,134,177, 38,167,150,239, 83,154,227, 57,228, +151,110,124, 10, 4, 87,210, 4, 0,160,166,252,150, 11,175,233,197, 16,221,157, + 92, 57,149,192,222, 37,122, 79,174,112,235, 11,238,129, 92, 45, 52,169, 20,196, +100, 25,224,145,113,184, 33, 22,198, 1, 56, 7,106, 95,192,108,238,206,255, 53, + 25,109,107,254, 61, 50, 86,138,108, 26,195,214,200,147,206, 31, 93,255,239, 32, + 62, 80, 67, 41,110,236,218,215,140,154,100,180,203,117,186, 19,167,124,199, 46, +235,147,149, 0,226,192, 38,201,121,206, 83, 30,158, 37,228,100,126,110, 72,172, +167,168,115,119, 22, 31,126,248,238,230,184,210, 74, 25, 69, 3,153, 34,169,251, + 0, 5, 52, 32,175,188,154,129,188, 1,184, 60,254,137, 13,191,107, 95, 69,212, +137,110,250, 33,190,217,174,223, 96, 74,158, 10, 65, 33,233, 68,161,185,253, 82, +113,134,212,214,193, 86,196,147,211, 88,144,123,253, 74,153,212, 73, 58,168, 15, + 36,179, 9,211, 57, 9, 90,191,143,209,218, 5,158,232,240,146, 50,223,249,111, + 53,123, 24,251, 56, 49, 38,114,120,222, 48,181,206, 82,151,253,152,189,132, 11, + 70,216, 80, 38, 88, 51,131, 44, 80,155, 11,119,137,173,174,188, 46, 15,134, 25, + 95, 84,188, 21, 6, 27, 98,130,216,221, 53,100,226,190, 69,164, 7, 98,174, 60, +241, 44, 65, 14,193,209,114,239, 67,158,201, 1, 94, 40,165,121,151,207, 11,124, +116, 58,210, 89,173,107, 20, 17, 47,102, 43, 23, 41, 1,203,215,203,150,123, 33, +232,129,221,169,179,114, 45,229,160, 49,202,193,248,196, 98, 36,246, 93, 80, 69, +178,219,153, 71,243, 13,171, 2,200,181,182,115, 14,202,242, 21,131,127, 96, 18, + 62,217,255,121, 51,126,217,249, 68,123, 54,186,110,121, 60,219, 50, 8,150,180, + 84,195, 43, 68, 92,144,197,223, 2,162,218, 94,176,194, 68,149,252, 43,189,244, + 62,192, 64, 57, 96, 37,253,213,164,107,202,115,143, 49, 38,151, 95,170, 2, 46, + 48, 87, 61, 26, 24,192,155,164,218,122,217,162,176,126,176, 83, 48,157,100, 39, +253,163, 30, 44, 29,232, 42, 31,158,145, 6,251,165, 98,237, 42,178,125,194,118, +125, 61, 52, 68, 10,161, 84,152,153,171,137,130,112, 74, 2,203,245, 75, 36,238, + 94, 75, 10, 5, 27,150, 84,138, 73, 90, 31, 97, 45,190, 29,192,221,118,172, 46, +204,222, 90, 42,169,116, 59,204,215,138,138,107, 13,101, 53,228,221, 12,125, 70, +252,190,168, 79, 35,157, 82,218,218,159, 42,158,140, 45, 14, 53,213, 48, 61, 35, + 93,245,120, 93,237,232, 43, 29, 33, 83,202,155, 32,198, 6, 22, 78,159, 38,219, + 56,146,139,206,162,182,249, 36,197, 66,187,177, 28, 18,123, 26, 42,133,135, 14, + 89,250, 23,158, 39, 34, 84,248,224, 69,211, 3, 15,101,183, 38,162,125, 13, 13, + 57, 19,145,187, 46,202,132,152,114, 33, 47,191,194,115,233,185, 74, 65,136, 12, +107, 95,204, 25, 48,193,206,251,199,204,132, 2,137,240, 5,191, 64,144, 16, 80, +156,174,145,145,205, 94,128,220, 77, 4, 42, 15, 62, 46,216,111,153, 83,222,115, +200, 53, 78,199, 5, 33, 84,194,152,149,253, 54,153, 77, 43,113,193,226,206,163, +212,237, 71, 8,167,199,242,253,162,180,211, 43, 18,118, 64,186, 46,186, 94,235, + 17,170, 72,148,227, 35, 75, 13, 55, 49,111,100, 62,243, 43,253, 37,128,163,104, +128,117,228, 0,246,110, 4,154,164,185,115, 39,166,168,189,177,217,146,207,200, + 54, 44,212,148,136, 52,102, 15,250, 16,207, 82,235,221,216, 14,216, 43,130, 11, +167,110,196, 16,185,132, 49, 11, 12, 56,139,204, 81,107, 20,238,252, 73, 99,123, +169,155, 24,222, 61,175,163,108,184,175,221, 8,206, 15,144,223,225,153,148,108, +119, 66,233, 35, 46,151,132,210, 35,109, 52,104,154, 96, 53,224,247,174,155,249, + 85,135, 45, 51,153,141,124, 7,253, 6,208, 58,224, 41,161,200,206,122,104, 42, +132,254,125,152, 30, 40,198, 7, 42, 68, 71,228, 11,237,138, 75,222, 45,155, 92, +178,206,171,154, 25,225,228,213, 30,146, 87, 86,158,246,191,171, 36,227,167,251, +216, 20, 79,215,193,247,222,121,134, 64,129,178, 33, 80,136,199,135,214,168, 98, + 92, 5,136,166,243,119,190,103,218,157,233, 31,123, 2,163,184, 22,185, 88, 41, +190,224,245, 33, 30,141,228,250,183, 0,213, 22,177,251,121,220,135, 47,210,129, +227, 66,141,130,175,206,110,178, 14,228,160,181,175, 91,169,179,203,117,123,250, + 36, 64,172,187, 98,177, 16, 9, 72,136, 64,124,116,103,200,228,203, 5, 91,203, +170,153,165,198,126, 87,250,115,182,155,165,100,143, 86, 67, 66, 20, 33,131,245, +212,235,249, 74,138, 91,228, 62, 20, 77,103,138,165, 55,251,177,151, 83, 79,251, +194, 42, 0,200, 77,139,108,214, 43,167,204,164,169,234,141,166,127, 1,183, 67, +220,213,189, 90, 2,232,139, 34,182,216,249, 34,211,236,141,159,190,139, 68, 47, +161, 23,245, 0, 18,242,130, 1, 49, 14, 66, 49,208,174,111, 57,103,158,200,128, +162, 82,105,255,208, 96,251,228, 97, 77, 26,171,247,167,176,118, 87,203, 69,232, + 95,124, 37,206, 51, 54, 88,251,172,150, 82, 49,208,206, 11, 82,188,158,207,107, +246,100, 66, 42, 88,178,213, 53,250,236, 5, 49,179,135, 60,138,209,196, 1, 8, + 24,130,255,103, 81,233, 0,153,175, 77, 61,136, 17, 33,210,116,149, 64, 20,223, +148,224,221, 43, 27,117, 14,149,213,195,152, 84, 16,112, 54,138,142,146,196,104, +231,213, 23,178, 8,224,140,143,156,110,162,235,148,182, 13,102,177,176,142,248, +208,169,132, 45, 95,155,194, 2,233, 33,246,209, 78,136,145,207,246,216, 77,235, + 52,164, 14,114,136, 88,132, 91,189,178, 91, 87,231, 16,231, 16, 43,249,202, 87, +227,101,110, 87,223,111,116,156, 97,155,238,177,164,105, 46,151, 40, 48,182, 71, + 78,171, 23,198,250,217,121, 14, 48, 0,128,108,193,206, 95, 46,250,242, 8, 86, +202, 80, 57, 82,220,232,194, 19,221,122,188,111,124,163, 94,141, 30, 27,201,239, + 58,197,194, 32,130, 96, 66, 24, 83, 11, 66,130,248,126, 99, 52,186,236, 95, 47, + 32, 94, 73,205,152,182,235, 98, 5,235, 8, 42,241,217, 34, 10,152, 63, 29, 87, +159,226,145, 57, 29,100, 40, 42, 49, 78,155,176,143,177, 17,204, 55,195,159,169, +167, 40,140,253, 95,205, 74,225,146, 19,196, 75, 65,231,183,109,182, 45,137, 20, +254, 45,129,195,234,183, 19, 36,241,128,229, 42,228,150,136,141,193, 72,191,174, + 59,226, 9,195, 87, 41, 76,203, 68,171,227, 79,133,177, 47, 41,210, 80, 14, 10, + 71, 99, 13,208,100, 29,218, 80, 86,221,144,137,221,232,107,247,172,254, 23, 58, + 4,224,170,231,113, 96, 91,149,185, 54, 52, 10, 14, 68, 7,196,248,243,225,193, + 19,160,193, 75,138,180,163,183,224,100, 79,187, 10,229,119, 88, 0,197,125,141, + 61,145, 18,249,220, 1, 30,178,237,202,218,143, 25,228,174,128, 52, 62, 1,110, +164,250,180,234, 93, 63, 43, 14,145,200,130, 36,208,163, 73,209,196,181,211,190, + 95, 64,209,209,237, 93,145,160,217, 54, 61,222,105,127,223,254,163,249,180,113, +137,255,235, 33,167,144,218,208,184,146,251,111, 3, 50, 83,233, 41, 10, 8,223, +121,206,145, 43,221,100, 23,201,147, 90,224, 43, 82, 31,132,196,103,196, 88,246, + 68, 30, 87,194,222,151,174, 98,213,228,163, 19,105,174,134, 22, 53,118,187,165, +154,123, 96, 16,218,194,188, 50,149, 51, 42,190, 48, 3,113,190,196,245,172,205, +227, 16,101, 30, 60,123, 59, 41, 96, 80,161, 39,172, 32,178,161, 86, 18, 97,154, + 90, 34, 81,139, 64, 4,192,108,255,230,156, 74,100,168,255,112, 20,247,160,225, + 2,121, 27,174,161,198,244, 46,225,184,130, 36, 20,130,128,253, 94, 88,245, 54, +227,111, 45, 86,120, 65, 50,213,185,231,178,100,189,150,142,152,212,116,186,242, +233,203, 44, 4,127,228, 83, 94, 75,146,102,250,246,187,177,210, 23,204, 21,226, + 59,102,215, 36,153,232,101, 78, 37,231,120, 82, 88,232,108, 2, 86,133,205,215, + 7, 22,211,106,204,106, 18, 51,125, 78,251, 91,196,181,227,231, 81,108,118,190, + 19, 69, 7,160,150, 3, 50,226,203,180,218, 3,200,136,103,101, 21,169, 97,250, +152,220, 63, 94, 48,108,141,155,156,166,114,110, 48, 30,122, 98,184,150,153,152, +227,166,152,196, 71, 18, 90, 86,128, 1, 37,238,249,136,185, 63,103,130, 99, 26, +226,117, 95,189,139, 36, 61,109, 28, 80, 0, 58,126, 55,200, 5,202,112, 54,199, +235,151,102, 13, 11, 49, 11, 24,105, 75,140,228,220, 74,253, 82,180, 20, 60,239, +215, 7, 30, 73, 72,171,197,212,133, 63, 43, 54,240,152,119, 46,131, 96,112,184, +114, 36,172,130,227,123,118, 43, 87, 55, 33,247, 19,235, 76, 89,156, 74,130,233, +183,110,173, 94,167, 65,100, 82,159,226,218, 8, 69, 94, 1,160,190,132, 46, 55, +178,217,250, 89, 11,251, 27,198,178,144,173,244,164,131, 64, 43,218, 18, 5,214, +220, 99, 92, 67,155, 48,104, 61,192, 76,242,237, 12,120, 83, 57,109,179, 42, 21, +182, 52,147,121,114, 75, 80,227,144,106,251,137, 12,248,127,244, 18, 55,247,112, + 48,211,241,147, 14,171, 81,210,147, 89,151,113, 2,236, 76, 96,124, 28,171,242, +245,155, 84,161,184, 41,217,181,119,185,120,163, 17,217,185, 56,133,228,191,176, +147,104, 78,149,233,203,164,170,211,255, 50,182,141,233,161,189, 84,185,253, 98, +126,122, 39, 46, 55,218, 39, 90,142, 58,126,134, 8, 8,221,131,146,242, 57, 16, +182,242,145,134,199, 11,159, 67, 17,248, 89,127,250,109, 61,232,173, 65,125,187, +253,251, 53,223,227, 51, 28,201,187,227, 4,102,192, 12,115, 82,127, 27,254,140, + 79,196, 84, 41,218, 79,244,113,235, 73,137,230,198,111,141,185,102,104,166,183, +106,240, 73,131,121, 59,115, 88,237, 12, 25,167, 9,225, 48,157,137,166,133,224, +204,154,113,118,176,228,114,197,237,189,166,136,176,164, 64, 60,183, 79, 79, 74, + 74, 80, 14, 52, 9,137,195, 6,125,178,150,105,248,229, 65, 48, 6,210,215,118, + 92,131, 61,180,123, 20,210, 55,134,153,212,159,170,219, 78,246, 66, 18, 94,137, + 68,209,157, 51,162,207,186,211, 47, 94,150,111,184,142,169, 6,126,220, 18,191, + 63, 96,172,163,129,125,158, 13,138,248, 94,136, 73, 92,218, 21,195,162, 5, 85, +201,158,127,211,211, 50,127,149,210, 28,252,125,240,254, 18,235, 93,231,110, 85, + 77,102, 1, 56,222,165,144, 92,116,164, 79,100,130, 85,189,215,241, 61,138,161, +124,166,136, 18,129, 40,116,238,168,142,183,115,169,117, 33,193,115,158, 39,132, +147,160,140,147,118, 80,107, 68,161,192, 89,253, 9,201,151, 59,104,167, 65, 73, +102, 2,135,211,186, 68, 39,179,179, 58,145,204,155, 50, 95,116,230,213, 98,236, +159,215, 60,216,249, 67,200, 35,187, 36,167,234,226,122,197,130, 66,246,119, 15, + 81,134,205, 76,241,251,167, 20, 90,121,177, 47,222,250, 2,206,237,232,232,112, + 50,134,179, 75,151, 8,228,154, 88,128, 9,228,152,184,167, 88,241,168,189,252, +189, 32,172,148, 20,244,136, 37, 64,208,210,156,154,191, 88,199, 32, 64,232, 27, +142,144, 24,184, 64,215, 24,211,200, 34,248,161,128,208,124,171,248,122, 65,246, +102, 3, 83, 27,129,117,105,105, 1, 45,174,239,151, 61,133,143,221, 31, 55,165, +149,242,227,184,216, 3, 15,217,159,160, 14,142,144,215, 47,189,139, 56,129, 89, + 13, 31,165, 40,146,161, 93,243, 62,174, 49, 2, 24, 51, 89, 75,112,214,236, 68, +141,229, 98,241,109,149,187, 17,228,232,109,123, 78,210, 73,227,233, 15,248,127, +202,238, 84,192,223,113, 71, 85,130, 95, 10, 36,183,224,192,112,129,211,240,201, +117, 2,144,240,230, 24,125, 84,156, 94,241,204, 61, 78,245, 91,113,222, 62,198, +168, 15,253,236,220,130, 25,227,120,191,195,151, 5,232,236,212,212,143,232, 25, +208,255,163,168,218,247,172, 73,121,180,130,117,153,255,192,105,136, 59,237,121, +183,138,188,192,215,116,211, 14, 38,252, 68,230, 69,254, 89, 9, 60, 10,237,130, + 71,163, 1, 25,207,240, 50,207, 9, 54, 60,146,152, 47,170,217, 31,155, 11,147, +187,247,151,203, 16,212, 17,232, 36, 30,236,239,117, 65, 12, 95,250,137, 87,197, + 18,244,142,233,200,118,237,229,166, 83, 42,231,117, 28,117,121,113,132,129,204, +123, 76,174, 12, 18, 49,119,195,209, 69,175,152,165,240, 75, 7,144, 1, 97, 56, + 13,217,178,201, 16, 61, 32,247, 23,186,155, 84,146,240, 27,209, 16, 44,172,140, +242, 80,237,106, 71,193,139,116,201, 15,155,190,141,217,118,128, 88, 14,233,195, +203, 42, 83,200,142, 48, 86,160,173,122,119, 63,204,163, 30, 0, 57,255,251,188, +229,199, 15,245,170,247, 9, 5,136,116,123, 49, 98, 92,126,194, 90,171,159,239, + 58,254,207,186, 30, 78, 12,164, 80,221,213, 36,227, 14,185,153, 50, 38, 13,175, +205, 69,211,139,247,191, 42, 47, 10,183, 50, 65,224,134,212,108,174, 24,193, 74, +206, 41, 51,193, 87, 35,247, 19,223, 55, 44, 31, 32,236, 51,248,165,211,137,240, +154,140, 58, 49,157,216, 22, 77,101,176,188, 48, 75,199, 8, 23, 56, 75,160,139, +205,226,177,232,156, 36,185, 77,140,153,125, 96,116, 10,199,124,108, 20, 5,107, +110,252, 57,230, 75, 88, 88,174, 5,227,107,179,153, 75, 58,128,107,175,121, 97, +100,194,116,196,226, 59,192, 14, 45, 91, 82, 9,144,163,108,241,244,121,109, 6, +124, 70,115, 18, 45,230,164,220,150,191,126, 80,116, 89,141, 13,204,180, 72,181, +243,168,109,161,180,159, 21,241, 58, 37,190,122,159, 21, 70, 74,170, 67,179, 78, +163, 15,155,148,224, 71, 55, 6,253,139,176, 24, 37,148,221, 43, 15,190, 39, 98, +147, 3, 7, 75,221, 1,210,205,234,126,117,203,128,104,218, 76, 18,176,245,171, +203,250, 43,199,210, 4,232, 39, 76,145, 28,113, 12,130, 95, 99, 10, 19,112,104, + 87,161,241,218, 39,106, 63,130,195,134,217,134,163,172,184,167,214,143,175,194, + 20,254,200,132,216,181, 38,199,107,214,184, 8,213, 59, 76,135, 75, 54, 51,171, +112,112, 16,232,228,220, 54, 62,132,254, 21, 18, 91, 19,133,164, 42,212,213,153, +104,112, 48,227,162, 16, 79, 47,205,113, 94,127,250,107, 2, 36,177, 75,122,159, + 70, 96,210, 59,215,175,138,117,201, 90,103, 37, 64,232, 0,150,209,251,139,248, +250,183, 98,207, 49, 81, 29,138, 70,170,105,159, 23, 24, 61,122, 65, 94, 23,133, +210,227, 23,122,160,241,139,250,251, 52,217,203,122,165,134,237, 14, 32,121,123, + 78,206,227,221,223, 9,196, 16, 53,126, 80,135,194, 42,139,173, 34,121,129, 0, +164, 60,132, 12,140, 37,221, 59,142,192,171, 20,214, 72,199, 79, 46,115, 35,188, + 34, 89,174,109,111,227,149,143, 60,192,252,166, 40,107, 37, 63,139, 74, 18,185, +118,103,161,149,181,128, 98,118,102,100, 26, 33,193,238, 16, 45,114,221,235,111, +139, 15,231, 98,128,212,203,212,249, 72,132,125, 68, 37, 81, 36, 59,188,230,247, + 47,114,238,148, 26,166, 82,255,226,193,245,158, 38, 41,167,155,190, 84,254,209, + 1,244, 91, 87,132,180,150, 42, 11, 79,160, 4,131, 29, 40,201,168,162,231,144, +250, 31,212, 45,175, 49,172,215,210, 92,248,203,111,102,197, 47, 56,144, 35, 57, +126,199, 52,252,119,237,101,250, 31,244,185,198,240,133,183,115,232, 64,203,107, +205,147, 9,201,137,239,135,183,132, 63, 38, 16, 12, 63,229, 17, 49,225, 32,105, +237, 81,228,215,103, 25,219, 31,137,204, 86,224,100, 52, 51,101,157, 7,235, 56, +193, 66,157,250,128, 21, 35, 89,241,191, 14,161,123, 81,126, 2, 43, 33,182, 46, +137,234,130,183,140,152,210, 92,222,249,206, 23, 18, 16,238, 17,230,207,220, 91, +134,245, 27,175,117,134,177, 94,203,163,161,253,137,231,143,117, 66,121, 10, 21, +123,163,218, 90, 66, 20,246,225,178, 54, 32, 68,182,130, 38,145, 29,115, 83,172, +253, 18, 9,127, 10, 42,220, 43,250, 66,132, 41, 52, 24,247, 50,166, 12, 65,123, +223, 40,209,252, 98,137, 32,108,224,242,173,135, 70, 75, 33, 93, 60,218,246, 30, +125,108,249,241, 17,168, 73, 1,239, 91, 41,232,246,114,117,140,243,112,254,209, +182,255, 60,112,219,189,145, 5,131,121, 72, 81,235, 86,245, 7,184,220,176, 62, +179, 56,148,186,143,213, 83,209,162,232, 2,160, 42,230,201,242, 69, 33, 45, 16, +125, 35,194, 52,218, 6,123,180, 67,193, 58,187,186, 79,130,148, 62,119,237, 8, +194, 45,177,128, 22, 98,183, 41,202, 46, 89,203,237,200,196,172, 34,177,237,188, + 6, 61,137, 73, 25,140,201,220,119,195,109, 65, 97,141,245, 32, 87, 73, 1,234, +171,116, 50,200,125,208, 74,135,142,191,251,209,129, 62,207,236,208,133, 95,227, +247,201, 89,151,255, 95,105, 81,134,214, 38, 66,255,150,127, 25,173, 68, 66,152, +204,215, 5,222, 36,166,207,144,135, 81,155,165,240, 86, 2, 44, 29, 66,171,254, +165,136, 28, 34, 24, 5,208,166,243,222,110, 10,140, 75,252, 50,138, 54,185, 46, + 59,167,172, 71, 7,161,167,228, 29, 88,167,172,147,103, 74, 49,248, 98, 27,103, +175,161, 87, 2,138,205, 9,104,109,221,253,225,201, 84, 71,174,119,234, 40,194, +235,150, 48,181,212, 11,214,253, 19,138, 73, 29,214,150, 88, 98,198,248, 14,161, +105, 22,228,196,195,114, 4, 60, 18,141,250, 56,208,110,191,191,113,171,238,248, + 74,136,135, 32, 48,101,225, 91,182, 26,111, 34, 25, 27, 32,236, 35,123, 19,201, + 43, 33, 18, 92, 36,215,177,155, 81, 8,193,104, 87, 5,103,134, 43,190,141,162, + 19, 57,204,254, 67,209, 21, 27,103,151, 87, 92,126,196,234,123,156,115,103, 0, + 84,162,138, 19,162,124,115,195,198, 63, 62,154,138, 36, 41, 63,183,173,202, 85, +220,197, 1, 34,129, 6, 84,162,101, 91, 76,131,205,154,237,140, 51, 45,150,127, +255,182,202, 72,187,177,206,188,191, 44,140, 93, 3, 43,245, 5,184,231, 21,221, +215,181,229,137,139, 76,164, 45, 55,145, 22,106,115,112,194,210, 25,153, 7, 3, + 52,164,196, 3,198,206,142, 78, 27,111, 83,233,125,113,151, 48, 92, 76,122,113, + 58,233, 30, 15,148,245,131,212, 55, 57,186, 40,193, 72,198, 1,213,248,152,162, +186,136, 86,161, 90, 65,158,244, 37,248,163,240, 26, 59,129, 38, 92, 52, 27, 96, + 77,221, 29, 71, 58, 35, 53, 70,138, 22, 62,205,177, 16,202, 48, 82, 16,136, 6, +125,212, 99,177,227,156,210,104, 62, 89, 74, 60, 1, 45, 40,189, 11, 32,175,175, + 20, 93, 39, 40, 39, 21, 19, 38,161, 34, 48,124,134,144,202,126, 80,149,111, 0, + 13,162, 28,235, 0, 64,103,233, 20,254,103, 92, 70, 69, 80,173,140, 39,105, 66, +158,141,199, 11,183, 70,163,122, 28,231,235,152, 65,239,146,173,129,220, 92,152, + 48,203, 24, 71,145,244, 73,130,227,249,111, 74,159,124, 66,103,207,117, 64, 21, + 80,171,148,191, 68,219,116, 42, 5,113, 18, 34,163, 85,179, 69,252, 46, 12,209, +242, 41,209,240, 96,106, 16,185, 7, 99, 84, 66, 1, 72, 64,136, 28,174,191,177, +146,230, 59, 5,149,159, 15, 83,143,145,209, 63, 48, 21,240, 4,192, 74, 35,160, +201, 53, 71, 46,153,122,208, 79,152,133,229,176, 58,138,119,146, 24,194, 9, 56, + 55,182, 64, 56, 7,253, 30,205,152, 10,113, 45,220,177,194,196,203,167, 3,148, +188, 63, 52, 72, 35,205,231,255,159,192, 85, 70,237,135,191,121,155,116, 29, 9, + 45,129,240,112, 17,107, 18,100,222,240, 82, 89,230, 3,174,181,202, 55,240,213, +130, 0, 33, 80, 55, 76, 28,109, 29, 82, 41,186,133, 19,122, 66,129, 11, 72,145, +106, 87,188, 24, 65,151,185,104,135,149, 10,147, 19, 69, 69,124,136, 97,205,155, + 73, 69,181,207,236, 13,229,111,142, 28,116,130,220,110, 28,197, 64, 84, 38,202, +237,190, 84,196,172, 18,172,255,191, 11,161,253,211,193, 20, 30, 28,168,187,118, + 28,162, 92, 76,101,158,221,216,209,196, 41, 4, 4, 16,133,182, 99,235,171,139, +127,128, 42, 29,129, 13,155,202,138, 24,197,175,209, 24, 66,210, 28,163,184, 22, +227, 32, 58,233, 9, 59, 76,147,177, 49,217,183,162, 0,160,109,226, 4,133,121, +105,190, 9,113,177,200, 24, 20, 7,185, 30, 95,171,108, 42,114, 33,224, 96, 82, +223,205,246, 42,235,156,230,198,186,185, 56,229,178, 7, 70, 67,100,232, 56,138, +223,180, 8,209, 31,214, 28, 23, 0,105, 8, 87, 99,159,182,188,175,102,206, 97, + 40, 89,167, 50, 50,222,204,147, 66,239,133,228,215, 66, 72,146, 79,187, 23, 32, +193,199, 99, 87, 54,134, 2, 74, 52,227, 96, 99,236,119, 14,173, 47,192,108, 46, +147,157, 62, 16, 42,111, 30, 75,218,177, 31,208,159, 49,105, 83, 44,132, 39,241, + 79,138,142,159,227,141, 83, 4,105,187,106,229, 52,230,187,253, 10, 82, 51,247, +122, 51, 89, 42,115,186, 59,202,104,113,187, 67,187, 25, 31,213,142,159,246,119, +155,146,218,118,157, 7,180,181,251,238,250, 55,154,126,213,222,186, 81,119, 96, + 90, 20,115,193, 90,101, 54, 32, 76, 91, 49,178,106,216,107, 73, 85, 94, 62, 74, +107, 92,153,219,187, 22,242, 50, 45, 41, 42, 65,110,224, 49,179,140,175, 71,233, + 8, 18,108,142, 45,150,132, 43, 45,120, 17,255,148,230,243,201,126, 30,176,165, + 32,174, 26, 12,221,113, 8,171,198, 80, 93, 22, 31, 60,160,246, 83, 9,203, 93, +253, 47,211, 52,220, 26,162,238,110, 43, 32,207, 89,160, 63, 54,136,210, 69,113, +186,228,110, 75,198,255, 22,247,198, 44,251,233, 22,168, 98,205,160, 89,134, 70, + 50,146,100,179,155, 76, 32,191, 20,141, 75, 68, 2, 57, 38, 83,254,154,194,226, + 67,200,157,251, 15, 80,236,237,173,236,140,167, 94, 15, 45,141,179,127,121,136, +142, 68, 33, 17,227,188,254,202, 76, 89, 51,200,213,225,198,158,241,153,204,161, +130, 41, 24,112,247,228, 98,148, 35, 71,226,210, 53,109,100, 48,182,100,120, 30, +134,162, 12,241,145,242, 24, 83, 83, 66,180,127, 97, 49,192,236, 3, 11, 48,174, +155, 12, 1, 58, 0, 37,253,137, 59, 39,214,127, 12,117, 81,143,159,105,219, 98, +230,102,159, 78, 97,199,194,240,183,222,160, 85,237, 49,193,185,146,225, 66,101, + 44,190,243,245,104,115,108,101,203, 9, 96, 89,231,202,215,204,191,129, 79,132, +217,223, 45,125, 83,109,120,150, 61, 70, 32,180,197,229,111,166,216,201,166, 67, +229,185, 65, 84,204,198, 26,137,151,164, 74,175, 81,110,232,100,239, 40,105,186, + 38, 68,146, 15,212,106,100, 55, 49,118, 32, 34,171,133,177,208,233, 48,192, 80, +171, 18,107,132, 88,111,230, 92,160,196, 64, 8, 79,176, 54, 34,194,187,182,115, +194, 82,198, 9,188,152,198,168,175,222,134, 36,136,137,129,127, 89,156,151,144, +249,112,115,138,198, 37,143,144,176, 21,192, 87,227, 52,201, 10,154, 41,103,111, +133, 64, 63, 74,141,136, 70,198,129,240, 81, 93,142,254, 61,237,249,101, 65,146, + 88,247,165,100, 20, 82,243,141,248,140, 66, 31, 27, 4,120, 17,208, 38, 67, 34, +221, 25,224,236, 50,230,143,245,242,144,232,163,121, 78, 2, 87, 30,106,129, 3, + 70,169,237,170,234, 37,179,243,179,191, 98, 90, 25,210,110,154, 56,241,168,121, +153, 98,159, 0,124,249,172, 48, 16,160,131,123,243,247,250,203,140,173,152,164, +215, 27,214,130,214, 72,241,197, 51,204,115,182, 50, 23,196,136,253,228, 65,212, +238, 80,202,158,140, 35, 85, 72,183,130, 97,131,193, 60, 11,151, 78, 5, 22,233, + 20,229,250,172,112, 13,199, 47,162, 30,214,241, 4, 94,193, 50, 90,113,170, 49, + 46,111, 89, 27,231, 6, 7, 72,212,185, 16, 80, 22, 43,112, 49, 53,181,106,208, +102,133, 29, 47, 57, 54,128, 68, 41, 37,209, 54,203, 78,118,220,181, 74,106, 41, +220,234, 97, 69, 99,188, 85,134, 14,223, 94, 43,142,211,212,194, 9, 79, 86, 61, + 89,198, 48, 10,216, 71, 53, 61,120,100,215,108, 4, 8,114,170,153,220, 4,193, +165,153, 51,240, 53,189,232,197,153,219,200,129,136,175,161, 32,247, 13, 55,143, +164,195,230,188,246, 55,145, 95, 26, 73, 31,197,105,154,237,229,190, 62,213,191, +161,138, 70,202, 87, 40,191, 34,114, 48, 60, 52,216, 68,158, 59, 79, 19, 15, 88, +178,223,253,163, 86,219,231,231,124,248, 12,182, 30, 5,112,189, 53, 49, 92,233, +167, 97,147,178,228, 18,219,153, 89,183,141,153,161,153,132, 23, 66,244, 94, 96, +113,152,183, 0,134,175, 17, 90,200,112,129, 37,218, 12, 19, 4, 12, 84, 75,222, + 37,178,104,132,185, 40, 64, 8,253,163,134, 3, 10, 27, 67, 77, 82, 10, 25,202, + 11, 45, 70,127,207, 77,251,136,177,240,246,243,162,130,103,130,240,253, 12,197, +179, 4,212, 0,160,202, 80,247,135, 81,227,226,223,253,153,137, 22, 61, 40, 43, +106, 75,141,104, 17, 82,223,103,186,171, 6,180,235,216,116,156,108,109,135,178, +167, 32,100, 32, 54,232, 63, 98,161,238,176, 26, 11, 27, 66,103, 44, 92,114, 24, +115,248,159,247,211,189,240,141,244, 74,153,193,103, 72,193, 9, 88,103, 0,193, +112,196, 98, 48,200,244, 11,134, 39, 67, 2, 46, 27,121, 1, 47, 27,166,127,185, +190, 8, 23,173,248, 8, 33,105,230,230,149, 53, 20, 17,164,188, 51, 22,126,153, +112, 21,208,176, 24,161,140,183, 26, 76, 92,144,224,169, 59,191,208, 44, 82, 61, +109, 81,190, 44,233, 52, 57,126, 17, 61,108, 79,178,113,207,251,173, 66, 57,177, + 81,103,214,168,145,230,238, 89, 48, 4,121, 97, 36,229,154, 1, 48, 58,100, 35, +165, 71,176,136, 43,201,215, 36,202,100,161, 57,145,243,220,197,230,193,212,164, +167,108, 15,182,228,253,191, 74, 89,190,117,207,149, 8,203,162,188,190,136, 51, +178, 27, 90, 5,120,179, 8,196,224,202, 80, 83,190,192, 5,228,141, 73, 28,219, +181,175,122,173,202,183,199,223,110,253, 88,113, 75,111, 93, 62,199, 83,202, 84, + 84, 78,103, 54,190,234,207, 66, 69, 16,134,219,246,156,238, 85, 71,121,182,196, +104, 11,122, 89,169,145, 15,230, 15,103,100,203,173,217, 64, 89, 87, 47,227,196, +170,222, 66,158,203,153,143, 32,227,173,238, 72, 16,120,185,167,244,118,120,127, + 20, 7,237, 84,247,140,255,244,192,111,109, 81, 45,190,143,150,160, 55,170, 26, +126, 27,127,255,150,172,160,181,221,239,128,160,155,161, 50, 38, 63,246,253, 68, +191,155,231,191,102, 44,218, 46,230,183,120,254, 62,161,157, 90,240, 11, 29,216, +169, 10,160,237, 63, 65, 43,166,137,153,106,244,177, 10, 89,179,116,185,234, 78, + 18,175, 10,132,250,190, 17,149, 2,251,128,245, 82,119,115,131,221,228,202,143, + 59,181,227, 66, 46, 32,249,233,178,234,243,225,177, 41,132,192,232, 77,120,228, + 88,146,131,135,157,205,251,125,169,142, 97,142,233, 52,146,237,103,251,243, 73, +248,115,158,135,198,182,134,238, 25,195,208,100, 65, 25,131, 32,198,125,181, 6, + 59,143,242,236, 88,179, 14,169,200,160,105,198, 51,209, 63,153, 71, 23,128, 25, +127,224, 10,146, 27,126, 46,194, 34,174, 75, 40,145,196,236,149,103,149, 51,195, + 59, 47, 9,244,149, 6,137, 79,249,204, 88,203, 58,252,114,197,146, 82,139,175, +192, 95, 98,160, 43,203, 27,129, 91, 51, 98,157,203,240, 21, 93,188, 86,201, 48, +250,208,142, 30, 18, 2,103,115,231, 35,240,184,174,206, 79,251,237,103, 3,140, +170, 9, 75,118, 13, 10,228,230, 54,161,230,107, 27,252, 81,208,227, 35,198, 26, + 99, 22,126,138, 42,236, 54,137, 86, 78,198,240,114,152,128, 10,134,124, 37, 63, +152,103,173, 86,238,164, 9,104,224,120,204, 68, 15, 3, 1, 48,170, 89,132, 15, + 95, 40,144, 67,117, 23,109, 55,174,126, 66,229,200, 45,249, 7,189,152, 95, 68, +117, 56,121,174,110,137,123,115,191,113,230, 80,104,178,127,237,192,217,203,207, +214,231,152, 22,145,211,137,175,240,207, 68, 41, 97,241,109,211,134, 33,166, 47, +217, 38, 36,145, 22, 40, 84, 50, 4,186,141,114,149,171,242,216, 0, 64,211, 75, + 93, 27,116,166, 9,102, 89,239, 17, 42, 72,112,168, 61,223, 90, 21,190, 5,174, +236,218, 18,145, 58, 6,201,222,160, 33, 27,154,166,118,233, 13, 65,229,168,102, +206, 78, 23, 4, 87,112, 80,226,189,144, 55, 50, 3, 12, 58, 66,101,229,151,223, +103,164,229, 64,141,218,221, 78, 67,243,242, 39, 29,190,102, 78, 14,218, 59,169, + 48, 96,130,158,175, 6,241,129,242, 59, 47,203, 0,113,240, 5, 10,186, 13, 36, +190,130, 81,212, 16, 12,156, 65,243,165,105, 79, 59, 2,253,195,217,172, 85,217, + 56,195, 72, 44,101,215,233,114, 28,215,122,179, 93,230,243, 15,194,181, 81, 88, + 44,147,223,174,177,199,112,144, 37, 76,123,143,171,208,112, 89, 3, 33,251,102, + 74, 34,179,130,166,154,160,152,222,214,125,183,128, 7,186, 24,234, 33, 45, 6, +157,119, 51,116, 71, 46, 17, 97, 0,117,202, 81,197,243,157,247,141,154,236, 77, + 3,120,153, 60,201,149,183, 84, 44,220, 91,189, 33,250,225,105, 82,146,231, 21, +155, 11, 48,216,140,198,210,235,168, 18,211, 31, 3, 41, 46,209, 10,155, 13, 93, +192,218,107, 6,252,137, 67, 90, 40, 67,160,166,161, 78,200, 12, 72,247,114,179, + 93,187,173, 1,219,157,254, 41,213,187,223, 15, 21, 99, 27, 14,120,140,119,150, +104,254, 19,233, 11, 1,251,111,119,145, 31,174, 96, 78, 97,175,240,200,204,103, +211,132, 98, 3,123,174,154,205, 40, 38,204, 66, 40,132,187,136,170, 72,151,138, +244, 88,240,228,171,140, 21, 10,157,106, 77,222,103,179,114,130,135, 45,164,126, +164,233, 83,190, 9, 42,156,247, 98, 72,210,210, 67,165,240, 32, 63, 77,119,116, +227, 48, 58, 19, 22, 61, 9, 85,143, 12,203,176, 39,136,109, 25, 57, 97, 20,128, + 16,154, 73, 23,137, 63, 72, 43,155, 7, 46,124, 79, 29,243,170,120,218,134, 88, +163,195,236, 96,193,200,255, 95,251,146, 51,212, 26,196,137,194,192,251, 94,150, +155,105,123, 23,129,140,134, 93,148,169, 5, 51, 76,168, 6,160, 44,195, 78,226, +164,230,180,181,162,193, 21,102,208, 73,242,137,124, 84, 93, 3,208, 23, 32,235, +125,169, 10, 34,183, 71,138,130, 70,165, 2, 44,228, 9,108,176,124,240,203, 59, + 79,193,162,233,198,189, 55, 81,117, 63, 35, 44,196,205, 21, 79,171, 71, 82,252, + 41,230,180,208,150, 96, 58,234,103,186,129,214,129,112,143,101, 15,149, 90,214, + 83,169, 38, 2,110, 52,224,194, 28, 86,184,205,158,103,225,122, 94, 36,153,185, +105, 96,158,152,188, 64,216, 55,205,148,104, 18,201,116, 49, 76,208, 23,230, 30, +145, 89,145,177,125,190,180, 81,246,250,235,242,188, 13,179,235,101, 66,172,163, + 88, 39,152,166,129,172, 84, 81,237, 20,168, 43, 21,107, 64, 3,109,132,182,154, +105,209,190, 41, 82, 9, 24, 15, 12,144,219,251, 62,232, 42,218,205,148,219, 93, + 59,171, 53, 51, 46, 99,137,139, 58, 91, 27,204, 21, 16,183, 82,159,112, 70,164, +173,243,156, 76, 71, 39,194,149, 7, 35,243, 22, 69,236,162, 36,116,176,218,160, + 99, 3, } ; -// ../Source/Template/GB_AxB_dot2_meta.c: -uint8_t GB_JITpackage_1 [2052] = { - 40,181, 47,253, 96, 55, 47,213, 63, 0,150,252,182, 41,176,146,217, 28,170, 70, - 99,199, 27,154,246,231,168,157,119,146,207,118, 82, 3,243,132, 49, 82, 91, 51, - 80,138,156,226,249, 32,142, 31,244, 31,244, 95,120, 40, 1,170, 0,170, 0,175, - 0,249,222,230,167, 96,177,195,209,119,177, 69,109,223,226,124, 37,173,119,118, -126,146,207,125,241,255,135, 64, 58, 32, 24,148,219, 2, 62, 60,218, 49,224,221, -141,149,179,212,162,121, 52,109,169,215, 93, 4, 66, 81, 44,147,254,184, 25,202, - 95,196,166, 30,205,182,187,205,164,177,109,142,114, 38, 20,154, 15,165,107,145, -216,184, 65,199,249,187,160,160,215, 42, 63, 25, 88, 40,203, 36,161, 66, 89, 46, -225,164, 79,152,138,166,230, 20,249,209,151, 47, 72,181, 79,153,228, 84, 95, 56, -197,135, 75, 99,113,134, 89,103, 58,102, 16,156,185,177,187, 98,248, 79, 42, 2, - 16,239, 51, 24,131,245,169, 34, 24,144, 24,235,151,153, 27,220, 44,249,118, 91, -181, 33,183,234,225, 5, 5,144, 73, 65, 65,159, 10, 8,128,234, 24,207,189, 50, -144,252,100, 21,165,161, 48, 51,169,194, 10,226,209,206,118,142,145,142,169,247, -134, 26,215,182, 54, 76, 55,139,115,117, 64,151,196,166,109, 34,188,238, 60, 26, -177, 93, 69, 25,135, 50, 19,235,152,135,172,103, 14,183, 72,160,176,112, 9,135, - 51,225,112, 15,143, 75, 44,233, 31,137,105,155,106,203, 54,210, 53,208,149,101, -114,225,212, 49,199,117,138, 44,247,188, 29, 32, 80,218,222,238,182, 63,141,207, -223,108,233, 51,184, 25,194,180,214,209, 43, 8, 39,152,105, 72,195,246, 82,108, - 27,164,157,216, 32, 62,158,223, 55,168,152, 39,120,235, 25,139,212, 59, 40, 94, -239, 26,183,214,249,225,237,230,119,157,237,229,166, 60,134,150,222,222,143,250, - 11,154, 43,243,124,178,142, 4,105,155, 38,101,135,164,107,124, 67,108,167,152, -183, 77, 86,238,233,216, 49,146,179,237, 16,252,181,159,142,233,173,183, 56, 89, -127,135, 71, 33, 1, 28,165,243,172, 33,216, 57,224,203,116, 67,168, 32, 84,164, -118,213,105, 41, 40,118,230,144,174,101, 29,142,236,108,176,237, 2, 73,142,117, -105, 36,210, 37,146,132, 97,191,188, 1,147,176, 15,230,177,254, 16,188,156,102, - 77,128,180,108,147,200,228,184, 97, 88, 4,203, 68, 24,172,133,144, 61,193,155, -163, 21, 79,123,204,113, 6,158,217, 94, 90,150,101, 65, 30, 58, 27,208, 6,187, -178, 13,180,169,232,200,170,170,170,106, 67, 34,109,104,154, 38, 63, 0,151, 82, - 74, 41,165,148, 82, 74, 41,165,148, 82,134,114,122, 7, 93, 1,144,138,203, 76, -172,143, 10,149,153,100,240,121,107, 14,138, 1,198, 94, 56,192,229, 82, 73, 23, -217,209,107, 47,248, 47, 83,141, 91, 58,201,149,142,161,215, 58,127,193, 34, 5, - 27, 95,186,122,191,119, 23,150, 94,143,190, 59,166,215, 92, 22, 27,142,220, 88, -215, 39,171,147,114,157,153, 48,201, 53, 27, 79,199,131, 29,195,176,105, 82,232, -122,172, 83, 28, 37,121, 98,131,124, 59,233,185, 67,183,216,193, 47, 18,201, 54, -216, 21,187,116, 93,239,187,134, 40,190,165, 66,141,166, 70,157, 17,134, 14,200, - 72,188,153,155, 30, 69, 85,100,133,170,100,117, 1,129,227,198,147,187,193, 79, -153, 62,170,153,114,148,118,247,203, 13,222,114,204, 79, 85,168,143,234,212, 43, -150, 53, 77, 50,130, 71,168, 98,212, 78, 41, 26, 25, 25, 41, 72, 82, 88,214,146, - 41,132, 1,105, 22,136, 97,106,249,194, 88, 52,201, 16, 9,196, 97, 12, 33,136, - 17, 39, 32, 4, 9,136, 34,129, 72,100, 18,200, 4, 51, 10,212, 28, 52, 39, 74, - 35,200, 92,169, 75,101,112, 96, 77,121,195,185, 12, 80,153, 43,131,212, 61, 45, -176,150,227, 87,105, 77,117,173,227,194,191,186,161, 66,128, 25, 11, 16, 50, 18, - 82, 24,134,243, 17,148, 99, 12,176, 54,249,180,170,164, 9, 10, 40,156, 77,161, - 10, 44, 52,211,236, 11, 91,209, 57,161,202,238,102,255, 38, 27, 74,172,255, 32, - 4, 38,227,145, 46, 4,194, 98, 73,246,176, 45,161,113,195,109, 83, 41,126,168, -251,222,158, 80,143,216, 59,246, 85,228, 81, 20,226, 40,237, 77,163, 81,153,168, - 70, 20, 63,138,238,119,152,133,195, 28,184, 50,241, 92, 50,154,102, 54,145, 75, -177,225, 40, 59,149,188, 9,187,144, 88,174, 87, 4,140, 18, 97,176, 33, 16,129, - 86,224, 75, 54, 5,194,209, 27,144,237,218,188,110, 72,139, 41, 3,229,100, 58, -163, 69, 25,209,171,142,240, 13,201,197, 37, 9,154,146,185, 91, 66, 85,245, 83, -120,101,216, 3,212,187,156,101,115,166,176,138,162,188,151,143,212, 98,216,186, -120, 34, 98, 39,112,197,148,180,247,118,168,198, 54,248,170,193,193,120,147,167, - 96, 69,120,178,252,192,253, 50, 72, 64, 93,190,152,215,170, 5, 57,230, 85,149, -182, 49,120, 84, 69,249, 49,169, 14,181,198, 88,179,172,221, 41,236, 72,198,201, -245,157, 23,112,211,127,171, 59, 93,147,220, 85,112,108,112, 27,217,155, 56, 75, -216, 65,116, 10, 52,118, 38, 61,232, 39, 61, 93, 25, 46,132,115,167, 50,191, 50, -152,214,212, 2, 43,116,223, 83,185,122,139,241,227, 48, 36,213, 83,158,212,174, -171,225,162, 80, 53, 74, 67, 57,128, 89,160, 58,227,213,206,130, 49, 14,138, 95, - 16,202,107,215,241,179, 85, 12, 51,111, 47,203, 93,223,150, 83,248,151,131, 82, -157,165,135, 95, 84, 25,110,248,102,114,146, 54,229, 87, 43, 56, 91, 91,130, 2, - 49,124,202, 93, 56, 18, 56, 45, 86, 36,158,225,231, 79,181,255, 86,110,174,101, -109,218,168,180,247,232,175,149,195, 44, 58,173,190,142,149,184,131, 72,154,248, -216,248, 1,121, 12, 2,153,224,112,120, 48,161, 61,254, 37,226,131, 31,187, 19, - 3,121, 51,220, 68,249, 55, 7,251,199,195, 28, 87,111,104, 19,152, 21,178,148, - 17,102,216,116, 77,108, 92, 71,149,173, 41, 68,162,195,112, 7,105,223,167,179, - 1,196, 20,223, 1,158,205,128, 30, 29, 68, 89,165,216, 27,202, 50, 58,214,128, - 11, 82,206,162, 62,247,133,224,243, 11,189,162, 77,202, 19,213, 59,170,179,164, -119,146,132,216,155, 31,151,129,182, 91, 99, 39,226,102,186, 16,101, 17, 31, 31, -196,229,144, 78,229, 26,125,138,129,170, 53,251, 28,225, 17,156, 84,103,176,244, -208, 36,201,253, 38,172,237, 11,115, 21,130,163,246, 71, 67,231, 33,244, 14, 57, - 53,106,227, 54,173,123,128,119,212, 70, 93,134, 36,165, 80,229,231, 37, 63, 85, - 93, 41,111,130, 81,212,229, 34, 19,172,151,140, 46,191, 83,210,252, 68, 72,218, - 72,188,112,194, 33,105, 14, 9,121, 81,132,169,215, 33,114,222,150, 79, 72, 54, -144, 64,120,158, 12, 42,136,200,122,117,118,123, 66, 61, 48,143,242, 64,155, 79, -141,139,207,187, 44,105, 38,186,143, 66,151,240,253, 53, 23,222,177, 92,220,169, - 35,217,202,229,102, 58, 49,213,245,130, 81,143,184, 53,200, 63,102,136,125,237, -249,145,218,110, 65,165,125,126,218, 75, 20,130,131, 26, 19,207, 11,186, 68, 29, -141,130,205,201,129, 4,102,242,149,168, 55,107,232,129, 39,109,183,135,224,114, - 21,152,124, 79, 46,123, 31,188,198,212,233,181, 65,254,189,217, 81, 79, 34, 37, - 81,212, 46, 46, 23, 20, 5, 64,110,210,174,110,102,213,121,160,148, 79,213,106, - 89,211, 84,137,117,186,137,162,100,131,192, 25,181, 30, 57,200, 68, 63,201,118, - 91,252,228,201,222, 93,252,245, 21, 19, 78,100,237,215,168,132,211, 66, 27, 9, -248, 8,131,182,249,125,140,202,185,223,164, 62,127,134,160,177, 73,202,211,192, -139, 79,123,124,156, 69,130, 26,214,165, 11, 66,144,235, 90,174, 0,212, 83,222, -140,201, 38,143, 64,165,108,204,169, 32, 7,231, 87,106,250,128,244,184, 10,132, -125,193,114,195,103, 43, 29,188, 97, 49,228, 73,227, 10,172, 30,254,248, 77,236, -200, 95, 36, 22, 53,148, 57, 16,231,194,174,127,118, 20,198,237,159,108, 6, 98, -104,132, 3,251,150,216,168,146, 18,131,222,191, 1, 1, 5, 87,213,223, 35, 77, -224, 60,240, 37, 86,230,104,110,183, 28, 45,125,226, 64,204,167, 0,204,174,221, - 66, 99,126,236,193,143, 54,181,115, 67, 22,139, 20, 58, 83, 42,246,184,129,200, - 26,227, 67, 31,152, 11,170,104, 55, 16, 84,211,118,191,135,170,146,151,240, 33, - 10,208, 75, 96,246,168, 69,245, 49,194,235,193, 63, 12, 32, 27,202,144,187,109, - 2,247, 69,151,149,128,152, 73,209,221, 67,100,226,105,112,174,209,149, 66,189, -231,194, 38,247, 59,219, 68,232,108, 50,110, 2,181, 7,229,123,130,223,132, 63, - 8,184, 38,247, 91, 93,183, 5, 20, 43,163,250,175, 99,111,205, 84,252, 53, 30, - 31, 23,136,178,248,170,133,156, 50, 72,133,157, 19,145,198,128, 14,158,190,101, -250, 33,114, 15,229, 94,208, 62,209,229,212, 4, 7,189, 6, 59, 41,122,138,100, -253, 88, 60, 55,100, 80, 98,223,249,253,255, 88,132, 3, 80,137, 41, 83,236,115, -205,208,205, 5,241,107,112,227, 27, 63, 33, 65, 51,152, 90,239, 61,111,167,180, -213,129,202, 49,169, 71, 47, 66, 40,218,134,110,116,223,202, 31,144, 85, 44, 38, -233, 87, 45, 33, 63, 64, 42, 94,207,144,108,250, 20,202, 78, 82, 25,115,148,247, - 90, 46,167,183,133, 26, 7,163, 65,243, 66,203, 76,217,141,248,207, 53, 96, 33, -129, 4,123,130, 25,108,217, 71,171, 35, 95, 14, +// ../Source/JitKernels/GB_jit_kernel.h: +uint8_t GB_JITpackage_1 [562] = { + 40,181, 47,253, 96, 31, 5, 69, 17, 0,118, 28, 89, 32,240,182, 30, 12, 8,146, +156,149,114,253,188, 89,180, 32,243, 52, 16, 18, 84,205,240, 96,113, 46,253,204, +133,197, 97,128,230,189, 81, 0, 78, 0, 80, 0,122,123,158,123,113,140,165, 31, + 26, 12, 5, 3,225, 88, 40, 24,110,176, 5, 63,232, 59,170, 16,167,164,151,188, + 13,134,238,230, 7,140,196,166, 23,214, 28,121,188,206, 53,196,252,190, 34, 76, +212, 24, 87,207, 96,231,207,137,176,253,174,192,125,187, 38,238, 15,143,194,255, +229, 7,209,125, 63,116, 70, 60,145,136,136, 68, 34,191, 43, 14, 67,191, 5,226, +127, 87, 16, 37, 20,179, 42, 23,139, 66,187,231,190,238, 10, 98,164, 50, 90,229, +239,109,255, 64,215, 24, 87, 7,247,119,157, 35,232,235,143,111,231,250,122, 91, + 84, 80, 12,196,123,182,134,210, 31,249,111,119,247,247,220,133,120,253,189,189, + 24, 98, 3,209, 40,238, 71,249,245, 95, 60,181,131,113,181,159, 53, 43,187,182, + 74,230,210, 93,238,123,141, 95, 16, 13,190, 51, 24,146, 30, 99,206, 11,110, 63, +212,216, 62, 71,169,127,249, 55,233, 29,147,211,130, 69,220,221,163, 33, 82,145, +216,233,132, 93, 90,102,169,182,202, 69, 11, 0, 31, 12,220,112,177, 52,180,194, +100,180,224,156,131, 27,204, 33, 13,120, 84,113,195,200,202,210, 56, 91,150,101, + 89,150,101,217,156,115,206, 57,167,148, 82, 74, 41, 37, 4,179, 36, 24, 76,106, + 42,180,162,155,121, 73, 42,170,137, 4,209,243, 93,173,223,218, 74,145,110,222, + 53,228,246,118,158,173, 31,122,211,197,245, 58,184, 75,157,207,254,185,186, 6, +179,173, 33,127,253,222,214, 32, 27, 90,160,241, 92,163,148,144,136,104,138, 82, +144, 66, 99,176, 36,144,170, 49, 15,150, 82, 40,141,139,205, 35,122, 26, 3, 87, +142,220, 57, 38, 89,112, 30, 51, 55, 7, 92, 57, 38, 95, 56, 19, 35, 55,199,220, + 28, 72,110,224,196, 41,228,114,227,206, 81,190,224,110,174,114,198,103,139, 69, + 14,236,184,104,176, 62,254,189,134, 54, 0,186,177, 91,201,175,171,239, 88,112, +184, 71,108, 50,187,180, 53,129,136, 2, 85,120,181,129,196,197,115, 59, 45,222, +214,170, 52, 51, 10,104, 57,208, 86, 70,116, 48,216,131,110,155, 75, 60, 26,212, + 37,128,180,180, 85, 57, 96, 16, 92, 2, 27, 95, 91, 8,235, 17, 0,240, 75,238, + 54,156, 6,240,178,144,165,228,106, 22, 40,160,231, 16,208,100, 72,103, 52, 61, + 18, 5,186,105,254,252,204,196,206,129, 21,123, 3,136,185,115,147, 50, 70,138, + 2, 49, } ; -// ../Source/Template/GB_AxB_dot2_template.c: -uint8_t GB_JITpackage_2 [2026] = { - 40,181, 47,253, 96, 53, 32, 5, 63, 0,170, 69,252, 12, 45,160, 78, 25,235,184, -194, 44, 82,108,249,122,136,121, 98,176,241, 11,253, 82, 96,190,194,181,190, 6, -247,144,161,156,105, 67,140, 81, 0, 68, 30, 94,193,235,240, 58,104, 29,158, 42, -193, 0,202, 0,193, 0,207, 69, 88, 78, 77,242,199,194, 37,243,126,155,213, 99, -251,214,100, 97,198, 8, 63,246,205,171,241,149, 51, 11, 77,117, 74, 44,103, 93, - 47,220, 46,136,202, 62,127,238, 61,215, 31,169, 76, 67,159, 87,214, 96,121, 42, - 70,144,135,194,237,118,231,147, 61, 87,248,234,154,132,119,142, 73, 36, 2,194, -159, 12, 82,119, 74,229,246,244,149,172, 93, 16,182,146,179,190, 64, 32, 84, 52, - 17,141, 53, 42, 91,222,220,222,207, 69,111, 30,163,251, 68, 32, 98, 18, 1, 57, - 0, 49,137,184,148, 69,159,108,107,192,202, 35,238,161,207,157, 91,115, 62, 97, -238, 82,125, 40,172, 9, 40,108, 43,164, 24,223, 6, 97, 14,123, 51,144, 54, 43, -253, 97,107,188,122,168,243, 83,245, 48,192, 77, 80, 96, 28, 36,172,159,194, 23, - 70,186,241,125, 17,119,106,175,218,112,175, 74,112,137,196, 1,145, 72, 2,212, -181,190,191,178,185, 2,144,176, 44, 7, 6,135, 84, 9, 16,240,141, 69, 19, 65, - 1,128, 71,111,216, 26, 94,103,173, 12, 48,135,121, 21,153, 12,148,132,113,176, - 11,130,229, 69,246,218,222,224,223,190,173,243,182,207,160, 67, 57,167,189,133, -150, 53,160,253,164,245,148,115,123,157,158,202, 85,145,169,192,188, 8, 25, 23, -234, 60,164, 65,174, 17,222, 90,142, 18,244,201,211,154,124, 60,108,132, 26, 50, -123, 25, 22, 94,234, 16, 29,139,109,100, 7, 71, 6,234,146, 69, 63, 77,209, 45, - 78, 3,141,228,225, 20, 44,106,241, 13,235, 15,146, 99,152,240,255,142,203,165, - 1,130,135, 93,207,106, 7,135, 4, 57, 56, 48, 58,251,196, 37,140,169, 35,235, -148, 5,151,245, 44, 14, 28,246,176, 8,238,193,197, 85, 44,219,119,103, 11,229, -181, 89,151, 26,203,246,176,230, 80,177, 96, 21, 26, 44,227, 54,156,199,169,200, - 4,152,187,146, 45, 87,154,249, 35, 23,178,219, 78,122,202,194,116,187,118,253, - 41, 41, 48, 14, 18, 16,139,247,235, 52,140,215,214,246, 80,159, 59, 93, 6, 6, -201,190,210, 52,249, 68,225, 33, 32,250,101,187,241,214,177, 94, 33,199,236, 82, -206, 54,248, 83,232,210,141,167,246,121,159, 81,167,133, 79,121, 12,144, 11, 18, -163, 3,241,192,176, 56,141,110,193, 54, 78,131, 85, 21,117,201, 81, 35,187, 69, - 41,145, 37, 65, 77, 28, 67, 2, 80,117,170, 10,226,241, 83,176,184, 21, 94,251, - 92,198,239, 43, 96, 32, 64,135, 58,103, 29,109, 71, 94,242,224,181,117, 94,218, - 53,179,172,253,242,197, 31, 15, 43, 47, 65,125,242,137,136,242,136,228,108,174, - 18,196,148,245, 6,101, 72,139, 56,130, 52,254,100,246,146,140,236,231,190, 13, - 36, 35,199, 8, 43,164,167,219, 60,220, 46, 96,165, 1,142,170,170, 42,141,195, -112,174,106,226,209,144, 69, 94,195, 89, 3,197, 76, 78, 18,100,174,205,133,177, - 96,239,226, 44,155,183,185, 92,131,139, 70,178,108,220,197,178, 84,216, 70,232, -121, 24,157,213,121, 12,221,253, 11,111, 47, 81,174,229, 75, 59, 67,154,156,194, -185,134,109,113,234,156,227,206,231,165,216, 86,128, 56, 69, 84,249, 94,152,217, - 75,230,206, 45,252, 76,137, 47,180,221, 62,113, 48,103, 97, 62,129,209,219,227, -156, 29,137, 22,186, 29,170,176, 86,120, 10, 70,194, 76,248, 84,132, 21,116, 51, - 80,189, 22,115, 74,196, 94, 9,121,235, 11,225,216, 17, 78,217,229,103,251,209, -109, 98,206,153,108,251, 41,194,206,152,218,219, 51,210, 13,214,152,229, 45, 79, -237,145,101,229,140,115,174, 5,210, 43, 22, 9,215,197, 93,150, 69,131, 69,143, -209, 57, 27, 11, 22,130, 5,168, 82,164, 16, 42, 52, 83, 34,133, 5, 73, 74,141, - 1,162, 32,132, 1,105,170,232,129, 78, 31,210,112, 72,136,130, 12, 4, 98, 2, -226, 8, 49,134, 24, 34, 5, 34, 50, 18,136, 4, 20,148,164,196, 57,146,123, 75, -104, 91,149,114, 6,164, 54, 98, 62, 29,138,201,159,188, 30,113, 54, 49,122,148, -249, 45, 93, 81, 99, 96,243,184,160,146,200, 69,129, 42, 24,221,136, 34, 63,241, -207, 83, 77,228,175,179, 55,187,113,149,203, 44,198,171, 55,199, 31,210,170, 6, -137, 9,110,166,201,116,168, 17,152,254, 66,234, 11, 26,221,197,131,123, 5, 37, - 78,227, 33,245,176,222,237,139,131,135,190,114, 6, 28,240,193, 70, 91, 29,194, -211,131,148,190,135, 67, 75,173, 3, 20,208,142,171,207,147,128,195, 89,133, 9, - 96,250,242,189,252,234,251,237, 97,115, 71, 23, 53,116, 70, 43, 17,124, 74,131, - 78, 83,223,159,101, 91,204,158, 97,150,232,115, 15, 16,223,143, 23, 34,156,146, - 32, 82,114,109,183,233,209, 4,213, 25,190, 23,225, 15, 20,229, 9,131,139, 53, -190,246, 45,141,177,243, 14,213,131, 80, 0, 71,140,160, 72, 50,251,127,252,165, - 42,191, 83,242,158,122, 61, 61, 81,117,254, 17,112,210,248,233,116,154,194,176, -225, 75,183, 88,155, 64,224,182, 21,167, 90, 74,181, 41, 16,101,143, 73,122, 66, -100,120, 1,113, 22,145,139, 29, 61, 24, 77, 58,117,131, 17,131, 4, 38, 93, 61, -113,162, 1,144, 35,235,244,212, 70,110, 3,114, 5,101,117, 68,100, 71,204,250, - 1, 34, 57,180, 68, 24, 41,190,140,172, 82,137, 85,166, 73,178,114,118,234,196, - 84,186, 78,185, 95, 12, 12, 61, 5, 79,223, 98,110,182,107, 65,190,167,154,106, - 1,239,206,134,250,180,190, 95, 40, 46,119,107, 76,142,161,223, 0, 8, 65, 84, -112,208,248,133, 70,222, 69, 52,103,142, 82,171,237, 63, 48,244, 76, 91,190,142, -230, 36,140,188, 30, 3,161,255, 42,210,120,179, 36,225, 32,123,158,227,220, 4, -252,185, 62, 32,218,221,122, 0, 71,159, 88, 60, 65, 3, 36, 96,176, 1, 36,176, - 44,114, 41,232, 53,215, 51,194, 85,105,213, 10,240,170,208, 29, 53,192, 33,199, -206,107,157, 57,134, 91,157,199,215,152,171,100,105,113, 90,139, 47, 68,180,223, - 28,140,199,210,206,209,191, 85,131,209, 30, 27, 81,149,165,240, 47,109,137,103, - 46, 3, 60,177,147, 6, 11,253,125, 28, 20,205, 74,133,205,143, 38,251, 90, 61, - 20, 16, 78,225, 94, 58,232,225,115, 54,241,115, 7, 95,162,109,201, 90, 10, 34, -170, 87,138, 23, 68,225,206, 80, 77,190, 83, 62,173, 98, 20,191,104,232,191,118, - 42,195, 67,208,228, 23,152,229,200, 76, 17,118, 39,168,145,170,254,194,233,131, - 42, 51,116, 16,133, 41,230,173, 30, 35,231, 24, 21,236, 21,216,111, 30, 34, 33, - 48, 95, 83,208,220,128,165,231,138,111, 77,138,255, 38, 96,116,205, 95,150, 62, - 21,109,232,193,128,226,198,106,190, 3,127,186,150,244,115,169, 86,124, 65,189, - 97, 37, 20,171,222, 61, 93,143,104,229,184, 56, 91, 18,238,212,126,241,167, 24, - 73,253,135,249,210, 97, 80,114, 39, 80,183,253,246, 51,189,167, 32,105, 20, 4, -114,138,247, 51, 23, 27,172, 31, 39,207,180,154,134,181,229,138,190, 2,127,132, - 68,239, 20,140, 58, 82,118,221,171,225,177,167,144, 31,149,133, 88,160,127,120, - 67,174,154, 40,141,116, 19, 38,209,216,170,244,119, 57,128,102, 34,176,224,204, -169,217,128,107, 42, 86, 76,200,131,167,191,116, 13, 78,103, 26,206,167,216, 96, - 21, 63,166,143, 33, 12, 72,226, 14,179,154,178,160,138,196, 44,172,111, 14, 67, -255,150,124, 36, 18, 48,144,177, 40, 2,181, 12,118,100,165, 89,240,121, 45,241, -207,173,177,239,175,205,185,160,135, 69,157, 1,119,185, 88, 53,240,242, 79,130, -168,206, 15,134, 0,186,106,248,252,125,232, 67,121, 10, 13,165,100,182, 53,210, -183,246, 98,188, 52,152, 16, 30,200, 69,163, 53, 79,118, 17, 31, 92,174, 94, 82, -148,137, 27, 64, 52,134, 17,117,139, 87,205, 21,232,137, 98, 54,238,191,254,120, -252,155,212,211,184, 84,157,222,145,208, 35, 93, 94, 43,140,140,251,187,199, 6, - 59, 68, 60,134,201, 38, 65,112,102, 40,246,170,239,123,180,211,178,218,204,103, -120, 24,116,187, 50,129,222,195,183,213,134, 65,107,200, 86, 94,104,140, 48, 16, -188,224, 38,168, 98, 12, 28,161, 43,196,158, 79, 13, 69,145,242,176, 50,138, 43, -172, 19,195,228,166,137,105,239, 53, 96,155,121,216, 79,129, 88, 87,215, 58,112, - 6, 85,120, 61,161, 58,160,201, 48,106, 47,138,157,154,233, 94,255, 61,209, 62, - 5, 49, 12, 43,204,197, 92,186,151, 8, 79,131,225,171, 5,134,242,128, 84, 53, -129, 81, 73, 61, 35,169,219,117,223, 42,197, 2,150,202,123, 2,118,118,254,153, - 71,203,166, 36,107,193, 16,210,119, 72,117,213,229, 8,207,239,133,213, 92,211, - 91,167,153,119,163, 45, 7, 89, 8,196,174,172, 49,198,161,130, 70, 40,126,212, -117,215,178,252, 78,244,246, 91,240,230,228,207, 37,114, 4,219,228, 28, 35,183, -197,200,227, 25,196, 54, 97,175,219,165,183,166,248, 99, 99,210,241, 34,188, 68, - 34, 34,132,182,210, 73, 94, 85, 40, 3, 11,179,233, 10,218, 25,173,187,103,112, - 92,234, 72,141, 81,217, 52,241,129,153,252, 51, 18, 34,199, 40, 94,136,216,143, - 52,160,234, 40,234, 3, +// ../Source/JitKernels/GB_jit_kernel_AxB_dot2.c: +uint8_t GB_JITpackage_2 [308] = { + 40,181, 47,253, 96,165, 1, 85, 9, 0,230,209, 60, 33, 0,243, 54,238, 78,242, + 32,143,127,186,137, 18,168,232,192,189,172,128,254,165, 22,246, 61,177,180,201, + 33,170,170, 22, 4, 2, 4, 51, 0, 52, 0, 50, 0,111,106,175,228,126,231,147, +163, 31, 9,238, 23,221,109, 65, 80, 25,141, 73, 96,113,185, 38, 51,238, 29, 36, +226, 22,158,170, 77,126,215,122,234, 13,127,212,207,185, 59,111,174,197,156,162, +168, 68, 81, 1, 56,103,210,197, 81,153,190,239,232, 55,127,115,115,131,154,188, +121, 24, 86,143, 16,149,161,146, 18, 7, 67,229, 4, 60,240,200,204, 29,207,225, + 83,245, 15,184, 73, 49,119, 30,113, 53,179, 96,233,105,204, 10,148,237, 33,241, +172, 90, 45,195,238,181, 24,141,194,240,204, 80,165, 39,238,140,113, 51,251,229, +209,198,231, 71,234,210, 45,106,152, 42,233, 65,236,149,213, 45,253, 57,147,247, +248, 31, 68,122,115,252,148,134,168,194, 9, 28,247,184, 46, 11,119,173, 30,245, +185, 95, 3,240,228,237, 23, 47,192,255, 59, 67, 60,230,128,187, 59, 5, 81,133, + 19, 6,174,117,218, 86,185, 85,167, 57,174,189,212,155, 61, 2, 18, 0, 66,128, + 82,212,229, 11,130, 8, 1, 88, 0, 66, 26,141,215,105, 49, 25, 31, 36,128,156, + 69, 55,116, 40, 72, 14, 25, 96,210,252,121,102,138, 54,140,173,214, 47, 6,185, +162,214,146, 78,236, 41, 10,134, } ; -// ../Source/Template/GB_AxB_dot3_meta.c: -uint8_t GB_JITpackage_3 [1635] = { - 40,181, 47,253, 96, 69, 24,205, 50, 0, 54,123,180, 40,176,210,117, 14,106,193, - 12, 1,125,105, 71,198,186,177, 31,149,185,172,153,227, 61,126,237, 21,191, 6, -228, 55, 47, 42, 56, 36,106,127,208,127, 80,255,211,225,166, 0,168, 0,164, 0, - 13, 54,199,233, 41,223, 92,206, 52, 94, 11,134,220,195,123,155,162, 31, 47, 56, - 88,223, 17,116,103,250, 56,176, 10,188, 47,253,196, 82,223,219,234,105, 18,140, - 69, 83,105,143,163, 34,127, 51,118, 37,213, 11,118,231,169,180, 5,155,171,159, -202, 69, 39,100,233,250, 52,182,109,209,237,245, 56,170,232,223,199,183, 10, 52, - 24, 77, 5, 33,131,209,188,226, 38,183,108, 61,209,206, 45,252,148,119,195, 82, -213,110,101,252,145,158, 72,199,135, 77,214,183,154, 50,201,216, 98,202,187,180, - 29,169,104,111,235,231,123,108,239,227,150,189,156,169, 11, 71,241,167,245,116, - 73, 33, 96, 14, 3,182, 48,191,161,183, 75, 91,193, 13,187, 77,162,120,147, 15, -191, 92, 36,149,203, 37,163,201,193,177,239,165,226, 83,183,118,137,218, 62, 81, -239,216,156,239, 64,122, 75,222,226, 91,216,111, 72,149,105,153,231,226,154,252, -214, 91,164,218,129, 61, 82,235, 84,120, 53,197, 91,214,228, 83,163, 8, 93, 40, -223,152, 98,198, 81,243,148,139,194,219, 52,222,115,110,175,173,168,222, 30,162, -241,255,151, 72, 36,230, 5, 49, 55,210, 57,175, 58,172, 58,153,223, 68,120,230, -118, 85,112,182,101, 24,108,241,225,173,163,114, 1,158, 53,129,166,128,107,174, -140, 33, 66, 91,129, 54,209,121,131,149,212,157,128, 68,194, 89,182, 91, 59,110, -141,248,198,227,154, 39, 66,242,219,187,183, 40,246,107,112,108,137,212, 24, 94, -142, 58, 84,156,101,187,104,223,116,161,119,174,142, 1,153, 87, 94,170,221,105, -130,177,158,165, 30, 10, 85,235, 55,111,120,245,249, 80,128,206,225, 28, 99,130, -177, 49, 51, 51, 51, 51, 51, 51, 83,102,102,102, 22, 57,148,156, 47, 12, 71, 19, - 97,136, 49,205, 35, 69, 90,186,117,180,217,186,201,119,141,170,164,139,146,159, - 11, 36,186, 36,182,238,184, 62,129,163, 58, 26, 37, 72, 41, 69, 9,246,119,226, -106,245, 60,145,161, 50,197,249,203,217, 30, 41,175, 68, 87, 8, 3,226, 34, 34, -147, 95,153,136, 67, 30, 77,116,101, 25, 43, 28, 3,254,110, 6, 7, 23, 44,245, - 39,254,134,224,109, 61,246, 91, 70,165, 16, 36,228,122,244, 20, 45,125,158, 20, -222,118, 29, 47,216,191, 98,115,168,182,170,143,225,123,164,247,110, 24, 5, 10, - 35, 36,134,202, 29, 57,104,146,210, 1,243,103,222,185, 52,208,133, 93,159, 16, -166, 77,128,182,206,135, 69, 20,146, 45,107,243,209,202,181,104, 31, 82, 73, 30, - 24,192, 48,108,132,179,212, 91,183,131,204, 65,134,181, 11,251, 40, 88, 75, 99, - 95,144,201,181, 12, 52, 49,183, 15,131, 60,216,118,137,248, 51,175, 78,136, 69, -147, 26, 89,149, 6,175, 38,243,177,181,174, 77, 31, 61,125,116, 52,217, 30,197, -143,142, 14, 98,155,174, 63,175,100, 41,247,254, 70,213,218, 80,188, 1, 69, 77, - 38, 24,134, 97,165, 6,169, 22,195,180, 73, 33,210,178, 77, 34, 99,108,243,176, - 20,171, 36,207, 57,231, 3,200, 35,242, 96, 87,182,137, 60, 24, 32,150, 82, 74, -137,170, 52, 77,227, 16,192,165,148,168, 42,165,172, 2,129,162,168, 49, 85,100, -104, 68, 68, 68,146,130,130, 36,173, 1,241, 8, 49, 74, 66,198,208, 58, 66, 73, -152,133, 57, 20, 65,136, 25,130,136, 33,132, 24, 70, 36,152, 96, 68,100, 72, 10, - 10, 82, 72, 7,122, 86, 65, 14, 44, 35, 84,155, 3, 18,134, 82,125, 16,206, 13, - 73, 21,189,153,204, 80, 65,123,113,143, 89, 66,167, 31,140,229, 49,147, 71,125, -102,141, 96,111,110,132,218,134,126,139,200, 84,244, 31, 27,192,100,141,243,241, - 71,115, 75,225,107, 57,153,198,234,137,243, 86,135, 96,132, 57,213,151, 66, 95, - 90,213,144,138,227,141, 1, 66, 38,237, 9,149,102,254, 3,229,101,114,210,150, - 97,228, 10,160,186, 54,249,213, 8,207,183,115,198, 39, 98,166,251,104, 73,255, - 35,152,208,120, 86,160,164,160,142,172, 81,128, 62, 22, 31,132,246,125,193, 50, - 97, 27, 58,191,183,106, 95,134,157, 40, 12,201, 55,184,146,123,168,160,239,165, - 35,242, 73, 52,121,244, 95, 74, 55, 7,232,253,192,244,137,179, 91, 10,174, 39, - 0, 36,185, 73, 2,199, 40, 29,144, 84,224,100, 4,135,120,208,104, 3, 82,154, -137,148, 80, 55,244, 67,115, 51, 59, 80, 40,104, 87,144, 18, 32,223, 18,191,114, -191, 1,136, 67,123, 46,243, 36, 46, 69, 35, 6, 14,145,121,146, 2,240, 2,174, -121, 26,127, 12, 90, 93,101,172,151,104, 72, 12,123, 60, 64,178,223,239, 88, 47, -131, 70,105,105,252,158,128, 60, 18, 43,220,234,215, 84,126,224,118,161,224,238, - 36, 96,183, 79,225,124, 71,143, 29,169,177,178,255, 15,141,163,209,246,139,212, -143, 52,168, 69,202,160, 30,247,191,122, 40, 42, 96,151,182, 56,173,177,110,251, - 16,241,105,179,215,181,202, 20,154,198,131,118,147, 16,143, 61, 53,222,200,127, - 69, 9,182,239, 52,173,119,235,185,153,214, 96, 36,222, 17, 72,224, 27,170, 57, - 99,126,128,211, 70, 81,241, 11, 82, 78,152,220,117,146,171, 44,157,129,242,124, -179, 33, 85,194,253,154, 54, 87,221,137,152, 61,223,130, 14,189,212,159,246,178, -135,185, 18, 59,128,103, 2, 94, 45,201,134,121, 67,114,152, 26,237,173,141, 39, -192,123,158, 13, 42,129,131, 11, 66,143, 41,121, 42, 6,100,162,156, 74,200, 12, - 69,245, 77,121,141,219,228, 30, 86, 73,164, 90,156,112,145,166,172, 99,218,108, -232, 59, 7,151, 94, 89,242,250, 25,215,228,225, 95, 22,248,126,179,248,115,230, -194, 54,124,166,176, 62, 79, 23,129, 67, 86, 2,228, 73, 15, 99, 7,152,237,106, -115, 1, 26,195,106, 65,224,210,206, 3, 38,122, 12,228, 71, 96, 26,206,161,244, -235,225,200,218,129, 2, 9,191,202,101,136, 80, 31, 52,134, 36, 39,223,116,201, -239,100, 49, 96,217,230,124, 45,182, 6, 28, 75, 99,133, 81, 83,191,216, 35, 44, - 92, 30,144,192,218,195, 2,232,164, 5,171, 81, 81,138, 74, 72,115, 29, 51,241, - 24,178,223,134, 19, 51,183,171,146,113,109,114,132,176, 57, 29, 0,243,244, 73, - 74, 55, 66,140,207,105,114,201,168, 47, 43, 68,245,122, 97, 89,228,218,132,182, - 39,249,166, 45,165,227, 45,177,121, 57,111,140, 79,207, 28,251,232,152,194,103, - 27,107, 4, 50, 38,149,242,119,157,166, 54,185,150, 37,114,172,196,111,234,154, -198,216,146,179,123,126,165, 79, 73, 58, 72,176,183,218,176,119,197, 25,242,160, - 84, 53,147,114, 42, 13,152, 70, 3, 88, 33,186,216, 25, 91, 22,212, 63, 4,143, - 98,242,243,195,147,205,171,113, 41, 30, 5,144,109,173,123, 12,225,210, 80, 44, -169, 63, 30,237,216,240,217,213,166, 35,239,168,186,231,143, 42, 80,108,235,120, -254,210,204,105,180,130,162,195,106,156, 87,188,174,144, 47,153, 68,154, 7, 83, -150, 49, 1, 13, 44, 57,198,166, 33,186,246, 11, 80,232, 24, 12,247, 33,123,135, - 77,121,152,212,255,109, 24, 16, 91,139,226,158,248, 41, 35,141,128, 73,159, 32, - 30,212, 51,167,193,252, 69, 24, 4, 93, 19,168,123,146, 21,182, 53,242, 19,129, - 97,245, 90,209, 33, 83,105, 47, 77,167, 30, 0,232,166,185,171,193, 84, 90,145, - 50, 72,184,225,163, 65,177, 14, 86,201, 1, 40,165, 1, 99, -} ; +// ../Source/JitKernels/GB_jit_kernel_AxB_dot2n.c: +uint8_t GB_JITpackage_3 [328] = { + 40,181, 47,253, 96,200, 1,245, 9, 0,166,147, 65, 33, 0,145, 55,238,114, 98, +128,176, 60, 70,153,234,234,188,106,113,127,144, 94,234, 79,122, 57, 48,107,232, + 17, 85, 85, 11, 2, 1, 2, 56, 0, 56, 0, 56, 0,119, 60, 63,141, 81,143,234, +239,236,126,231,180,171,161, 57,238,199,184, 95,130, 93, 48, 32, 1, 69,229,218, + 20,221,189,134,195, 41, 48, 42,167,109,134,248,106, 44, 38,191,212,127,193, 59, + 91,240,197, 92,146, 42, 36, 73, 1,159,197,188,203, 15, 27,208,163,229,131, 57, +131, 38, 86, 36, 10, 63,163, 31,125,206,209, 61, 86, 50,231, 36,105,253, 57, 76, +133, 9, 66, 24, 10,147, 15, 64,129, 63,104,206,124,150, 71,214, 55,227, 54, 49, +217,243,167,179, 89, 3,129,111,222,198, 69,176, 54,121,155,133,239,196,226,236, +210,184,235,225,153,189, 91,134, 97,124,177,250,144,100, 42, 74,231,135,217,153, +226,104,246,202,159, 13,166,161,169, 79,167,106, 33,154,160, 31,193,239,180, 78, +233,181,118,106,194, 7, 93,119, 85,149,164,195, 87, 99, 2, 47,117,186, 95, 3, +192,232,219,143,193, 23, 3,248,135, 41, 9,150,217,186,186, 45,210,105,150,243, +176,183,105,216,126,153,197, 15, 3,238,238,149, 83, 19, 30, 18, 0, 69, 9,174, + 67, 20,111,168, 89,190, 6, 42, 65, 72, 3,228,117, 70, 76, 22, 7, 9,200,103, +145, 12, 29, 98,146, 67, 48,152, 52,127,158,153,162, 45, 99,171,117,140, 65, 92, + 81,162,110,231, 64, 20, 5,110, +} ; + +// ../Source/JitKernels/GB_jit_kernel_AxB_dot3.c: +uint8_t GB_JITpackage_4 [320] = { + 40,181, 47,253, 96,178, 1,181, 9, 0, 22,211, 63, 33, 0,243, 54,238, 78,242, + 32,143,127,186, 97, 87,225,121,226,111,118, 64,255, 82, 11,251,158, 88,218,228, + 16, 85, 85, 11, 2, 1, 2, 54, 0, 55, 0, 53, 0, 96,137, 53,102,189,169,113, +201,253,206, 39, 71, 63, 18,220, 47,186,219,130,160, 50, 26,147,197,229,154,204, +184,119,144,136, 91,222,132,216,228,119,173,167,222,240, 71,253,156,187,243,230, + 90,204, 41,138, 74, 20, 21,121,143,255, 65,164, 55,199,247,114, 38, 93, 28,149, +233,251,142,126,243, 55, 55, 55,168,201,155,135, 97,245, 8, 81, 25, 42, 41,113, + 48, 84, 78,240, 6, 30,153,185,131, 29, 62, 85,255,128,155, 20,115,231, 17, 87, + 51, 27,219, 67,226, 89,181, 90,134,221,107, 49, 74,245,151, 31, 80,147,110, 58, +184, 73,140,191,198, 62,241,111,196,126,121,180,189,243, 35,117,233,223,115, 76, + 44,186, 69, 13, 83, 37, 61,232,225,178,186,165, 63,103, 2,148,134,168,194, 9, + 28,247,184, 46, 11,119,173,198, 6, 62,234,115,191, 6,120, 19,222, 47, 94,128, +255,119,134,222,152, 3,238,238, 20, 68, 21, 78, 24,184,214,105, 91,229, 34, 58, +205,113,237,165,222,236, 65, 9, 18, 0, 69, 9, 38, 33,136, 16,128, 5, 32,164, +113,122,157, 22,147,113, 72, 10,144,204, 12,240,127, 14,104, 45,227,236, 22, 38, + 77,155,103,166,104,187,216,106,221, 98,144, 35,106, 85,233,196,136,162,192, 13, -// ../Source/Template/GB_AxB_dot3_phase1_template.c: -uint8_t GB_JITpackage_4 [1489] = { - 40,181, 47,253, 96, 11, 20, 61, 46, 0,170, 66, 28, 12, 40,208, 84,113, 14,228, -122,244,178,178, 92, 31, 73,141, 47,109,220,128, 0,166,144,247, 39, 86, 19,239, - 40, 36, 35, 56,238, 50,166,194,139, 92,205,192, 22, 79, 16,184, 0,184, 0,187, - 0,191,178,255,127, 50, 50,153, 88, 66, 22,114,151, 50, 22,194,159, 44,119, 17, -138, 62,146,240,214, 50,134,193, 59,229, 45,219,222, 60,191,133, 11,225,174,170, - 66, 92,155,207,230,118,153, 59,111,247, 88,199,249,225, 70,246,163,200,181,187, -152, 92, 44, 7, 21,222, 48, 72,223, 25, 42,183,214, 87,114, 38, 81, 97, 43, 25, -107,138,138,198,195,133, 37, 99, 81,101,203,156,219,187,129,154,243, 24,223, 39, -132,131,203, 65,101, 1,115, 57, 56, 5,147, 62,217, 22,193,135, 91,222, 71,219, -157, 92,123, 62,117, 30, 69,181, 81, 88, 33, 24,216, 86, 72, 59,124,187,235, 76, - 42,130,129,119,234, 14, 86,131,230,153,215,169,253,182,237, 40, 66, 9,207,192, - 23, 70,202,241,189, 48,108,225, 70, 47,132, 59,179,171, 10,121, 87, 5,113, 3, -131, 73,197,192, 32, 22,229, 15, 27, 79,197,198,218, 80, 92, 88, 22,154,203, 99, - 81,113, 61, 84,188,139,226,113, 48, 60, 26, 12,142,167,115,109, 58,156,119,209, -185, 38, 58,207,146,158,113,118,173, 3,172,103, 18, 94,179,221,208,228, 65, 53, -216,222,238,101,223,198, 8,207,183,163,220,196, 74,142,177,232, 28, 65,178,181, -121,198, 58,218,195,203,121,203, 23, 86,166,243,240, 35, 20,233, 26, 5, 83, 57, - 69, 73, 23,203,214, 30,231,252,252, 90, 24, 51,150, 14,142, 95,219, 20,158, 83, -191,182,182, 22,250,189, 18, 20,234,188,180, 43,102, 57,251,101,208, 63,153,140, - 20, 20, 88,249,134,103,126, 57, 37, 81, 48, 19,214, 28,148,163, 76,226,216,101, -188, 97,246, 20, 41,217, 12,114,221,238,197,117, 50,114,140,176, 66,122,202,205, - 67, 14, 4, 43, 13,200, 60,235, 27,178, 3,153, 17, 98, 94,112, 10, 9,201, 39, - 18, 18,233,178,185,219, 38, 24,160,116, 75,154, 95,172,203,102,165,191,146,177, - 55,170, 87,242, 55, 12,242,188, 15,213, 9,194, 23,114,125, 45, 87,168,139, 72, -143, 15, 69, 58,193, 61, 98,236, 52, 10,185, 14, 76, 65,230, 29, 30, 28,167,213, -169, 71,129,201,222,254, 84, 83, 72,111, 92,180,250,132,177, 72,126, 62,109,149, -116,218,133,230,140,215, 53,221, 10,175,189, 42,186, 89,184,125,195,161, 82,117, -207, 24,108,191,226,108, 46, 54, 34,174,142,196, 85, 81, 60, 38, 6,169,146, 28, - 69,220, 39,106,125,202, 36, 95, 22,253,100, 81,233, 28, 11,143,102,147,113,121, - 54, 16, 90,103,146, 18,250,180,105,164,107,174,136, 10,162, 50, 29,109,243,219, -157,159, 87,222,110, 51,219,200,153,123, 92, 43, 39,102,207, 53,147, 73, 73, 9, -219,142,230, 56,125,167,222, 36,189, 66,194,146,160, 10,222,107,248,250,189,247, - 30,124,211,123,175,173, 83,111, 10,139,180,229, 66, 44,233,158,206,211,216,219, - 15, 97,188,101,204,242, 83,126,138,176,118, 23,235,234,181, 0, 70, 48,167,222, - 97, 81, 14, 77,195, 45,250,204,185, 63,220, 20, 57,180, 16, 4,163,118, 91,118, -183, 28,130,247, 49,246,181,191,253,219,125, 62,205, 27, 35,131,220,194,107, 62, -237,167,209,165, 28,143, 92, 78, 89, 46,148,213,103, 89,241, 91,160,173,208,182, -136,235,212,248, 83, 33, 83, 10,185,181,190,112,202,219,175, 22, 19,228,130, 42, -115,135,147, 54,191, 97, 21,178,253,168, 66,217,159,195,115,237,238,131,235,179, -216, 77, 44,194,238, 98,240,156, 5,129, 40,168, 97, 41, 67,200,144,140,136,136, - 36, 73, 82,104, 12, 97, 12,130,144,146, 92, 66, 59,146,136, 88,148,101, 80, 2, -203, 24, 35,112, 6, 9,100, 36, 16, 17,161, 64, 36, 16, 9, 10,139,226, 28, 25, - 21, 23, 1, 38,122,247,169,175,241,182, 13,148, 7,206,242,195, 79,228,144,202, - 40, 79, 90,220,184, 9,229,109,163,182,139, 22,253, 43,215, 8,146,122,113,242, -193,169,170,204,194,132,133, 26, 16,117,151, 6,211,163,210, 97,133,191,223, 11, -128,147,221, 87,204,244,151, 69, 2, 24,183,233,113, 81,159,252, 92, 59,204,218, - 1,119, 30,121, 88,168, 29, 84, 84,235, 27,228,138,250, 29, 99, 6,124, 78,166, -200,243,162, 6, 17, 2, 79, 72,223, 6,129,183,186, 4,136,210, 50,170,240, 14, - 33,124, 40,209, 71,216, 36, 77, 82, 19,165, 85, 52,154, 12,177, 65,156,162, 10, - 25,146, 63, 43,146, 99,222,156, 13,255, 83,197,250, 49, 91,217,247,167,153,136, - 62,201,207, 9,162, 90,186,214, 38,215, 71,136,209, 50, 7,171,229,195,208,227, - 83, 83,122,208,203,144,241, 31, 14, 83, 36, 22,106, 16,193, 77,116, 12,179, 83, - 90,160,210,138,210,248, 6,221, 55, 49,230,184, 14,252,121,239, 3, 44,172,160, - 2,192,223,233,212,235, 54, 24, 1,118,216,203,106,202, 89, 84,202, 89,196, 63, - 58,114,145,143, 8,122,198, 62, 13, 33, 66,110,151,122, 2,247, 17,145,240, 60, - 61, 38, 0,236, 23,162,135, 20, 60, 84,101,209, 81,244,192, 53, 68,201,247,168, -149, 26,103,214,206, 51, 79,129, 72,179,146, 72,211, 52,155,222,172,215,188,187, -248, 11, 54, 72,121, 34,117, 77,162, 21,112,232,167, 22,142, 22, 33,190,225, 37, -208, 26,214, 20,118,214,188, 76, 44,124,157,194, 88, 78,159, 79,190, 14,217,173, -189,249,230,135,223, 69,170,136, 43, 18, 65,215,246, 73, 4,239,139, 49, 99,155, -130, 62,229, 29,131, 4,234,105,157, 66, 38, 68, 86,114, 70, 5, 67,152,123, 20, - 10,127,130, 56, 8,224, 81, 2, 54, 57,238,124,244, 98, 86,177,182,232, 25,190, -118, 59, 81,198,200,178,186,169,217,203, 69, 43,236,211, 49, 70,250,188, 8,201, - 29,166,200, 84, 79,252,160,204, 19,241, 27, 1, 24,194, 46,194, 58,250, 20, 75, - 67,252,128, 8, 13,173,211, 77, 32,135,208, 24, 9, 40,212, 98,225,198, 35,151, - 63,194, 91, 74,135,200,236, 81,226,225,112,221,135,110,174, 0,207, 62,104, 47, -251,182,245, 10,173, 40, 35, 49,126,194,129,106,136,120,130,166,176, 15, 49,236, -233,171,115,111,135,167,199, 40,207,219,193,119,128, 88, 43,218, 65,210,159,234, - 55,117, 60, 52,209,253,185, 39,187,107, 28,102,203,115, 0,188, 21,124, 49,181, - 72,194,223, 61, 6,179,228,118,233,176, 81,167,191,183,198,132,143,255,164, 87, -107,217,210,170,192,227,139,125,151,239,191,218,207, 63,254, 45,175, 26,145,224, -239, 24, 87, 96, 64, 58, 53,110,149,229, 97,244, 73,221, 95, 61, 94, 71, 1,210, -231,248,171,182, 86, 24, 62,125, 39,191,244,176, 13,202, 79, 61, 44, 49, 60,121, - 65,208,212,240, 19,253,130, 70,130,110,154,255,103, 38, 45,141, 15,224,153,183, -100,170,163,126, 73,169, 35, 96, 2, } ; -// ../Source/Template/GB_AxB_dot3_template.c: -uint8_t GB_JITpackage_5 [1639] = { - 40,181, 47,253, 96,151, 25,237, 50, 0,150, 58,177, 40,192, 84,117, 14,228, 92, -191,111,207,225, 76, 30,190,102,206, 71,161,139, 8,157,240,134,216, 94, 63,253, -231,100, 42, 39, 78, 73, 24, 48, 77,130, 64, 6,225, 46,163, 0,159, 0,172, 0, -191,155,223,227, 91,169,101,240,187,174,111,245,163,175,106,151,183,125,238,161, - 98, 81, 96, 61,232, 12,202, 95,159, 84,222,154, 28, 88, 18, 42,204,105,242,139, -191,128,220, 91, 95,202,115, 83, 97, 75, 89,107, 78, 37, 3,162, 99,153,252, 1, -178,101,207,237,229, 60,218,243,174,139,167, 20, 18, 14, 18, 42, 13, 8, 7, 9, -159, 52,233,148,237, 15, 9,113, 75,252,136,187,213,235,207, 41, 44,114, 42,238, -147,160,196, 5,227,219, 33, 54, 1,249, 27,113, 6,108, 65,249,217,219,190,117, - 6,153, 3, 57,101,175, 22,206, 10,126,191,236,143, 87, 5, 4, 49,243,112, 57, - 88,191,240,149,221,231,241,205, 20,110,157, 89, 21, 18,179, 74,226, 6, 6,147, -138,129, 65,159, 76,123,227,249,173, 5, 38,209, 69,154, 68,212, 69,178, 50, 14, -180,111,193,122, 53,254,120,215,201,243, 13,109,115,247, 35,208, 39, 13,235, 38, -240,108, 82,182,190,204,250,100,135,177,116,108, 52,231,243,204,175, 5,123, 19, -253,102, 11, 12, 96,189, 95,131,154,229,249, 51,119,127,217,227, 20,138, 21, 89, -121,233, 29, 48, 63,120, 70,154, 44, 55,200,171, 34,244, 66,145,104,109, 6, 63, -225,248,132, 64,105,237, 73, 58,154, 18,119,225,100, 78,179,159,168,100,167,100, -144,187,153, 23,210,237, 29,119,242,251,165,231, 33,193, 79, 0,243,217,247,151, -246,255, 79, 38, 35,147,137,165,147, 96, 8, 94, 59, 57,236,228,199, 25,244,145, -244, 2,116,164,146,185, 8, 13,129, 38, 18,146, 75,148,187,143, 23, 60,212,117, -225, 63,233,133, 54,158,121, 55,112, 42,116,202,222, 6, 85, 84, 72,107,100, 95, -117,138,130, 78,113,149,244, 47, 20,213,218,101, 25, 85,113, 86,114,215,120,168, - 84, 30,180,109,248, 73,123,251,197,246, 43,143,166,163, 49,145, 97,161,202, 98, -249, 74, 78, 9, 37,221, 98,115,109, 48, 20,164,111, 71, 43, 38,226, 35,153,139, -164,111, 8,148, 99,222, 33,218,248,103, 93, 80, 94,187,245,164,147,232, 20,103, - 73,183,178, 9,144,185,219,204,182, 99,204, 67,215,210,170, 93, 63,132,230, 99, -161,185, 52,156,206,117, 97,101,159, 11,139, 12,194, 34,102,156,232,193,248, 88, - 24,158, 15,150,105, 48, 79,236, 96, 89, 5, 22, 47, 41,147,170,226,112, 48, 34, - 58,241,250,108, 42,158, 52, 20,160, 80,176, 15,182,201,208, 0, 4,104,150, 44, -224, 60,195, 78,163,205,182,227, 67,140, 45, 99,199, 24, 99,148,145,138, 49, 78, - 6, 89,144,234, 77, 19,139,180,245, 78,133, 92,210, 63, 88,180,172,189,125,145, -198,156, 54,153, 41,181, 53,192, 86, 47, 97,177,241,108, 46, 13,166,241,100,158, - 77,196,224,116,164,107, 60,145, 99,105, 32, 50,138,141,197,182,147,219, 51,183, -215,118, 8,103,161,214,222,213, 10, 42, 32,152, 58, 62, 92, 14, 86,165, 2, 53, -109, 76, 21, 99,228,144,246,237,108, 56, 17,150,245,109,188,175,150, 45, 89, 20, -138,131,149,161,220,143,181, 16, 62, 53,186,159,199,117,190,222,139,192, 10,242, - 26,129,149,168,209, 45, 67, 35, 35, 34, 41, 40, 40, 40, 72,161, 49, 97, 12, 98, - 20, 99,218, 65,234, 1, 34, 81,164, 68, 65, 10, 81,132, 48,162, 8, 39, 34, 66, - 34, 18, 72, 36,129,144, 20,148,233, 6,152, 45,113,181,212, 21,236, 92, 61, 18, -117,225, 35, 69, 76,179,249,106,224,212,106,168, 53,112, 81,143,255,234,243, 60, - 86, 76,132,182, 5,114, 82,218, 51,241,201,246,236, 63, 37, 84, 89, 0, 1,102, - 49,141,226,142,161,242,176,183,201, 67,220,217, 13,173,176,133, 43,241,146,114, - 62,201, 29,161, 11,112,163,123,150,232,128, 57, 20,239,103,201, 56,159,126,135, - 48,173,173, 44,175,177,252,158, 17, 79, 51, 21,245, 69,241, 81,125, 8,141,182, - 30,235,236,105, 43, 3,141, 36, 3, 52, 40,233,143,134,168, 41,152,132,151,144, -146,243, 68, 59, 12,222,167,255,148,136,179,132,191, 58,243, 58, 82, 22,246,158, -114,239,148,150,183,247, 41,217, 77, 63,207,201,197,228, 41,137,253,133,157,218, -233,203,216,131, 71,128,202,246,177,119,166, 69, 3,170,121,250,201,170, 34, 79, -167,234,229,146,154,166,236, 88, 34,223,253, 39,208,254, 44,150,186,210,144, 46, - 78, 31,139, 98,148,118,203,168,198,202, 81, 33, 81, 58, 69, 83, 14, 23,165, 36, - 33,214,220,246, 15, 37,220, 39, 47,138,226, 97, 3,102, 82,128,246, 81,245,156, -129,148,141,245, 52, 94,248,215, 91, 91, 29,198, 26,125, 51,246, 25,135,247,146, -140,172,120,140,180,180,144,155, 74,237,146,103,240,216, 2, 73,238, 39, 7, 53, -183,132, 87,221, 9,208, 3, 50,239,230, 42,123, 84,171,170,211,221,239,128, 2, -232,208,128, 58, 29, 12,169, 44, 36, 38, 26,243,194,168, 82,172,189,154,232,184, -253,119,196,127,153,178,255,156,202,224, 40, 80, 82, 1, 17,127,148, 83,250, 24, -146, 69,137,170, 55, 92,202, 94, 88,128,185,172,137,111, 34, 95,180,186, 24,123, -202,250,162,111,241,202,128,137,168, 42,121, 64,214,187, 90,126, 95,226,134,231, -227,238,109, 78,198, 53, 59, 3, 76, 20, 44,192, 37,188, 88, 98,129,170, 46,206, - 77, 17,190,133, 58,159,163, 51,113,128, 74,214, 80, 26,228, 2, 0,201,143,132, - 24,148,139,141, 67, 29, 20,202,174,170,154,169,108, 48,235, 91,230,245, 50,130, - 18,219, 39,195, 55,114, 6, 56,141,195,131,134,143, 45, 15,159,135,145,223, 84, -162, 12, 97, 51,234, 60,185,198,155,161, 33,222, 74, 29,156,137,189, 18,163,174, -160,170, 41,118, 20,143, 39,160,131,132,121, 3, 4, 78, 58, 30,123,162,176, 0, - 50, 50,204,221, 43, 49, 89,227, 96,168, 17,187, 28,232, 86,150, 46,172,234, 55, - 20, 62, 75, 6,203, 84,142, 31,182,103,124, 35, 54, 81, 79, 89, 67,200,113,224, - 34,131, 11,209,249, 56,112,224, 86, 91,163,119, 53, 6, 2, 75, 82,128, 13,224, -225,140, 2, 57,128,227, 86,139,195,167,120,144,225,168, 12,165,208,154, 21,144, - 7, 73,248, 45,135, 34, 68, 98,232,229,206,208, 65, 8,150,224, 2, 4, 50, 49, -145, 34,118,211,168,101,244, 85,197,127, 58, 37, 99,138,212,179,164, 75,150,111, - 76, 35, 12, 54, 9,189, 34,148,163,100, 45, 80, 2,183,105, 20,201,228, 83,107, - 65,120, 91, 97,106,220, 2,170, 44, 4,189, 1, 56,151,176,116,134,125,227, 1, -245, 98, 45,192, 14, 6, 20, 48,168,174,157, 42,108,209, 84, 67,208, 68, 37,179, - 71, 57, 29, 58, 94,215,131, 12,174,142, 22,136, 49,222,204, 21,139, 75,246,127, -124, 9,207,165, 89,165,174, 86,177, 45,103, 23,222, 57, 4, 50, 25,102, 89,177, -123,145,225,235, 15,204,210,227,188,249,134,182, 59, 56, 83,102,205,155, 63, 25, -177,149,186,218,124,204, 93,152, 87,224, 50, 90,207, 37,208,127,132, 23,199, 15, -149,235, 86,226,184,191, 59,250,254, 47, 21,120, 81, 54, 59, 45, 84,134, 12,122, -148,151, 31,100,144,139, 84,237, 73,232, 38,198, 83, 77,180,162,136, 71,125, 15, -108,147, 63, 39,126,208, 36, 44,249, 56,177,106,235,238,159,151,110, 10, 48,244, -183, 87,234,158,134,105,107,177, 70, 83, 36, 92, 38, 79,129,192, 5,204,135,110, -154,248, 15, 38,121, 85,115, 34,191,119, 30,210,126, 0,128, 74,105,214, 19, +// ../Source/JitKernels/GB_jit_kernel_AxB_dot4.c: +uint8_t GB_JITpackage_5 [386] = { + 40,181, 47,253, 96,116, 2,197, 11, 0,182,149, 71, 33, 0,213, 54, 86,202,107, + 21, 76,190,213,101,130,244,224,112,163, 64,194,227,210,238, 57,128,113,138,226, +140,252,255,223,186, 4, 16, 61, 0, 62, 0, 63, 0,223, 30,195,204,249,180,209, +172,126,160, 78, 99,140, 39,117, 7,218,126,231,114,155,222,248,237, 15,221,107, + 65, 64, 29, 6,136,235, 17,187,115, 19,138, 51,110,165,216,163,103,171,136, 90, +240, 69,253, 31,187,179,199, 86,204, 45,107, 82,150, 21,163, 6, 57, 99, 30,170, +139,250,239,118, 32,234, 12,253, 25,231, 45,190, 55,161,158, 20,255,230,140,218, + 68, 50,149,247, 33,253,228,107, 78,238,175,147, 53, 7, 65,234, 83,226, 58, 92, +212, 2,113,184,156,112, 7, 62,145, 57,212, 69,188,162, 62, 10, 29, 7, 4,187, +235,251, 59,110, 89, 18,203,132,187,104, 52,252, 30,206, 1,119,247, 73,154, 13, + 39, 12, 28,195, 97,180,140, 85,112,152,136,173, 27,106, 51,201, 69,147, 84, 60, +163, 21,147, 97,214, 86,108, 78, 32, 88, 98, 39,179, 67,124,218,183,244, 2,115, +150,102,195, 9,219, 38,129, 64, 52,155,173, 26, 27,184,168,203,253, 26,112,171, +110, 87, 12,224,239,149,224, 21, 39,206,158,248,129, 59,134, 13,127, 80,118, 20, +186,195,177, 29,233, 49,252,208,254,107, 76,138, 99,222, 87, 44,177,127,110, 33, + 32, 32,130, 71, 93,121,165,160, 55,131, 96, 46, 5,125,147,153,180,131,209, 3, +160,105,176, 29,240, 21,168, 2,140,129,250, 49,176,146,142, 63,137,130,234,167, + 45, 20, 98,163,109, 91,247,253, 0, 40,141,185,156, 22,203,184, 93, 1,226,137, +227,155,133,179, 17, 17, 38, 77,205, 51,211,219, 42, 88,173, 83, 66, 78,188,190, +244, 98, 79, 81, 48, 4, } ; -// ../Source/Template/GB_AxB_dot4_cij.c: -uint8_t GB_JITpackage_6 [1108] = { - 40,181, 47,253, 96,196, 19, 85, 34, 0,198,108,139, 33,208, 92, 23, 3,152,106, -251,250,230, 58,198,210,204,165, 70,110, 0,234,204,179,160, 25, 68, 82,166,126, - 25,165, 30,184,224, 2, 2,130, 0,121, 0,134, 0,249,188,190,190,247,180,196, - 97, 97,176,169,177,162,222,187,108,111,121, 55,182,100,104,176, 26,219,241,106, - 12,163,138,231, 64,218, 86,182,218,126,174,119, 10,117, 63, 55, 77,239, 28, 99, -145, 88, 24, 30,138,196,226,131,113, 59,167,111,171, 86,126,240, 14, 75,237,147, -117, 67,231, 64,158,230, 75,161, 53, 99, 58,171,115, 69, 65,118,223, 20,164,145, -103,106, 91,214,159,207,178,219, 62,130, 96,112,185,110,243, 62, 41,124,160,226, -238, 6,190, 27, 15,170, 59,138,141,125,146,226,247,242,196, 15,115, 4, 66, 51, - 32, 16, 1,226,183,189,188,128, 61,166,228,153,209, 91, 19,133,175,126,125,247, - 1,136,158,219, 14, 54, 66, 22,140,197, 67, 10,137,160, 9, 68, 75,127,129,223, - 53,242,157,235,214, 98,225, 32,250, 45, 54, 28, 27,223,111,141,207,241, 96,241, - 73,186, 48, 7,219,247,147,171,238,248,109,245,223,133,194, 12,190,103,165,227, - 88, 15,195,245,101,122,155,218,174,211, 52,235,187,206,230,116,167,229,182,168, -255,191,166,201, 52, 13, 60,137,235, 57,180,178,246, 61,153,102, 90,126,231,178, - 69, 97,169, 7,117,191,203,132, 64,159,240, 34,114,194, 77,195,209,112,160, 42, -235,114,219,246,210,172, 54,143, 11,198, 72,227,217,128, 98, 6,243,178, 38,202, - 58,199,131, 23, 4,162, 96,205, 83,122,110,215,211, 44, 49,225,183, 96, 44, 24, - 14,133, 67,113,185,104,157,158,131, 64, 64, 34,141,199,180,179,129, 70,241, 74, - 60,240,189,125, 16,121, 12,223,250, 59,126,176,109,159,124,167, 40,124,243,101, - 89,253, 1,121, 79,124,178,126, 92,173,121,158,167,237, 50, 12, 39,252,132, 27, - 11, 72,252,132,158, 71,252,116, 70, 26, 12,226, 26,141,232, 34,130,194,154, 54, -211, 34,147,163,240,221,186,142, 22,133,193,114,205,251,158,114,221,110, 90,156, -237,234, 54,219, 20, 73,218, 86,213,147,194,200, 51, 24, 40,213,156,173,170,205, - 39, 83,233,167, 47,223, 82,211,202, 75,226,213,170,240,161,231,208,115,171,237, -161, 78,197, 84, 40, 92,114,244,145,123, 40,186, 85,194, 14,167,179, 17, 57,157, - 48, 4,138, 42,150,143, 88,217,132, 32,209,219, 96,188,143,199,234,145,167, 48, -144,216,138,213, 28,121,171,144, 5,116,185,116, 10, 55,121,104,233,215, 91, 37, - 78,193,247,176,188,177,253,214,138, 85,128,228,168,193,157, 51, 52, 35, 51, 19, - 36, 5, 41,165, 49, 64, 68, 32,198, 20, 86,231, 82,248, 64,198,210, 12, 50,142, - 16, 68,136,128, 8,145,184, 33,113, 50,129, 80, 5, 66,230, 1, 0,145,139, 68, -186, 52, 72, 20, 26,185, 55, 44,252,103,100, 89,207, 86,107, 69, 26, 2,169, 70, -210, 14, 0,178,165, 31, 77,145,145,162,176, 19,101, 79,180,251, 19,179, 91, 54, -231, 87,136,247,178, 48, 6,136,236, 42,121,139, 28,150,193, 21, 11,119,195,161, - 30, 47,161, 67,122,133,138,125, 21,218,223,126,234,130, 95, 30,204, 86,255, 57, - 20,233,109,241, 11,245, 17, 48,148,177,215, 24,129,184, 36,142, 20,245,148, 33, - 45, 28,209, 71, 88,201, 77,106,136, 2, 32,107, 65,210, 48, 43, 9,237,100,192, - 60, 57,164, 88,243,167, 78, 24,129, 23, 51, 33, 5,208,241,170,135,111, 21,238, - 80, 25, 9,132,123,207, 7, 6,163, 98,183,246, 97,181, 27,230,217,246, 46, 65, - 65, 32,112,210,134,120,176,165, 74,202, 10,171,117,164, 82,185, 65,101, 36,171, -248,111, 87, 54,172,103, 98, 88, 21,222, 25,209, 23,249,151, 68,157, 10, 38, 98, - 73,128, 24,126,245,165, 8, 64, 72,218, 87,210, 26, 71,134,171,189,170, 71, 11, -182, 5,195,140, 67,191,147,177, 55, 47,209,198,180,254,141,142, 30,148, 18,111, - 88,179, 93, 41,128, 22, 78, 62,149,176,127,217, 1,215,116,157,150, 11,226,101, -250,184,250,124,174, 2,236,191,119,154,110,157,180,151,198, 79, 72, 27, 23, 12, -173, 39,227, 47,138, 1,150, 64, 58, 44,139,147,120, 61, 66,174,224, 24,111,101, -166,118, 34,102,143, 51, 44, 14,174,185, 86,161,137,213,244, 57, 33, 90, 84,251, -114,249,236,102,211, 59,208,193, 10,213,227,225,123, 28,177, 8,238,181,178,108, -154,202, 30,120,253, 8,188, 55, 56, 64, 59,162,217, 12, 33, 92,198,245,250,165, - 50,241,127,115,124, 66, 7,234, 6,173, 74,180, 79,212,173,204,159, 75, 53,156, - 29, 77, 74,144, 30, 65, 19, 83,185,245, 14,200,206, 30, 27, 27,107, 72,142,130, - 18, 34,103, 1, 28, 79,101, 1,203, 82, 60,112,168,225, 4, 5, 72, 33,234,197, - 72, 23, 78,167,239, 59,178,177, 64,137,188, 69, 23, 3, 66, 36,102,170,154,174, - 10,127,231,140, 72, 30, 32,238,147,254, 55,201,165,158, 69,225,228,252, 56, 35, -158, 80, 15,238,199, 53, 25, 71, 72,185,105,190, 63, 51,105,202,137,251, 4, 54, - 12,233,176, 70, 41, 77, 2, 60, +// ../Source/JitKernels/GB_jit_kernel_AxB_saxbit.c: +uint8_t GB_JITpackage_6 [377] = { + 40,181, 47,253, 96, 70, 2,125, 11, 0,214,213, 70, 33, 32,179, 27, 83, 56,173, +253,220,102,234,232,185,216,213, 22,152, 64, 2, 96,167, 25, 44,241, 51,167,202, +226, 50, 32, 4, 7, 0, 2, 59, 0, 62, 0, 64, 0, 30, 56,239, 35,225,248, 78, +112,243,252,225, 22,239,127,142,219,235,198, 62,238,217,215,211,117,168,130,159, +107,248, 53,232,111,158, 95,119,130, 78,249, 53,160,137,229, 5,178,100,117,123, +189, 35,243,115,228,245,104,138,138, 18, 69, 5, 30,157,160,213,137,235,223,125, +182,206, 65, 36,199,214,233,103, 82,198, 97,153, 56,255, 92,199,174, 53,206,222, +230,181,174,213,106,194,161, 42, 84, 18,194, 80,168,122, 64, 5, 77,192,255,153, +142,158,172, 14,121,217,243,253,165, 9,155,149, 93, 1,216, 4,114,161, 96,180, +206,185,238, 3,221,221, 81, 20, 21, 61, 16,116,229, 82,209, 44,155,188, 50,150, +204, 48,138,134, 73, 58,179,174, 74,246,144, 23, 72, 36, 70,128, 55,121,158, 21, +252, 60,203, 67, 8,188, 30,128,118, 46,172,212,126, 32, 22,166, 74,242, 49,142, +162,162, 7,219,134, 53, 26,152, 77, 94,215,222, 48,251, 5,208,216, 61,103, 93, +209, 12, 73,134,190,142,139,238,228,245,156, 39,197,114, 34,193,249,229,215, 96, +235,249, 76,109,216,117,135, 78, 77,173,147,118,246, 77, 83, 84, 30, 32, 48, 2, +162, 36,179, 30,108,160, 44,191,248, 45, 62, 0,224, 20, 10, 46, 81, 54, 29,208, + 28, 8, 68, 62,142, 16, 25,152, 17, 57, 58,232, 96, 11,222,232,182,237,247,253, + 18, 32,141,221, 15, 43, 0, 0,128, 20,101,190, 55, 88,103, 33,210,160,217,121, +102, 90, 91,136,171, 57,136, 40,155, 11, 8, 90, 3, 81, 20,184, 1, } ; -// ../Source/Template/GB_AxB_dot4_meta.c: -uint8_t GB_JITpackage_7 [1390] = { - 40,181, 47,253, 96, 73, 16, 37, 43, 0,102,186,173, 40,208,210, 56, 7,104, 33, -108,194, 55,174, 67, 96,233,196,246,146,228, 40, 58, 88, 83, 81, 40,240,111, 50, -144,140, 88,224,203,162,244,186,140, 82, 15, 13,176,188,161, 0,150, 0,168, 0, - 50,222,122,204,174,221,177,229,237, 62, 68,175, 53,157,116,187,254, 11,203,200, -121,150,217,215,248,126, 94, 71,229,181, 25, 79,234,122, 99,119,237, 81, 82,112, - 57,176,240, 38,163, 7,223, 80,185, 67,125, 39,107,150,133,237,100,217, 28, 75, -134,230,226,162,241,168,178,229,207,237,221, 60,250,115,142,131,159, 16, 14, 10, - 14, 44, 11, 6, 5, 7,167,200, 73,143,162,230, 23,248,210,118,105,215,215, 39, - 16,228, 80,155, 23,171, 68, 3,219, 26, 61, 16,223,254, 64, 18,142,251, 66,183, -253,234, 92,121, 3,249,100,175,252, 52, 90,189, 63,246,232, 84,101, 0,102, 8, -170,191, 33, 94,238,176,132, 75, 53,140, 34, 65,140,146, 56, 6, 35,177, 96, 48, - 1,245, 78,142, 28,249,218,105,209,217, 32,149,183,235,249, 47, 26,135, 52, 23, -251,246,236,251,233,227,226,104,178,149,189,210,118,174,241,212, 43,197,192,135, - 44,147,206,211,235,145,248,147, 57,179,113, 59,233,193, 82,201, 26,185, 40,237, - 38,123,202, 62,221,143,158,218,174,254,203,236, 87,203,241,172, 44,250,101, 81, - 68, 11, 87,175,196, 77,122,173,255, 98, 43,223,217,212,155,180,175,156, 95,200, - 14,148, 60,217,113,119,217,149, 39,123, 84, 26,186,198,246,251,213,232,118,185, -187, 84,223,110,131,156, 39,213,206,217,103,148,215, 70, 73,231,111, 12,169,216, - 43,221,169,210, 27, 43,123,244,221, 39, 3, 24,232, 24,103,211,249,108, 42,176, -203,162, 8,181, 64,215,218, 40,163,186,183, 45,203, 24,188, 7,139, 71,253,202, -174,215,114,173,220, 33,243,201,220, 72,254, 98, 9, 10,119,246,175,157, 84,194, - 95,246,184, 68, 50,242, 73,164,209,192,139,131, 97, 65, 81,159, 62, 68,217,228, - 20,230,212, 54, 6,189, 79, 36,248,169, 69,113,114,200,169, 54, 26, 76,229,153, - 76,168, 47,138, 92,179, 87, 48,119, 56,133,139,179,187,202,175,128,155, 15,133, -113, 96,199,178,248,108, 46, 44,194,250, 47, 34,225, 56,133,242, 38,232,125,126, - 2, 18,202, 7,245,202, 41, 61,137, 38,240, 25,130, 39, 92, 30,205,236, 16,107, - 2, 18, 73,149,177, 59,197,155, 62, 90, 78,170,132,107, 35,209,165,236,165,165, - 74,175,140,161, 0,121,225, 27, 57,175,227,139, 5,108, 23,219,152,130, 65,188, -220, 5,156,181,143,147, 83,193, 0, 94,155,202, 33,155,175,156,101,115, 54, 78, - 43,178,241,206,223,217,111,128, 56, 69,150,110,107, 92,214,213,217,104,172,142, - 53, 27,171,108, 4,233, 79,239, 40,216,224,237, 86, 85, 85,253, 20, 69, 81, 20, -137, 50, 33, 93,157, 11, 94, 0, 76,126,129, 58,158, 42,192,222, 74, 61,239,179, - 1,175,180, 86,141,229,233,120, 44, 48,141, 14,132, 16, 66, 8, 33,132, 16,194, -138, 50,249,245,217,128, 64, 16, 70, 8, 33,132, 16,194, 80,107,211,129, 82,147, -103, 56, 74, 51,182, 28,123,232, 6,244,129, 23,160, 11,104,113, 89,148, 23,187, -219,217,103,115,161, 49, 17,129, 71,168,129,189, 81, 72,102, 38, 72,146,130, 36, -141, 1,209, 12, 49,136, 90,203,138, 7, 50,177, 76, 5,147, 16, 35,202, 40, 66, -200,136,140,140, 72, 48,129,136,164, 32, 5, 37,133, 7,120,172, 69,196,159, 3, -196, 82,223,124,247,191, 34,228,188,182,241, 96, 36,173,127, 71,166,184,217,239, -151,154,180, 89,199, 79, 26,243, 82,165, 29,179,125,169,146,205,138, 41,163, 12, -159, 19,126, 99, 10,247,215, 48, 94, 69, 12, 55,153,142,110,217,181,124, 70,245, -245, 57,184, 34,182,193, 71,115, 16,213, 77, 69, 26,244,133,174,128,218,127, 64, -200,114,182, 69,127,163, 91,221,147, 74,247,172,154,101,175,241,188,168, 49, 93, - 92,135, 14, 10,208,159,113, 14,110,181, 23, 41,144, 63,217, 17,254,157, 38,182, -147,181,136,167,144,141,146,181, 20,214, 41,161, 28, 81, 89, 22,140,191,208,188, -192,159,156,245,211, 99,176, 65,140,133,107,184,122,196,186,128, 82,232,161,130, -240,231, 17, 66,226, 10, 64,157, 55, 16, 94,169,110,100, 46,206,209, 22,151,248, -143,146,137, 68, 21,141,186,179, 9, 9, 1,202, 32,205,160,217,115, 41, 94, 34, - 52,102,208, 8, 50,254,127, 49,255,176,205, 74,200,136,168,155,128, 58, 16,133, - 46,136,209, 47,108,138, 29,176,203, 25, 35, 16,110,157, 78, 6,126,217,213, 41, -204, 41,112,195, 47, 99,236,153,161,159,156,136,150,160,221,136,112, 21,252, 25, -180,157,119,172, 84, 66, 97, 65, 36,177, 11, 19,222,201,242,248, 32, 91, 12,234, -192,177, 63, 9, 22,140,239,198, 45,135, 67, 39, 62,158, 94,150,129,152,117, 14, -149,135, 84,102, 68,235,196,215, 76,249, 71,107, 27,185, 88, 65,232, 90, 49, 78, -144,168,142,254,117, 85, 15, 89, 94, 3, 40,205, 37,136, 17,216,119,161,216, 27, -153,149,215,195,161,191,213,163,142, 44, 98,217, 12,239,193,234,143,252, 35,240, -184, 8,107,183,132,233,110, 80,224,225,102, 58,132, 15, 62, 96, 85,154,126, 36, - 21,253,179, 42, 57,182,183,252,166,188,212,131,207, 95, 27,137, 59,211, 19,163, - 70, 72,120,144,183,190,247,188,162, 69, 35, 73,170,122,244,100, 37,104, 73, 80, - 54, 41,238, 71,199, 3,232, 93,178,247,180, 59,254,222, 38,255,125, 91, 34,130, -220,217,179,142, 66, 16, 93,136,224, 75, 17,115,166,129, 30,253,222, 87, 34,105, - 61,161, 70, 73,132, 96, 5,114,236,250,137,223,103, 29, 70,175,169,153, 39,232, -208,216,124, 82,218,139,205, 94,247,169,227,222,142, 39,252,249, 98,199,248,188, -161,180, 40,216, 11, 43,113, 56,193,161,193,188,225,229, 88,184,247,225, 35, 8, - 28, 7, 4,168,196, 35, 62, 53,181,107, 28,110, 9,214, 96,136,161, 63, 99, 44, - 61,125, 11,200, 3,156,138, 92, 22,251,145, 38, 33,130,156,147,131,118, 56,111, -151, 29,157, 22, 63, 66,151,150,110,115,137, 89, 60,165,193,203,124,153,138,191, -210,254, 74, 85, 80, 77, 34,197, 95,224, 11,170,215, 27,229,237, 27,160, 72,122, -122, 25,187, 22,166,116, 56, 48, 61, 71,108,154,183,218,244, 87,142,140,149,159, -119,167,232,213,173,107,233,225,114, 2, +// ../Source/JitKernels/GB_jit_kernel_AxB_saxpy3.c: +uint8_t GB_JITpackage_7 [466] = { + 40,181, 47,253, 96, 70, 3, 69, 14, 0, 54,219, 86, 32, 0,151, 30, 27, 67,185, + 80,252, 66,160,155, 55,227,224,188,158, 88, 11,124, 1, 57,211,207,202,120,144, +103,233,255,189, 62,132, 75, 0, 77, 0, 79, 0,151, 84, 33, 94,144,110,250,108, +145,119, 55, 39, 76,105,185, 62, 96,205,145,197,235, 92,193,249,251,134, 51,230, +235,189,246,199,158,239,106,175,158, 69,157,155, 48,120, 55, 14, 61, 47,221,188, +171,231,190,176,133,132, 9, 44, 85, 77,175,146,164,248,191,252, 33,186, 47,136, + 94, 17,183,172, 88, 89, 86,219,220, 54,204, 91,103,151,204,131, 86,166,188,184, +131,158,200,210,144,174, 23,255,239,118,207, 5,162,161,128,168,254, 99, 43, 40, +125,145,255,118,119,127,207, 77,170,215,223,219,107,169, 54,144,172,192, 61, 41, +191,126,205,245,254,120,174,230, 24, 75, 39, 36, 16, 6, 68,165, 56, 24, 16, 62, +176, 2, 39,232, 95,216,121,200,214, 14,198,213,250,126,143, 91, 22,118,153,108, + 24,141,214, 61,215,221,128,187,123, 60, 69,134, 15, 4,158,217, 50, 90, 70, 19, +156,108, 35, 39,189, 54,146, 90, 48,140,134, 85,220, 34,175,140, 37, 66,183, 9, + 37, 70,192,167,240,187, 98,208,251, 77,175, 8,192,159, 11,177,253,110, 32,110, + 15,141, 22, 49,166, 34,195, 7,115, 98,143,135,102,210, 43,127, 57,220,159, 1, +118,160, 97, 25, 71,226, 40,148, 15, 30, 2,199,166, 38,179, 73,231,100,211,176, + 57,101,236, 46,247,125,160,163, 7,186,179, 72,143, 26,222, 81, 43,194,184,210, +210,237, 48,220, 81, 81,147,231,177,225, 29,245, 66,237,133, 86,127,162,187,109, + 41, 32, 48, 2, 98,160, 82,122,228,160, 44,113,161,130,112, 32,191,203, 66,253, +142,235,104, 91, 57,130, 1,113,232, 8, 16,242, 0, 50,206,168, 12,142, 3, 56, +200, 88, 56,222,140, 48, 37, 8, 6, 31, 79,135, 12,204,136,206,199,216,202, 80, + 88, 70,255,110,127,226, 75,184, 52,250,247,140, 64, 54,123,128,186, 42, 38,188, +128,132, 68,230, 35,107, 7, 77,135, 48, 19,116,132,186,134,131, 30,189, 51,131, +135,242,240, 20,189, 67, } ; -// ../Source/Template/GB_AxB_dot4_template.c: -uint8_t GB_JITpackage_8 [4767] = { - 40,181, 47,253, 96,160,183,173,148, 0,170,119, 44, 22, 45,160,172,174,115,218, - 2,183,125,243,219,143, 33,195,235,246,190, 99, 56,189,138, 94, 50,174, 94,209, - 64, 84, 37,154,162,112,183,138, 29,208,114,106,194,235,240, 58, 24, 11, 94,169, - 79, 1, 87, 1, 87, 1, 16, 38, 48,141,115,241,186,155, 1, 58,158, 29, 6,120, -165,181,178,128,134, 2,237,210,185, 76, 92, 36, 34, 20,112,180,204,131,140,199, -221,244, 90, 64,163,225,240, 73,198,217, 95,229, 43, 65,122,135, 51,161,161,104, - 24,108,226,146,217, 84, 58, 90,101,131, 97, 40,149,136,107, 89,182,247, 2,220, -133,146,155, 45, 96, 70,206, 86, 79,246, 74, 27,176,123, 18,250,246, 99, 82, 6, - 69,252,201,188,217,232,185, 8,226, 65,225,106,148,145,179, 30,174,169,237,212, - 13,233, 39, 61,181,253, 75,103, 40,234,106,217, 70,238, 50, 54,199,160,253,157, -241, 86, 10,126,125,174,241,150, 67,125, 35,215, 18,236, 43,195,239, 11, 58,156, -205, 69, 98,115,193, 40, 24, 36, 80, 24, 28, 93,170,210, 27, 43,131,244, 95,200, -113,209,222,248, 97,204,174,253,177, 61,123,238, 61,250,174,233,164,223,217,211, -249, 25,152,123,204,126,199, 55, 4, 63,202,189,155,241, 13, 8,131,245, 96, 15, - 23, 65,236,146,202,237,245,157,220, 93, 30,108, 39,115,141,121, 60,136,160, 96, -232, 56, 84,217,242,230,246,122, 48,122,115, 41,177, 83,151, 5,177, 30, 7, 42, -136,245,137,147, 78,217, 14,197,136, 51, 96, 31,121, 46,253,186,115,138,131, 97, - 50, 15, 24,171, 69,194,182, 70,144,195,183, 67, 78, 67,202,208,187,237, 83,206, -149, 61, 25,167,236,229,194,142, 86,240,143, 29,122,182, 80, 0,155, 56, 40,191, -132,111,148,224,199, 87,139, 92,218,105,153, 8,211, 50,203, 27, 26, 26,143,134, -134,119,242,175,173,237,129,226,189, 68,139, 24,128,156,146,164,123, 50,114,229, -172,235, 1,134, 34, 67,209, 22, 88, 68, 44, 41, 18, 21, 28, 44,183,144,118,175, -244,212,141, 84,122,150, 75,102, 93,214,101,160, 50, 80, 73, 72, 88, 27,158, 66, -128,128, 83,129,161,144, 92, 97,194, 84, 34,200, 9,252, 74,159,164, 27, 78,159, -145, 37,165,155,244, 9,150,137,203,230,146,169,112, 52,109,163,121,128,201, 88, - 98,204,182,143,151,252, 21, 10, 8, 29,141,114, 65,185,209,193,241,161, 90,162, - 52, 54, 53,214, 88, 99,157, 57,124,178, 12,113, 95,248,135, 2, 78, 31, 74, 34, -101, 15, 14, 91,150, 85,142,243,133,197,173,241, 90, 13, 3,221,192,128,205,225, -204,181,180,219,124,131, 22,175,157,148,171,244,130, 93, 57,203,221, 47, 99,220, -225,176, 32, 27,239,252,131,195, 33,159, 72, 83, 69,113,253,197, 57,234, 36,150, - 30,206,126,154,146,237, 34, 87,207,213,190,112, 74,150, 50,130, 31,125,252, 48, - 98, 5, 5, 56,188,187,179, 25, 98,189, 31, 85,250, 49, 87,203,178,111, 39, 67, -154, 81,249, 94,108,222,201,205,181,231,241, 71,178, 70, 25,114,125, 59,234,185, -252,221,182,167,115, 73,101, 83,209,169,144,104, 0,227,119,123,251,246,137,227, -148,255,127,163, 49,161, 49,101, 39, 64,224, 19, 6, 83, 33,113, 10, 20, 78,129, -101, 58,151, 76,146, 46, 64,139,139, 40,151, 60,193, 39,106, 91,155,173, 81,164, - 79,254, 9,164, 62,205, 73, 2, 26,148, 72,167, 98,121,165,222,187,136,139,102, - 66,147,209, 2,167, 40,233, 12, 54, 26, 7, 26, 69,131,193, 96, 16, 19, 92,215, -107,185, 46, 88,154, 3,201, 51,210, 83,153, 36,131, 72,168,198, 39, 11,192, 49, - 4,120,129, 71, 71, 16,115,192, 64, 22,247, 52,246,201, 32,149, 94,142, 67, 94, - 55,178,233, 1,147,166,132, 25,165,115, 48, 88,131,137,200, 41,201, 33,213, 39, -147,127,221,133, 54, 9,204,176,208,251, 59, 43,181,209, 50,199, 69,107,111,243, - 86,192, 98, 39,119,103,136,247,112,161,149,178,103, 80, 41,163,101,218, 77,214, - 39,230, 64,149,102,220,193, 89,194,140, 93, 57,131, 61,233, 83, 37,253,146,209, -140,212, 13, 59,227,212,118, 41,251,218, 59, 99,215,218,150,122,112, 88,189,203, - 36, 1,184,132,209,108, 38, 42,248,107,217,159, 25,116,130, 44,157, 84,118,138, - 55,236, 18,219, 73,234,249,164,125, 41,149,191,150,206,236,108, 41,104,103,172, -157,145,156,244, 49,111, 4,255,233, 19, 29, 14,101, 12,253,209, 35,138, 31,109, -246,215,176,112,144,126,180,176,169, 92, 48, 20,151, 14,166, 34,115,185, 20,225, - 27,141, 86,225, 96, 23, 74,133,161, 99, 41,105,157,225,121, 59,189, 29,243,252, -165,115, 70,206, 70,239,163,202, 33,182,146,134,249,141,130, 10,103,131, 81,112, -164, 70,133,201, 57, 20, 45,134, 61, 30, 16, 21, 64,145,235,118, 97,241, 45,155, -253, 12, 3,221,145, 57, 48,240, 20, 72,122, 71,227,112, 60, 28, 4,162, 84,104, - 17,153, 11, 71,195, 50, 22,108, 67,193,214,241,234, 17,229, 3, 12,212,169,112, - 36, 36, 52,147, 67,140,106,141,134,215,221, 28,221,254,226, 13, 67,209,147,101, - 89,150,125, 98, 75, 58,126,182, 10,140, 81,249, 59,189, 87,196, 19, 4,154,128, -113,107, 8,233,157, 77,133,195,193, 38,138,186, 2,202, 6,131,176,193, 38, 46, -153,150,185,108, 58,245,122, 44,171,199,214, 18, 41,227,187, 26, 57,219,221,214, - 82,118,174,212,227,237, 12,130,177, 31,182,152,129, 24, 40,157,101,123, 50,232, -125,183,112, 4,135, 24, 93,240, 3,163,164,191, 5, 46, 46, 30, 48, 6, 43,163, -173, 28,138,245,222,118, 53,102,128,184, 24,121,210,142,251,232, 35, 25,185,222, - 25,210, 73,169,141,163,237, 84,199,183,169, 4, 69,108, 39,142, 63, 30, 16, 25, -120, 81, 61, 28, 89,132,100,159, 13,204, 50, 14,209, 45,182, 60, 53, 35,119,127, -202, 1,129, 74,101, 35,193, 92,175,235,186,174,235,138, 68, 34,215,117, 69,174, - 43,114, 93,145, 72,196,138, 92,215, 21,177, 44,203,178, 44,235,186, 44,203,186, - 44,235,178,172,235,186,190,112, 89,150,117, 85, 19,135,163,186,197, 82, 77, 86, - 37,153,125,235, 49,218, 44,150, 10,213, 29,211,133,197, 45,213, 31, 50, 9,132, -235,235,224,123,100,208, 90, 57, 52, 29,149,117, 49,233,136, 8,140,173,140,222, - 41,208, 41,234, 3,202,192, 83, 34,236, 20,104,241,126,131, 30,192,105,161, 79, - 65,184,238, 8,142,139,178, 79, 7,201, 43,201,175, 12,227,231, 15,233, 30,206, - 82,145, 91,159, 87, 15,235, 35,169, 34, 85, 85, 77, 16, 54,154, 76, 37,163,117, - 42, 52, 90, 86, 45,210,103, 13, 47, 87,143, 18, 8,133,106,168,147,249,130,212, - 41, 52, 51, 50, 34, 73, 82,144, 52, 6,163,113, 8, 80, 72, 68, 50,145,147,134, -218, 34,235, 3,163, 49,226, 65, 80, 16, 24,194, 32, 12,129, 16,144,128, 65, 16, - 20, 65, 24, 4, 65, 17,129, 33,132, 24,129,145,134, 24, 3, 85,154, 7, 3,170, -162,222,231, 73,109,228,120, 48, 25,235,110, 59,190,122,219, 72, 85,250,129,243, - 33,124,230,130,173,216,240,166,155, 44, 38,153,103, 12, 94,138,134,184, 55,100, - 24, 21, 70,107,101,232, 47,223,138,134,140,160, 82,233,177,203,180,149, 14,205, - 72,145, 36, 2, 74,153,175,241, 86,170,124,161,104,122,185,232,137, 19,161,184, - 63, 19, 71,227, 54, 0,146, 87,160,201, 12,202, 96,227,252,218,185,166,105,254, -139,221,214,183,164, 44, 82,196,202,137,194,213,162,157,116,121,127, 90,144, 57, -245, 67,211,159, 55, 60,180,188,124,151, 6,110, 48,192,242,125, 80, 49,132,189, - 29,111, 8, 55,182,203,101, 3, 4,105, 71,101,224,173,234, 43, 90,217,109, 51, -198,196, 3, 52, 65,172,113, 79, 10,156,223, 95,129,254, 18,125, 72, 12,226, 82, - 47,199,171,118,203,152, 59, 85, 98,188, 79,230, 62,137,110,185,162, 77,167,226, - 56, 30, 52,106,156,149,255,145, 46,173,254,172,240,152,100, 81,156, 41, 29, 74, -230, 53,170, 36, 60, 36,178, 55, 0,136,200,211,182, 29,124,195,218,183, 96,170, -142,195, 59,180,166, 47, 85,210, 42,220, 2, 39,169,196, 81, 34, 28, 62, 7, 36, - 22,235,171, 59,169,241,152,214,153, 78,118,210,254,124, 76,215, 33,211,131, 52, - 95, 43, 46, 38, 64,122,237,111, 76,203, 58,194,129,248,152,161, 18,136, 22, 26, -106, 82,225, 71, 19, 27,113,218, 69, 2,234,213,114, 99,122, 56, 63,131, 12, 93, -100, 26,133, 44,240,144, 10, 65, 74,240, 24,137,191,210,116,111, 19,227, 25, 8, -216,146, 94, 38, 30, 46, 96, 72, 19, 79,103,169,210, 46,225, 26,235,233,103,107, - 54,179,109,145,197, 91, 43,133,175,230, 66,193, 84,212,218, 59,247, 37, 9,226, - 69,174,220, 67,127,182, 86,135,137,252, 58,112, 17, 50,242,164,200,231, 86,214, -205,119, 1,108,126, 75,175,171, 30, 17, 98, 91,237, 29,242,102, 65,141, 98,175, -204, 86,140,148, 49, 35,149,138,248,231,231, 70,252, 21,107,216, 38,221, 1,228, -126,246,132, 28,141, 17,185,163, 77,149, 21,146,123, 86, 84,161,152,220,137,156, -156,104, 2, 94,147,244,159,128,123,222, 61,129,162, 95,148,211, 15,209, 28, 65, -187,227,100,242,126,153,142,128, 60,168,216,190,211, 9,233, 78,131, 94, 43,220, - 78,164, 13,204,244,170, 64,148,252,223,108, 40, 73,206,205, 46, 35, 69,120,148, -229,217, 58,170, 73,226,146, 49,218, 39,242,213,159,197, 16, 81, 8,217,179,150, -139, 38,138, 44, 91, 77,160,133,140, 91,208,204,248,194,170,115,212,207, 78, 33, -159,191,182,112,235, 88,232,155,106,171,147,233, 23,176,170, 54,130,244,189, 4, -228,113,121,245, 3,255,239,231,209,167, 99,108,140,181, 39,188,189, 45, 12,214, -100,229, 31,130,192, 47, 85,145, 33, 9,224, 73,123,212, 30,113,252, 71,153,213, -227,100, 50,144,227, 79,178, 65,227, 11,178,219,226, 30, 72, 24, 28,126, 99, 89, - 94, 19,214, 32,158, 20,197,129,139,227, 22, 95,180,243,240,190, 58,110,142, 3, -197, 13, 13, 56, 55,102, 87, 50, 91,172, 96,164,193, 82, 25,101, 43, 67, 34,181, -248,235, 69, 19,252, 93,243,188, 11,112,140,221,224,159,177,239,213,247,155, 36, -176,191,118,114, 29, 14,230,134, 17, 4, 35,219, 48,221, 96, 94, 27,190,176,133, -103,195,171,211,109,216, 41,187, 97, 29,153,173,204,184,243,244,163,148,102,113, - 19,108, 20, 10, 8,250,254,241,226,195,118,105,105, 67,151,205,158,134,209,199, - 47,240, 40,126, 69,201,153,143,145,109, 86, 65,235,159,236, 82, 24,135,249, 45, -198,247,235,147, 80, 78,205,249,201,119,159,231,253,174, 94, 74,217,227, 98, 3, -112,245,166, 11,202, 46, 94, 53,213, 88,227,128,169, 82,183,189,203,204,166, 34, - 13,106,208,155,185, 15, 17,126, 40,190,130, 62, 18,151,146, 23,213, 87,148,115, -107,174,170, 56, 2,142, 69,235,176,134,121,158,220, 72,254,240,127,229,209,210, - 49, 21, 90,239,167,244, 1, 25, 34, 40, 9,251, 28, 33,150, 41, 78,137,148,162, - 28, 65,160,147,128, 11,215,231, 59,133, 53, 36,153, 35,171, 96,212,211,222,186, -242,179,251, 7,178, 71, 62,234,113,239,123,237, 16, 95,249, 76,123, 17,154,138, - 69, 20,181,156,153,226, 37, 46, 6,107,177,122, 88,163, 35,238,119, 82,252,192, -119,169,134, 39, 95,176, 35, 41,245,207,106,136,148,136,137, 8, 98,213,144, 83, -102,183, 0,138, 99, 76,236, 87,146,160,152,245,194, 49,116,218,154,134, 45, 65, - 92, 4,224, 72,250, 66,120,165, 0, 68, 90,123, 67,110, 21, 96,212,144,182,186, -206, 13, 36,156, 69,205, 94,236,250,149,151,197,219, 53,115,173, 20, 57, 20, 42, -117,149, 72, 37,156,122,184,168, 10, 76, 39, 96,148,234,151,183, 70,229,250, 17, - 25, 22, 38, 79,196,240,245,102,151,239,211, 27,133,113, 38,176, 38,197, 54, 73, -161, 56,208,130,202,232,226,196,151,100, 93,160, 66, 97, 19, 29, 88,155, 33, 76, - 90,226, 70,162,128, 9,203, 51, 15,254,160,206,240,157,163,141,135, 54,246,243, -117, 52, 96,230, 7,150,219,228, 91, 63,122,184, 48,143, 45,119,127, 58,149, 77, -200,200, 11, 64, 12, 62,162,238,214,152, 99, 9,189,228,231,127,180,248, 1, 99, -147, 35, 27,103,251,248,218, 5,174,242, 14, 20,219,173,122, 0,245,192,171,254, -126,226,188,181,165, 20, 95, 30,150,154, 65, 84, 23,106, 12,211,135,125,190,143, - 18, 7, 97,201, 13,126, 54,206,199, 27,128,116,253,197,235,112, 93, 74,139, 77, - 8, 73,218,150,129, 58,235, 72, 7,107, 4,160, 6, 38,110, 32,190,126,176,241, - 1, 67,216, 5,203,223, 34, 73, 82, 54, 39,132,107, 86, 36,208, 17,235, 77, 34, -235,231,178,247, 19, 27, 48, 28, 34,129,128,160, 96,149, 83,237,237, 95,181,172, -147,168,215,143,105, 32,217,213, 2,174,154, 82,169,249,253, 15, 37,197, 38,221, - 31,235, 15, 36,135,189, 20, 33,240, 55,131,252,213, 53, 42,105, 96, 18,240,113, -127,209,151,158,170,168, 50,143, 20,218,142,212, 75, 25, 58,160,177,252,148,130, - 13, 65, 99, 35, 0,174,202, 12, 35,192,110,204,193, 51,134,224, 61,121,212, 5, - 56, 45,163, 71, 12, 20,132, 6, 77, 74, 72,105, 64, 51,134,115,171,117,224,216, - 27, 63,188, 67, 48, 83,112,131,240,107,214,253,248, 28,238,191,227, 48,102, 94, - 61,199, 17,207,182,250,145,190,101, 10,163,144,169, 35, 8, 81,129,228,194, 61, - 98, 61,135,201,151,124, 50,126,195, 57,249, 71,150,115,156, 66, 42,187,154,242, -187,220,122,230, 74,148,237, 38, 36, 85,234, 12, 10,210,170, 84,250, 70, 95, 26, -230,185, 84, 62, 44,193,249, 93,142, 81,152,170,162, 90, 42, 76,182,148, 20, 64, - 48,214,214,163, 20,103, 63, 62, 2, 93, 8,132, 41,103, 61,102, 91,143,222,119, - 15,122,126,155,228, 38,219, 38,163, 75, 12,213, 17,180,206,167,138,127, 23,128, -142,184,205,162,223,198, 38, 77, 64,255,199,182, 90,239,196,146,207,122,238, 36, -149,184, 33, 2,237,242,181,208,160, 63,207,174,127,244, 65,176,227,207,213,163, - 33,212, 73,194, 63, 53,194,125,102,253,144,233,133,241,192, 23, 86,188,120, 29, -151,183, 42,234, 9,177, 60, 43,197, 59,233, 62, 3,120,134,160,109, 45,134, 78, -218, 70,102, 42,217,161,174,250, 77, 45,162, 86,252,168, 11, 57,148, 79,200,246, - 45,113,232,240,120,194, 23,106,190, 34,181,150, 79,197, 88,161,220,210,198,182, -221,109, 96, 80, 50, 6,149,212, 95,255, 55,116, 15,134,181, 63,183,139,183,162, - 26,104, 20,113, 55,200,177, 71, 57, 66,210,150,204,254,192,211,220, 70, 71,221, -186,157,133,151, 74, 17, 81,102,124,117, 44,124, 47, 73,172, 71,209,223,221, 98, -202,205,125,232, 96,114, 50, 42, 10,233,139,114,115,105,154, 25, 45,127,177,212, - 42,101, 79,112,255,245, 60, 54,188,187,229,142,201, 50,183,244,110,253,184,252, - 76, 51,104,253,153, 62, 30,204,182,125,119,253, 19,233,115,149,121,231,118,213, -108,109,240, 42,218,170, 22, 20,227, 21,176, 17, 26,123, 75, 7,183, 58,208,145, - 52,101, 78,182, 87,178,156, 76,144,122, 82,156,237,110, 50, 61, 71, 17,154,183, - 57, 34,174, 77, 74,103, 19,100,133, 33,135,132,158,223,237,193,251, 45,160,144, - 97, 23, 70,146, 23,197, 72,144, 62,165,204,238, 39,243,232,145, 91,168, 97, 82, -180,191,162, 65, 64,129, 93, 15,247, 97,185,234, 16,215, 42, 77,214, 66, 94, 43, -155,153,125,190, 39, 52, 99,180,176,220,151,216,226,181,144,193,193,225,114,232, -108,196,105,220,189, 58,209,194,102,201, 87, 12,156,163,181, 48, 73,122, 98,102, - 26,117, 5, 83,204, 96, 44, 35,139, 54,109, 88, 56,193,141, 24, 7,252,119, 28, -108,169,240, 63, 29,174,148, 11,220, 99, 97,217,183, 27,169,244,202, 18, 38,179, - 45, 91, 66,121, 46,187,133,107,107,190,118,176, 97,180,153,233, 80,242,132,191, -169,130,154,134, 56,237,209, 35, 78, 29,108, 18,244, 55, 36,191,150, 60,187,165, -105,118,130,108,202,166,135, 6,132,255,205, 75,142, 22,136,244, 75,123, 64, 31, -154,117, 10, 26,222,229,123,100,172, 63,109,146, 40,137, 89, 16,142,223, 63, 56, - 25,202, 97,112, 73,135, 78,149, 76,159, 39, 68, 75,117, 72, 95,204,113, 45,224, -220, 32, 46,169, 89,135,191, 41,180,252,154,175,104,214,178,157,164,255, 47, 19, -108, 47, 17,168, 98, 7, 91,170, 31,248,219, 79,105, 92,234, 5, 78, 6, 34, 54, - 78,142,234, 32,227,180,132, 3,242,247, 2, 65, 46,101,117, 92,218, 67,104, 85, -243,128, 91,171,120,239,233, 99,250, 41,191,232, 24,153, 47, 41, 64,110,131, 63, -206, 57,138,247,213,142,213,170,140,156,122,156,158,169,254, 3, 63,229,245,122, - 50,123,110, 68,160, 37, 35,134, 67,104,121,109,127,187,109,223,214, 64, 92, 49, -216,133,137,162, 85,180,175, 27,111,196,210,220,225,119,119,218,216,191, 84, 31, -169, 41, 96,136,248,212, 81,132, 90,170,226,158, 16, 35,112, 46, 83, 42,121, 44, -160,119,167, 88,166,127,246, 63,166,171, 92, 53, 52,244,192, 94,230,241, 49,167, - 30,232,194, 94,212,117,129, 60,187,131,173,253,222,250,187, 31,154, 47,112,151, -172, 88,237,228, 84, 73, 0,165,143, 83,198, 58,248, 67, 84,231, 0,167, 67,228, -128,235,130, 60, 25,182,186,147,173,118, 99,173, 57,156,172,200,144, 48, 64, 39, -180,234,113,193,137,166, 34,196,138,196, 33,240, 56,251,131,196,112, 21,192,102, -177,129,120,139,106,147,246,184,186,119,191,112, 46,110, 42,222,164, 11, 87, 32, -237, 61,154, 61,126,238,163, 20,149, 42,164, 98, 6,217,213,252, 59,120,161,239, -221,174,238,139,177, 13,159, 7,219,222, 65,164,192,233,214,203,215,181, 46,198, -182, 50, 27,169,105, 29, 78,182, 26,231,116, 73,196,126,234,178, 8,103, 53,254, -102, 56, 97, 3,173, 72,137, 4, 23,209,208, 31,174, 64,138,255,241,226,144,239, -205,214,110, 63,226,166, 43,123, 91, 18,193,157,120,152, 79,205,204, 9,163, 29, - 49,147,173,201,216, 48,208,164, 1,187,124,201, 97,145,190, 37,112, 89,166,192, -129, 81, 39,118, 42, 77,169,239, 99,158,206, 53, 61,197,100,230,130,221,225,179, - 55, 5,147,180,245,182,231,169,145,220, 83,140,182,154,118,161,133,149, 86,148, -187,140,188,150,138, 17,231,152,170,237, 44,224,250,161, 11,186,233, 70,140, 73, -182,203,178, 89, 98,166,230,104, 12,214, 90, 28, 62,160, 13,240,160,155, 66, 75, -249,214, 68, 24, 17,207, 11,174,176,189, 90, 17, 44, 3, 83,180,134, 35,213,131, -215,225, 98,110,139, 1, 31,150, 53, 29,209,250,178, 79, 37, 43,208, 76,196,182, -133, 24,236, 64,165, 86, 40, 81,132, 47, 69,180,125,107,193,241, 30, 60, 9,248, - 77,142,227,142,172,196,157,116, 39,216,120,122, 0, 2,182, 12,133,209, 51, 13, -251,183, 18,220,204,185,219,111,208,181, 75, 12,187,231,108,123,245, 18,102,127, - 25,243,128, 79,164,153, 39, 79, 98, 8,240,173,190,117,106, 91,220, 58, 54, 1, - 51, 74, 65,168, 50, 32,163, 64,231,123,209,238,249, 78,205, 40, 27, 27,117, 29, - 18, 86, 72, 77,165,158, 10,172,110,148,171, 82, 74, 38,124, 16, 36,150,204,182, -145, 95, 23,145,147, 73,136, 30, 29, 8,161,126,192, 61,112, 69, 90,207, 90, 23, -152,170,140,247,126,128,139,170, 86,196, 15,144,222, 2, 10, 74, 65, 37, 8, 20, - 59,156,244,228,238, 27,206,194,133,123,158, 76, 19, 87, 64,178,114,115,216, 45, -248, 16, 14,148,119, 46, 35, 85, 39,148, 80,108,235,217, 44,190, 59,123, 90,179, - 7,108, 99, 91, 7, 41,242, 73,209,114,149,238,149,177,142, 40, 52,242, 59,168, -112,126, 80, 11,162,177, 46,252, 25,120, 1,152,230, 98, 29,228, 54,251,170, 6, - 35,117,169,180,191,134,240, 52, 85,236, 11, 68,148,241, 97, 83, 62,185,204, 7, - 36,194,199,197, 15,195,116,113,120,170, 40,114, 93,237,209,186, 62, 40, 44,215, -182,223, 71, 46,195, 32,149, 51, 87, 69,192,184, 9, 29, 69,192,173, 64,195,203, - 28,221, 0,242,188,114, 69, 55,120,140,231, 78,195,151, 14, 45,113,208,215, 43, -218,195,202,123, 0,215, 45,111, 39, 64, 94, 14,173, 50,239,132, 17,176, 66,250, -243,122, 30,177,226, 57,235, 25,228,223,252,149,249, 69,196, 21,182,192,151,197, -122,209,122,133,220,176, 37,138,136,189,188,171,145,120, 30, 28, 11, 97,140, 85, - 27, 18, 11,125,246, 32,225, 35,187,240, 10, 57,168,107, 27,166,167,172,167, 9, -167,228,139,108, 4,103,161, 4,222,129,133, 83,225,166,253,221,245, 18, 42, 98, - 27,212, 74,246, 61,253, 69, 61,115,183, 38,236,115,116,159,137, 84, 40,130,114, -253, 94, 51,207,132,255, 43,200,167,103, 36, 71, 17, 49,155, 34, 74, 28,107,181, -200, 60,222,123,213,145, 68, 85, 42,120,229,108,193, 53, 8,118,227, 45, 81,246, -106, 15, 72, 15,183,177,215, 70,203, 73,113, 49, 79, 28,250,136,135, 97,124, 46, - 63, 42, 14,226,242,153,244,217,206,168,166, 84,202, 30, 37,189, 92,162, 29, 1, -161, 11,219,195,167, 56,220, 97, 53,215,150,199,196, 69,141, 65,219, 73, 88, 38, - 2, 9,217,108,180,245,184, 60,224, 78,125, 97, 38, 4,145,122,111,214,105,233, - 77,169, 80, 51,152,140,165,141,113,117,226, 63,102,237,212,191,116,199,118, 40, -133,203,155, 98,228,179, 13, 6, 30, 14, 4,226, 1, 32, 60,152, 48,204, 40,127, -142,156,168, 23, 74,132,100, 81,151,205, 91, 35,221, 64, 2, 48, 0,211,132, 20, -100, 43,197, 83, 27, 61, 98,156,205, 75, 34, 65,226, 31,206, 0,185,111,136,249, - 53,245, 68,254, 16,210,254,234, 6, 13,157,199, 24, 24, 46,223,117,249,244,173, -240,197, 97, 44, 31,122,181,169,190, 36, 20,149,232,138, 34,231, 65,222,155, 31, - 68, 77,166,116, 11, 99,137,251, 76, 47,161, 74,104,125,148, 76,248, 60,226,210, -229,235,165,195,201,244,140,211,164,201, 93, 48, 19,108, 38, 2,200,142,137,137, -254,179,122, 90,241, 82, 30, -} ; - -// ../Source/Template/GB_AxB_dot_cij.c: -uint8_t GB_JITpackage_9 [2904] = { - 40,181, 47,253, 96,149, 87,117, 90, 0,186, 86, 40, 16, 41,192,146,117, 14,106, -166,126,159, 61,135,219,228, 88, 54,247,173, 34,237,169,111,132, 51,228, 6, 14, -151,236, 98,102,232,194, 69,151, 1,211, 36, 8,162, 73, 14, 2,243, 0,242, 0, - 5, 1,111, 18,205,147,163,160, 72, 51, 56,134,199,243,162, 52, 61,192,105,129, -224,232, 93,218,242,249,245,250, 43, 86,129, 0,117,145,231,168, 20,211,174,186, -174,212,235, 78, 32,163,193, 64, 33,236, 35, 69,153,150,129, 62,154,188, 71, 43, - 9,183,197,210,168,239,188, 71,156, 97,166, 27,230,181, 71, 30, 71,168,244, 0, - 93,157, 17,158, 7,204, 43, 9,129,249, 5, 55,158,220,187,239, 40,207, 95,235, -189,107, 60, 98,250,206, 19, 20,195,206,199,116,148,253,149,204,141,157,189,226, -143, 63, 41,233,199, 24,201, 65, 5,129,210, 35,110,138,242,151,219,212,163,185, -118,119, 81, 26,215,230,104,135,130,145, 9, 85,186, 38,221,198, 45, 58,206, 35, - 14, 42, 58, 8,202, 87, 9, 8, 7, 8, 20, 6,203, 1,194, 41,110,122,133, 41, -105,102, 94,145, 47,141,178, 13,105,246, 10,147, 29,107, 36,206,203,185, 52,190, - 83,196, 58,211, 17,147, 80, 29, 86, 1, 1, 69,171,203, 36, 15,113,170,163,162, - 19,230,157, 71, 49,180,220, 47, 29,148,211,178,237, 52,235, 67,106, 22,231, 6, - 6, 18,138,129, 65,147, 4, 67,147,249, 92,154, 28, 61,218,213,128, 58, 6,220, -219, 2, 18, 9,237,202,174,207,181,201, 72, 96,154, 7,195, 83, 61, 42,192, 85, - 56,106,144,189, 27, 79,183,167,192, 9, 50, 61,195, 62, 32,140,214,145,159,203, - 35,210,100,154, 70, 36, 59, 24, 77,166, 65,234, 17,116, 55,130, 92,165, 2,221, - 40, 90,177, 47,189,214,160, 4, 86, 91, 65,104, 72, 51,206,248, 25,143,225, 40, -219,141, 66,152,222,217,112,187, 52,108,252, 14, 8,100,105, 90,198,125,237, 12, - 79,249, 40,120,156,185, 41, 2, 97,220,195,130,158,189,173,225,136,241,124, 69, - 77, 32,181,190, 68,113,133, 85,116, 66,161,189,222, 45,159,111, 16,164, 30,175, -121,138,165, 82,247,198, 86, 20, 71,252,234, 54,169, 61,172, 4, 56,111,215,230, -168,186, 58,246,102, 71,165, 44,134, 77,169,182, 86, 75, 51,215,185, 82,122, 11, - 68,198, 71,118,212, 86,235,125,255,190, 73, 30, 55,189,158,253,165, 83, 28,113, -121,134, 47,213,170,171,125, 30,237,113, 6, 39,229,186, 67,139,143,187,163, 36, -209, 37, 67,191, 54, 79, 27,210,147, 73, 38, 46,140,166,177,144,152,134,101,200, -139,142,252, 50, 25,105,125,223,228,251, 38, 20,214,198,163,255,102,223,201,228, -193,225,150,111,202, 92,160, 15,200,163, 97, 42,180,140,231,194, 52,233,225, 72, - 81,168,224,213, 1,229,166,103,157, 10,143,101,189,234,248,182,233,150,197, 84, -147,226,171, 15,249, 42,211,112,232, 55,167, 75,170,195,122,193,193, 36, 27, 79, -110,161, 76, 16, 67,122, 50, 13,182,217,128, 50,190,212,235,111,230, 95, 38, 50, - 76,116,109, 52,133,133,106,154, 48, 58, 33, 15, 70,155,224,124, 52,136,217, 52, -184,141,182,202,147,115, 89, 8, 9, 8, 9, 11,150, 5,203,102,131,241,248,170, -161,161, 99,249, 56,248,192, 79,141,211,148,105,152,137,170,179, 65,107,183,169, - 3,246,136,197,199,220,193,118,183,185, 62,132,243,185, 68,151, 71,131,113, 66, - 6, 6,222,233, 84,108,232,148, 18,164,118,108,212, 69,154, 80,134,132,136,200, - 53,152, 72,134, 48, 13,187, 52,107, 58,117,240,136, 79,207, 68, 26, 12,147, 14, -207,119,102,172, 65,220,210, 20, 22,254, 75, 66, 64,252,249, 11,213, 24,164,106, -131,164,130,137, 20,167, 83, 95, 18,201, 72, 41,211,112,230,209,110,243, 77,154, - 35,203,178, 44,171, 99,210, 11,157,205,113, 59,252,232,122,231,247,125, 27, 61, -196,100, 66, 68, 80, 85,117, 9,140, 72,102,136, 44,205,115,137, 50,202,136,131, -222, 73,246, 26, 20, 45,148,141, 94, 38, 61,135,105,183,209,110, 81,220, 62,169, - 37, 74,113,122,131,116,228, 97,243,187, 82,193, 27,176, 12,187, 48, 52,154,197, - 1,192, 77, 39,204, 29,196, 9,218,103, 2,109,163, 21,124,109,230,154,116,207, - 30,156,248, 54,105,226,238, 78,143,143,155,219,231, 71,153,122,188,171,237,222, -219, 59,112,180,220, 75,125,123,244, 18, 56,251,230,103, 91, 95,193,165,106, 45, - 62,158,207,165,237, 85,215,153, 90, 80,252,104,220, 88,254,151, 82,126,147, 95, -138, 84, 82,147,248,138, 66,137,184,148, 84, 30, 98,227, 15, 23,197,239,167,190, -107, 39,207,254,163, 59, 15,123, 29, 54, 44,148,174,182, 54,249, 6,181, 40,171, - 64, 30,226,152,201,128,250,166, 83, 40, 17, 35, 95,143, 55,227,140,233, 71,107, - 27, 26,223,172,131, 74, 31, 10,131, 34,168, 66,156,208, 49,101,136, 68, 36, 73, - 82, 41, 52, 6,226, 32, 4,130, 64, 32, 75,114,141,221, 6, 66,137, 32, 8, 52, - 16,131, 17, 48, 66, 8, 49,132, 16, 67, 8, 33,136, 8,132,136,136,200,136,140, -200, 12, 59, 18,161,164,188,225,157,159,153, 54,218,159,114, 93, 57,215, 92,224, - 52,160, 62,241,195,164, 86,133,245, 10,173, 59,121,212,195,190, 76,176,168,203, -104, 90,173, 21,166,110, 12,182,207,128,198, 20,243, 61,110, 90, 77, 3, 76, 82, - 3,169,243,134, 1,107,167, 26,239, 21,130,183, 32, 35, 46, 96,175,237, 80,196, -225, 18,187, 64, 44, 1,147, 42, 76,228, 31,207,249,130, 75, 75, 45, 61, 24,183, -224,242,114,246,195,183, 25,239, 64,148,203,109, 53,251,162, 16, 39, 31,203, 67, -201,179,212,109,234,229, 22,220,217,171, 4,250, 17, 67, 11, 53,125, 74,156,240, -220,206,108,165,155, 92, 96, 76, 53,124, 25,166, 30,136,226, 13, 41,147,105,114, - 2, 12,217,229, 22,143, 33,172, 71, 74, 15,227, 1,235,181, 25,170,198,106, 8, - 41,110, 39,223,149, 90, 3,201, 12,111,248, 21, 44,249, 81,187, 62, 45, 27, 15, -152,188, 55,154,231,140,222, 37, 16,182, 34, 75, 40, 95,138,198, 27, 27,122,246, -211,194,254,168,102,187,212, 22,215,214,116, 5,106,237,189,247, 87, 1, 75,162, -153,182,249, 29,234,196, 93, 49, 51,207, 30,214,184,164,122, 34,156, 95, 11, 74, - 71,102, 61, 22,109,237, 43, 86, 69,155,181,147, 38,245, 95,195, 92,212,216,136, - 64,126,213,235,238, 82,213,167,227,175, 98, 15,227, 36, 74,140, 0,232,242, 28, -165,128, 10, 85, 14,235,201,177, 24, 65, 52,138,146,117,181,146,111,248, 43,126, -236,110, 66, 52,213,148,120,241, 5,225,249, 33,145, 7, 33, 76,194, 65,143, 10, -197,184,219, 67,123,208,167,162, 26,225,165, 64, 97, 14, 22,207, 65, 26,241, 23, -162, 0,163, 29,231,116,194,227, 47, 42, 61, 56, 67, 80,213,225, 42, 18,251,161, -197,204,102, 19,131, 45, 79,248, 84,241,101, 71,229,102, 2,122,192,166,234,237, - 42,149, 17,117,119, 43, 34, 54,180, 29, 91,187,148,186, 58, 43, 0,126, 16,234, - 58,140, 3,137, 89,120,202,210, 24, 53,246, 22, 57,239,189,185,208, 89,187, 88, - 59, 43,221,253,118, 97, 44,188,207, 55,216,255, 97,235,186,188,185,223, 22,118, -254,136, 74, 29,139,124, 23, 58,212,111,119,123,254, 80,199, 38,199,165,185,185, - 24, 8, 54,225,204, 73,158, 91,213, 72,174,185,221, 51,245, 90, 83,199,239, 12, -164,131,217,157,212,178,165,115,212,232,237,156, 57,118, 56, 99,206, 28,142,151, - 83,195,185,242,147,177, 29,103,162,200,117,237,113,225,177, 49,252,187,127,181, -162,225,245, 79,167,184,160, 27, 52,248,182,149,230,207, 62,179,194, 31,177, 10, -109,184,129,174, 10,195,134, 5,106,217, 46,116, 69,237, 84, 42,154, 26,217,152, -118,108,172, 64,223, 75,140,239,187,209,167,146, 30,190,198, 39,205,212,225, 94, - 61,103, 30,253, 16, 35, 1,143,239, 66, 27,126,186, 9, 18, 1, 7,119, 77, 85, - 5, 82, 48,251,253,101,151, 19,158,153,224, 84,125, 88,104,115,201, 73, 82, 58, - 70,117, 48,109,217, 3,254, 14, 13, 72, 7, 41,189,101,225, 69, 67,153,120,119, -182,155, 30,134,112,233,121, 62, 46,117, 48,160,112, 26, 13,133,186,103, 88, 46, -186, 0,132, 3,207,169,130, 82, 77,111,225,222, 36, 52, 78, 22, 60,135,227, 14, -111,132, 16, 65, 78,163,104,112, 29, 57,161,143,153, 48, 92,177,132, 7,182,178, - 31, 17, 98,245,168,106, 90,150, 78,115,185,208,133, 63, 30,160, 61,158, 85,252, -223,131,110,179,236,177,183,184, 64, 61,209,175, 67, 8,149,200,123, 0,197, 18, -227, 49,130, 62, 32,123,213,136, 50, 59, 64,113,145,223,106,216,217,227, 64, 10, -204,224,166,148, 45, 31, 35,166,135,115,182,220,233,140, 53,115, 59, 95,206, 26, -142,149, 7,145,224, 57,127,244, 47,233,165,107,249, 23,114,231,171,120, 64, 19, - 43, 72,115, 7, 30,116,193, 66,135, 34,209,250,141,141, 2,137, 32,218, 6, 23, -132,158,148,160,179, 14,232,235,160, 45, 71, 74, 97, 39,209,160, 2, 92,208,118, -159, 58,213, 91, 86, 5, 61,127,241,127,105,139, 59, 51, 88,180, 69,192,170,245, -113,185, 94,227,120,252,160,224, 20, 9,113,117,229,236,230, 5, 9,175, 39, 5, -186,189,239, 26, 93, 12,113, 93, 44, 18,126, 11, 49,177,168,106,149,230, 33, 70, -234, 8, 22,244, 83,229,127,117,152, 63,110, 61, 91,142,220, 84,158,140, 41,113, -185,146,181, 43,144,223, 48,108,143, 58,126,165,133,207,107, 23, 50, 87,171, 14, - 33,151, 5,152, 29, 24,159,238,245,156, 83, 86, 56,160,152,230, 66, 1, 33,179, -190, 11,194,165,156,127,171,125,216,160,148, 15,205,178,226, 73, 79,243, 66, 47, -177,204,240, 16,161,232,190, 67,200, 37,251,179,193,193,224,216,104, 15, 73,137, -195,180,135,212,132, 9, 46,135, 49,207,224,116,192, 83,119, 24,152,149,253, 45, -166,145, 68,225,126,104, 50, 92, 71,133,144,201,217, 70,217, 13,207,106, 12,215, -145,148, 97,168, 21,107,144,219, 99,151,106,158,171, 15, 90,213, 36,213, 79, 32, - 17,213,117, 14,179, 86,241, 39, 75,172,133, 5,203,254,115, 72, 65,131,165,230, - 0,241,193,226,162, 42,240, 19,234,251,248,119,233,186,214, 18, 65, 90, 86,134, - 17, 35, 11, 17,228, 23, 34,178, 9,220, 51,184, 98,252,139, 46, 59, 52,113, 60, - 75,116, 19,177, 73, 26,243,192,150,103,213,251,243, 11,117,185, 2,182, 10,140, - 53,177,161, 74,106, 5,172, 43, 46, 17, 90, 87,205, 15,191,178,179,102, 43,179, -198,180, 70,189,138, 29, 37,192,211,252, 7, 12, 50,203,204,112,232, 20, 32,212, -254, 4,253, 31,142, 35,100,153,154, 29, 33,157, 11, 57,195,113, 34,223,155, 84, -168,237, 42, 86,115,116, 26,108, 54,243, 20,197, 72, 58, 43,138,203,142,226,209, -234, 44,197, 40, 0,175,194, 45,103, 69, 59, 57,171,255,195, 89,227,209, 93,101, - 22,170,236,152, 61, 7,108,254,170,219,186,105, 14, 44, 27, 46,149, 51, 2,121, - 21, 29,240,245, 31,194, 60,120, 41,213,233,161,221, 25,235,199, 30,220,153,103, -215,254,175,106,239,235,241,214,188, 42,100,150, 54,164, 97, 22,229, 98,137, 89, - 24,128,243, 2,225, 58, 98, 7,162,158,201, 53,249,214, 61, 85, 56,201,214,229, - 14,184,198,193, 20, 85,145,200, 6,245,153,195,171,149, 52,157,143,127,106,177, -111,173,103, 43, 63, 1,234,122, 44, 35, 26,178, 54, 33,192,157,129, 3, 11, 12, - 80, 70, 54, 82,231, 74,227,236,197,242,166, 4, 65,150,188,168, 5,148,121, 5, - 68, 11,250, 52, 70, 84, 7,129,120,236,121, 58,134,129,236,139,125,114,133,253, - 72, 1,194, 73,105,222,212,223,202,169,156, 68, 56, 84, 13,117,132,149,121,152, -235, 60, 77,246, 94,194,159,128,153, 77,109, 95,172, 64, 76, 73,217,210,136,140, -109, 43,189, 1,201, 2,200, 83,196,122,151,222, 40, 95,149,215,199,207, 2,231, -145, 60, 11,118, 25,199, 65, 14,200, 65, 79,239,182,151,198, 31, 77, 79,115,122, - 82,233,199,249, 21, 36,207,234,137, 71, 30, 65, 67,118,136, 13,234,135, 61,126, -232, 31,146,204,106,127,235, 51, 80, 18,104, 67,212,146,225,136,195, 85, 88, 93, -124, 22, 44, 78,134,130,158,166, 97,179,255,142,242,245, 89,226,237,216,136,233, -111,128,189, 17, 65,158, 2,126, 50,165, 84,110,241, 75,142, 68, 40,130,251, 1, -204,235, 49,231, 35,105,165,240, 19, 68, 9, 30, 63,142, 71, 1,214, 48,135, 32, - 92,232,152, 21, 75, 91,232,130,196,197, 33,103,219, 59,239,100,129,127,114, 70, -241,155,152,171,182,105, 19,124,193,164,132,218, 92, 38,230,103, 83,123, 71,100, - 92, 40,224, 74, 7, 96, 8,183,120,187,205, 76, 99,125,207,216,134, 66,164, 9, -129, 82,181,119, 91,219, 93, 23,138,243, 34, 95, 35,100, 72, 27, 13,156, 70, 41, -114, 46,251,121,237,188,173,105,108,157, 28,130, 38, 4, 29, 44,147, 90, 53,216, -198, 48, 60,198, 81,148, 74,238,245,180,122, 58, 4, 60,117, 33, 96, 56,146, 8, - 17,196, 1,148,191,106,244,136,229,119,176,146, 96, 69,178,184, 9,235, 39, 76, -213, 8,197, 64, 93,200,143,202,162,240,121, 51,158,111, 57,242, 40,210, 44,185, -236, 35, 96,194,139,242, 20, 99,133,163, 93,115,150,112,226,193, 72,119, 36, 68, - 37, 24,114, 65,136,107,184,105, 86, 14,204, 4, 68,128, 47, 63,136,204,253,166, - 86, 14, 25, 20, -} ; - -// ../Source/Template/GB_AxB_dot_cij.h: -uint8_t GB_JITpackage_10 [1313] = { - 40,181, 47,253, 96,250, 22,189, 40, 0,214,182,163, 40,208,210, 56, 7,168, 73, -177,111,246, 72, 71, 89, 58,113,163,105,119,215,150,230,149,180, 27,232,249, 35, - 65, 52, 25,240,252,162,231, 47,240,197, 3, 89,106, 94,152, 0,149, 0,153, 0, -114,179, 63,119,247,150,171,244, 54,230,174,252,228,128,155,242, 55, 86, 40,124, -165,247,141, 88, 59, 8,232, 32,222,164,231,216,146,110,251, 28,237, 46,143,190, -113,167, 77, 5,147,138,132,187, 77,126,240,150,202, 29,234, 59,153,203, 36,108, - 39,111,189,145, 84, 96, 34, 38, 28,123, 84,182,236,185,189,221, 70,123,238,121, -240,214, 65,165,160, 34, 81, 48, 40,168,188,218,168, 91,182, 61, 36,230, 19,120, -144,238,210, 81,107,183, 62,112,115,117,159,172, 26, 11,219, 42,191, 15,223, 38, -125,166,109,160,210,208,237,164,125,123,118,136,185, 91,186, 9, 71,111,241, 82, - 46, 94, 37, 24, 47,205, 41,148, 73, 66,161, 4, 25,132, 39,163,197,140, 7,110, -176,204,181,164,209,217,235,208, 5,152, 35,121,219,236,128,201,237,115,229,238, -131,126,118,202,122,227,165, 51,194,119,183, 63,110, 85,102,255, 26,128, 23,236, -126,188,149,248,150, 45,105,126, 45, 29,217, 59,155,126,135,159,232, 37,230,102, -211,123, 79,146, 58,248,221,165,160,115,189, 46, 13,248, 97,188,161, 39,103,143, - 42,223,135,250, 34,201, 21,244,105, 85, 28,215, 7, 94, 85, 34,171, 41,248, 74, - 95,181, 37,162, 32,245, 11,129, 69,235, 96,166,201,198,236,218, 35,182,223,192, -140, 39,122, 50, 24, 17, 63, 18,155, 8, 90, 57,228,244,254,246, 45,135,180, 39, -173,150,239,173, 83,205, 82,149,152,110,191,116, 82,103, 15, 68,162,156,117, 37, -245, 66,183,108,229, 13,190, 19, 36, 65, 72,160,232,108, 24, 60,153,137, 78,135, -163,201,226, 5,243,103,194,217,254,237, 79, 6,189,224,151, 43,187,218,238,174, - 39,185,198,218,242,139,150,228,125,255,255,105,210,112, 50, 79, 6,145,249,196, -248,201, 66, 29, 48, 77, 31,237,147, 85,100,152, 84,239, 3,166, 7, 44,211,128, - 69,135, 12,251, 36, 5, 76,111, 10,219,184,219, 40,151,173,237, 18,199, 13,233, -133, 62, 37,123,180,187,219,100,235,202,147, 55, 34,179,165, 14, 34, 63,126,233, -148, 63, 87, 90,133, 80,215, 62,156, 14, 22, 55,144, 19, 15, 23, 67,118,219,199, - 96,224, 9,168,135,218,178,181,158,244,152, 91, 20, 89,121, 13, 64,216,229, 26, -216,135,113, 12,195, 52,137,136, 62,193,111,149,215,198,203,177,239, 55, 34, 36, -220,217,159, 28,221, 6, 85,110,137,180,141, 4,196,172,124,175,252, 56, 78, 86, - 2,144,186,174, 91, 28, 34, 16,245,139,242,203, 63, 64,161,182, 35,252,110,149, -224, 45, 45,163,169, 90, 36,169,195,202, 31, 72,103,177, 91,170, 31, 80,231,184, -187,183,184,166,147,142,142,201, 58,156, 14, 68,180,224,192,105, 10, 53, 55, 71, - 22,126, 17,201,240, 60, 57,178,188,112, 2,130,234,250, 44,248, 89, 79,134, 38, -183,205, 60, 43, 0,234, 55,129, 11,168,177, 37, 98, 72,102, 68, 68,146, 36, 41, - 12,107, 97, 12, 66, 12,163, 80, 75,245,226,136, 76,135,115, 24,134,140,128, 16, - 35,104, 2, 39, 16,137,145, 96, 2,145, 64, 38,146,201,134, 49, 85,170,178, 68, -225,153,248,155, 3,168, 7,245,149, 85,248,162,252,211,225, 44, 80, 28,200,157, -120,242,165, 78, 17,205,244,196,202,255,118,229,184, 57, 40,168,251, 59,158, 90, -127, 86, 22,102, 25,174,250,194, 73,250,138, 64,240,181,230,109, 82,213,132, 27, - 31,140, 66,118,217,175,239, 83,146,137,157, 92, 88,148, 57,118,210,192,170,225, - 31,144, 20, 80, 48,124, 87, 67, 6,254, 98,224, 97,196, 63,240,243, 40, 46, 6, - 79,133,240, 19, 63, 64, 66, 1, 0,241, 27,178,201, 77,165, 42,127,125, 22,156, - 45, 44,143,187, 45, 24,245,242,210,203,106, 37,186, 60,227, 56, 15,128,251, 70, - 14,135,144,178, 90, 77,149,249,141,219,193,243,161,171, 83, 55, 13,126,117,154, - 49,160,245,162,215, 79, 88, 88,190,194,105,134, 62,142,172, 27,136, 13,229,124, - 56,125,199,159, 14, 62,219,167,140, 90, 2,213,204, 6,205,106,190, 91,235, 49, - 86,241,112, 70, 34,137,158,212,163, 94,190, 22,223,175,132, 66,122, 11, 44,190, - 51,184, 37, 24, 26,211,140,233, 30,250,134,132, 71, 80,212, 89,180,116, 35,250, - 92, 39, 51,205, 71, 72,101, 4,137,146,200,114, 50, 58, 95,180, 25,208, 12,143, -162,249,237,173,205,230,228,217,149,199,115,126,187, 71,216,225, 68, 44,133,134, -246, 85,206,139,187, 39,151,112, 3, 8, 21, 18,101,205,155, 97, 92,182,242,105, -144,149,244,106, 38,100,164,233, 60,227,112,142,184, 67, 21,220,159,159,190,167, -100,150, 8,115,139,121, 26, 88,136, 85,175,148, 15,127, 4,153,121, 4, 54,175, - 83, 71, 26,168, 34,238,231,243,172,150,133, 61, 68,215,169, 76, 2,118,115,100, -169,191,131, 52, 21, 91,161,144, 88,162,178,194,153, 56, 46,130,222,246,120,116, - 80, 81, 72, 29,234,150, 43,208,166,214,100,226, 6,136,122,242, 32,226,126,192, - 54, 68, 9,213,233, 11, 85, 34,158,235,242,180, 24,221, 58, 23,162,165,195,232, -197,159,149,132,116, 90, 10,206,165,106,161, 7,207,222,230,192, 36, 44,165,115, -135,233,211,123, 51,235,150, 82,187,113,215, 58,194,121,206, 43,102, 38,148, 74, -133,199, 73,159, 73,180,143,106,206,143, 12,186,145, 85, 84,249, 1,120, 36,248, -236,121, 27,234, 78, 82,110, 41, 48,220, 42, 74, 65,126,241, 33,194,160,207,151, -173,152,205,205,165,170, 83,249,170,102,170, 25,114,246,170, 14,142,201, 55, 91, - 64,163,117, 0,129,144,216, 66,143,105,100,218, 39,117, 66,200,197,238,124, 45, -118,154,161,185,246, 34, 60,168,184,173,145, 81,210,136, 20, 40, 58,106, 24,151, - 53,102,175, 80,110,225,136, 62,183,104,183,106,101,139,155, 38,169, 50, 83,155, - 49,210,190,136,108,126,210, 45, 77,170,149, 85, 12, -} ; - -// ../Source/Template/GB_AxB_macros.h: -uint8_t GB_JITpackage_11 [323] = { - 40,181, 47,253, 96, 1, 2,205, 9, 0,102, 18, 61, 32, 0,181,115,187,239,245, -255,243, 94,189,182, 75,165,157, 6, 77,199, 10,128,130,102, 53, 17, 43, 55,222, -161,255,127,247,135, 23, 50, 0, 52, 0, 51, 0, 49,187,104, 56, 47,100,209,248, -206,112,235, 92, 63,155,132, 59,144,230,254,222,117,158,158,190,239,236,252, 40, - 20, 77,124, 65,239, 95, 80, 10,131,151,155,159,188, 68, 81, 94,144, 87,149, 52, - 85, 85, 53,219,238,176,169,177,109,174,102, 19,166,161, 81, 93,131,110,227,174, - 28,103,202,169,149,123, 60,241, 3,131, 69,176, 38, 69,129, 96, 93,192, 5, 62, -192, 21, 52, 27,167,226, 71, 52,131, 95,181,124,176, 5,205,205, 16,119, 46, 24, -122,211,124, 91,143,237,247,241,128,220, 61,240,183, 55,223,199,182,173, 0, 41, - 34, 55, 74,133, 17, 37,242,194,120,221, 89,175, 2, 36, 2,101, 77, 77,185, 25, -198, 47,110, 87, 47,146,228,213,206,118,226, 89,118,121, 72,202,134, 33,174, 69, -137,225, 6,217,160, 68, 44, 14,137,180, 96, 87,174,155,195, 29, 26,108,147,153, - 99, 18, 53,121,200,104,152,184, 29,110,235, 59,120,230, 83,110,118, 24, 0,100, - 0, 16,209, 69,147, 0,132,159,197,127,140, 4,232,230,139, 14,208, 24, 38, 11, - 0, 52,140, 40,104,193, 66,232,182,175,205,149,247,155, 11,236, 68, 6, 28,248, - 72,116,153, 65,243,231,153, 41,218, 42,182, 90,157, 98,208,248,249,242, 22,140, - 41, 10,134, -} ; - -// ../Source/Template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c: -uint8_t GB_JITpackage_12 [2034] = { - 40,181, 47,253, 96, 92, 46, 69, 63, 0, 10, 66,108, 12, 40,176,148,117, 14,104, -161,216,247,231,240, 22,185,101, 49,202,214,112,144,109, 18,210,147,255,231,116, -195,169,154,153,193, 58,122, 36, 63,232, 63,216,254,193,185,185, 0,187, 0,186, - 0, 31,166,249,153, 43,141, 25,219,203,253,255,167,105,100,154, 42,217,189,251, - 81,254,205,182,223,213,177,230, 76, 57,124, 91,235,150,251,215, 88,197,144,209, -199,139, 63,247, 52, 76, 71,255,252, 21, 16, 44,121,150, 58,210, 99,239, 36,238, -103, 19, 65,165,128, 82, 71, 28, 21,229, 49, 99,109,175,179,173,157, 70,169,216, - 86,174, 61,148, 11, 7,138, 74, 87, 61,198,138, 43,232, 56,143, 58, 26,116, 16, -148,191, 12, 10, 8, 10, 40, 9, 23,130,130, 87, 28,245, 11,183, 7,117,120, 69, - 62,100,148,111,216,162, 95, 33,233,193, 70, 34, 29, 33, 48, 21,143, 84, 12,213, -220,165,208,148,105, 56, 94,239, 33,150,254,243,235,217, 47,108, 34, 53, 22,195, - 39, 96, 33, 59, 6,155, 34, 13,167,156,185, 55, 16,138, 39, 6, 34, 39, 6,113, -139,101,162, 88, 44, 1, 31,219, 15, 25,179,173, 94,255,227,166,121,145, 56, 36, - 18,137, 99, 93, 18,218, 71,251, 39,154, 95, 40,157,173,141,201, 35,205,184, 53, - 1, 78,198, 50,181,138,115,105,212,179,215, 92,226,126,243,115,237,248,136,101, - 45,100, 78, 85, 24,164, 30,150,195, 88,148,189,157,185,241,211,198,171,203,197, -117, 72,109, 72, 71, 85,176,212,213, 17,135, 95, 81, 51, 44,217,131, 21, 4,233, - 72,197,139,225, 61, 13, 59,232, 40, 6,116,157,183,204,132, 99,121,117,161, 88, -191, 80,199,252,242,134, 87, 4,215,104, 62, 53,251, 60, 15, 16, 64,104, 56,175, -207,150, 70,220, 47, 74,115,220,209, 58,142,178,125,230, 85,216,221, 54,121,101, - 43,232, 65, 95, 81,212, 53,255,198,251,241, 10,110,165,219, 41,116, 14, 16,190, -201,208, 66,115,227,209, 68,213,182, 87,187, 0, 28,199, 76, 56, 76,136, 62,140, -230, 29,250,133, 15, 67, 97, 24,121,141,245,113,199,105,123,147, 19,141,115, 19, - 68, 94, 52, 37,238, 81,174, 29,116,188, 25, 31,164,220, 5, 95, 71, 10,114,181, -203,125,177, 63,252,204, 51,109,175,187, 27,190,110,207,215, 90,202,125,154, 74, -198, 92, 75,182,115,149, 1,168, 62,148,215,157,205, 68,234,164,158,159, 41,218, - 64,120, 13,214,130, 15, 80, 29,102,206,145,137, 26,223,178,107,190,113,207, 83, - 33,243,190,245,201, 51,241, 83,145,174, 30,107,182,125,197,119,119, 55,192, 7, - 6, 22, 78,122,230,213,171, 31, 23, 4,233,172,153,118, 98,105,130,247,110, 30, - 79,197, 3,133,252,136, 52,140,132,228,160, 13, 5, 70,196, 4, 77,204, 77, 8, - 36, 41, 66, 51,164,205, 78, 72,126,188, 14,200,106,135,165, 56,119, 24, 62, 29, -175,118,182, 20,112, 8, 9, 13,164,125, 52, 73, 49, 49, 36,100, 71,235, 8, 82, -233, 64, 81, 97,149, 88,150, 88,107,230, 85,254,181, 17,105, 32,139,201,209,178, -201, 39,154,231,175,167,156, 34, 79, 69,230,164,111, 98, 24, 70, 29,203, 53, 4, -215,219, 77, 92, 95, 54,218, 25, 7,174,221, 83,230, 28, 7,137,137,108, 19,154, -160,137,135, 41, 34, 93,187,149, 96,216, 70,186, 62, 10,219, 72,216,118,108,194, - 25, 55, 72,173, 72, 24,236,157, 78, 9,201, 57, 52, 28, 31,229,163,110, 85,148, -166,164,172, 62,201,209, 4,184,167,244,238, 43,174,157, 85, 42,149,239,251, 40, -179,186, 54, 73,125,163,223,173,203,133, 19, 92, 18,155,244,252,149,220,175,248, -138,216,210, 49, 87,145,198,247,238, 47,220, 97,123,236,176,226,219,166,100,176, - 75,219,199,251, 80,117, 58,122,193,130, 2,168, 2,212, 80, 49, 68, 50, 34, 34, -146, 38,201,176, 6,178, 24,132,193, 80,162,135,177,164,187, 1,162,112, 36, 12, - 50, 20,195,112, 16,130, 48, 40, 66, 8, 97, 2, 98, 8, 35,132, 16,161, 64,100, - 36, 16,145,235, 28, 56,194,179,200, 36,226,118, 14,229,201,129, 35,135,215, 4, -105, 32,173, 0,172, 10,199,240, 34, 76, 37,168,234,210, 95,129,247,229, 64,250, -121,198, 77,237,229,109, 91,172,193, 34, 12,185, 16,225, 44, 38, 71,144, 96,117, - 76,107, 23,154, 13,219,253,223,140,114,112, 43,207,202, 77,141,233,180,197, 12, -186,176,180,123,121, 75,160, 12, 77,202, 99, 10, 77,243,118,223, 63,176,232,110, - 68,166, 62,238, 29, 13, 16,146, 59,201,109,168,176,250, 21,124,235,214, 25, 38, -246,100,217, 43,165,215,192, 72,155, 22,159,234, 69,149,136, 69,120, 66,253,185, - 75,137,124,202,152,254,125,217,211,194,175,152,156, 35,253, 70, 35,199,191, 71, -120,224,160,152,141, 80,220,181, 87, 49,250, 68, 75,176,242,114,202,136,239,196, - 69,245,176,130,232,227, 7,179, 20, 81,174,230,219, 29,181,208,208, 92,236,243, -182,103, 96, 76, 63,107, 31,193,251, 34,230,139, 76,207,254,250,229,208,195, 13, -210,154,158, 81,187, 72, 10,237, 72,227, 34, 71, 71, 31,108, 71,105,105,241,242, -177,236, 70, 5,250,138, 41,143,101,192, 21,192,245,121, 58,247, 81,243,228,233, -135, 53,166,146, 70, 22,237, 22,187,119, 89, 81,182, 95,192,147, 62, 53,206,173, -240, 48,153, 30, 36, 34,129,218, 6,195,102,153, 0,203,159,162,217, 12,249, 75, - 83,221,158,143, 0, 0,196, 53, 5,166,127, 73,188,129,184,187, 35,244,124, 38, -107, 96,182, 2,182,162,170,148, 5,213,128, 52,113,176, 61,198,234, 27, 65, 8, -132, 33,194,160, 74,153,129,169,219,255, 49,131,192,162, 52,236, 59,159,228, 30, -170, 78,212,245, 60, 54, 41,143, 30,142,138, 97, 60,169, 72, 59, 9, 64, 15, 8, - 4, 91,201, 62,129, 28, 70, 8,250,231, 44,135,209,141, 11, 39,200, 77,248,182, -199,175, 10, 4, 55, 25,163,206, 3,156, 70,146,102, 91, 60, 72,150,145,135, 24, -126,118,216,189, 44,251,140,162, 4,254,132, 71, 85,136,204, 97, 96, 26,217,213, -234,136,202,200, 74, 48,115, 42, 1,155,160,204,140, 73,212,161,106,179,140, 94, -141, 51,220,212,225, 7, 99, 4,255,216, 47, 92,200, 13,221, 93,161,135, 48,159, - 89,214, 81,214, 95,196,226,241,253, 94,187,182,188, 73,255, 6,133,155,140, 39, -194, 67, 91,107,192, 60,175, 3,146,108, 32,222,181, 53, 12,209,173, 50,180,230, -146, 53,176, 8, 56,220,124,108,108,131,212,125,190, 91, 32,100,127, 39, 46,236, -211, 63, 95, 3, 2,104, 87, 9,189,117,128, 18,229,175,227,116, 6,125,183,183, - 61, 19,217, 35,230,205,156,156, 81, 58,183, 98,110,167,101, 87,160, 32,205,251, - 6,130, 26,202, 32, 34,125,251, 55,250, 75, 72, 62, 2,219,196, 61,223,131, 39, -181, 17,167, 29,255,105,161,154, 60, 73,181, 38,243,143,199,196, 57,177,245,234, -156,245, 19,161,102,148, 61, 96, 29,154, 15,135,242, 80,250,136,248, 77,121,154, -203, 53,144,248,186,143,113,182,243,140,107,110, 2,143,188,182, 82,172,121, 71, - 76, 20,210,200, 59,240, 47, 78,252,104,250, 65, 77,167, 86, 52,144,159,252,218, -241,145, 65,101,112, 67,155,247, 4, 50, 87,108,203,247,109, 94, 12, 38, 95, 6, - 74, 45,170,212,243, 76,179,234, 46,177,132,176,196, 60,239,224,182, 14,240,198, -178, 49, 56, 86,212,163,162, 15,129,152,164,140,136, 49, 58, 84,127,108, 4,228, -244, 84, 90, 73, 86,193, 8, 84, 37, 40,162,211, 12,156,110, 34, 59, 18,254,152, -102, 57, 44,247,250, 17,229, 73,171, 36,242, 80,101, 68, 77, 50, 17,252, 45,191, - 72,120, 39, 37,122,205, 89, 99,217,168,201,149,218,207, 95,228, 82, 75, 61, 11, -161, 88,192,144,197,219,128,118,225, 47, 74,233,240,165, 65,135, 24,134,216,250, -185,231, 22,125,150,233, 94, 57,122,198, 91,180,118, 68,108,236, 3, 3,152,128, -161, 8, 71,229,132, 12,145,204,161, 3,215, 76, 24,248,161, 0,241, 12, 6,150, -112, 29,133, 24, 69,138, 76, 17, 50, 58,231, 20,245, 94,243, 97, 32, 47, 26,116, -215,166,133,214, 88, 0,247, 17,246, 34, 55,182, 56,193, 16, 57, 52, 63, 90,209, - 34, 78, 90,173,155,139, 24,220, 29, 18, 80, 50, 52,200,154,199, 2,213, 75,201, - 82, 56, 61,131, 47,138,148,137,197,211,111,196, 43,131, 12, 65, 15, 24, 98,133, - 25,207,208,165,201, 18, 77,230,157,245,106,102, 64,196,210,226, 63,174, 36, 69, -199,144, 73,207,243,211,130,252, 87,248, 78, 54, 77, 95,133,243,236, 25,176, 28, -117, 37,154, 75,156, 38, 28,173, 92,193,255,151,147,128,198,130,217, 66, 76, 76, - 33, 74,132,252,139,171,227,220,140, 90, 26,195,168,251,192, 23, 46,241, 27,105, -122,153,216,247, 41, 3, 6, 17,167,103, 72,240,222,139,180, 92,208,224, 18,225, -227, 21, 76,204,156,130, 63,148,169,219, 26,159, 95,145, 59, 18, 43, 20, 93, 50, -246,144,221, 66, 4,194,254, 25,138, 99,133,195,195, 44,183,253,132,176,104, 9, - 24,120,192, 20, 12,241, 37, 66,154, 74, 40,114,211, 61,150,140,195,190, 30,199, -100,178, 37, 51, 8,219, 12, 15, 81, 11,168, 2,126,159,131,107,163, 26,177,126, - 85,166,168,124,137, 38, 87, 81, 2,208,252, 38, 85,192, 51, 58, 5,146,129,190, -102,159, 90, 75,241,125, 77,218,124,158,126,153, 77, 83,171,101, 38, 39, 7,235, -229, 27,196, 74, 14, 96, 83, 57,175, 8,130, 10,215,243, -} ; - -// ../Source/Template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c: -uint8_t GB_JITpackage_13 [4065] = { - 40,181, 47,253, 96,174,115,189,126, 0,138,110,116, 20, 45,160, 14, 93,231,122, -116,135, 4, 1, 73,208, 36,142, 42,115,127,127, 22, 25,112,137,252,151,177,241, -167, 13,244, 52,233, 10, 79,113,181,154,155, 43,120, 29, 94, 71,158, 28,103, 8, - 52, 1, 69, 1, 55, 1, 18, 62, 61,162,214,159,156,163, 77, 98, 47,220,248,163, -217, 79, 83,178,155,228,250,185,217, 23, 78,143, 15,126,244,242,243,200, 10, 54, - 68,190,245,253,111,125,178,157,149,151,106, 89,255, 63, 3, 67, 5, 12,195,184, -222, 38, 55, 48, 76, 19,204,131,141,196, 20,218,158,103, 55, 48, 76, 32, 88, 52, -153,132,227,109,114,221,176,177, 48,248, 54,229,227,180, 53,157,244,123,198,114, - 97,178, 7, 19,215, 22,122,218,108,233, 35, 77, 90,143,103,229,238, 90, 87,158, -236,169, 44, 91,169, 73,238,209, 97,243, 81,231, 12,126,124, 63,155,141,109, 88, -233,149, 94,248,133,154, 38, 79,167, 3, 59, 71,207,159,123,122,103,127,227,202, -247, 74,205,126, 50,203,207,111, 87,122,206,114,199,229,119,120, 94,200, 57, 72, - 30, 29, 42,131,163,207,117,135,237, 99, 12, 15, 14, 72,131, 63,154, 4,175, 87, -149,155,235, 59,121,179, 52,216, 78,214, 90,162,225, 32, 2,227,216,248,162,178, -229,204,237,253,120, 58,115,207,187, 30, 9, 64, 30, 32,141, 3,143, 7,200, 39, - 77,122,180,125, 33, 35,238,184, 62,250, 92,250,245,230, 81,115, 73, 72, 62,160, -172,148, 74,195,183, 67, 13,131,103,246,231,142,166,252,229,241,216,163,132,113, - 89, 9, 46, 13, 16,216, 43, 80,126,153, 36, 99, 91, 37,104,179, 43,187,221, 17, - 73,155, 73, 68, 87, 38,161,220,193,129,161,225,224, 16,147,136,140,129, 69,194, - 4, 2, 69, 80,231,145,172,252, 54,242, 38, 80,236,164, 79, 93,108,233, 58,152, - 72, 96, 46, 20, 24,132, 1, 3,158,153, 88, 36, 48, 22, 74,214,117,118,101, 27, -137,138,203,131,109,231, 83, 71,194, 92,151,205,196, 68, 51,201, 96, 50, 80, 23, - 78, 74,169,176,215, 9,233,230, 61, 78,121,228,215,145,123,146,107,246, 43,169, -199, 69, 88, 40, 38, 40, 46, 25,132, 0,182, 32,211, 84, 72, 96,176,202, 37,210, -171, 63, 92,193,169,237, 76, 66,137, 18, 52,182,166, 23,146,132, 34,153, 24, 29, -137,244, 73,234, 80, 42,111,149,190, 82,144,252, 62,191,208,163,218,103, 63,130, -179, 49,234, 52, 58,143,147,117, 74,164, 1,206,200, 33,143, 6, 4, 84,129,211, -162, 32,172, 63, 36,211,163, 81,197, 74,138, 15,143,220,101,251,241, 87, 37,123, - 26,227,167, 46,210, 56,146, 36,154, 78,153,176,100, 44,151,137, 38,203, 52, 0, -222, 48,217,187,208,206,184, 69,132,179,214,158,205, 42,210,169,115,156,171,117, -189,150, 43,227, 55, 67,112, 67,237,244,138, 42, 92,133, 53, 9,218,174,210,208, -101, 79, 38, 49,153,216, 88, 36, 14, 46, 77,180, 92, 44,214, 61,158, 18,108, 88, -159,125, 31,191,222, 46, 58,143,210, 39, 40, 44, 27,203, 38,115, 97, 38,131, 30, -111,149,215,130,126,179, 2, 6, 46, 38,177,124,193,179,191,202,151,183, 83,212, - 60, 68,228, 15,183,164,201,122,242, 98,106, 21, 37, 77,218, 87,171,103, 8, 24, -197,130,108,211,145,128,210,179,176,181,185, 78,192, 29, 44,199,245,143,214,159, -144,141,143, 70,150,101,243,244,254,225, 31,173,236,153,178, 94, 50,233, 45, 95, - 89, 25,164,231,207, 70,235,143, 94, 57,137,136,184, 38, 17,155,204, 68,163,185, - 88,147, 30,216,152,163,141,155,218,254, 70, 63,151,191,201,159,208,185,134, 55, -228,102,159, 59,247,188, 14, 93,203,239,136,215, 11, 45,215,203,241,137,190, 76, - 82, 41,167,247,134,224,236,207,206,176, 75,231,227,198, 87,106,212,243,228, 71, - 30,118, 81,215, 43,191, 56,242,238,228, 90,195, 11, 20,197,220,221,170,128,143, -153, 73,101,115, 81, 38, 12,148, 14,234,236,146,109, 38, 20, 9,137,138, 5,211, -227,242, 9, 0, 62, 65, 62, 64,146,250,187, 71,105, 39, 83,201, 50, 20,217, 68, -163,105,160,185, 46,151,119, 26,127, 44,176, 14,166,253,145,115, 56,251, 78,170, -125,178, 0,112,198,187,210,125,202,122, 67,188, 27, 59,189,175, 76,193, 12, 3, - 35,159, 64, 7,231, 33, 64, 1, 52, 71, 86, 96, 4, 6, 56, 95, 17,152, 10,139, -154,108,185,130, 23,174, 37,122,148, 62,217, 88, 50,156, 81,189,147, 31,226,249, -202,244,112,203,186, 5, 8, 68, 85,192, 8,231, 42,145,127,154, 58, 30,233, 14, -140, 83, 45,189,114,134,195, 43,116, 60,147, 77,133,131, 74,247,216,127,236, 90, - 62, 70, 62, 93,233,147,204, 37,129, 5, 12, 12, 23, 40, 14,215,215,134,160, 77, -254,134,157,199,141, 57,122, 27, 94,176, 59, 14,199,122,119,119, 40, 52,157, 3, - 17,177, 30,154, 42, 72, 75,183,221,176,242,220,167,141,175,149,218,157, 66,161, - 24,187, 45, 24,147,244,234, 12, 80, 4,203, 58,182,134,132,170, 71,136, 3,233, -234,209,156,137, 35,157, 47,180,196,233,230,112, 64,169,226,112,143, 12,233,164, -255,156, 87, 14,182,216,247,133,150,235,230,119,112,244,182,242,103,235,203,145, - 31,208,222,214, 26,147, 47,218, 51,161,243,159,219,161,199,199,227,113,117,246, - 94,142, 70, 52, 76,190,183,107, 40, 18,169,116,134,140, 71,131,192, 43,125,132, - 60, 62, 30, 31,110, 43,207, 16,101,239,192, 99, 68,176,153,176,100,147, 76,197, - 6,115, 97, 23, 14, 84,168,108,211,237,194,109,233, 16, 0,116,100,125,198,193, -243,116,226,119,240,149, 27, 24,126,122,114,179, 44,238,124, 74,141,107,204,114, -161,216, 92,149, 91,176,240,200,187, 3, 4, 8,240,164,144,233, 2,192,178,164, - 63,104,101, 10,241,210,121, 80,107,213, 67, 53,251, 59, 95,121,109,131,111,207, - 22,241, 54,251,234,134,136,220,234, 80, 89,215, 69, 56,120, 93, 83,148, 80,186, - 83,214, 37,224,187,169,235, 30, 63,151,244, 43,171,116, 20, 69,117, 29,164,171, - 30,221, 37,157,250, 36,194,170,106, 82, 43, 47, 66, 10,227, 65,129, 34,103, 16, - 49, 65, 17,132,106,168,147,137,146,214, 57,166,100, 68,100, 36, 41, 72, 90, 3, -243,160, 16, 16, 20,145, 76,230,147,161,168, 85, 31,163, 97, 17, 57, 16, 29, 67, -129, 72, 20,130, 64, 60,130, 32, 32,131, 64, 32,130, 64, 8, 33, 16,193,132, 16, - 70, 4, 68,236,142, 27, 5,186, 41, 71, 39,255,139, 14, 55,255,247,179,236,238, -207, 3,131,249,124, 91,219, 86, 9, 20, 45, 65, 46, 5,210,177,133, 40,221,200, -203,206,212, 20,252, 81,156, 4,213, 53,143,237, 25,254,144,177, 75,164, 7, 25, -126, 66,169,101,166, 41,190,210,235, 97,239, 58, 39, 60,203,154, 9, 72, 43,185, -152, 66, 65,139,164,202,243, 99,176,244,135,116,226,139,219, 7,212,242, 55,243, - 82,246, 56,219,171,126, 51, 68,116,141, 89,230,161,222,197,168,189, 67, 79,208, -193, 3, 46, 96,197, 24, 25,156,191,139, 38,204,171,130, 96, 14, 58,209, 23,150, - 99,164, 93,242,187, 68,108,128, 20,173,164,188,252, 60,105, 20,181,227, 41, 2, - 4,179, 5,203,157, 90, 26, 6, 80,132, 31,105,219,135,170,252,160,157, 4,135, -160,232,135,191,210,134, 11, 62, 18, 20, 98,142, 55,245,242,121,173,108,255, 7, -100,206, 83, 91, 19,242,244, 41,169,199, 12, 87,190,101,180,156,255, 22,119,196, - 6,148,218, 16, 65,150, 42, 90,189,126,192,249, 29,100, 0, 75, 1,130,209,134, -170,187, 50, 21, 14, 54,249, 8,130,159,181,152,229,143, 97, 13, 99, 50, 69, 73, - 63,188,141,163, 67,129, 34,228, 42, 52,102,182,117,215, 8, 67,122,252, 14,124, - 81,227,163, 55,177,131,210,252,229, 52, 68, 93,163, 50,184,243,138, 99,103,212, -142,189, 46,227, 25, 85, 83,118, 79,224,201,248,111,148,239, 3, 94,108, 1,107, - 71,157, 45, 80,134,122,185, 68, 52,117, 94,243, 3,250, 75, 30,214,157, 66,236, - 81,244, 86, 37,104,225,105, 27,203,129,201,156, 49, 78, 46,213, 20, 85,116,119, - 38,203,228,246,132, 53,135,252,131, 11, 31, 63,183,241,133,176, 23, 36,139,158, -173, 22,164, 42,205,181,139, 39, 99, 47, 2,236, 66,103,200,136, 89,150,153, 85, -153, 48,204,120,224,238, 62,205,190,221,130, 26, 61, 74, 9,152,185,188, 68, 67, -206,244,106, 24,115, 93, 87, 12,122,210,156,205,158,110,222, 71,199,220, 40,154, - 92, 53, 27, 28,109,112,228, 19,137,107, 37,202,240, 39,242,253,183,190,176,136, - 21,182,220,237,161, 26,149,227,150, 38,106,237,123,223, 80,243, 73,113,218,104, -166,160,147,118, 68, 56, 17,148,188,112, 78,172,172, 19, 52,217, 92, 52,115, 54, -202,213,194,236, 72,188,110, 27,211,149,240,196, 13,185, 77,165, 51, 90,194,199, - 52,196,112,140, 42, 74,246,218,116,139,237,243, 65, 39, 80,249,220, 55,218,237, - 40, 29,170,238,202, 18, 49,122, 52,119,150, 10,166,198, 62, 50,194, 43, 24,192, - 46, 16,172, 5,222,180,204, 81,165,204,103,117,127, 74,133, 63,193,180,205,137, - 10,245,222,231,248,226,138,102,130,189, 36,174, 72,212,200,230,140,165,148, 14, -161,207,217, 15,224,176, 0, 13,126,119,246,116,238, 22,127, 38, 44,217,138, 38, -140,103,226,134, 41,140,227,121, 57, 38,130,240, 75,158, 31,244,243,233,203, 17, -183,227,138, 38, 91,224, 32, 93,130, 59, 19,110, 17, 77,200, 47,186,118,168, 24, -233,219,152, 42,209,107,144,156,166, 55,236,162,169,133, 41,235,234, 50,164, 73, - 2,121, 76, 41, 24, 87,219, 65,201,104,138,154,106, 41,223,100,201,131,122,136, -174,242,187,182, 68, 80,181,119, 57, 33,146,158,106,144, 41,101, 47,132,203, 2, - 95, 37, 17, 11,140,182,124, 0,211, 95, 38,198, 30,109, 45, 6,162, 96,210,157, -218, 16, 32,109,130,192,232, 8, 59, 1,218,169, 59,247, 65, 79,171,128,242,194, - 1, 50, 41, 99,157, 69, 23,255,113, 96, 68, 7,252, 49,202, 37,228,220,156, 20, -198, 30, 66,190, 26, 32,133,155,155, 91, 81,130, 69,132,101,150, 83, 26, 35, 58, - 8,210,194, 54,124,165,215,104, 77, 8,203, 57,145,178,140, 14,217, 29,101, 19, -231,139,254, 72, 35, 7, 80,215,186,196,226,184, 83,153, 55, 75,177, 37, 31,146, -183,241, 22, 78, 72,150, 49,208, 45,203,130,110, 16, 78, 70,115, 98,155, 19, 79, -123, 54,183, 70,223,220, 92,231,253,113, 64, 65, 3, 46, 57, 34,159,123, 15, 8, - 25, 77, 6, 73, 11,183,119,104,123,152,237, 96,204, 4,172,233, 37,146, 60,108, -213, 4,242, 73, 65,169,248,248,202,181,119, 45,212,168,105,200,113,209,240,139, - 65,236,156, 96, 83, 66, 7,157,138, 84,135, 86, 97,143,186, 17, 17,208, 87,121, -139,216, 43,138,114,213, 15,144,118,160,220,226, 39,118,169, 79,211,190,239, 46, -213, 74, 66,118,211,104,150,129,253, 61, 15,133,179,178,152, 13,146, 6, 82,204, - 90, 14,158,162,231,118,175,166, 74,246,213, 1,167,112,234,221, 38,121,134,102, - 33,185,147, 94,113, 21, 27, 85,150,128, 56,235, 18, 44,102, 2, 48,151,182,183, -105, 49, 30,128,234,248, 48, 1, 92,146,158, 87, 67, 67,138, 71,205,209,144,158, -209, 73,237, 16,182,180,125,202,158, 53,200, 48, 20,178,119,227,122, 6, 81, 65, -132,136,189, 61,108, 53,213, 52,222,195,199, 90,246,102, 85,222, 6,119,195,125, -141,129,100, 37, 72,150,239,241, 12,218,217,142,130,150,112,154,140,121,252,152, - 18, 18,105, 69, 94,140,132, 0,149, 52,200,117,192,150,238,132, 9, 74, 21, 15, -102, 58,194,232, 39, 67, 30, 9,206,103, 59, 6,207,178,180, 68, 31, 57, 1, 73, -208,224,190, 37,131, 6,214, 36, 74,201,229, 74, 90,100, 20,120, 62, 52,199, 48, -155,231, 27,245, 15,194, 38,238, 26, 85,209,149,233, 98, 48, 37, 37, 71, 86,158, -212,125, 98,113,158,210,223, 14,135, 91,158, 54, 86, 46, 9,237,162,133, 41,209, -184,165, 27,218,216,154, 99,242, 32, 92,166, 4,119,225,101,152,133,125,183,151, -179, 71, 2, 57, 77,235, 20, 47,194, 21,104, 40,178, 90,125,115,184, 88,216, 22, - 97, 51,188, 93,198, 67, 23,176,130,236, 3,206,190,158,199,144,101, 97,102,245, - 34,217,175,184, 40, 39,112,118, 73, 66, 13,185,114,108,243,155, 1, 67,135, 66, - 72,116,168,132, 79,238, 40,210, 39, 48, 48, 67, 29,165, 32,146, 34,120, 88,116, -101,236, 88,175,125,210,235, 16,210, 96, 60,247, 60,163,108, 56,195, 30, 34,131, -179,100,197,238,220,112,121,238,107,207,203, 94,159,127,186, 63,163, 4, 90,222, -183,229,141, 18,225, 13,126,227, 22,133,225,210, 93,119,195,226, 41, 48, 85,162, - 53,182, 7,231, 29,253,233, 53, 76, 86, 54,130,230, 12,201,202,238, 25,212, 56, - 50,154,192,125,113, 71, 73, 25,235, 90,134, 90,108,167, 31,201, 96, 82,164,244, - 21, 57, 55, 97, 59,186,199,213, 76, 92,180, 78,241,141, 38,103, 53, 56, 61,220, -133,191, 60, 80,136,219, 41,199,116,242, 75,252,226,117,135,225, 62,244, 19,214, -143,129, 8,139,233,112, 82, 15,114,208,144, 18,212, 73, 6,246,240,100, 77,209, -139,141, 76,188,157,239,163,221, 4, 74,236, 88,195,142,152,164,129,104,132,244, -150, 29, 61, 87, 70, 16, 36,141,203, 93, 15,138, 96,102, 29,107,181,241,137, 11, - 63, 72,134,240,221,135, 0,134, 17, 57,107,197, 22, 51,221, 98,136,119, 63,120, -106,122,144,123,239,154,111,203, 4,178,140, 35,117, 41,155, 84, 97,248,233,250, -141, 96, 67,179,190, 87,151,240,154, 60,138, 19,166, 55,239,163,183, 89, 91,114, -249,227, 91,102,158,108, 55, 51,216,101,192, 92,167,228,110, 50,176, 15, 41,141, -112,157,113, 32,226,246,221,232,165,119,184,255, 72,192,247, 96, 40,119,227, 44, - 36, 21,112, 67,122,216,227,194,100,210, 50, 12,136, 77, 56, 19, 60,110,202, 88, - 66, 30, 12,228, 24,123,222,199,131, 98,247,253,179,189, 62,224, 24,126,188, 74, -163, 35, 87, 59,246,136,139,215,121, 67,203,241, 85, 66, 70, 11,126, 97, 42,192, - 65,170, 36, 72,155, 82,141,181,131, 8, 51,199, 32, 60,151,108, 45, 19, 39, 91, -158,226, 35, 76, 69,252,170,154, 49,193, 20,237,232, 26,163, 59,205,178,227,107, -178, 34,254,152, 1, 48,104,144, 9, 52, 12,255,159, 64,132,165,148, 12,151, 67, -201, 73,222,242, 86,149, 83,253,242,116,115,244,118,202,129,198,246,190,102,156, -168,149,155,167,204,251,109,147,232,108,116,254, 95,235,216,118,217, 65, 15,237, -178,243, 56,178, 48, 45, 55, 69,236, 30, 97,116,167,112,215, 14,139, 99,180, 79, -192,134,206, 73, 69,175,142, 58,165, 13,201,217,251, 16,179,121, 97,117, 60,196, - 76,195, 66,131,122, 27, 58,189, 84,145,151,114,131,197, 25,198, 85,245,196,193, -203,155,197,188,219,159,229,245, 68,236, 33,139, 71, 10, 1,195,129,186,133,199, -187,115, 43,221, 2,143,231, 13, 19,213, 67,251,192,125,172,191,130, 99,163,108, -135, 17, 89, 93, 66,233,166, 29,192, 22, 65,156, 12, 74, 98,162, 16,121,147, 71, - 77, 80,227, 1,154, 19,134, 62,166,229,217,137,179,116,116, 30,184, 72,190, 94, - 77, 32,133,108,201, 9,121,254,125,106, 84,101, 41, 96, 12, 9,164, 18,255,197, -148,169,240, 52, 91, 45, 16,187,218, 95, 44, 52,152, 29,233,150,237,249,178,151, -158, 89,113,168,225,182, 38,244,249,105, 54, 78, 59, 65,170,193, 17,229,219, 96, - 78, 49, 68,100, 4, 9,161,200, 44,167,163,251, 43, 12,252,101, 33, 46,108,126, -142, 16, 27, 85,214,173,209,242,166,161,197,242,125,209,140,202,249,174,147,181, - 43, 81,222,193,206,180,204,210,181,153,185, 33,188,132, 8, 64,160,158,200,196, -107,208, 41, 36,151,198,249,159, 60,163, 93, 49, 86, 10,113,168, 79,155, 2,138, - 41,249, 27, 82,147,184,224,144,193,121,175,205, 55, 13, 42, 95, 11,219,206,138, -178,192, 33,234,130,139,225,179,138, 92,102,209,218,197,101, 56,148, 4,220,102, - 68,199, 73,254,178,225, 5, 98,231,199, 31, 10,185, 78, 18, 59,146,173, 70, 60, - 22,178, 8,127, 53,165, 80,241, 99,198, 88,210,191, 17,114,140, 80, 77, 25,198, -155, 98,230, 87,208,155,154,112,209,213, 90, 59, 19,219,109,189,251, 40, 83,212, -180,106,173,131, 69, 20,252, 74, 50,255, 81,172,142,179,101, 60,190, 29, 97,149, -204,204,129,147, 4, 38,116,123,239,130, 90,253,225,250,124, 20, 35,185,191, 63, -183, 15,253,158,126,125, 13,174,128, 17,222,110,177, 73,102, 89,191,197, 70,101, -166,111, 9,198,254, 24, 39,177, 41, 41,171, 7,183, 48,134, 69, 90, 62, 58, 37, - 22,187,216,161, 75,196,186, 82,124,178,170,164, 12,170,154, 4, 13, 33,126, 21, - 15, 5, 62,206,167,226, 65,136,179,160, 55,240,135, 24,222,136,108,178, 84,145, -153,145, 7, 16,252,105, 96,184, 35,144,195, 19, 28, 76, 70,196, 11,102,186, 54, -101,185,169, 92,193,191, 48, 65,219,201,144,164,229, 63,100,208, 95, 92,169,123, - 15,134,189,209, 83, 29,180,125,131, 33, 59, 68,130, 40,142,143, 39,178,237, 71, -245, 57,110, 47,112,101,172, 87,216, 99,155, 93,121,255,123,232, 76, 46, 47,232, -243,110,141, 12, 39,118, 16,149,204,243,155,167, 52,201, 61, 64,194, 24,233, 22, - 14,150,217,188, 19,179,163,184,246,240, 52, 32, 24,164,219,160, 36,134, 1,244, - 79,205, 38,175,189,191, 56,221,126,122,216,156, 58, 48, 82,197,161, 49, 7,147, - 59,131,151,100,244, 72, 36,185,132,207, 64,120, 19, 71,130,247,119, 62,180,168, - 62,166,247,243,147, 27, 68,160, 63, 11,202,131, 77, 11,118,223, 22,174, 16,111, -178, 64,188,231,254,234,179,207, 19,114,254, 70, 76,132,128,228, 79, 80, 37,133, - 22,222, 71, 46,123, 88,141, 65,168, 96,204,242, 77,219, 43,182,159,217, 54,218, - 67, 84,210, 52,198, 92,182, 56, 59, 77,183,187,161,175, 69, 82, 64, 24, 68,131, -195, 6, 67, 59,229,142,120, 48,210,232, 25,172,109, 44,211,111, 12,153, 96, 51, - 74,152, 78, 76, 20,152, 6,176, 72, 53,122, 6, 87,152, 20,239,138,244,247, 37, -219, 48, 60,248, 0, 63, 49, 71,249,146,228, 57, 40,244, 20, 21,146, 64, 1, 57, - 89,141,111,153, 62, 15,202,113,104, 94, 5, 2,126,222,179, 9,145,244,153,249, -176, 65, 93,101, 73,168,237,149, 66, 68, 95,178,111, 16,179, 90,175, 73,231,163, - 6,206, 77,227,102, 65, 31, 89,130,166,221,216, 57, 66,129, 70, 42,235,162,221, - 99,154, 9,138,107,233,193,184,179,184, 40, 80, 33, 36,162, 68,127, 84, 34, 18, - 99,112,200,184,171,112,140,103,102,247,204,145,183,214, 44, 60,228, 33, 58, 31, - 40, 54,205,172,110, 48,177,157, 99,158,129, 51,117, 12,217,127, 24,215, 37,153, -112,122,142, 97, 27, -} ; - -// ../Source/Template/GB_AxB_saxbit_template.c: -uint8_t GB_JITpackage_14 [2199] = { - 40,181, 47,253, 96,208, 59,109, 68, 0, 22,253,183, 40,192, 84,117, 14,228, 92, -191,207,158,227, 11, 23,146,239, 51, 9,202, 26,192,226, 60, 48,177,183, 43,166, -238,194, 48, 56, 38,108,241,244,187,138,130, 45, 10,184,171, 0,166, 0,180, 0, -147, 82,233, 57,206,126,239,237,156, 23,218,121,235,154, 13,118,241,185,128,168, -112,141, 67,174,202, 79, 0,191,174, 5,189,111,152,103,120, 51,126,119,249,184, - 43,253,110,231,230, 30,202, 20,107, 33,112,114,169,100, 40,221, 77, 9,198,107, -110, 83, 16,205,181, 57, 14,165,113,237, 73, 43, 40, 24, 15,158, 10,215, 31,183, -113, 99,199,185,227,160,216, 61, 47,126, 50,200, 92, 50,148, 4,204, 37,115,105, - 70,159, 48,253,144, 15,175,196,135,186,108, 63,250,249,148,197,138,170, 3,229, -141,208, 52,190, 18,204, 58,211, 48,155,128,242, 59,166,183, 94,187, 3,121, 69, - 16,169,134, 75,128,193,186,102, 86, 58, 75, 15,252, 58,107,153,110, 33, 18,107, - 85, 72,212,170,136, 91, 44, 19,138,197, 18, 27,137,142, 86, 85, 91, 85,225, 26, -171,143,114, 82, 60, 69,213,246, 62,230, 1, 66,198,213,206,133,111, 13, 20,235, -212, 55,235,121,210,155,113, 95,130,103, 77, 33, 87, 26,146, 32,158,252,194, 37, -201,138,238,137,215,135, 83,105, 85, 68,244, 15,182,201,178, 88,197, 79,215, 39, -235,185, 57,254,255,147,201,200,165, 95,227, 91,100, 28, 13,227, 68,143,150,209, -241,170,125, 14,183, 87,249, 10,197,110, 15,201,239, 85,252,237, 46,211, 77,230, -252, 85, 37, 74,158, 23,130,166, 41,212,125,234,232, 89,126, 19,215,161, 39, 63, - 60,201,245,215,118,126,202,182,230,218,184, 47,120, 13, 71, 13, 85,121,113,212, - 86,251, 97,249,254, 36,253,181, 89,222, 6,237,191,112, 78, 9, 10,147,201,138, - 42,189,212, 49,209,232,122,232,230,218,239,166,236,204,169,130,111, 88,160,198, - 71, 44, 75,127, 59,103, 57,177,197,210, 64,201, 82, 72,116,141, 67,116, 41,132, -210,109,235, 58,240,186, 70, 34,128, 83,215,117, 93,210, 21, 65, 96, 22,218, 47, -151, 44, 58, 31,235, 2,251,100,158,203,194,210, 40,178,120,105, 30, 88, 94,223, -229,123,214, 90,132,226,144,143,118,117, 21, 21, 23,157,139, 58, 21,163, 68, 66, -242,232, 90, 45,198, 24,165,140, 92,123,219, 23,118,104,113,246, 71,149,148,110, - 91,215,129, 7, 35,182,241,100, 72,108, 50, 44,122, 50,128,186,224, 89,187, 53, -246, 90,179,152,106,213,187,210,138, 77, 7,219, 80,104, 31,206, 4,168, 57, 16, - 21,144,170,232,156,215,157, 38, 82, 43,117,145,186, 69,127,168, 8,147, 73, 73, -135,115, 81, 62,123, 65,207,244, 87,182, 55, 63, 45,204, 83, 37,184, 39,189, 89, -126,247, 60,249, 99,226,181,112,131,107,142,185,195, 37,204,165,175,124,188, 38, -151,215,240, 82, 89,226, 39, 91, 79, 81, 63,128,133,161, 82, 17, 68, 42,126,210, -219,181, 57, 66,215,230, 41, 65, 1, 49,224,205,133,222,172, 63,198,224, 96, 15, - 12,220,235,122,219,227, 35,156,237,114,231,217, 94, 99,203,178,172, 73, 68,135, -131,113,174, 77, 86, 85, 85, 85,197, 24, 99,199, 3, 48, 41, 49,192,100, 48,246, -182,200,215, 65, 53, 26, 92,169,157, 7,177,245,214, 65,152,147,125, 59,156,235, -196, 81,233,164, 94,107, 25, 45,187,168,240,104,216,230,243,137, 86,214,137,224, -100,217,116,197,233,242,233, 1,130,163,168,130,212, 12, 25,146, 17, 17, 17, 73, -146, 20, 50, 28,194, 41, 4, 2,113,152,199, 97, 41,111,146,152, 28, 19, 65, 36, -130,192,136, 35,134, 17, 34, 32,132, 32, 66,228, 68, 34,145, 68, 35, 34, 34,109, - 3, 50, 36, 99, 83,106,231,140, 74,109, 26, 80,169, 77,128, 42,181, 21, 43,133, -171,143,157, 43,233,207,133, 59,160,138,125, 75,105,145,204, 34,181,254, 36,181, -105,143,162,180, 45,130,156,160,106,200,251, 68, 75, 77,150,193, 74,153, 58, 24, - 60,253,203, 2,116,159, 97,209,208,198, 82,127,244,129, 5, 30,136,162,115, 34, - 77,100, 94,230,132, 34, 70, 64, 45, 44, 95,104,188,216, 43, 43,210,161,195,246, -183,172,196,147,168,157,158,115, 92,122,104,119, 8, 18, 0, 73,238, 4,176,233, -205,216,107,208,116, 4, 44, 19,203, 4,160,126, 64,111, 6, 82,185,171,204,180, - 14, 49,204,150, 79, 58, 3, 64, 61, 40,222,184,100, 19, 65,104, 35, 40, 54, 78, -221, 27,183,176,165,132,167, 20,117, 68,171, 24, 62,213,142, 82,210, 13, 87,230, - 60, 38,133,119,137, 0, 52, 1, 20,173, 33,152, 61,216,134,174,138,126,168,155, - 24,226, 97,158,181, 27,254, 4, 82, 58,235,153,147,132, 14,208, 37, 43, 77,165, -227,187, 59,204, 97, 15,103,250,195, 13,168,222,204,149,177,247,172,193,122, 4, -124,160, 48,215,125,199,131,213,133,203, 14,163, 11, 25, 26,144,114,213,107, 44, -162,187,102, 48,166,224,208, 28,222,168, 18,192, 3, 33, 49,245,214, 98,202,164, - 78,240,137,224,180, 77, 33, 22,156,197, 10,139,214,214, 45,156,202, 38,116,169, - 61,163, 75, 47, 15, 31,218, 41,225,165,201,203,114,164, 56,226,136,157,165, 4, - 62, 85,202, 28,234,228,200, 61, 14,123, 97,207, 6,143, 93, 31,138,109, 73,162, -218,226,173,254,253,203, 23,168, 0,155,159, 35,213, 91, 89,217,106, 57, 19,223, - 75, 15,100,164,234,149,137, 39, 63, 59,246,143,252,183, 45, 87,106,145,250,132, - 84,104,101, 37, 32, 4, 76,171,204,120, 90, 28, 17,200,158,228, 62,209,212,114, -248, 26, 46,221,180, 38, 34, 92,157, 24, 37, 64, 80,175,139,240, 11,145, 79,216, - 68, 49,113, 11,203, 50,190, 70, 37,148,126,197, 10,193, 51, 59, 1, 6, 67,158, - 82,128,144,222,234,152,229,213,139,143,249,106, 52,243,243,188,134, 56,124, 29, -164,195,187,155,115, 84,161,150,143,147,209,149, 67,137,209, 7,212,224, 17,225, - 9,200,247, 72,118, 24,122,191,128,157,185, 83,127, 87,168,221,247, 9,110,110, -141,232, 31, 48, 50,204,211, 8,191,208,141, 16, 17,245, 83, 58, 1, 55,126,144, -168, 29, 52, 54,105, 18,248, 65, 80, 0, 26, 22, 0, 62,172, 64,170, 94, 85,141, -251,236,241, 79,230,169,163, 13,184, 36, 87,230,173, 74,248,203, 12,109, 57,220, - 25, 66, 35, 47, 79,120, 20,162,229,133,140,221,238,126, 52,154,125,235,113,216, -183, 43,138, 78,169, 46,162,253,181, 11,225,199, 33, 25,198, 65, 59, 87,246,238, -239, 49, 98,207,110,140,148,230,216,115,216,207,217, 82, 70, 61, 3, 98,241, 41, -147,204, 38,101,176,166,171, 60,238,131, 52,118, 39,122, 48, 40, 89,248, 19, 88, -228,234, 85, 32,187,182,244,192, 59, 95,216, 36, 27,155,253, 80,222,168,244, 33, -212,132, 26,247,237,140, 55,127,235,106,224, 53,138,155, 74, 55, 72,164, 9, 79, -174, 96,168, 53,226, 83,154, 17,254, 41, 97, 2, 74,146,175,220, 6,208, 56,118, - 45, 14,215,252,187,246,120,122,166, 10,152,160,132, 37,238,164,150, 31,235,153, - 16,159,110,236,118,177,164, 57, 96,231,155, 20,139, 68,199, 62,172,128,215,108, - 11, 28,144,142, 51, 46, 59,147, 37,129, 87,112,202, 33,190, 3,217,224,130,195, -145,114,142,104, 21, 56,206,226,150,153,228,238,249,193,204,253,219, 50,252, 36, - 9,235,210,153, 59,172,233,149,171, 64,118,107, 43,164, 66, 43, 87, 4, 94,248, -179,153, 29,169,127,252, 81,139, 58, 49,196,240,210, 30,145,202, 64,223,232,230, -108, 38,132,213,148, 79,149, 66, 75, 21, 54, 45, 55,188, 56, 20,249,138,254, 50, - 1, 95,118,228, 36, 48,192,195, 14,179,169,219, 39, 16, 93,135,214,169,169,241, - 66,102,144, 29, 5,130,195,111,158, 65, 41,164, 69, 71, 89, 31, 18,225,158,143, -234,160,214,223,196, 8, 63, 63,107, 1,188, 11,204, 57,234,151,220,158,198,119, -202,240, 94, 43,222, 12,142, 43,168,153, 33,205,189,157, 3, 93,201,141, 27,192, -195,132,194, 20,144,136, 21, 79,249, 89, 95, 43, 66, 88,203,116,252, 66,231,191, -202,105, 24, 75, 99,248, 82,100,190,193, 10,247, 26,136, 62,169,188,165,194,102, -226,217,188,177,220,154, 67,209, 63,254,211, 85,243,130,110,201,195,226, 78,197, - 23, 94,240,131,119,125,172, 71, 44,240,153, 10,113, 80,152,161, 50,103,204,104, -108, 60,201,191,108, 77, 65, 67,230,117, 62,169, 52, 45,113, 76,126,108, 82,232, -246,206, 3,111, 71,141,198,155,187, 55,170,157,133,152,166,160, 32, 19,105,121, -118,164, 50,237,200,249, 58,176,226, 80,167,155, 96, 47, 20, 32, 32,133, 32,145, -174,150, 40, 68, 34,119, 80,174,222,124,237,244, 22,176,146, 84, 2, 26,198,152, - 22, 25,127, 44, 50,139,197, 75,124,172,168, 77,113, 55,176, 72,227, 78, 28,137, -114, 1, 16,238, 21, 45,175,249, 62,189,154,184, 13, 58, 42,116,155, 28,216,131, -203,113,141,206,120, 68,248,103, 91, 74,191, 44,210,159,146,101, 96, 37, 10, 66, -163, 57, 43,153,238, 20,134,168,152, 19,110,237,161,226,138,195,178,212, 5, 47, -132,114,184, 56,219,115,224, 43,214, 86,120, 87, 36, 28, 6, 50,230, 56, 90, 87, -111,116,209, 12,255,189,132,136,161, 62,245, 80,231,163, 7,101,177,120,219,221, -139,248,237,185, 50,207,225,120,160, 59,197, 11,105, 77, 88,149, 78,128,120,122, - 89,156,129, 59, 40, 18, 1, 73,191, 18, 38,128,169,222,221, 21, 33,165, 12, 10, -182, 73, 79,138, 80,136,102, 79,102,176,146,147,199, 7, 93,133, 41, 0,114,113, - 10,203,121,145,211,215,192,222,161, 3,233,152, 48,224,232, 61,215, 95,182, 78, -141,129,157,162, 20,168,190,120, 16,111,127,235,244,239,255, 26,150,186, 66,106, - 94, 13, 51,181, 37,103,152,106,133, 92,250, 12,255,235,137,255,211,106,179, 45, -238, 7, 17, 9,201,223, 41,170, 53,158, 48, 96,181,124,130, 16,198, 21,234, 6, -137, 93,200, 96,116, 8, 18,208,179, 96, 63,165,171,101,238,170,248,138, 54,198, - 19,190, 5,114,209, 50,191, 39, 90, 27, 99,222,206,251,126,247, 42,223,149,237, -126,223, 84,113, 96, 38,181, 33,126,115, 70,212, 66,142, 95, 83,225, 70, 18, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseGus_M_phase1.c: -uint8_t GB_JITpackage_15 [838] = { - 40,181, 47,253, 96,214, 9,229, 25, 0,134,100,113, 32,208, 28,231, 12, 34,100, -239,121,205, 27,203,134,128,226, 28, 13, 53, 26, 13,112,206,188, 47,217,127,129, - 47, 30,200, 82,243, 2,107, 0, 99, 0,103, 0, 29, 90, 78,129, 84, 1, 25, 84, - 13, 59, 27,119,232, 56,179, 86, 54,116,146, 4,255, 45, 20, 8, 69,193,145, 64, - 40,238,133,221, 63,108, 97,181,114, 3,248, 25, 43,151, 46, 59,250, 39, 2, 57, - 19,150, 89,207,203,195, 20,117,182, 47, 17,215, 57, 43,219,216,191, 91, 98, 88, -205,127,104,201, 50,229,154,225, 63, 18,141, 43,203,164, 29,138, 95,151,198,103, - 45, 67,186,152,153,178,138,233, 68, 6,210,201,229,135, 3, 87, 56, 28, 2, 4, - 66, 37, 35,144,103,124, 90,113,188,228,227,248, 76, 25,141,124,109,151,122,130, -112,187,241,115,207,158,203,171,186,245, 95, 66, 34, 57,203,187,178,199,246,148, -127, 8,137,215,250,108,215,249,227,191,229, 12, 98,249,159,165,248,241,172,174, - 71,142, 50, 24, 12,166,139,152,127, 51,146,172, 54,219,155,249,127,174,198, 33, - 12,138, 66,179,194,106,130,127,156,109, 69,155,111,171, 50,133,198, 55, 88,113, - 9,193, 99, 52,186, 91, 46, 30, 48, 68, 93,157, 14,171,137,199,179,140, 53, 43, -191,204,215, 62,219,159,157,115, 13,113, 71,180,170,219,144,247,235,218,124,203, -240, 30,130,118, 91,169,135, 44,160, 18,198,102,187, 69, 20, 2, 65, 34, 42,202, -208, 73,119,209, 6,102,217,116,245,109, 86,236,141,107,120,178,218,176, 77,124, - 14,114,196,199,209,116,147,242,232, 38,207,189, 58,228, 45, 58,161, 35,203,197, - 11, 28,119,195,109,207,124,251,118, 95,158,167,106, 50,229,122,181, 40, 8,184, - 64,112, 15, 4,187,174, 11,125, 60,183, 91,172, 47,129,128, 87,149, 20, 33,135, -193, 19,157,127,253, 58,243,224,181,211, 53,155, 76, 95, 43,182,106,172, 35, 56, - 82,112, 20,203,143,144,147, 44, 21, 79,134,182,198,215,110,228, 19,243,144,135, -148, 95,123,159,239,171, 12,191,127,249,172, 25,211,142,217,133, 44,163, 17, 72, - 17, 61,113,132,248, 28,128,159,168,145,169, 66,104,134, 2, 17,145, 36, 41, 40, -164, 49, 64,132,144,161,171,234, 1, 34,145, 72,131, 82, 84,133,136, 49, 2,105, - 2, 9,103, 38,144,236, 68, 37,137, 7,144, 12, 32,129, 60,250,226, 21,152, 70, - 20,247,254,248,195, 19, 58, 24, 12,143, 99,120, 76, 24,226,199,243,196,207, 84, -220,128,148,251, 75,189, 59,118,241,127, 20,250,202, 85,162, 30, 88,135, 86, 39, - 60, 85,129, 4, 47,139,117,137,148,227,194,173,141,181,172,156, 83, 24,202,225, -227,195,226,139, 57,105, 77, 34,199,174, 18,184,192,156, 0,153, 16,153,145, 35, -227, 56, 88, 57, 37,180,137,160,198, 57, 9,189,150, 29,245,216, 6,245, 3,192, -122,255,123,180,120, 77,240,206, 14,147,130,146,178, 30,206, 24,201, 54, 96, 9, -217, 11,157, 6,234,195,224,146,196, 39,232,246,103, 93,170,140, 57,245,135, 52, -238, 59, 89,169, 1,235,114,111, 49,182,234,198,122, 71, 94,143,211,186,242,114, -123,189,186,148, 73, 86, 62,240,186, 65,184, 76,149,166,124, 2,136,107,140, 1, -231, 92,246,213,170, 2,121, 53, 3,206,193, 88,216,101, 27,218,102, 53,164, 53, -152,173,102, 1,202,214,160,201, 42,147, 97, 61,210,193,104,204,158,138,186,199, -169, 2, 51, 31,232,226, 23, 4, 30, 21, 82,162,150,240,152, 53, 38,171,207,248, - 76,239,187,248, 3,197, 69,228,195, 8,209,159, 53,116,234,150, 56, 40,194,148, -131,192, 14, 52,231, 95, 31,218,193,251, 5,208, 61,254,240,186,109, 79,245,177, -161,217, 76,157,135,140,234,170, 21,205,174, 22,239,128, 14,110,158, 65,243,254, -193,196,150,173,205, 57, 53,124,243, 33, 28,254, 14, 48, 41,221,129, 38, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseGus_M_phase5.c: -uint8_t GB_JITpackage_16 [1094] = { - 40,181, 47,253, 96,105, 20,229, 33, 0,182,169,130, 33,208, 90, 61, 64, 7,193, -227,154,212,178,180,100,130, 86, 6, 0, 2, 59,124, 14, 78, 66,137,197,162, 54, - 75, 61, 12, 90,112,240, 2,124, 0,115, 0,122, 0,133,193, 65,112, 75,209,158, -223, 55,246,197, 36,238,250,142, 20,193,229,250,138,248, 34, 8, 69, 54,131,241, -174,246,229,151,243,188,151, 38,204,121, 20,234,123, 14,113, 40, 28, 4, 12, 67, -225,240,154,152, 61,199,241,202, 70,126,240,189,171,236,102, 10,123,158,235,124, - 23, 72,121,218, 45,105,156,157,219,177,170, 67,159,211, 38, 95,217,254,207, 65, - 2,159,247,192, 56,192,111, 40, 46,183,229, 89, 49,149,171, 36,151,111,107,138, - 21,225, 58, 91,150, 87, 72,235,171, 16,201, 19, 8, 84, 64, 32, 4,221, 95,149, -198, 93,155,226,107,133,247,178, 39, 5, 79,122,233,147,216, 61, 41,103,209,159, - 32,120, 62,133,105,219,102, 81,142,238, 59,223,152,204,239,125,206,223,107, 98, -209, 53,206, 74,111,216,244,189,252,251,117,125, 55,245,168,237,115, 6,207, 27, -140,119,155,218,132,159,227, 47,120,218,137,195, 25,230, 27,255,143, 7,164,249, -191, 77,242,243,182,169,119, 60,105, 48, 24,136,158,156, 60,231, 66,161, 44,238, - 88, 83,184,204,109,255,255,255,167, 20, 70, 3,144,243,187,231,239,218,119, 69, - 31,129, 95, 24, 52,238,185,190, 43,230,204, 56,161,199,243,129, 29,122, 69,123, -242,188, 77,150,185,111,239, 86,228,244, 13,135,247, 54,141,187,215, 18,139,236, - 67, 73,230,227, 84, 12,134,146,120,212, 55, 22,248,222, 3,107,216,201,132,145, - 26,122, 62, 27,140, 6,124, 17,239,171,111,217,199,203, 85, 28,151, 30,250,176, - 17,212,244, 69,173, 68,144,194, 9, 51,228, 29, 53,137, 1,180,145, 65,190, 95, -211,169, 66,170, 39,148,152,227,155,253, 77, 26,151, 1,148,198, 34, 25,142,166, -163, 79,188,109,224, 41,122, 12, 62,165,251,150,221,118,217,229, 18, 78, 60, 31, - 85,149,226,182,151, 87,215,182, 26,151,234, 54,201,154,205,250,101, 28, 77,102, -251, 34,155,207,166, 25, 46, 71,221, 88,111, 77,186,215,250,127,232,161,112, 64, - 53, 52, 9,100,108,223,251,158,241,229,131,225,182, 35, 4, 62,240,216, 11,192, -188,206,123,178,124,216,232, 43, 22,202,213,152,188, 35,192, 43,101,155,191, 92, -191, 76,154,159,187, 15,133,145, 12,165,158,242,107,199, 7,128,236,168,161, 49, - 67, 37, 51,146,130, 20, 20, 21, 50, 28, 48,132, 16, 82,140,170,234, 18, 81,168, - 67, 57, 12,225, 4,132, 32,163,136, 17, 16, 1, 97, 36,146, 64, 36, 70, 68, 98, - 90,139, 1, 33,232,190, 97,222,119,142,129, 28, 23,223,119, 20,205,159,247, 30, -180, 95,178,209,222,167, 9, 66,202,186,161,155,162, 58,210,151, 20,232,219, 13, - 82, 33, 12, 91,120, 14, 14,193, 10,254,205, 72, 73,221, 73,213,106,169,210,221, - 51,186,225,176, 42,157,207,133, 78,231, 46, 65, 82,178,204,108, 73,155,249,194, -128,106, 20, 95,149, 34, 0,167,177, 23,187, 30, 16,250, 28, 36, 38,253, 47,130, -172, 45,150,101, 11,230,208,242, 44, 86,108,236,204,142,200,250, 38,133,103,249, -200, 78,225, 96,147, 51,130,137, 58,152,114, 58, 45,238, 35,168,246,185, 64, 41, -242, 67, 37,108, 8,140, 32,242,168,160,112, 38, 68,205, 93,156,136,246,214, 0, -158,104,184, 1,186,150, 34, 49,212,147,213, 74, 81,191,236,145, 80,194,238, 49, -150, 45,188,239, 72,166, 83,201, 9,162,252,212,167, 18, 19, 87, 72, 21,225,137, -137,168,116, 35,180, 80,253, 25,157,238,190,252, 53, 52, 26,226,253, 57,238, 37, - 66, 79,232,244,209,136,163,131,235,248, 33,212,185, 76,240,148,131,103,226,150, -254, 10,152,170, 28, 91,144, 10,122, 68, 36,249,221, 98, 81,230,125,110,206,235, -208, 50,254,211, 24, 27,169, 66,224,183,127,169,198,191, 87, 68,132, 12,194,128, -134, 37, 73,217,216,254, 98,187, 43,228, 23, 35,148,166,122, 75,187,195, 85, 40, -140,102, 89,130,216, 34, 62,226, 25, 10,160, 45, 17,247,170,226,164,226, 3, 77, - 14, 32, 43,194,175, 36, 20, 84,151,157,237, 48, 63, 34, 0,163, 67,241,153,189, - 54, 62,138, 54,102, 2,232, 83,205, 92,150, 67, 73,199, 46, 93,251, 40,210,120, -191,108,217,156,207,123,191,187,203, 8,105, 40,168,147,181, 89,219, 93, 87,100, - 87,165,195,133, 5,243, 50,209,136, 76, 17,241, 76,195, 13,244,129,108, 92,245, - 32,248, 5,253, 93,209,237,152, 28,214,116,207, 13,241,129, 63,185,149,217, 26, - 36,194, 21, 57,125,132, 74,144,237, 16, 74,203, 54,184, 57, 67, 38,127, 98,144, -242, 45,116,131,241,184, 42,138,187,130, 99, 0, 38,242,255,113,187,115,111, 29, - 74,121, 1,237, 56,138, 83, 9,212,160,224, 19,206, 61,136,240,251, 7,240,192, -219,239,102,137,210, 26, 74,196,228, 26,205, 15,154,243, 15,166,110,181,183,157, - 44, 58,231,147,156,236, 34, 68,129, 16, 87,154, 4, 78, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase1.c: -uint8_t GB_JITpackage_17 [764] = { - 40,181, 47,253, 96, 78, 8,149, 23, 0,182, 99,107, 32,224, 90,117,160,231,236, -231,115,156,176, 66,181,246,104,133,192,205,131, 4,183, 68, 37,213,119,164, 94, - 3, 51, 12,193,188, 23,103, 0, 96, 0, 99, 0, 18, 77, 97,196,168,147, 45,111, -110,111,137,212,155,143, 99,247, 77,145, 56, 36, 8, 13,196, 33,113, 13,204,190, -217, 70, 81,201, 11,221, 87,165, 91,146,221,249,198,233, 46, 94,201,164, 39,197, - 97,114,248,246,137,131,137,150,146, 47,235,183, 90, 90, 20,189, 63,216, 99, 41, - 34, 87,246, 14, 4, 91, 90, 50, 63, 76, 89, 63,123,162,176, 61,105, 9,126,138, -149,169,162,246,243, 84,221,231, 81,110, 48, 96, 4,131, 33,191, 76, 58,119,211, -231,125,157, 9,229,191, 54, 24,208,241,193,253,218,179, 67,241,144,139,226,239, -183, 96,220,218,217,127,172,133,213,147,237,107,166,173,179,200, 43,151, 82,229, -253,101,123,219, 15,245,207, 50,188,120, 82,242,143,135, 10,133, 2,232, 97,229, -219,106, 28,105,223,174, 22,236, 80, 72, 16,184, 4, 82,179,187,227,228, 14,251, - 86, 30, 89, 8,108, 43,131,125, 33,120, 2,218, 35, 89,229, 68,170,137,157,248, -117,226, 42, 44, 47, 94,197,163,218,220, 61, 19, 73,198,242,153, 68, 68,247,226, -206,167,218,183,150,224,234,154, 36,223,118,132,251, 67,162, 8,186, 25, 57,246, -214,225, 16,200, 89,213, 36,210,190,153,104, 62, 21,151,235, 19,206,166,211,112, - 62,142,229,243,178,135, 29,176,220,231,173,124,174,229,203,147, 89,191,101, 75, -193,143,180, 65, 54,237, 49, 71,230, 5, 24,246,194, 44, 55,163,168,165,131, 65, -101,182,183,148,123,138,107,127,227,211,121,181,240, 16, 64,183,216, 15,238,247, -164,215,126,157,217,153, 20,172, 60,162,192, 63, 4,130,143, 42,127,143,123,230, -185, 31, 14,106,131, 65,118,200,195, 95,203,182,242,232,150,201, 18,100,209,195, -254,106, 60, 41,159, 84,251,210,218,228,201,247, 91,237, 11,134, 61,170,172,189, -131, 60,128,135,168,129,173, 83, 68,164, 68, 70, 10, 11, 74, 10, 25, 14, 48,134, -144, 82, 85,212, 3,194,105,154, 36, 33,158,114, 2, 34, 48, 88, 64, 51, 50,202, -191,138,117, 12,148, 4, 2,230, 31,202,172,121, 77, 19, 56, 50,123, 80, 65,218, - 14,227,159,117, 23,113,170, 29, 2, 25,232,171,176,225,182, 5, 24, 50, 1, 6, - 66,243,113,232,166,186,197,147,120, 56, 37,128,124, 1,215,222,121,102,203, 92, - 48,163,102,187,173, 56, 43,213, 93,230, 56, 53,235, 17, 23,102, 66,208, 26, 13, -236, 2,124,128, 52,225, 33,155, 37,196, 63, 37, 38, 53,108,131,136, 84,235,180, -200,179,118,232, 23,184,213,168,138,169,243,136,221,165, 4,233,136, 65,250,168, - 36, 28,161,160,195,134, 5, 29,195,114, 61, 20,216, 36,185,244,204,211,245,101, - 21,219, 15, 8,254,200, 10,170,229, 36, 19,159,145,176,251, 84,133, 88, 43,178, - 35,106, 93,235,225, 1, 17, 5,204,171,163, 72, 50,148,158, 4, 15, 26,252,242, - 85,160,226,221, 21,235,169,254,206,251,169,227,220,197, 38,196,211,223,132, 46, - 87,236,190,158,171, 46, 21, 5,145,168,114,133,143, 24, 82,219,190,232,146, 30, - 52,118, 99, 42,169,149,130, 64,175,249,255,150,225, 31, 8, 55,224, 61,175,194, -182,149,145,104, 21, 33,166,197,185,117, 22,215,138, 34, 43, 97, 59,237,108, 46, -238,108,106,211, 28,255, 96, 82,212, 45,246, 25, 16,184,103,240,176,126, 33, 76, -168, 58,192, 24, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase5.c: -uint8_t GB_JITpackage_18 [930] = { - 40,181, 47,253, 96,118, 17,197, 28, 0,102,231,120, 32,208, 92, 23, 3, 12, 34, -210, 48,115, 79,189,251,237,101,102, 38,131,210,156,195, 50,233, 64, 81,118, 90, -228,106, 6,188,120,130,115, 0,108, 0,110, 0,120,231, 59,106, 14, 87,231, 43, -226,205,129,116,241, 32,198,235, 74,175,190,159,235, 93,166,240,231,171,149,119, - 67,131,161, 96, 28, 34, 11, 5,227,156, 56,184, 65, 99,151,189, 28,225, 61, 86, -238,147,133, 67, 55,128,188,141,165, 68,109,138,145,160,160,187,113, 11,180,153, -218,178,126,230, 27,242,169, 93,118,255, 34, 78, 47,171,149, 47,121, 92,109, 75, -180,114,206, 92,117, 11,115,117,106, 79,177, 54, 98, 40,204,234,106,129,121,213, -130,121, 34,177, 29, 18,137,175, 95,109,197,175, 44, 22, 47,170,187,171,170,165, -134, 64, 76,108,163,172,123,142, 63,247,205,244,124,253,204,255,187,223, 86,198, - 59,159,226, 57,197, 41,131,147,135,159, 22, 5, 89, 86,137,221, 79,166,105, 58, -250,125,168,229, 99,182,231, 84, 6,201,224,251,190,169,127,219,102, 92,161, 96, - 87,147,238, 91,167,152, 52, 79,185,105,126, 87, 7,100,103, 60,120,122,146,255, -191,205, 54, 5,130,113,184,165,104, 81,239,146,244, 98, 50,132, 67, 22, 87,175, - 46, 24,118, 42, 72, 83, 75, 97, 88, 67, 48, 51,170,177,116,231,251,187, 74,101, -172,111,175,109,105,249, 77, 77,206,228,184,244,162,177,242, 52,218,117,213,184, -122,131, 11, 4, 95,160, 82,203, 34,241,152,111,237, 63,193, 59,229,171, 32, 40, - 4, 47, 21, 12,137, 60,156,206,135,200, 55,245, 91,238,241,234,214,247,153, 53, - 46, 67,255,246,217,199,229,187,114,137,159,230, 3,134,228, 29, 51,137, 3,227, - 53,254,247,124,203,219, 86,251, 37,252,116, 64,221,113,161,240,161,166,227,239, -220, 25, 63,189,229,182,131,205,198,171, 31, 48, 19,242, 10,222,197, 35, 42,212, - 54, 44,211,157,219, 63, 24,210,124, 70,149,148,233, 78, 56,254,140, 2,248, 9, -155, 78,102, 8,148,239,141,136,131,177,137,189, 73,247,157,218,173, 43,229, 30, - 74, 65,105,124, 20,155,166, 53,171,119,242,188,121,216, 29, 51, 38,129,151,208, -156, 61, 91,113,204,183, 78,110, 65,223,253,177,244,186, 42, 1,128,178,168,129, -169, 82, 12,201,200, 40, 72, 65,146,210,112, 64,132,144,161,170, 42, 15, 18,121, - 36, 78, 50, 28,130, 51, 74, 96, 5, 68,128,200, 9,136,226, 36,146, 60, 18,170, - 26, 3, 25, 44, 38,217, 27,147,118,174,134,214,178, 14, 98, 36, 47,253,198, 68, - 98, 50, 55, 37,216,101,181, 69,166,213, 19,176, 66,177, 55, 37, 96, 82, 99,146, -171, 94,109, 94, 0, 22,163, 80,162,194, 41, 77, 89,220, 3,225,133, 58,217,201, - 62, 54,129,177,160, 84, 81, 48, 65, 99,185,247, 84,188, 1,103, 40,166,132,157, -182,240,145, 9,124, 83,105, 89, 83, 48,131,153,202, 8,143,252,158,110, 76, 42, - 77,224, 83,176, 47, 13, 57, 16, 58,173,165,206, 12, 75,240,128, 67,193, 34, 23, - 10,237,209, 56, 64,168, 55,228,164,118, 83, 70, 33, 48,143, 14,130,180, 16, 72, -253, 97,230,228,146,235, 70,162, 91,115,245, 56, 43, 90,187, 92,118,239,227, 72, -194,161, 40,193, 40, 81,108, 0, 88,196,151,212, 18,129,235, 14, 33, 74,117, 78, -155,186,187,162,182, 68, 9,117, 18, 29, 67, 54,154, 81, 37, 48, 84, 29, 38,109, -149,181, 58, 37,182,119,252,106,185,205, 30,214, 40,148,216,115, 82,244, 27,255, -150, 36,231,171, 48,250, 13,198,248,145,198, 4,246,154,108,162,211,131,251,232, -163, 78,110,210,232, 66, 84,168,226,118, 43,183, 53, 38,210,241,165, 78,255, 31, -116, 10, 3, 1, 40, 92, 95,148, 56, 55, 45, 90,229,158,169, 26,244, 73,122, 10, - 85,207, 29,141,189,131,197,222,182,102,176, 64, 16,100,179, 30, 24, 11,145, 55, -139, 61,157,116, 74,123,144, 90,180,252, 99,244, 91,220, 18,134,171,160,208,141, - 43, 15,232, 19,136,157, 59, 41, 96, 51, 42,252,230, 57, 93,120, 81, 77, 69,126, - 28, 2,199,144, 5, 24, 85, 73,251, 90,148,220,171, 20,151,202,100, 1,216,201, - 26, 21,245, 72,184, 67, 36,252,131,230,247, 15, 38,173,222,186,158, 59,129,119, -126,139,239, 12, 1,175,106, 5,136, 1, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase1.c: -uint8_t GB_JITpackage_19 [789] = { - 40,181, 47,253, 96,149, 8, 93, 24, 0, 6,228,109, 34,208,152,205, 1,192,153, - 59,213,232, 77,168,100,135, 83,136, 96,106,211,224, 67, 42, 72, 24,160, 62,212, -252, 5,190,120,144,165,230, 5,103, 0, 96, 0, 99, 0,144, 75,246,105,210,217, -184, 49,199,121, 4, 85,204,203,146, 59,134, 56,104, 7,194,194,160, 29, 46, 8, -175, 99,184,146, 40,228, 25,247,211,152,175,168,102,142,125, 92,165, 27, 77,122, - 74, 24,230,215,185,142, 62,203, 3,124,204,181,116,204, 94, 76,162,249, 15,107, -121, 61,162, 19, 62,195,208,152,142, 38,232,229,107, 65, 60,146, 52, 62,233, 13, - 65,196,201, 52, 81, 12,118, 38, 14,236, 36, 47, 20, 44, 66,161, 16,138,108,235, -101,187, 61,199,116,252, 88,106, 24,124,250,188, 22, 84, 47, 62,102,112, 56, 50, -219,141,159,251,244,124,237,113,253,227,152,230, 16,132,176,122,121,103,252,175, - 86, 38,222,255,188,226,201,147,138,222,120, 39,203, 50,206,197,201,177, 83, 89, -210,154,171,165,188, 80,248,127, 43,101,105,217,129,208, 99, 72, 77,238,140,179, -171, 88,179,237, 15,133,208,216,118, 88, 43, 4, 77, 61,230,223,108,235,115,253, -217, 57,211, 16,123, 98,253,216,222,222, 35, 91,179,189,225, 5, 26,202,134, 60, -130, 99, 34,151,205, 68,165,122,228,195,112,151, 15,252, 40, 96,119, 93,172,129, - 83, 54, 69,109,123, 44,189, 49, 13, 95,210, 26,182,137,111,109,215, 58, 36,201, -185,249, 96, 92,221,115,131,182,135,192, 14,204, 68, 36,255, 5,131, 1, 45, 27, -219, 51, 62,171, 72,222,113,146,124, 6, 19, 1,150,181,194, 93, 87,167, 51,219, -126,169,237,233, 96,128, 65,180, 20,183,167, 52,239, 88,143,206, 92, 47,174,222, -212, 31, 91,201,202, 53,182,115, 38,103,146, 28, 9,114,164,120, 79,110,215, 68, - 32, 22, 10, 24, 34,109,227,157,249,237,225,227,182, 30,101,237,179, 29,221,112, - 19,143, 29,203, 39,205, 24,244,204, 11, 19,201,100,184,199,183,221,112, 77,124, -198,135, 59, 6, 94,135,212,196,228,121, 75, 1,128,144,168,161, 37, 99,102,130, - 18,145,130, 20,164,160,146, 14, 48,132, 16,132,172,140, 7, 2,209, 40,132,114, - 88,196,140, 17, 12, 54,129, 4, 9, 10, 74,202,127, 61,128,208,208, 68, 39, 91, -137, 23, 60,166, 50,236, 18,144,169,202, 20, 25, 37,236, 35,100,229,202,238, 5, -249, 6,134, 21,150, 5,191,127, 16,153,131,150,224,207, 40, 73,225, 13, 44,226, - 67, 38, 24,247,123,108,252,205,177,176,169,163, 65, 57, 30, 29,193,181,206,173, - 23,117, 84, 47,109,147, 81,210, 72,151,184,104,202, 66, 63,194,103,147,228,120, - 36,153,139,100,126, 38, 23, 94,179,127, 16,166, 72, 38,199,167,238, 34, 39,139, -248, 67,200,222, 24, 9, 65, 42, 52, 26, 99, 8,170,138,133, 19,230,123,226,117, -171, 80, 57,212,169,165,227, 81, 98,254, 8,156,132,242, 12, 55,254, 83,163,181, -178,100,228,190, 31, 7,164,246,174,160,168,218,126,217,221,104,145,150,163, 57, - 67,189, 98,146, 7, 85,169, 34, 24,139,255, 96, 67,128,175,230,207, 26,189,166, -179,169,120,107,160, 61,149,244,225, 72,141,154, 40,168, 2,121,100, 86, 99,229, - 3,240, 32,108,243, 64,145, 90, 80,196,243,170, 64,166,102,124, 65,151,187, 28, -185,147, 57,210,169, 17,154, 88,236,194,162,140,138, 8,196,220, 66,255,216,233, -195,107, 54,111,227,117,223, 22,186,190, 11,236,176,127,204,147,242,134, 28,245, - 7, 21, 23, 30, 56,104,253,127,208,196,169, 96, 90,234,150,129, 46, 1,254,121, - 70, 46,123, 50, 48,169, 58,174, 19, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase5.c: -uint8_t GB_JITpackage_20 [979] = { - 40,181, 47,253, 96,232, 16, 77, 30, 0,166,230,119, 33,208,154,233, 64, 7,238, - 70,126, 9,199, 65, 35,252, 58,136, 18,211,129,143,110, 23, 0,144,205,173,250, -131, 43, 60,233, 32,126, 1,114, 0,104, 0,111, 0, 54,223, 46, 47,132,198,183, - 73,139, 33,128, 40,155, 66,217,169,181,113,115,142,243, 73,178,156,155, 76,221, - 55, 69,226,144, 32, 56, 16,135,196, 5,100,246, 13,219,212, 72,121,161, 59,235, -204,233,201,134,223, 58, 29,102,114,170,227, 90,121,168,157,206, 22,213,193,190, -221, 20,167,198,252,111,147, 65,199, 73, 64, 64,196,251,131,209,120, 60, 85, 17, -204,233, 21, 49,170,210,120, 29, 83, 82, 84,176,212,213,136,197,201,170, 19, 39, -149, 27, 12, 24,193, 96, 8,104,232,170,231,169,199, 92, 2, 77, 27, 77, 17,200, - 51, 94,173,137,158, 59,138, 62,139,139, 70,190, 54,251,154,154,183,123,244,242, -142, 8,173,236, 53,189, 36,155,226,111, 8,142, 43,220,110,252,220,172,231,244, -122,223, 14,156,160,180,217, 12,252,227,255,209, 53,114,145, 13,221,180, 60, 64, -192,177,253,233,125,230, 55,121,109,103, 67,241,152,255,255,199, 48, 23,118, 40, - 36, 8,125,146,163,218,253,177,182, 53, 3,106,198,249,194,176,243, 58, 88,147, -163,138,209, 53, 85,165,107,231, 60,146, 24, 59, 34,113, 78, 3, 65,211,150,183, - 95,131,238,156, 39,126,157,204, 71, 17,191,208,179, 1, 53,222, 73,187,246,109, - 82,217, 24,133,237, 25, 98,119,149,143,204, 19,220, 54,165, 72,239,194,249, 50, -102,151,215,180,129, 71, 54,121,110, 82, 73,156,136,225, 87, 73,203,167,249,164, -107, 79,200, 27,117,109,190, 41,121,193,225, 92,118,147,112, 81,235,150, 72,200, - 69,104, 24,246,162,100, 56,154,206, 85, 59,143,189,146, 86,211, 60, 53,116,235, - 97,107,159,121, 36,101, 24, 76,103, 9, 59,173,163,108, 60, 26,215,216,212,175, -252, 21,228,130,252,127,225,133,243, 17, 65,150, 65,198,120, 64, 60,126,112,206, -222,197,221, 60,109,214, 89,212,118, 17,200,185,119, 42, 55, 66, 71,180, 67,197, - 14, 53,211,163,144,131, 62, 74,230, 34,150,208,251,200, 39,234, 33,199,103,173, -157,194, 36,131, 55, 16,130,237, 91, 94, 69, 48,128,211,168,113,177, 98,106,134, - 36, 41, 40, 40,168, 20,134, 3, 64,132,144,169,170,162, 7, 2,113, 36,138,147, - 12,131, 20, 48, 99, 28, 18,140, 80, 80, 49,146, 87, 20,164,202,112,153, 5, 40, -203,128,114,252, 50, 65, 6, 91,194, 80,132,212,128, 82,125,169, 36,106,127, 7, -172, 71,116,234,141, 84,220,186,177,149,244,141, 7,183, 67,171,180,153,168, 28, - 65,138, 96, 41,183, 12,165, 43,133,188,209,123,179, 10,117, 21, 30, 80,222, 45, -148,168,246, 29, 37, 38, 36, 53, 9,136, 90,245,254,255,105,194,153,107, 2,209, -198, 30,114,169,164, 7,178,123, 4,122, 21,181, 3,197, 59,185, 35, 73,145, 20, - 6, 98,231,148, 93,234,103,229, 37, 19,144,160, 32, 24, 16, 74,128,196, 53,164, -109, 70,134,106,133, 54, 23, 90, 74,135, 80, 52, 34, 52,202, 87,213,239,161, 51, -206, 2, 91,199,100,139, 66,150, 1,155, 18,162,108,115, 44,207,113,180, 27,125, - 47,246, 60,164,157, 81,183,145,148, 85,241, 46,245,194,114,213,213, 4, 5,144, - 61, 71, 8, 41,249,212,233,255,189,177,124, 3, 69, 24, 18, 42, 98, 76,191, 12, - 28, 52, 4,159,117, 81, 47, 52, 26, 17, 30, 25, 65, 12,161,141,173, 6,251,126, -104,122, 43,120,231,246,194, 71, 41,100,119,161,193,185, 39,238,132, 95, 12,180, -129,182, 60, 93,194,100, 21,235,224, 16,234, 34,175,169,174,181,225,129,168,139, -223,148,249, 9, 36, 13, 12, 7,231, 19,176,244, 28, 67,182, 6,254,178,231,241, -103, 8, 86, 14, 76, 85,104, 97, 10,137, 81,103, 31,109,177,150, 78, 75, 95,113, -220,199,214, 48,192, 25, 99,120, 57, 15,235,211,209, 55,157,126,229, 39, 59,160, -132, 93,176,234,222,114,109,156,222, 21,119, 10, 89,171,221,230,216, 1, 95,197, -240, 47, 49,220, 15,252,170, 85,155, 69,230, 35, 61, 28,209, 18,160,109,196,208, -196,246,137, 98, 36, 54, 49,178, 4, 21,238,130, 63, 59,243, 6,157, 11,109,247, -140,160,106, 51, 96, 30,243,223,245,241,187,243,244, 37, 7,156, 34,123, 64, 1, -211, 19,234,232,222, 48,155,129, 77, 51, 40,166,149, 28, 29,209,160, 89,250,131, -137, 43,155, 77,168, 99, 7,213, 53,194,223, 20, 9,149,198,170,104, 32, 6, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseHash_M_phase1.c: -uint8_t GB_JITpackage_21 [973] = { - 40,181, 47,253, 96,248, 12, 29, 30, 0,214,106,129, 32,208, 92,117, 12, 66,236, -247, 27,111,159,131, 98,141, 5,189,134, 34,104,163, 71,153,181, 89, 13,186, 46, -163,212,195, 11,148, 18,124, 0,116, 0,121, 0,134, 38,195,138,126,135,164,109, - 71,155,111,139, 25, 67,227,219,161,229, 24, 72, 21,208, 65,108, 87,218,184, 67, -199,153, 84,217,208, 77,243,123,199, 88, 36, 22,134,135, 34,177, 56, 23,110,239, -176,117,213,202, 15,223, 99,100, 62, 89,118,244, 78,244,113, 38, 36, 90,211, 11, - 4, 21,117,182, 45, 17,160,115, 50,219,215, 59,241, 36,115,179, 78,254,161, 53, -207, 20, 43,134, 15, 81, 52,174, 36, 10,118, 64, 18, 87, 76,227,180,158, 33,200, -136,161,176,138,193, 9,236, 3, 39,151, 35, 16, 0, 3, 2, 17,215,110,169, 43, - 10,135,219,141,159, 59,246,124,222, 78, 1,249,199,119,246, 18,174,236, 32,219, -119,213,181,247,214, 16,191, 77, 75,190,142,211, 55,174,225,177, 37,243,104, 47, -118,122, 94,149, 61,229, 93, 66,194,173, 58,187,117,222,137,109,209, 86, 24,158, -183,117,200, 8, 56,140,227,197, 91,143, 50,221, 98, 46, 57,249,220,156,195,120, -254,233, 57,190, 76, 43,235,145,163, 14,135,131,233, 35,230, 93,204, 52,171,205, -246,102,142, 64,252, 63, 96, 6, 72, 28, 22, 1, 87, 60, 49, 62,227,197, 37, 5, -174,225,216,110,185,120,190, 16,200,234,116, 88, 81, 92,166,231,171,201,252, 51, - 95,251,108,159,118,206,157,209,138,183,189,119,235,218,124,207,240, 92, 66,118, - 87,169,135, 44,160, 18,134, 70,187, 69, 20,250, 64, 34, 80,148, 1, 39,219, 71, - 43,136,101,148,213,199,246,183,201,151, 89,109,216, 40,246,158,184,228,168,178, - 52, 29,165, 64,182,201,115,171,238,125, 5, 78,192,145,229, 82, 40, 84, 51,226, - 61,227,212,142,229, 37, 47,203,103,176,225,200, 1, 0, 64, 13,183, 77,243,237, - 55,153, 1, 99,115,156,216,102,138,213, 90,129, 95,224,131,193,185,239,219,182, -208,199,243, 81, 68, 53,239,133,194,237,198,199, 85, 85,205, 87,223, 99,219, 58, -199,219,119,221, 74, 51,231,121, 47,107,167,169,115,137,209, 59,130,112,237,237, -197, 19, 56,206,110, 63, 93,179,201,244,181, 99,139,101, 45,193,175, 28,207,151, -222, 73,150,138, 39, 3,174,202,207,196,219, 96,228, 19,244,222, 67,202,175,189, -236,222,231,219, 58, 67,140,232,195, 4,128,191,168,241, 25, 51, 36, 51,129,200, - 72, 10, 74, 82, 72, 7, 80,134,136, 80, 21,149, 7,194,248, 32, 4, 18,141, 69, -144,128, 10,148, 9, 38,144, 72, 40,144, 64, 36,144,236, 4,201, 14,144, 46, 64, -150,117, 96,137,228,232, 1, 81,232, 40, 16, 13, 0, 88,164, 71,233,140, 92, 36, - 86, 18,181,188,243,173, 27, 9, 84, 40,110, 69,189,171,114,187,134,154, 85, 8, -108,162,194,128,201,161,176, 91, 98,195, 10,119,183,161,237,214, 9, 71, 64,134, -161, 24,228, 45, 2, 83, 66,232, 20,116,135,234, 30, 16,187, 27, 36, 3,109, 46, -195, 28,243,200,203, 11,153,143,201,115,249, 70,120,227,133,133, 70, 49, 7, 97, -134,156, 1,151,213, 9, 25,106,134, 49,128,116, 47, 33, 95,197,135,219,239, 37, -140, 78,247, 30,135, 93,177,194,147, 89,216, 96,217,208,138, 75, 54,221, 21,132, -251, 74, 79,134,241,230,140,190, 81,230, 6, 54,153,171,162,221,185,111, 30,122, -173,222,201,166, 56,129,181,220, 30,122,251,112, 77,100, 72, 28,200,157,180,152, - 83,128, 65, 53,197,121, 93, 3, 33,139, 2,159, 32,155, 18, 26, 9,159,195, 82, -215, 39, 12,241, 92, 42,211,137,233,128,127,108, 40,219,144,137, 98,159, 62, 14, -229, 95,139, 59,149, 13, 97,151, 9,133, 22, 14,169,197,143, 53, 12,156,162, 2, - 93, 69,200,131, 32,104,164,132, 5,128,119, 67,218, 20,243,133,117,214,184,228, - 97,118,214,177, 53,252, 83,205, 62,172,145,190,164,193,248,178, 48,212, 99,112, -122, 60,241,115,243,168,228, 18,199,198, 4, 90,108, 11,157, 22, 56, 82,188, 7, -125,210,192, 91, 88,125, 63, 33, 54,202, 82,156, 3,113,156,224,128, 2, 77,155, -185, 80, 34,244,253, 39, 55,124,111,194, 12,123,248,204, 11, 21, 52,145,100, 13, - 88,222,185,174,236,151, 18, 43, 17, 44,239,237,172,185,124,132,193,239,149, 65, -225,123,222, 34,244,129,114,140, 17,141,245, 31, 52,125, 84, 48,197,138, 39, 31, - 79,139,123,220, 35,204, 48, 16, 14, 74,209, 5, 15, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseHash_M_phase5.c: -uint8_t GB_JITpackage_22 [957] = { - 40,181, 47,253, 96, 51, 13,157, 29, 0,166,103,122, 32,208, 30, 23, 3, 4,229, -206,118,228,234,138,161,151,139, 54, 95, 34, 66,117, 69,176, 0, 60,199, 98, 59, -200,213,112,192, 61, 21,117, 0,107, 0,114, 0,228,170,154,225, 31,167,189,227, -221,217,138, 25,130,213,217,174, 46,135, 96,170,128, 10,162,141,157, 86,219,208, -245, 38, 89, 55,116,151, 43,252,167, 72, 28, 18, 4, 7,226,144,184,183,234,254, -233, 27,171,149, 23,194,211,200, 93,190,238,232,159, 40,228, 76, 72,179,158,151, -135, 41,178,251,194, 68, 28,227,255,254,111, 34, 8, 35,146, 14,132,242, 7,195, -234, 74,154,180, 67, 73, 93, 49, 86,159,181, 92, 81, 5,205,156, 85, 77, 39,179, -144, 78, 46, 55, 24, 56,130,193, 16,223,250,188, 35,126,228, 24,127,211, 69, 99, -231,219,169,142, 24,100,107,245,183,165,125,151,249, 67, 68,190,251, 72,153, 89, -151,242,239, 16,241, 90,223,237, 58,127,140,133,113, 76,157,126, 49,143,156,252, -182,156,194, 88,254,103, 57, 30,159,245,117,200, 83,133, 66,225,244,143,230,114, -213,187,111,206,140,152,151, 59,223,139,246,180,123,215,149,190,152,171,169,175, -239, 59, 31,214,117,159,252,255,115,156,141, 59, 20, 18, 4, 27,183,251,109,168, -107, 54, 25,155,239,104, 69, 64, 68,133, 43, 14, 49, 13,241, 88, 30,127,102,197, -124,193,155, 44, 21, 79,134,182,240,109, 89,204,150, 66, 62, 49, 39, 19,140, 40, -196,128, 71, 36, 30, 25,228,251,192,183, 70,128,247, 22,141,238,150,139, 39, 12, -209, 71,215,249,182,172, 22,237,208,145,229, 82,138, 47,247, 89,249,146,224, 45, - 44,223,157,203,213,189, 67,247,145,240, 84, 45,183, 86,224, 83, 24,159,110, 82, - 40, 38,103,243, 6,131,234,130,128, 1, 28,119,235,222,162, 20, 90,177,132, 44, -152, 81,120,161, 21, 79,232,195,141, 86,204, 48,240, 30,185, 58,171,213,148,118, -214,124, 85,244, 44, 71,138, 75, 26,118,161,143, 39,164,136,194, 10,136,100,119, - 21, 77,216, 65,171, 93,246,118, 7, 3,138,121,250,165,236, 25, 6,188,183,255, -117,183,140, 50,161, 18, 53, 33,100, 54, 95,223,223,127, 22,118,110, 1,190,245, -145,111,124, 57,164,142, 7, 30, 87,123,170,238,129, 55, 8,158,239,239,197, 11, - 60, 47,128,201,168,177,165, 67, 37, 50, 34, 10,146,146, 36,133,225, 80,132,200, -208, 25,231, 1,194,232, 60, 2,178, 52, 1, 34,136, 8, 16, 17, 40, 66, 4, 39, - 16,161, 80, 2,145, 80,196, 82, 29,217,184,192,134,121,115,228, 44,151,255, 17, -118, 70, 9,135,158,206, 27, 42,221,153,102,231,146,118,143,140,230,188, 60, 18, - 44, 73,253, 15, 38,116,216,148,137, 20,166,117,104, 1,240,187,250, 69,106,186, - 95, 47, 66,130,170, 4,181,154, 39,121,172, 14, 87,133,125,174, 37,179,179, 34, -131,118,159,176, 59,135,172, 27,156,157, 55,177,240,106,169,120, 65,227, 5,247, -232,121,159, 52,215,184, 18,244,171,122, 85,123, 64,161,235,178, 95,216,117,186, -241,210, 44,192, 3,196,137, 46,195, 52,217,184,106,109,178,207,188,215,169,185, -244, 58, 93,170,185,111, 47,209,141,158, 35,170,242,144, 38,166,194,141, 35,235, -121,136, 37, 35,185,142,201,104,180,188,141, 28,231,215, 58,132,162,214,147,255, -198,171, 57, 93, 60, 22,194,183, 25,135,121,142, 4,209,210,246,230,254,139, 53, -205,169,189, 12, 50, 56,219, 69, 83,197, 53, 75, 96, 65,147, 7, 12, 80, 68, 77, -166,148,167,136,184, 2,188,103,230,140,186, 67,140, 53, 84,119, 56, 90,200, 6, -181,145, 17, 24, 15, 77,216,135,140,182, 61,116,253,141, 55, 76,219,211, 86, 27, -143, 79, 68,248,121,204, 48,151, 5,101,228,192,132,117, 94,160,138,234,167,232, - 39,252,178, 25,196,242,100, 16,152,177,215, 59,115,185, 84, 36,234,244,184, 76, -172, 79,162, 93,201,219,164,168,242,249,237, 82,118,187,214,164,113, 36,168, 79, - 64,253,171,194, 65,172,252,123, 59, 49,171, 28, 14,160,192,137, 15,238,237,140, -155, 28,108, 74,234,172, 71, 27, 76,139,168,226, 98,239,227, 39,156,169, 80, 21, -145,155,114,221, 68,255,214, 3,163,142,157, 50, 62,183,225,249,224,255,192,251, - 64,100, 22,135,250,203, 24,132,130, 40,186,151,156,180,125,208,148,254, 96, 26, - 85, 70, 52, 20,211, 51,195,198,106,120,246,133,248, 83,234, 40, 78, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase1.c: -uint8_t GB_JITpackage_23 [829] = { - 40,181, 47,253, 96, 94, 9,157, 25, 0, 70,230,114, 32,224, 90,117,160,231,236, -231, 27,109,180,176,116,159, 33, 3, 19,181,169, 24,191, 37, 75, 83, 30, 52, 94, - 3, 51, 12,193,188, 23,110, 0,102, 0,104, 0, 76,251, 66,240, 72, 52,219,199, -168,146, 45,111,110,111, 56,234,205, 75,165,238, 90, 2, 97, 64, 16, 24, 7, 3, -226, 25, 21, 92,179,141,154,146,111,221, 87,225, 29, 77,221,185,198,233, 46,144, -144,156, 37,165, 65,114,248,246,137,131, 97, 0, 15,111,167,174,125, 99,120,217, -244,240,167, 93, 26, 69,166,149,125,227,192,118,134,164,135,185, 99,245, 66, 59, - 43,108,203, 57, 82, 47,177, 34, 85,211,122, 16, 85,231, 65, 40, 47, 20, 48, 66, -161, 16,162, 31, 6, 31,151, 99, 29,245,118,104,252,224,181,254,163, 50,219, 95, - 94,253,142,245, 17,205,240,200, 72, 90, 11, 48,215, 62,110,242, 68,233, 88, 79, -111,128,216, 6,130,255,234,124, 8,244,174,252,241,240,151, 47, 27, 56,254,229, - 8, 94, 44,167,233,142,135,182,109, 3, 29,172, 92, 91,149, 74,179,111, 87,203, - 11,133,255,199, 90,152, 97, 67, 16, 56,164,147,236,222, 40,185,193,190,149, 63, - 11,129,109, 13,247,227,173,253,219, 47,249,222, 73, 45, 6,236,175, 50,119, 62, -213,190,117,164,207, 12,172, 74, 18,125, 51,209,124, 42, 46,215, 39,156, 77,167, -225,120, 28,139, 7, 17, 28,236,192,234,146, 38,190,237, 87, 14, 83,103, 59,233, - 75,179, 41,147,246, 24,119,195, 31, 15,137, 34,232,100,164, 33,128,252,242,136, - 59,201,131,120,157, 9, 37, 27, 12,102,201,193,253,218,178, 65,241,143,139,226, -175,167, 88,220,218,130,202, 28, 24,246,178,220,175,236, 37, 78, 46, 69,171,242, - 86,254,188,109,238,131, 1,247,110,238,113,236,173, 20,215, 91,141, 79,229,205, -106,191, 15,102, 89, 11,186, 22,187,115,112,191,229,188,214,235,200,142, 20, 59, -209,235, 68,112,188,120, 21,127,181,185,123, 38,146,140,197, 35,137,117,210,175, -178,231, 56,132, 60,119, 26,121,237,250, 91, 79, 35,173,112,186, 10,247, 3,226, -143, 1, 6,195,116,146, 86, 44,199, 20,135, 1,128,156,168,193, 45, 82, 68, 50, - 65, 10,146,146,130, 74, 58, 64,132, 16, 50,104,236,226,240, 52,130,242,160, 52, - 70, 64, 4,154, 4, 19, 72, 48, 97, 40,255,227, 1,144, 18,152, 15, 56,157, 67, - 9,173,119,198, 36,156,179,101,109,128,192, 20,146, 38,147,145,139,168,170, 58, -160,148,196,134,136,220,244, 90,177, 39,165,129,145,122,155,101, 86,228, 64, 50, - 82,236, 73,121,158, 90, 41,164,104,219, 66, 4, 38, 9,225,112,253, 93,124,130, - 84, 86,104,162,146,116,144, 18,194,221, 61, 12,196, 52, 88,172,113,224,200,230, -179, 48,233,212,131,120,169, 94,200,182, 81,189,193,220,120, 19,126,111,182,204, -224, 4,106,110, 66,142,216,167, 0, 94,130, 58, 92,119, 1, 98,249, 10,157, 46, -137, 23,169,129,140, 9, 4, 27,189,142,212, 66,249,133, 5, 38,193, 8, 5, 8, - 65, 32, 94, 96, 67,112, 22, 81,249,221,232,157,236,255,132,210, 33, 81,199, 78, - 57, 59, 49,100,182, 65,198,205,207, 72,227,228, 51,185, 44,141, 59,230,216, 98, -105, 94,255, 88,231,123,100,107,208, 24,102, 63,147,173, 65,203, 10, 64,195,232, -210,147,105, 68,152,149,198, 35,184,138, 26, 62, 80,159, 30,236, 82,164, 21, 61, -232, 80,212,241,220, 58,163,134,210, 14, 38,182, 49,184, 83,184,178,134, 92, 47, -145, 22, 1,231,183, 69, 35,118,159, 38, 65, 87,194,165,208,134,252,219, 30, 54, -152, 81,182,197,230, 98, 88, 69,232,153,222,201,179,101,232,147,187, 10,143,244, -176,165, 38,184,136,163,145,255,131,102, 74, 5, 83,169,185, 29,233,106, 92, 84, -183,198, 7, 28, 98, 81,221, 57, 60, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase5.c: -uint8_t GB_JITpackage_24 [887] = { - 40,181, 47,253, 96,105, 10,109, 27, 0,230,163,111, 33,224, 90, 23, 3,148,119, -226,218, 99,201, 62, 75,187,166,136,204,116, 68,142, 45,253,186, 48,237, 26,132, - 57, 17, 99, 36,196,240, 11,106, 0, 97, 0,100, 0, 58,219,240, 90, 4, 32,137, -166, 19,109,234,180,218,110,174, 55, 73,186,155,155, 76,223,185,131,129, 96, 16, - 44, 10, 4,195,181, 48, 59,167,111,170, 74,222,125,103,145,187, 60,221,206, 57, -206,103,129,144,102, 61, 41, 12,147, 99,247, 69,113,176,196,207,253, 28, 36,240, -121,143, 11,192, 17, 57, 35, 97,117, 37, 77,122,217,101,166,164,174,160,213,103, - 45, 67,122, 96,153,171,170, 41,100,245, 81, 8,229,131, 1, 38, 24, 12, 2,249, - 17,142,224,105, 37,238,102,151,115,162,189, 38, 42, 12,203,140, 58, 99,236,198, - 81, 20,250, 5,239,157,252,182,150,110, 44,255,179, 28,143,207,122,186,227,162, -174,235, 66,231, 88, 38, 83,189,251,230,202, 8,190,220,249, 94,180,167,221,187, -134,250, 98,174,166,190,190,191,156,195,186,238,147,255,127, 12,115, 97,132,206, - 32,176,100, 88,205,239,140,211,222,241,238,108,197,138,192, 6, 37,156,197,108, -169,227, 16, 19, 2, 1, 57, 31,216,120,193,112,111, 99,100,151,111, 75, 42,209, - 11,237, 76, 40,165,248,114,159,148, 47,217,184, 69,229,187,115, 25, 94, 35,220, -203, 62, 10, 46,106,229, 82,216,184, 8,227,208,205, 72,196, 60,230,210,182,173, -154, 28,141,111,125,222, 17,223, 59,198,223, 20,161,216,249,102,163, 23,182, 50, -147,110, 87, 96,252, 30,119,239,101,107,245,183,101,125,151, 1, 24,246,202, 94, -162, 17, 42,153,108, 38, 96,231,163, 80, 9,102,147,225,188,182, 79,162,241,116, -251,222,238, 42,154,168, 55, 94,184,218,115,180,109, 17, 51,178, 87,160,182,207, -101,159,116, 42,155, 15, 5,129, 1,239,219,226,185,220,123,151,202,230,107,206, -162,206,173,221,143,154,118, 47,190,159,163,241,125,214,173,233,103,126,166, 55, -194, 21,127,152,126,120, 44,143,191,178, 98,190,141,131, 38, 18, 76,133, 6,128, -195,168,161, 49, 83, 36,193,136, 76,144,130,130,164, 50, 28, 64,132, 16, 82,103, -182, 1, 66,113, 32, 34,145,208, 40, 66, 12, 34,134,146, 96, 68, 2, 42, 41, 74, - 25, 53, 30, 89,155, 33, 14, 78,180, 8,134,128,255,175, 89,253, 78,138,132, 18, -144, 84,161, 1,247,163,105,147,247,223,221,214,186, 37, 62, 96,120, 73,132, 33, -143, 69, 25, 60,144,127, 5,153, 64,102,106,196, 21,187,114, 34, 33, 5, 68, 99, - 31,125, 37, 39,116, 25,238,131,167,224,248,204,160,108, 38,197, 65,229, 23,224, -129, 60,229, 50, 72,215,204,237,153,101,225,178, 53,177,172,128,171, 10,172,103, - 49, 32,165, 40, 67,147,140,219, 91,211, 80, 9, 16, 35, 77, 3, 84, 59, 36,237, - 22, 80,253, 56,159,208,238, 98,129,247,194, 65,130,133, 8, 74,235, 83,228, 72, -199,147,106, 32,108,253,105,134,140, 67, 16,204,122,227,193,169, 34, 99,230, 36, -162, 82,143,114,192,168, 32,116, 20,208, 95, 31,194,191, 36, 77, 56, 39,126, 50, -113,160,151, 8,239,219,111,120,225,161,192, 40,149, 16,180,126, 59, 2, 51,228, -119,102,118, 76,132, 43, 26,156, 13,206,155,117,135,209,230,154, 60,219, 84,110, -235, 90, 12,156,130, 49,164, 35, 66,251, 30, 83,239, 84, 86,231, 78,130,104,235, -222,213, 32, 17,149, 30, 35, 77,201, 43,240,122, 57,253, 60, 54, 51,172, 93,125, -210, 16, 2,252, 22, 3,187,178,202,156,142,171, 34,181, 36, 74,138,176, 45, 5, -141, 65,219,128, 64,167,237,155,106,137,162, 8, 8, 63,114, 97,223,247,118,236, -205, 74,119, 26, 62,237, 21,172,234,111,100, 88, 18,163, 81,113,198, 66, 0, 44, - 33,180,165, 31,120,204, 14,127,246, 86,216,200,233, 97,245,210,198,123, 62,106, -225, 19,118,110,189,212,239, 0,249,255,255, 44,237,211,236,210, 20, 81, 54,149, - 29, 39,247,193, 28, 52,213, 63,152,102,149, 81,122,184,193, 59,163,135,135, 99, -254, 43, 99,168, 74,115,100, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseHash_phase1.c: -uint8_t GB_JITpackage_25 [1341] = { - 40,181, 47,253, 96,148, 16,157, 41, 0, 38,245,156, 40,192,146,117, 14,106, 70, -158,166, 33, 20,254, 4,173,116, 91, 27, 42, 31, 50, 32,140,179,150, 21,116, 1, -112,132,243, 76,127, 33,119,112, 93, 69, 97,186, 10, 64,151, 0,142, 0,149, 0, - 93, 23,251,246,236,216,254,117,173,223,112, 5, 96, 52,175,244, 83,102,192,170, - 52,159,238,183,255,191, 68, 18, 34, 41,160, 14, 42,188,201,232, 89,183, 84,110, -173,111,167, 34,219, 83,185,120,160,160, 50,238,168,108,249,115,123, 55,142,254, -188,235,172, 79, 8, 7, 5, 7,149, 5,131,130,131, 79,164,244,201,118, 71,124, - 56,101,125,180, 93, 42,234,138, 79, 32,203,147,217,188, 88, 35, 44, 30,136,111, -127, 32, 9,103,163,104,114,246, 46, 78,218,215,163,159,126,217, 29,197, 68, 35, -123,139, 1,219,184,121,112,179,145,195,182, 70, 42, 33,194,200,251,136, 22,102, - 62, 44,152,137, 56, 1,129,164, 66, 64, 16, 81,190,139, 45,249,242,130, 87,223, -224, 56,141,123, 26,139,148,249,101,142,203, 67, 48, 3, 43, 54, 17,146,144, 9, -133, 18, 59,204,229,215,214,214,184, 87,231,184, 95,152,160,112,103, 75,148,189, -147, 45, 87, 47, 99,251,253,210,153,209,237,178,232, 20,203,216,121,159,253,174, -251,180,138,214, 21, 27,189, 40,186,141,221,158, 50,230, 36,111,242,140,125, 70, -249,235, 91,197, 36, 52,181,164,249,118,219,227,183, 84, 83,191,202,184,189, 79, - 74, 58,191, 91,180,222,158,205,248,141,234,218, 47,123, 40,141,254,149,106,231, -106, 20, 29,243, 13,138,162, 52,174,113, 62,141, 2, 31,156,205,190,252, 98,243, - 48,209,129, 33,238, 33, 6,150,117,177,237,248, 98,161, 96,151, 4,109, 67,236, - 66,134,201,173,241,242,158,209, 1,157,242,201,199,245,137, 36, 93, 98,185,199, - 99, 49,113,135, 15,114, 54, 94,175,126,101,215,107,185, 14,188, 2,218,171,210, - 43,185,227,244, 3, 11, 93,183,149,239,108,234,253,114,196, 79,133, 26, 74,128, -172, 11, 74,104, 54, 28,141,198, 89,189,147,207,147,158,183,123,238,182, 75,235, -108,242,229,252,205,190,147,202, 79,170,131,204, 16,246,207,134, 2,131, 35, 34, -242, 13,232, 99, 81,128, 32,168, 3, 51,210,181, 14, 24, 93, 79,196,147, 55,143, -179, 13, 18,201,136,229, 30,233,223,202,118, 54, 23,185, 98, 0,151,118,246, 19, -233, 51, 86,106,251,253,218,108,249,198,217,162,202,178, 70,182,103, 15,158,143, -147,237,206, 79,113,135,197,219, 61, 77,243,235, 22, 16,168,110,179,142,110, 83, -166, 73, 84,173,223,244,160,245, 44,162,118,106,159, 54, 31,123, 8, 14,200,226, - 84, 60,105,198,182,139,218,171,142, 82,236,142,176,103,124, 37, 95,170,245,189, -230, 38,237,219, 89, 75, 86,115,109, 97, 46,183, 60,203,131,152,103,188, 95, 46, - 53,159, 61,127,231, 71, 37,133, 50,114,225, 34,103,113,208,226, 52,122,238, 1, -129, 53,168,129,173, 51, 51, 67, 34, 34, 73,146, 66, 97, 24, 3, 97, 12, 66, 24, -147,150, 74, 62, 34,177, 40, 75,194, 36, 66,134, 24, 70, 12, 21,136, 4, 50, 65, - 74, 75,202, 40,211, 1, 16, 0,243, 53, 74,127,226, 23,242,130,212, 37, 86, 70, -232, 44, 63,198, 69,128, 69,189,237,151,185,187, 94,186,165, 48,197, 70,143,237, - 72, 64,196,194,150, 69, 17,136,235, 38, 11, 5,130, 1,163,147,171,237,207,173, -211,138, 67,167,182,161,232, 53, 29,110,150,125,146,232, 78,124, 68,205, 93, 6, -238,231,138, 44,159,216, 91, 34,170, 74,101,129,249, 85,196,243,111,247, 90,129, -167, 39,115,182, 52,165,147, 84,226,253,199, 26, 4,112,181, 69,227,230,237, 3, - 66,173, 77,254,113,128, 82,170,214, 48, 82, 55,144, 44,143, 90, 71,103,150, 78, -176,215, 82,134,152,137,105,223, 85,200, 26, 82, 0, 70, 36,244,121,151,170,235, -172,166,202,157, 1,152, 9, 16,219,227, 37,125, 82,207, 80, 36, 52,147,156, 74, -197,233, 35, 37, 42,202,167,113,172, 39, 68,236, 66, 96, 7,137, 55,208,134,231, -200, 13, 53,174, 26, 84, 33, 72,213, 18, 43,111,208,245,210,136, 66,237, 35,217, -127, 37, 83,158,194, 83,220,187, 7, 22, 79, 98, 23,133, 48, 26, 39, 23, 9,148, - 58, 39, 58,255,219,216, 9,245,116,113, 55,173,136, 49, 29,103,135, 1, 36,124, -180,208, 40,120, 42, 56,169, 49, 48,148, 8, 40,124,170,100,228, 83,208,242,160, - 98,176,234,233,141, 22,223,237,177,246,242, 14, 99,193,176, 75, 11, 21,148, 73, - 15,224,175, 79, 88,102,103, 85, 12,170, 82,224,102,167,112, 31,193,147,157,251, - 77,255, 37,210, 64,137,200,235,192, 45,103,110, 40,190, 81,230,142, 82,210,135, -188,171,183,219,231,202,249,213, 19,177,135,196, 49, 44,191,225, 30, 75,147,173, - 21, 23,145,236,146,150,133,122,241, 13,224, 85,241,152, 24,206,233, 72,149,194, - 39, 32,141, 17,203, 58,187, 79,123, 58,172, 7, 62,121,144,140, 70, 18,179, 91, - 1, 26,145,237,107,167,109, 98,200, 43, 16, 14,187, 24, 44, 12, 20,153, 23,209, -202,141, 33,116, 49,142,147,109, 65,108, 22,218,204,191,178,166,154,179, 57,135, -146,218,175,164,152,105,168, 62,193,254,167, 12,113,215,191, 47,237, 6, 29,124, -104,177,161, 73,251, 27,180, 68,236,173,152,200,190,147, 6,103,166, 55,206,125, - 59, 58, 98,177,156, 15, 43, 22,179, 22,195,214,180,145, 21, 36, 57,186, 18,130, -105,144,232, 5,144, 71,180,106,195,249,192,199,225, 23, 30,118,243,189, 84, 55, -185,194,207, 2,235,242,153,194,254,211,252,184, 19,189,178, 67,174,151,213, 82, -170,196,171, 8, 34, 39,187, 8,221,124,175, 4,144,151,154,202, 24, 94,121,121, -152,159,237,198,212, 48,157,152,143, 85,106,212, 49, 69,121,233,111,213,205,211, -140, 96,111, 83, 33,125,207,194,107, 31,112,100,173,131, 81,219, 9, 6, 74, 98, - 4,181, 24,163, 45, 26, 65, 87,200,231,230, 54,198,240,249,139, 15,239, 82,205, - 65,125, 50,193,210,168, 69,214,222, 20,156, 74,142,163, 12,205, 54,131,127,117, -170, 50,152,160,242,217,163,154,227,162, 39,137, 19, 96,191,243,207, 42, 13,175, -120, -} ; - -// ../Source/Template/GB_AxB_saxpy3_coarseHash_phase5.c: -uint8_t GB_JITpackage_26 [1108] = { - 40,181, 47,253, 96, 83, 12, 85, 34, 0, 22, 47,144, 40,192,146,117, 14,106, 70, -132, 54, 47,219, 91, 52,121,126,214,134,106,191,157, 47,140,179,202,186, 5, 50, - 64,149,157,232,120, 7,127,114, 93, 69, 65,144, 13,102,136, 0,132, 0,134, 0, -220, 92, 49,149,119,103, 75,254, 63,138, 58, 34,130,136, 1,132,118,218,180,241, -146,144, 50,199, 93,233,134,129,208, 91,169,198, 25,200, 68, 37, 34,178,209,140, -144, 94,186,249,237,238,130, 55,255,190,248,234,192,128,192, 0,178, 80, 64, 96, -240, 73,147, 94, 93,206,152,149, 71,226, 67, 93,131, 24,156,189,226,196, 12,165, -179, 51,116,144, 88, 14,109, 6,113,162,132,191,218,192,174, 41,198,187, 63, 4, -185, 83, 4,162,117, 93,146, 64,239,236,172,236,238,188,208, 27, 78, 80,147, 7, - 33,187, 49,175,164,108, 68, 73,113,248,192, 64, 4, 25, 24, 8, 93,246, 97,249, -192,137,152,124,184, 44,151,139,163, 27,199, 0, 18,137,242,166, 23, 31, 73,145, -153,197, 1,220, 14,246, 47, 42,119, 13,214,201, 41,168,114, 87, 80,251, 68,112, - 75, 58, 7,185, 69, 1,197, 81, 63,218,228, 22,158, 87,113,123, 93, 54,234,152, - 40,106,126, 13,147,247, 13,153,243,110,221,243,222, 18, 65,161, 43, 75,211,167, - 98,233,122,215,172,241, 75,184, 87,124,107,163,108, 65,154, 6, 86,208, 37, 28, -119,223,234,188,133,117,238, 77, 51, 17, 14,188, 23, 78,140, 55,220, 34, 18,137, - 84,156,187,188, 10,125,223, 12,159,156,162,162,232, 99,114,139, 6,130, 66,163, -145, 26,203, 69, 66,126,228, 37, 45, 89, 39, 2,131,168, 60,137, 34, 48,121,241, -214, 21,189, 99, 10,169, 13,117,247,240,176, 87, 94,150, 81,122, 64,192, 11, 60, - 93,169, 61,189, 31,229,120,171,116,242, 14,103, 95,137,217, 83,247, 96,183, 90, - 99, 26, 10,188, 37, 67,223, 25,130, 90, 3,133,125, 57,126, 21,130,173,209,140, -211,174, 61, 31, 44, 19, 55,157,236,234,108, 50,142,172,104,162,140,136, 88,134, -161, 72, 14, 6,195,190, 15,196, 65, 56,134,220,219,137,209,236,249,229, 99,199, - 56, 13, 81, 5, 1, 92, 7,187,242, 67,218,245,156, 92,122,197,178,177, 92,178, -232,144,109, 32, 56, 20,117,217,171, 45,204, 70,130,223, 96,125,244,225,121,166, -126, 37,221,146,197, 74, 68, 71, 78, 76,222,183,168,141, 75,229,135,182, 73,195, -111,158,207, 28, 10,187,210,207, 83,249,252,105, 98,233, 23, 78,188,112,103, 58, - 88,200,243,141,182, 70, 27, 12, 45,199,183,236, 85,144,155, 55, 79,163,157,198, - 82,100,143, 99, 67,180,209, 90, 30,111,122, 50,122,223,160, 91,229,201, 39, 44, - 21,141, 87,167,118,101,195, 41, 54,128,229,168,145, 33, 99,102,136, 2, 17, 73, - 65, 82,144, 66, 99, 48,132, 16,195, 84, 89, 55,226,152, 64,134, 81,145, 0, 9, -164, 49,198, 9,142, 4, 18,208,200, 4,105, 73, 65,161,102, 3,236,144, 1, 86, -197, 67,199, 79,110, 20,102,230,197,124,218,177, 67, 0,252,249, 60, 16,193,193, - 45,115, 49, 81,155,180, 97,143,155,121, 64, 70, 53, 9, 16,214,110,196, 23, 4, -138, 5,129,225,213,184, 28, 56,177,158,254, 93,104, 7, 73,119, 48,104,104, 62, -241,241, 19, 29,204,209, 57,230,116, 46, 16, 46, 28,253,211,247,237, 38, 84, 8, -135,240, 47, 10,111, 41,135, 0,229,208, 39,118,114,111,138, 57,208,153, 86, 3, -248, 42,178,133, 12,255, 15, 78, 4,147, 60, 85,215,221, 23, 60, 74,230, 21,147, -113, 78,216,154,123,103,136,101, 32,170,190,224,206, 4,144, 48, 30,245, 83,126, -171,179, 54, 73, 7,140,123,228, 38, 30,165,240,133,145,207, 62,165,216,229,254, -112,249,144, 33, 54,249,203, 95, 51, 68, 48,212,140,211, 44,137,144,181, 43,175, - 96, 91,161,127, 64,176, 15, 10,124,196,155, 66,186,158, 65, 56,217,226, 28, 80, - 54,227, 35,125, 59, 95,124,164, 99,103, 64,102, 64,133, 28,237,237, 22,255,210, - 4,186, 34, 20, 33,113,136, 69, 53, 54, 2,172, 10, 3,186,103,173, 37,240, 32, -185,229, 56,139,177, 26,138, 89,118, 78,144,174, 61, 50, 79,123,203,183, 99,212, - 93, 95,169,133,113,231, 48, 9, 46,241, 4, 96,109,125, 99,237, 3, 79, 58, 19, - 39, 11, 34,208, 16,118,137,105,194,151, 13,111,109,164,159,119,148,142, 36, 61, - 35,110,158,232,193, 66, 0,142,106, 48,249,118,143,231, 88,129, 22, 74, 64,182, - 3,104,239, 37,148,117,118, 59, 76, 44,230, 1,206,231, 74,113, 35,200,249,222, - 67, 99,112, 27,119, 25, 70,194, 89,151,225,162, 47, 13,210,122,127,199,123,189, -199,253, 80,115, 85,155, 62, 6, 62,237,169,232,120,132, 87,199,235, 33, 33,221, - 81, 32,226,188,141, 29,204,217,126,200, 57,162,204, 66, 79, 3, 20, 54, 42, 72, -156, 61, 59, 90, 32, 50,172,172, 81,209, 17, 2,148, 91,120,150,166, 10,138,232, -166, 77,227, 3,123, 5,124, 97,233,185,246, 60,111,236, 98,248,185, 22, 76, 70, - 81,192,228,120,216, 7,205,246, 15, 38,174,114,234, 79, 41,187,167,191,147,141, - 80,179, 28, 60,164,122, 0, 77, -} ; - -// ../Source/Template/GB_AxB_saxpy3_fineGus_M_phase2.c: -uint8_t GB_JITpackage_27 [1109] = { - 40,181, 47,253, 96,118, 18, 93, 34, 0,182, 46,142, 31,208,222,230, 64,230,110, -101,118,245,179,101,232,203, 13, 91,178,176,101,172, 13,162, 10,144,210, 44,245, - 48,126, 24, 80, 2,136, 0,128, 0,133, 0, 3,204, 15, 36,166,249,255,127, 0, - 96, 7, 88, 36, 26,136, 30, 99,212,252, 46, 57,187,138, 53,219, 14, 59,136,198, -182, 99, 21,132, 80,101, 72,137,176,109,103,227, 46, 29,231, 81, 86, 75, 47,203, -239, 7, 71, 99,209, 64, 64, 24,139,198, 9,177,193, 15,184,218,104,230,137,239, -185, 49, 95, 90, 61,253, 96,250, 64,151,209,164,231, 70,210,248,164,166,169,115, -173,153, 0, 63,216,139,109, 52,255,135, 75,225,171, 88, 66, 20,204, 37,141,198, -116, 52,193, 16,136,107,155,182, 85, 4, 29, 57, 19, 71, 49,120,193,125,224,101, -115,133, 2,128, 80, 40, 2,162, 14, 56, 35,193,203,119,183, 52,134, 9, 6, 67, -104, 27,164,252, 98,126,242,129,173,207,152,150, 15, 45,157,156,240, 96, 12,174, -217,136,190, 18,248,220,178, 79, 62, 59,105, 54,245,183,107, 63,177,181,134,163, -209,180,154,159,241, 89,197,159, 87,196,175,100,236,150, 14,198,226,208,231,181, -178,250,155, 23,128, 4,163, 98,235,219,222,240,182, 27,246, 92, 72,251, 44,233, - 47, 57,227, 22,196, 23,137, 69,229,188,207,182,113,159,230,243,181,175,131,208, -197,250,197,113,253,171,182, 46,114, 66, 20,194,236, 32, 9,207,157,217, 54,140, -158,178, 23, 42, 23, 51,159,166, 52,185,248, 12, 70,178,173, 7,184,238,249,116, - 24, 8,239,152,155,118, 92, 27,215, 44,141, 29,215,165, 73,187,177,119, 9,171, -221,240, 61,230,206,245,188, 61, 86,105, 55,211,143,185,222,142,195,122,237,165, -189, 64, 32,191, 87, 12,152,107, 78,157, 82, 10,196,116, 66,163,211,199, 1, 89, - 2,193, 51,157,145,104, 20, 2, 87,162, 15, 52,117,196, 26,168,192, 38,239,154, -173,217,222,216, 9,139, 87, 42,215, 89,146, 14, 46, 86,242, 35,193,143, 20,239, -201,227, 58,180, 85,165,201, 4, 0, 64, 15, 32,118,104,107,147, 19,198,216, 73, - 27,131,185,147,218, 10, 3,207, 43,130,228, 5,191, 65,105, 36,250, 48, 38,177, -134,182,103,235,241, 73,219, 52,233,173,237, 79, 96, 52,126,222, 51, 42,226,113, -110,217,207,182,183,219,101, 29,111,239, 17, 28, 63, 28,196,193, 35, 39, 81, 7, -212,148, 80, 39,210,135,233, 57,118,146,220, 13,111, 56,233,133,134, 63,215,119, -166,161, 89,251, 4, 19, 6,154,211,151, 33,161,190, 59,123,204,247,101, 73, 27, -151,157,113,156,252,171, 56, 32,171,240,103,178,130, 80,161,198,121,188,139,138, - 66,128,220,168,161,165, 82, 76, 68, 68, 70, 65,146,164, 80,104, 12, 64,132, 16, - 33,179,177, 14,242, 88, 34,163,105,196,104,196, 16,102, 4, 68, 96, 4,132, 8, -138, 72,100,161,132, 34,129,144,109, 3,166, 56, 73, 74,122,221, 68, 74,140, 78, - 19,232,113,174,147,142,234, 88,159,228, 65,193, 41, 91,175, 27,239,107, 96,190, -120,243,114,189, 55,113,160,242,251, 32,177,236, 22,231, 51,208,189,159,237,152, - 43,200, 55,209,181,181, 60, 14,166, 82, 21, 71, 7, 7,225, 9, 44, 98, 8, 88, - 66, 14, 69, 94,196,204, 82,178,225,176,236,228,242,155,229,151,110,142,208,115, - 5,117,250, 55, 94,228,120, 17,135, 32, 19,129,247, 63,182, 73, 96, 79,176, 36, - 91, 20,161, 70, 54,219,204,158,202,161, 80,137, 51, 74, 36, 3, 81,198,241,160, -107,133, 90, 89, 69,168,116, 70,247,118, 73, 27,234, 74,165,174, 52, 38,166, 11, - 95,186,151,231, 49, 52,195, 14,154, 9,233, 30,238, 1,154, 92,232,192,205, 43, -142, 96,120,169,168, 84, 43, 97,153,134,149,105,150,246, 56, 18, 2, 74, 6, 41, -104, 67, 1,126, 58, 64, 80, 60,180, 23, 96,135,254,192,218,235,217, 45, 71,143, -206,159,206,240,143,243,120, 6,181, 9,210, 99,205,184,226, 26, 13,106,216,108, -139, 3, 38, 27, 61,101,127,112, 0,140, 23,139,113,173,223,144,132,160, 97,235, -150, 26,160, 98,194, 58,220, 17,238, 69,126, 39,183,139,192,139,206, 26,251,190, -180, 46,108,218,160, 14, 97,205,202,206,231, 73,190,101,179, 20, 23, 33,194, 59, -142, 69,141,108,208, 32,171, 49,240, 53,183, 70, 21,164,114,160, 13,127,131, 17, - 97, 79, 33, 99, 6,215,110,165,198, 44, 41, 81,169,124,193,210, 65,167,138, 31, - 39, 25,142, 3,184,215, 34,143, 42,243, 2, 51,176,162, 56,200,154,218,248,217, - 11,208, 33, 70, 15, 50,164,233,137, 1, 24,214,132,241,144,234, 97,140,161, 48, - 98,251,139, 43, 6,185,207, 11, 64,139,191,187,118,242, 80, 45,156,127, 53,117, - 27,184,193,212,141, 51,131, 88, 75, 0,211,105,210,137,203,166, 82, 83, 96,174, -223, 86,117, 68, 71, 59, 2, 4,117, 3, 12, 73,252, 10,248,150, 74,158, 54,211, -103,145,229,160, 59, 85,148,236, 24,201,120, 72,197,206, 17,102, 16, 52,128, 76, -118, 70,231, 20, 19, 75, 78, 1, 26, 52,157,159,153, 6, 51,195, 57,198,125, 46, -137,129,151,218,175,170,186,187,119, -} ; - -// ../Source/Template/GB_AxB_saxpy3_fineGus_notM_phase2.c: -uint8_t GB_JITpackage_28 [1115] = { - 40,181, 47,253, 96, 59, 14,141, 34, 0,150,109,137, 32,208, 92,117, 24, 45,246, -229,188,175,207, 65,236,108,250, 50, 22,173,229, 53,197,169, 75,106, 72,239, 69, -174,102,240,131, 89, 2,132, 0,123, 0,128, 0,255,255, 3, 0, 54, 64,151,240, - 16,125,170,200,151,248, 47,237,106,214,108,187,204, 32, 26,219, 86, 85, 13,130, - 84,241, 36,202,142,165,141,251,115,156,207, 85,253, 28, 69,197,115, 12,175,243, - 16,143, 69,231,189,160, 34,156,195, 53, 70, 86,158, 16, 79, 59,243,117,213,208, - 57,144,168,153,156, 47, 50,189,124,141, 83,242, 5,234, 92, 97, 32,192, 57,123, -113,140,204, 63, 55, 49,136,161,100, 19,136, 80,254,121,141,201,243, 53,110,242, -181, 35,134, 93,218, 86,115,100,208, 94, 51, 18,143,147,153, 56, 78, 46, 87, 40, - 0, 8,133, 34,163,216, 50,239, 91,159,117,105,235,115,175,192,147, 44, 21, 78, -102,100,181,198,201, 24,178, 92,254,219,110, 73, 21,126,225,112, 40,109,143,145, - 79, 94, 7, 79,168,151, 93,123,208,194, 60,134,215,174,154,159,113, 90,205,167, -215,196,175, 45,213, 69, 25, 92,167,215,174,234,111, 94, 44, 66, 91,223,246,150, -183,221,169,211, 74,178, 83,148,252,191, 47, 46, 65,188, 75,116, 97,122,159,109, -227, 78, 95,207,215,190, 18, 54, 55,235,187,227,122, 84, 61,221,196, 20, 88,220, - 71,160,156,107, 97, 50, 7,109,203, 23,236,223,215,149, 93,118, 91, 6,225,157, -201,140, 95,222, 51,183,235,184, 54,134,205, 26,125,185,174,234,141,166, 96,183, -124,159,185,115, 77,101, 87, 85,215,205,228,207, 92,101, 47,235,181,215,245, 91, - 66,153,207,104,164,100, 54,157,144,136, 25, 77,131,193, 43,153, 14,167,179, 25, - 75, 28,113, 4,101,204, 42, 48,159, 71, 72,182,213,240,240, 89, 35,218,212,218, -170, 98, 4,124, 78,201,140,199,240,226,235,121,108, 56,178,173, 97, 10,124,195, -108,205,246,170, 94,232, 30,134,175,217, 22, 73,104,137,173, 0,192,205,194, 58, -239,233,125, 23,154,199,185, 87, 55,239,211,182,178,219,104, 61,101,103,156,227, - 32, 33,203, 71, 20,242,136, 20,240, 12,219, 71,187,229, 45,193,133, 89, 75,219, -130, 67, 37, 80,210, 92,240,204, 70, 87,182,226,139, 21,143,136,150,102,219, 41, - 50, 93,225,180,143,162,100, 99,180, 1,183, 60, 3, 95,200, 63, 9, 51,154,192, -123, 15,111, 43,152, 1, 48,188, 89, 17, 45,159,242, 99,124,222,226,152,182,178, -245,188,229,185,178, 91,152,116,253, 91,120,199,221,169,155,231, 26,134,146,177, -203, 2,128,239,168,161, 37, 83, 72, 68, 68, 68, 68,146, 36, 41, 12, 7, 48,132, - 16, 82,204,200, 60, 2,129, 44, 5, 35, 17, 81,134, 17, 47, 32, 34, 22, 72, 48, -129, 36,201, 76, 78, 65,118,161, 17,104,207,108,143,217,150,101,244, 69,195, 81, -116,121,228,213, 28, 96,102,198,157, 97,188,215, 41, 85,219, 92,221,140,195, 15, -123,118,160, 70,124, 61, 76, 80, 44, 40,247, 36, 86,211,167,212,134, 86, 56,227, - 58,233,156, 53, 24,199,199, 18, 18,113, 21,171, 52, 88, 84,243,118,126,211,220, -101, 96, 7,208, 12,136,250,116,235, 29,118, 98,184,245,166, 65,211,180, 1, 5, - 0, 66, 15,175,136, 40,174,170,176, 81, 34,105,251,145, 42,252,172,230, 2,171, - 12, 25,106,217, 96,237, 11,107, 20, 9,125, 51,237,207,114,241,114, 42,219,195, -164, 40, 28,156,194,124, 7,239,188,216,121,211,173, 32, 34,134,249,126,228,116, -116, 31,194, 97,155, 57,215, 18,133,213,200, 10,223,144, 54,168,200, 16, 11, 30, - 20,245,240,225, 96,221, 0,184, 88,168,205, 48,201,198, 41,236,232,122,127, 55, - 6, 73, 51, 2, 46,244,207, 71,185, 5,221, 97, 41,124, 24, 77,201,109, 13, 22, - 74, 7,145,114, 37,121,180, 15, 42, 75, 65, 68,127,105,158, 71,123,225, 92, 81, -216,204,183, 3,240, 43, 11,244, 60,109,165, 5,128,148,200,176,162, 84,175,122, - 32,161, 52,229, 21, 26, 20,247,146, 22, 26, 40,132, 15,162, 97,108, 47,238,208, -111,190,228,145,115, 12,222,177, 0, 69,176, 25, 57,252,216, 93,114,184, 64, 17, -221,141,249,206,249, 5,227, 44,139,185, 65, 15,162,147, 5, 51, 92,112,236,122, - 66, 79, 6, 20, 40, 61,177,250,142,193,227,134, 78,231,110, 71,205,244, 59,150, - 65, 6,240,115,245,216, 90, 3, 20, 88, 8, 15,140,207, 43,198, 32,193,251,236, -208, 68,156,174, 95,100,142, 71,133,140,225, 2,228, 55,115, 16, 88,112, 92, 96, -106, 25,229, 2,206,116,192, 5,115, 90, 40, 78,245, 34,169, 95,112, 57, 52, 51, - 23, 0,141, 62,218,176,240,208,142,142,248,186,201,194, 6,124,189, 63, 81, 38, - 49,233,128, 39, 94,221,158,235, 88, 51, 70,170,101,193, 23,132, 9,229,114, 84, - 2,251,204,245,144, 84, 38, 80,152, 85,203, 73, 43, 91,159, 1, 51,216,244, 44, -175, 86,109,244,161,101,243, 35, 60,247,158,236, 75,140,126,164,254,178, 24, 30, -108,108,204,119, 58,147, 0,169, 38,181,195,146, 51, 92, 14,154,209,159,153,198, -157,195,156, 99, 55, 27, 24, 4,247,100, 96, 82, 61,220, 49, -} ; - -// ../Source/Template/GB_AxB_saxpy3_fineGus_phase2.c: -uint8_t GB_JITpackage_29 [1010] = { - 40,181, 47,253, 96,202, 12, 69, 31, 0,134,171,130, 32,208, 28,231, 24,149,213, -127,107,213, 29, 47, 59, 22, 38,102, 40,204, 86,201, 34,231,130, 9, 99,185, 69, -174,102,240,131, 89, 2,125, 0,116, 0,122, 0, 0, 5,162, 59, 52, 25, 82,243, -123,228,236, 58,214,108, 91,220, 28, 26,219, 14, 43,231, 96,186,128, 16, 98,199, -206,198, 29, 58,206, 36,171,134, 94,150,223, 57, 70,167,232, 14,143,133,162, 59, - 33, 28,156,195, 53, 70, 47, 71,124,167,145,249,190,234,232,156,232,227, 84, 72, -147,158,153, 72,227,147,154,162,206, 21, 38, 2,156,179, 23,199,104,254, 57,241, -146,185, 95, 63, 87, 41,124,158,229,145,174, 49, 37, 77, 16,195, 50,109,235, 8, - 50,104,230,140, 98,176, 50,251,192, 74,230,137, 4,224,144, 72, 4,174,207, 5, -126,174,241,222,245, 89,139,182, 62, 55,235,255, 37, 55, 97, 46,158, 13,216,114, -129, 21,112,132,201, 28, 96,187,165, 33, 62,193, 96, 16,109,131,147, 87,204, 75, - 62, 88, 29, 83,242,245,178,107, 47,177,176,142, 65, 19,105,159, 37,237,250, 85, -243, 51, 62,235,248,243,142,183,221,248,245, 99, 61,231, 10,111,249,155, 31, 57, -227,148,195, 21, 8,197,105,101, 73,107,174,182, 30,215,171,106,234,163,134,208, -226, 34, 3,203, 57, 23,166,249,255,127, 0,192, 22,103,182,189,162,167,247,241, -242, 97, 66,184, 54,134, 61, 95,251, 89,151,230,235,134,239,114, 5,187,226,155, -204,157,235, 41,123, 88, 95, 55,211,147,185,202,142,197,122,237,125,253,158,225, - 21, 51,218,132, 74,160,101,211,249,140, 62, 13,136, 18, 8,126,217,124, 60,159, - 14,120,242,124,160,104, 51,214,192, 8,201,182,112,239,153, 67,234,212,193, 87, - 93,245,155, 72,158, 79,154, 49,232,253, 51,159,193,134, 35,219,234,173, 36,111, -152,173,217,222,240, 4,197, 61,239, 53,235,162,131,143, 53, 0,192,205,194, 18, - 44, 90,142,157,173,199, 39,109,211,164,178,182,239,126,222, 43,188,241,248,108, - 43,187, 93, 86, 82,246, 27,227, 28, 55, 14, 14, 25, 97, 66,164, 17,232,179,220, - 24,247,108, 17, 92,199, 42,218,190,221,198, 53,236,204, 8,218, 88,197,155,197, -110,251,235,249, 17,150,107,187, 18, 45, 61, 71,232, 60,111, 28, 60,219,198,125, -154,199,245,187,128, 72,103,147,249,190, 44, 27,151,157,239,205, 36, 39,228,223, -164, 1, 81, 98,103, 42,154,176,187,194, 38,195,110,164, 5,128,205,168,145, 41, - 82,104,100, 70, 68, 36, 5, 73, 82,104, 12, 64,132,144,169, 42,235, 6,226,184, - 20,201,116, 8,130,132, 16, 49, 32,193,148, 68,150, 36, 42, 40, 35, 41,213, 1, -217,181, 19,214,153,109, 5,118, 82,142,199,250,178,144, 69, 63,121,147,243,147, - 67, 48,231,187,113, 67,175,114, 76, 65,147,183,117,101, 51, 99, 84,141, 22,116, - 33, 94, 77, 13,218,158, 66,159,243, 94,137, 6, 6,253, 37,185,234,236, 17,226, -157, 57,187,166,178,235, 68,253, 87,104, 45, 76, 32,122,216,234,211, 5,246, 14, - 42, 57, 1,113,193,229, 62, 56,162,154,130, 14,127,171,195,186,131,184,187, 24, -210, 42, 35, 29,155,159, 77,200, 52, 56,150, 18, 88,107, 42,249, 6,107, 85, 97, -122,177,173,178, 56, 32,171,106,184, 7,163,138, 85, 76,144, 38,235, 60,236, 40, - 2,161,171,200, 74, 72,172, 58,187,179, 80, 63,238,205, 69, 90,198,143,223,144, -205, 61, 85,250, 31,151, 74, 55,122,166,228,137,196,193,197,178,170,163, 7,114, - 10,124, 84,179,222, 45,193,100,126, 73, 27, 74,169,148,125,198,111,208,160,116, - 96,104,193, 20,172, 71,225,161, 11, 69,163,146, 75,172,173,191,132, 64,103, 34, - 8,139, 96,149,178,180,157, 88,195, 98, 5,250, 25, 33,240, 85,232, 34,199,140, - 6,209, 45,160,183, 40,152, 63,157,216, 85,184, 93,172,232,142,151,167,100, 24, -100, 47,235, 78,172, 52,166,121,241, 62,185,236, 8,197, 69,188,244,129,240, 72, -174, 58,199, 37,212,164,238,150,128, 36,196,171,255, 2, 86, 21,142,138, 11, 68, -176,206,130, 76,107,243,224,169, 51,133,154,136,166, 13, 69,168,248,247,103, 12, -168, 27,140,234, 29,131, 57,240,240, 94, 25,242,162,124,213,244,196,184,225, 40, -189, 88,177,224, 57,160, 52,123, 1, 77,187, 98, 44,122,252, 17,102,179,131,199, -102, 56, 50,237,243, 8, 50, 48,142,121, 92,101,141,125, 55, 2,173,246,184,245, - 14, 25, 5,123,170, 78, 85,176, 41,241,233, 17,231,228,112,147, 65,153,139,175, - 97,138, 64, 38, 71,154, 62,104, 86,255,204,196, 28,117,215, 69,189, 31,113,168, - 58, 73, 53, 51,161,175,234, 1,136, 1, -} ; - -// ../Source/Template/GB_AxB_saxpy3_fineHash_M_phase2.c: -uint8_t GB_JITpackage_30 [1179] = { - 40,181, 47,253, 96, 29, 18,141, 36, 0,118,111,145, 40,192,240, 58, 7,126, 7, -120,190,119,253,151,152, 41,204,181,109,223,123,149,203,120,227, 77, 47,113,209, -191,133, 69,178, 63, 28, 56,100,219, 20, 69,166,232, 64,135, 0,128, 0,134, 0, -223,182, 11, 69, 81, 89,166,204,171,207,206,123,239,255,239, 40, 57, 40,146, 43, -194, 30, 55, 69,237,150,145,155,246,173,220,121, 34,108, 43,115,141, 16,113,208, - 44, 72, 58,182, 24,217,242,231,246,122, 19,253, 57, 8,106,175, 42, 23,229,138, - 16, 88,148,235, 20, 55,189,178,109, 49, 53,151,104, 39,121, 55,172,232,208, 43, -144,134,128,241,196, 57,114, 44,108,199, 41,130,248,246, 8,228,120,245, 87,152, -135,150, 21,108,151,204, 45, 23,219,233,137,114,147,158,157, 29,174, 77,101,133, - 36, 98, 76, 43, 49, 24,154,196,112, 62,153, 56, 34,147, 73,224,229,137, 99,167, - 6,172,233, 27, 78,130,246,145, 20,114,147,161, 13,167,127, 17,214, 99, 87,133, -212, 77, 30,193,121,113, 69,223, 95, 59, 54,253, 24,210,119,197,162,208,126, 21, -222,130,200, 41,146,138, 68, 34,169,174,140, 6,103,223,174,221,199,232,216, 87, -102,209,111, 88, 47,177,178,237, 36,209, 45, 11,210, 97,157,232,119,139, 35,142, - 11,171,142, 63, 46, 4,235,232, 22,250,234,167, 60,203,238, 81,180,242,166,219, -160, 4,196, 43, 91, 52,135,118, 30,222,218,239,120,228,123, 39,103,223,213,121, -123,219, 1, 1,223,132, 52,205, 2,195, 3, 37,141,183,242,217,187, 23,205,113, - 2,203, 52,218,230, 35, 51,158, 77, 33,164, 97,167, 94,137, 65, 81,237,247,233, - 79, 81, 29,144,214,161,174,233,162,174, 95, 46,147,236,216, 78, 81,132,107,136, -221, 58,228,109,245,175, 20, 24,184,181, 39,143, 63,222,147,246,236,247,143,201, -215, 8, 12, 91, 41,226, 6, 7, 30,238, 0, 50, 17,118, 30,213,190, 53,228, 78, -101,212,111, 78,159,246, 73,237,163,225,191, 99,112, 87,219, 97,163, 73,240, 72, -138, 79, 98, 94,122,165, 32,144,174,178,188, 28, 35, 78,219,237, 12, 14,199,134, -131,114, 87, 71, 0,148,199,141,147,173, 36,141,179,182, 72,142, 33,149, 95, 40, -181,233,163,144,160,101, 64,191, 29, 39,139,226,252,197, 22,100,207,167,161,246, - 5,215,211,171,178, 50,122, 75,189, 8, 43, 15, 96,176,189,139,111, 84, 94, 85, - 31,133, 80,130, 71,110, 62, 12,161, 5, 45, 51,121,108, 28,123,229,153, 70,201, - 66, 2,193,201,117, 69,120,231,109,123, 55,236,234, 40,164,239, 87, 60, 26, 47, -101, 81,215, 11, 10, 40, 58,115,140,162,208,141,142,239,236,196,209, 55,121, 20, - 97,167,174, 67, 71,222,103, 16,140, 78, 41,155, 30, 16,128,253,168, 97,177, 82, -106, 68, 68,102, 20, 36, 5, 73,161, 49, 64,134,136,204, 89,209, 3, 18, 89,162, - 3,129, 16,113,132, 9, 17, 33, 2, 35, 36, 2, 38, 16, 9, 68,136,162, 9, 36, -136,116, 14,149,184, 67,152, 9,116,238,153, 68, 29, 77,130,232,166, 44,193, 12, - 57,231,107,207,252, 95,154, 51,220, 51,115,120,150,164,163,211, 92,137, 29, 16, - 54,137,133,199,178,216,162,239,115, 26,173,199,185, 10,120, 36, 93, 40, 9,148, -195, 56,151,138, 59, 9, 77,109,111,171, 80,213,206, 65,153, 12,153, 65,148, 40, - 14, 91, 68,119, 11, 27, 79, 32,173, 25, 51,178,139, 30,229,234, 23,160,201,141, - 79, 95, 52,146, 85, 23,186, 56,222, 63,100, 33,140, 75,168, 70,126,108,199,131, -134, 71,222,212,140,106, 38,160,235,155, 41,133,237,104, 25,118,161,144,151,120, -193, 1,194,142,201,126, 43,101, 84,129, 91, 81,231,211,156,184,211,140, 79, 37, -246,210,186, 69, 5,210,106, 70, 91, 27, 63,100, 35,177,182, 31,204, 80, 14, 76, -115, 46,221,175, 98, 17,128, 25, 40,151,177,192,145, 67,213,211,218,166, 74,139, - 3,209,118,172,170,101,184,219, 86,207,212, 9, 63,233,255,125, 83,231,159, 39, -250,113, 21,127,234, 96, 95,234, 59,201,118,138,220,106,140, 64,121,228,226, 22, - 14,204,232,150, 97,155,115, 43, 16,190, 70, 80, 53,115,190,129,200, 58, 10, 57, -148,140,244,239,216,239,100,156, 79, 74,123, 79,191,194,154,249, 33,239, 27,254, - 69,147,193,152,196,227,251, 5, 37,125, 29, 11, 54,194, 65,224,240, 70,215, 80, -100,131, 56,246,139, 96,106, 1, 56,181,201,149,111, 19, 88,162, 22,230, 6, 12, -210,237,211,123,178,233, 19,149, 61,153,255,113,211, 3, 46, 11,159,105,128, 19, - 86,204,160, 64,101,195, 74, 27,204,215, 85,222, 87, 32,203,251, 64,215, 32, 29, -179, 79,176, 87, 12,212, 8,175,245, 89, 79,246,244, 97, 34, 17,136, 80,103,254, -197, 94,178,208,178,139, 49,147, 90, 14, 89,137, 31,146,178,240,110,150,121,178, -214,167, 95,132, 10,248,254,195,253,219, 43, 82, 65, 64, 40, 34, 28,195,215,255, -234,248,127, 93,109,156,166, 64,155, 65,110,234,157,188,229,200,120,195, 58,170, - 10,178,175,168,127,138,158, 16,115,185, 18, 61, 93, 12, 12,249,218,102, 82, 39, -140, 74, 71, 50,108,192,122,139,188, 16,156,163, 87,190,224, 44,203,141,234,219, -121,245, 56,251,165,244, 18,254,226,236, 96, 81,220,163, 61,105, 43, 34,227,198, - 47,124, 87,244, 22, 49,144,136,231,100,200,206, 68,202,103,115, 91, 88, 31, 52, -255,207, 76,116, 21, 62,156,114,238,170, 17,126,200,193,185,106,229,138, 1, -} ; - -// ../Source/Template/GB_AxB_saxpy3_fineHash_notM_phase2.c: -uint8_t GB_JITpackage_31 [1173] = { - 40,181, 47,253, 96,175, 14, 93, 36, 0,198,239,143, 40,208,208, 58, 7,122, 69, - 25,194, 71, 56, 26,100,102,217,140,243, 89,236,219, 81, 7, 51,161,164,239,218, -177,212,243,166,179, 24,213, 31, 92,225, 17, 31,224, 18,136, 0,125, 0,135, 0, -211, 69,180, 36,203,227,103,229,189,247,255,143,162,141, 72, 66, 80, 65,216,219, -100,152,221,170,220, 93,223,201,156, 2,132,237,228,173, 23, 32, 19,151, 7, 2, -142, 51, 42, 91,214,220, 94,175,211,154,131, 96,246, 56,169, 36, 21,228,128,146, - 84,159, 54,233,209,118,134,188,156, 32,123,200,187, 20,163, 55,143, 16,217, 66, -197, 11,101, 77,176,216, 86, 25, 66,240,109, 15, 68,244,248,199,202, 64,134, 33, - 48, 0, 80, 44,183, 42,182,210, 11, 53,134, 75,167,230, 89,153,225,217,157, 54, - 9,133, 32,105,181, 10, 40,211, 42, 9,143, 68, 34, 72, 36, 18,243,211,227,193, - 77,214, 40,175,132,191, 46,113,222,255,208,249,171,154,132, 56,201, 21,148, 21, - 99,244,253,181,181,187, 87,218,125, 50,219,247, 68,210,245, 35,189, 8,144, 83, -183, 38, 83,103,182,119, 67, 83, 74, 26, 13,202,190, 61, 65,153,170,210,217,233, -150, 44, 20,214, 33,206, 31, 41,234,209, 29,122,182,141, 78, 15,199,223, 70,193, -233,185,213, 61,254,146, 99,216,189,169,139,158,116, 27,180,168,248,228,140, 78, -232, 50,167,119,246, 57,174,124,175,220,236,185, 41, 95, 57, 12,121, 17,123,219, - 15, 19, 22, 97, 54,217,229, 33,130,162,235,128, 80,189,147,207,222, 61, 71,214, - 14,118,201, 48, 26,205,162,192,224,176,201, 58,143, 65,206,236,247,187,105,106, -233, 25,136, 44, 67, 81,183, 18, 99,170,164,235,213, 31,159,170, 83, 40,210, 49, -141, 99, 43, 57, 16,158,244, 58,245,199,155,234,129, 99,191, 11, 17, 12, 45,101, -253,117, 70,185,126,171,188, 86,195,158,133,191, 90,129,193,157,141,113,174,179, -103,246,157,116,251,164, 49, 63, 41,125,217,167,101, 95, 71,255, 29,196, 28,119, -174, 79, 96, 46, 13, 10,218,197,167, 85,180, 13, 38, 33,218,120, 81,212,193, 30, - 80,102,116, 13, 79,237, 43,141,125,239,246,231,151,206, 95, 15,231,182, 74, 14, - 67,249, 74, 65, 35, 49,251, 31,158,151,147,164,138, 84,148, 96,221,173,202,243, - 67, 49,236, 2,210, 25,108,239,243,142, 73,236, 50, 81,227,176,193,104, 34, 54, - 15,153,229,215, 39,199, 56, 54,172, 16, 8,202,173, 49,232,149,183,237, 93,202, -181, 69,117,180, 36,216, 68,113,112, 92, 8, 8,216,175, 41,234,154,155, 28, 16, -117,112,159,228,202,185,199, 30,160,204,175, 79,247, 81,250, 68, 70,123,244, 13, -190,146, 11, 61,143,236,169, 55,129, 3,168, 97, 45,100,102,130, 25, 17, 73,146, -130, 74,134, 3,113, 12, 49,136,106,105,153, 7,226,136, 60,198,179, 16,177,136, - 53, 68, 64, 2,145,145, 25, 17, 82, 82, 82, 80, 80,144, 98,198, 25,214,153,145, - 77,240,144, 60,194,210, 3,240, 16,180, 57, 19,139, 79,106,112, 31, 22,164, 92, -207,126,223, 70, 61, 82,196,133, 59,243,223,223, 29, 30, 71, 22,239, 98,134,229, -109,139,222,163,139, 70, 82, 22,164, 99,190,144,145,120, 86, 38, 59, 91, 34,168, -126, 34,214,187,145,139, 5,113,179,160, 44, 62,239, 74,107, 5, 57, 39,169, 44, -218,178,220, 22, 79,138,187,223,168,252,233,107,141,207, 79,162,240, 47,122,151, -169,222,132,148,185,131, 74, 92, 63, 52, 55, 87, 0, 90,214, 2,161, 45,127,204, -199,179,113, 53,243, 76, 40,215,105, 93, 73, 78,159,124, 48,254, 65,210,145, 95, -165, 30, 97, 36,252, 86,202, 57, 38,240, 36,108,232,231,117,172, 68,209,131,108, - 78, 25,101,206, 11, 77,200, 66, 83, 84, 28,232, 53,187,170,170,152,149,138,232, -181, 51, 53,136,133, 37, 38, 35,114,235,108,239,202, 1,174,138,122, 21, 35, 27, -107, 64,144, 59, 13,102,173, 58, 85, 71, 64, 2, 76, 11,222, 32,187,144, 83, 12, -106, 74, 3, 4, 72,141, 64, 71, 69,195,244,190, 50,130, 4, 62,246,149,177, 97, - 86,147, 89,193, 12, 4, 4, 20,123,204,146,186,114, 73,225, 29,176,196,255,155, -154, 55, 14, 40, 42, 23,131,135,161,193,151,164,217, 10, 15, 58,179, 96, 64,200, -231,228, 91,163,152, 6,218, 42, 24,113,248, 75, 30,224,116,189,241,225,103, 72, -188, 28,253,154, 25,210,107, 51,104, 23, 80,104, 53,204, 90,144,201,162, 9, 64, -214,220, 96, 52, 0, 9,158,132, 86,227, 30,241,113,189, 8, 50, 4, 2,213,100, -154,216, 58, 82,197, 59,205, 13,220,105,193, 64, 35, 51, 98,161, 2,148, 66, 26, -106,214, 97,189, 98,226,154,254, 88,118, 2,174,217,202, 72, 12,165,148, 67, 95, -116,213, 37, 14, 13, 81, 13,155, 29,162,180,105, 38, 7,105,198, 60,238,113,139, -107, 89,245,173,165,144, 30,136,224, 50,119,231, 12,219,177,154,144,210,208,243, - 69, 25, 93,159, 61,115,116,245,246, 93,136, 69,108, 77, 3,123, 73, 85, 51, 97, - 50,169,168,127, 67, 2,171,190,202, 61,124,219, 0, 37,250, 87, 79,247,140,198, - 2,220,236,177, 11,102,231,166, 57, 39, 95,223,195,134, 53, 93,121, 45,191,235, -128,136, 58, 88,160,180,253, 91,208,141, 78,158,209,126,247,220, 60,102, 17,104, - 9,229, 82,102,252, 52,167, 8, 69,114, 63, 64,131,102,244, 51, 19, 94,166, 60, -142, 41,125,232, 45, 98, 55,132,148,234,129,117, 2, -} ; - -// ../Source/Template/GB_AxB_saxpy3_fineHash_phase2.c: -uint8_t GB_JITpackage_32 [1562] = { - 40,181, 47,253, 96, 83, 25,133, 48, 0, 86,249,168, 40,208,210,170, 3,106, 50, - 90,237, 98,183,121,139,167,215,173, 49, 23,187, 35,253, 14, 17,200,241,107,107, -136, 2, 26, 47,208,185,226, 15,174,240, 20,131,248, 5,160, 0,146, 0,159, 0, - 28,213, 73,167, 61,249,205,242,171,191,176, 56,183,249, 92, 17, 47, 76, 25,148, - 37,101, 78,121, 53,246,187,255, 63, 4,210, 1,161, 76, 42,201,118, 90,252,176, - 91,224, 50,199, 61,119, 99,144,108,157,171,177,131,132, 34, 33, 98,178,173, 8, -220,186,157,215,238, 48,184,115, 41,177, 83,150,138, 82, 73, 12, 42,148,234,147, - 38,157,170, 44,138, 9,159, 96, 31,117, 77, 67,252, 57,229,193, 28, 48,221, 23, -193, 5,107, 43, 24, 63,207, 54,135, 30,200,169,159,154, 86,139,242,147, 76, 62, -231, 93,179,198, 65, 42, 29, 35,128, 93,153, 91,213,214,216,125, 89, 87,227,102, - 39,115,153,101,244,109,196,154, 97, 54,176, 12,179,240,129, 1,136,100, 96, 32, - 43,106, 15,164, 26,167,219,227, 71,114,210,175, 70, 89,190, 29,187,118, 61, 41, - 87,112, 69, 93, 75, 86, 98, 76,174,175,212, 44, 20,183,165,218,115,235,130, 31, -103,219, 26,190,233,220,104,215, 27,250,100,242,183,222, 78,251, 72,202, 56, 41, -247, 71, 63,163,118,206,189, 26, 67,223,238, 3, 58, 95,131,206, 95, 42,203,104, -139, 11,202, 88,109,136,251, 93, 65,230, 14, 82,238,115,183,158,207,241, 41,218, - 8,146, 83, 38,150,201,100,194,193, 50,114,243,228, 87,254,198,230,159,240, 8, -244, 83, 85, 37,194,252,133,154, 70,183, 25,191,173,167, 81, 57,195, 91,220,169, -159,242,235,122, 55, 5,151, 79,181, 25,148, 93, 97,227,193, 54, 87, 83, 89, 63, -234, 47,180,219, 12, 41,183, 33,120,249, 86, 25, 57,174,187,164, 20,180, 18, 20, -123,242,249, 35,176,231,114,149,116,121,245,200,167,234, 7, 7,159, 42, 17,150, -164, 95, 25, 11,252,186,131, 4,135,219,110,109,155,114,252,143, 61,222, 32, 25, -156, 53,120, 48, 78,214,144,209,108, 50,220,110, 28, 3,176,132,177,199,216,193, -229, 13,198,174,217,117,236,123,103, 4, 5, 61,249, 2, 93,190,225,228,158, 84, -251,196, 49,189,232, 97, 94,134,121, 28,189,247,141,221, 22,131, 66,147,240,192, -144,101,120, 25, 38,251,104, 22, 62, 69, 34,219,220,236,224,152,239,151, 75,150, - 69,153,128,180,181, 16,200,199,134, 50,138, 14, 82, 6,191,211,249, 14, 65,175, - 96,220,239,139,175,166,198,206, 79, 20, 72,117,144,158,114,113,183,192,157, 26, - 52, 64,250, 74,238, 52,110, 57, 69,117, 32, 62,154,142,196, 39, 2,203, 92, 60, - 58, 44,141, 67,180, 35,221,216,170, 48,101, 81,174, 74,117, 4,132,138,138, 4, - 44,195,192,129,248, 96, 29,255, 52,109, 91, 35, 72,178,147, 94, 94,121,228, 21, -110, 25,134, 32, 12,157,137,139,244, 79, 71,227,241, 96,205,151,114,134,145,202, -223,218, 42,183,127, 69, 54, 54, 83, 95,243,193, 18, 34, 36, 50,138, 77,179,181, - 29,183, 47, 60,197, 77, 31, 94, 92, 16,244,201,195,131, 50, 93, 18, 40,130, 24, -215,185,119, 80, 76,105, 58, 1,129,119,168,129,177, 66, 70,102, 70, 68, 36, 73, - 82, 40, 12, 7, 81, 8, 66, 16, 36, 33,120,230, 1,178,160, 40, 13, 98, 24, 7, - 49, 66, 4,144, 16, 74, 68, 68, 36,176, 64, 36,152, 36, 65, 11, 10,154, 52, 6, - 89, 96,199, 76, 46, 11,103,152, 40,199,142,238,214, 81,255,196, 61,229, 50,151, - 18,202,148, 67, 51,101,160, 37,102, 70, 85,150, 37,168,229, 38,127, 22,242, 43, -104,173, 72, 9,250,150, 43, 63,199,180, 2, 60, 8,149, 72,207, 1, 45,158,231, -203, 35,234,193,237, 73, 6,156,249, 45, 57,156,204,127,161, 25,186,240, 21,144, -136, 54,148, 69, 85, 37,178, 66,212, 66,143, 43, 16, 91, 14,222, 93,178,211,144, -144,170,161, 21,187,236,242, 10,242,245,145,167, 45,210, 51, 41, 6, 49,254,197, -213,226,171,191,147,101,100, 4,235, 33,169,220,245, 29,177, 6,216, 55,160, 40, - 42,240,157, 20,200,163,216, 13,219, 10,114, 25,148, 7, 13, 25, 54,111,226, 70, -141,168,253,105, 29, 21,221, 94,234,204,159, 1,102, 53, 38,146,175,164,232, 95, - 26,124, 18,184,165, 3,202,131, 36, 74,161, 10, 98,142,125,158, 3, 52, 53,227, -176,163,185, 33,173,177,102,180,135, 91, 82,110,148, 98, 70,113, 51,159, 22,213, -139,149,249, 84, 26, 80,221,189,176,111,213,187, 72,192, 22, 58,150,195,190, 32, -160,149, 12,136, 36, 13,124,232,129, 98,136,106, 60,161, 23,107, 56, 40,202, 65, -241,190,131,130,188,128,127, 98, 98,251,166,161,230, 65,158, 53,252,236,235, 90, -157, 20,134,251, 1,236, 30, 78, 18,217, 42, 30, 43, 73, 43,100,165,211,221, 46, - 26,170,114, 3, 50, 76,189, 73,145, 94,141, 81,103,178,251, 53,104,113, 49, 50, - 21, 67,216,137,172,147,249,193,241,142,172,219,180,248, 78,127, 13,225,103,163, - 80,251, 86,135, 75, 3,176,121, 94, 50, 46,126,228,144,142,199, 82,219, 18, 14, - 13,179, 85, 75,254,122, 59, 61, 56,220,124,195, 53, 50,107, 84, 8,209,161,212, -140, 55, 32, 26,154, 78, 65, 43,136, 44, 28,113,235, 10, 10, 76,151,248, 66, 35, -167,116, 69,191,176,163, 96,229,245, 30,152, 35,207,106, 89, 44,146,175,252,229, - 39, 34,240,217, 81, 60,144,217,146, 26, 11, 71,139,101,171, 40, 41,150,217,108, -179,105, 89,129,116,191,143, 27,140,233,223,186,101,106,176,142, 11,179,112,165, -225,240, 62, 72,185, 16,158, 31,231, 77,248, 85,250,145,244,236,158,211, 7, 62, -175,221, 27, 70, 57, 45,176, 38,170,150,172, 81,163, 38,232,120,212,182, 75, 18, -194,192,108,110,112, 45, 59, 14,188,168,255,251,139,212,110,202,164, 92,196,121, -201,229, 33,254,152, 82,148,127,171, 39,104,145,240,145,131, 88, 5,227, 12, 8, - 24, 86,245,247,178,211,216,151, 11, 32, 2, 20,176, 81, 43,132, 47,224,236, 99, - 10,156, 2,220,196, 32,132, 6, 43, 8,242, 56, 4,252, 83, 95,155,139,243,218, -197, 18, 4,239, 2,249,142, 9,250,187, 89,215,106, 66,141,165,237, 0,136,240, -147,239, 20, 64,207, 86,133,108, 96,156, 64, 68,173,220,162,163,243, 96,118,101, - 79,122,173,182,192,236,160,217,133,145, 14,108, 42,223,131, 61,220,217, 17,129, -204, 52,109,105,104,144,140,132, 81,148,176, 94, 5, 41,148,209,203,177,219, 27, -221,182, 76,169, 37,111, 45,141,136, 3, 54,127, 63, 90, 89,129,201, 34,117,191, -252, 82,193, 54, 40, 84, 86, 65,111, 91, 57,145,222,135, 0,240,194, 40,193,151, -224,132,108,208,122, 25,134,173, 48,113,167,205, 65,234,227, 75,146,173,161,218, - 95,229,149,243,141, 80,194, 21, 68,160, 35,168,122,115,145, 68,166, 7, 29, 16, -185, 10, 5, 37,214, 34,122,132,192,205, 43, 85,155,144,173,161, 95,244, 32, 27, -232,184, 50,198,116, 30,187,120,218, 26, 92,123, 15, 96,211, 87,199, 99,173, 31, - 80, 72,240,209, 15,230, 64,147, 21,243, 9,160, 68,132, 61, 79,157, 3,201, 57, - 92, 14,154,162,159,153,206, 37, 69,119,146,173,210, 36,130,230,135,164, 40,117, - 0, 77, -} ; - -// ../Source/Template/GB_AxB_saxpy3_template.c: -uint8_t GB_JITpackage_33 [3826] = { - 40,181, 47,253, 96,134, 92, 69,119, 0,106,105,128, 19, 45,176,204,140,115,235, - 16,174, 9,182,237,182,227, 50, 88,121, 67, 89,141, 95, 26,192,161,117,238,140, -127,167,125,163,149, 20, 66,135,206,253, 15, 82,226, 7,253, 7,253,156, 30, 74, - 45, 1, 46, 1, 33, 1, 22,137,138,110,121,208, 40,245,176,213, 88,234,232,120, - 84,105,172,120,176,131,161, 56,185,221,246,108, 46, 21, 23, 19,191,112, 54,175, -130, 19,163,134,131,137, 20,181, 29,169,243,108,138, 75,102,115,105, 16, 59, 24, - 6, 24, 95, 88, 7,160, 60,221, 30, 15,130, 44,163, 40,139, 53,230,100, 77,195, -202,178,107, 39,181, 36, 10, 10,139,204, 45,143,232,157,205,133,195,121, 15,231, - 32, 34,213, 45,231,170, 95,171,235,181, 92, 7,252, 70, 2, 6,238,236,106,162, - 62,189, 79,240,151, 49,254,255, 11, 11, 20, 56,187,124, 1,200,108, 55, 59, 0, -231,171,211,172,217, 1, 22, 22, 36, 53,179,183,253,234, 92, 57,219,152, 44,115, -161,123, 80,215, 43,183, 95, 83, 30, 99,118,237,141,237, 67, 83, 98,183,124, 59, -110,163,214, 45,201, 66,131,132, 18,225,204,146,220,123,165,114, 99,125, 39, 95, -152, 8,219,201, 86, 83, 68, 30, 68, 84, 72, 46,214,168,108,121,115,123, 51,140, -222, 92,211,222, 39, 7, 74, 3, 37,114, 96,210, 64,185,100, 69,159,108,107,200, -136, 75,222, 67,217,165, 91,119, 62,113, 30, 5,149,113,178, 74, 84,216, 86,201, -113,248,118,199, 89,184,104,118,121,251,101,107,252, 81, 41, 4, 76, 80,125,162, - 6, 60, 75,245, 10, 95,169,113, 27,223,232, 16,226, 64,210, 70, 10,244, 34, 37, -113, 6,134,133, 8, 3, 67, 18, 26,194,177,137,168,195,144, 91,107,241, 87, 82, - 13,139,192,104, 50, 26, 24, 41, 14,213,130,200,177,160,168,168, 38, 42,137, 12, -102,131,129,152, 87, 17, 47, 50,143, 65, 68, 70, 83, 93, 56,113,163, 89, 16, 59, -177,115,145,152, 50, 42, 58, 21, 39, 50, 38,135,196, 91, 41, 78,178, 76,106, 53, -228,181,157, 68,100,219,101,113,147,108,177,134, 68, 2,132,119, 56,183,252,243, -169,244,114, 93, 45,203,215, 33,144,249, 4, 15,150, 72,154, 76,114,134,174,136, -181,238,226,204,178,151,102,100, 47,201, 53,187, 81, 99, 77,147,191,220, 48,100, -229,174,150, 88,171, 55,122, 37,104,194,114,167, 73, 13, 73,202,152, 42, 81, 21, -157, 99,206, 87, 22, 72,102,159, 94,167, 55,187,212, 86, 73, 43,123, 63,149,110, -156,183,110,190, 66, 97,206, 66, 81, 20, 69,189,247, 94,167,243, 42, 30, 16,194, -134, 16, 66,184, 65, 68,182,223,200, 28,109, 35, 46, 20, 20,180,128, 16, 66, 8, - 33,132,146, 4,138,186,248,177, 18, 70,151, 58, 17, 66, 8, 51, 8,161,244, 6, -156, 7,163, 38,243,120,244,201, 35,223,250,210,136, 26,108,102,101, 6, 2,117, -191,114, 5,150, 95, 68, 23,241,113, 1, 2, 46,189, 23, 69, 86,149,108, 99,168, -202, 89, 41, 22, 63,244, 98,205,179,117, 25,239,189,247,222,123,239,189,247,158, -124,239,189,247,222,195,250,154, 28,236,224,211,167,207,236,178,105,170, 34,174, - 58, 70,191,117,118,235,172, 79,119,118, 4, 24, 28, 42, 48, 60, 50,122,227,162, -135,247, 33,183, 28,114,108, 39, 95, 12,231,110,246,149, 30, 17, 34,228, 14,185, - 39, 67,147,181,155,168,124,109,167,105, 29, 22,193, 58, 98, 37, 3, 5,182,164, -198,197,217, 17, 62,124, 34,163, 27, 84,151,137,106,118,155, 52,137, 72,161, 41, -163, 59,165, 6,107, 92, 43, 99, 76,138,166,245,198,173, 52,228, 57,165,247,180, - 50,135,237,182,103, 22,140,155,235, 44,139, 30,251,148, 77,214,104,137,134,233, -226, 91,217, 78,166, 9,164,163,207,105, 98,137,142, 97, 38,237, 43,175,148,149, - 94,140,190, 15,186,216, 74, 79,100, 98,155, 98, 32,251,109,172, 39, 70,219, 95, - 43, 89, 59,165,177, 95, 34, 97, 83,118,233,198, 61,181,183, 53, 46,179,228,229, -193, 22, 66,192, 4, 21, 80, 83, 69,141, 43, 0,176, 36,113, 58,118,177,181,108, - 89,242, 83, 82,113,144,192, 99,244,215,100,142,175,172, 67,153, 72, 42, 91,105, - 29,190,114,118,155,163, 75, 38,159,240,214,247,215, 78, 66,245, 27, 60, 47, 43, -248,144, 28,162, 55,104,178,155,192,183,161, 10,188,147, 57,216,208, 17,188, 52, -217,183,103,183,253,100,246,252,253,233,226,143, 69,181,217,189,210, 16, 11, 11, -191,253,139,177,246,192, 23,131,106, 29, 29,127, 80,188,141, 69,167,178,216,116, - 56, 49, 66, 98,182,209,187, 47,219, 2,116,114, 68,239,112, 50, 23,152,120,217, - 60,138, 74, 34,213,150,220, 84,233,252, 52, 25,227, 98,219,253,210,140,100,131, -106,236,121, 28, 16,237, 53,251,115,135,144, 54,233, 47,190,152,231,133,147,185, - 68,196, 75,199, 98, 10,221,238, 95, 77, 39,221,170,212, 44,190, 94, 97, 54,151, - 76,244,235, 51, 7, 80,170,140, 76,233, 90,169,125, 42,159,133,121,205,142, 98, - 17, 4,146,224,225,150, 41,180, 61,114, 8, 8, 59, 73, 14, 23, 16, 21,128, 64, - 54,151,137,206,147,120,168, 34,209, 47, 42, 42, 6, 24, 8,168,138, 84, 66,220, - 33,175, 56, 8,239, 10, 2,233, 39,120,184,229,211, 20, 61,163,193,116, 48,157, -107,114,127,234,138,123,228, 18, 38, 16,142,153, 97,205, 2,159, 79,245,200, 99, -104,171,172, 77,174, 18, 43, 29, 29,145, 85,171,170,234,182,252, 98,163,129, 23, - 24, 23,104, 98,199, 66, 19,125,214,238,106, 45,177,139,185, 98,231, 42, 57, 84, -233,198, 91, 71,127, 14,231, 82, 85, 22, 28,203, 99,226,174,222, 79,108, 53,137, -125,162, 64, 18,159, 34,168, 61,125,138,205,218, 64,115, 37, 88, 16,206, 85,183, -156, 3, 84,117,117,214, 36,219,222,160,145, 73, 39,181,149,179, 43, 49, 62, 89, - 5,106,132, 97,168, 67, 73,115,210, 57,135, 76,146, 36,169,209, 26,211,129, 16, - 16, 22,150, 76,103, 99, 49, 35,231, 7,227, 1,242, 0, 37, 24, 17, 33, 33, 6, - 72, 56, 8,130, 24,132,100, 40,132, 40, 1, 65,132, 16, 75, 8, 34, 66, 50, 72, -157, 3,184,158, 46,207,250, 65,253,192, 36,134,114,135,206,247, 77,119, 45,201, - 52,171,132,133, 50, 80,233,251, 79,107, 16, 49,250, 27,126,252, 75, 29,254,184, -142,189,162,202,120, 84,209, 49,153,172, 69,222,115,217, 31,112, 35,206,114,252, - 13, 89,217,252,116,214, 4,113, 76, 93,230,200,128, 46,164, 11, 68,186, 2,112, -105, 93,200, 82,253, 43,149, 58,173,177,254, 54, 53,250, 42, 63, 88, 14,123,205, - 74,236,109,218, 64,252,136,162, 32, 43,156, 3, 19,109,151,151,144,251, 23,113, -133, 37,213, 33, 27, 51, 91, 95,112, 45,143,123,227,218, 90,123,245,240, 48, 67, -161,101, 25,219, 82, 17, 0,178,240,219,254,161, 99,135,167,173, 72, 25, 27,201, - 78,236, 5,121, 10,137,207,235,173,212, 98,245,178,181, 90,217,191,111,121,186, - 83,115, 27, 77,120,218,132,229, 13,249,132,101, 93,102, 96,197, 54,246,233,212, -156, 87, 92, 43, 0,191,128,249,170, 10,195, 42, 25, 40, 24,118,197, 50,126,253, - 93, 87,221,206,102,222,135,246,246,149,128,208,206, 76, 98,138,193, 91,209,176, -222,104,156,172, 26, 74,150, 32,151,162, 90,235,246,195,108,212,254,152,246,195, -199,241,130,138,133,196, 68,155, 10,217,118,171, 32,169, 87, 98,213,247,217, 15, -150,115, 24,230,225, 28,170,202,214,137,133, 60,240,231,104,209, 92, 30, 15,142, -227,114,184, 91,134,239,185,168,137,206, 25, 73, 80, 60, 62,215, 79, 25,227,171, -245,108, 42,169,206, 7, 53,193,220,114,150,162, 92,137, 97,200, 73, 70,248,211, - 32, 18, 99,186, 46,203,133,197,243,121, 70, 23, 54,155,167,159, 19,219, 58,228, -251,100,167,122, 96, 4,210,148,181,208,176,161,151,214, 75, 95, 78, 58, 50, 11, -195,203,102,154, 72,154, 79,170,140,238,195, 73,254, 80, 62, 9, 89, 3,201,164, - 71, 37,116, 2,171,248,127, 80,185,126,229, 67,247,131,189, 2, 47, 51,182,146, -171,212,216,245, 1,158, 98,104, 61, 81, 1,128, 85,106,248, 2, 72, 81, 94,152, -214, 67,161,138,131, 36,110,185,174,215, 73,229,120,157,112,128, 85, 93, 17,182, - 82,202,222,168, 18,181, 14, 85, 58, 37,159, 90, 7, 72,193,131,143, 7, 71, 67, -211,105, 94,114, 72, 97, 23,225,219,212, 62, 96, 31, 32,167,206, 86,172, 25,153, - 77,229, 39,210,198,178, 77,244,126,111, 55,200,146,116, 72, 47,193,152,127, 27, -215,175,152,202,244,136,159,181,164,227,133,145,207,196,162, 87,163,196,188,142, -213, 40,195, 48,113,121,138,205,178,232, 41, 39, 3,250, 87, 30,165,232,101, 76, -221, 62,217,197, 92,242, 32, 50,131,206,174,233, 46,183, 77,221,184,201,170, 34, - 93,195, 86, 63,168, 40, 91,225, 85,124,245, 94, 55, 22,155,243, 13, 27,180, 1, -221,191, 88, 41,236,172, 64, 41, 2,202,113,141, 63, 92, 53,152,197, 49, 20, 4, - 36, 49, 28,180, 9,122,214, 63,138,102, 96,115, 56,174,120, 52, 2,181,220,103, -201,220,203,199,244, 67, 5,166,111,136, 63,112,209, 87,116,137,191,173, 64, 53, -130,179,175, 33,157,188, 11,233,176,138,200, 26,200,176,199, 39,159,140, 11,208, -252,235, 11,192,142,103, 39, 96,138,183,136,182,246,150,189, 68,247,136,246,138, -143, 34, 25, 9,139, 55,116, 9,109, 94, 23, 9,157,199,160, 70,155,164, 83, 71, -177, 46,216, 13, 3,185,208,220, 75, 13,117, 82, 0,214, 73,178,241,161,191,155, - 71,241,247,130, 4,119,129, 71, 79, 7, 8, 7,111,170,248,152,194, 90, 3,103, - 32, 72, 11, 72, 12,162, 3, 52,207, 51, 29, 83,174,247,231,187,200, 74, 42, 13, - 29,211, 91,137, 9, 38, 17, 22,228, 33,142,156, 91,231,252, 59,198,196,180, 69, - 88,231,151, 63,188, 68, 52,117, 62,161,177, 13, 34,238,254, 48,207,217,135,129, -238,193,153,252, 28,163,190, 68,133,157, 49,230, 37,212, 81, 30,150,138,191, 76, -137,133,196, 81,189, 46, 20,173, 58, 71,134,254, 54,145, 35, 17, 64,109,161,239, -210,127, 21,143, 2, 50, 40,114,144,172, 12, 5,232, 27,146, 8, 10, 98, 33, 32, -231,255,128, 74, 2, 67, 77, 19,144, 41,126, 74, 42, 26,161,148,128,242,250, 85, - 67, 8, 9, 50, 13,184, 48, 96,218,138,198,197, 84, 14, 52, 78, 81,193,112,206, -140, 20, 68, 69,118,141,226, 85, 88, 76,239,104,231,207,122,247, 48, 98,164,191, -148,254,200,170,245, 82, 33,159, 44,112, 19,234, 93, 63,145,198, 79, 65, 0, 36, -168, 45, 50,126,252,233,218,148,238,123, 94,143,243, 4,111,203, 61,227,209,233, -239,120,106,141, 94,237,251, 76, 74,173,174,155,146,192, 56,179,241,193,249, 81, -119,229,237, 37,217, 82,104, 19,140,134,240, 12,165,179,186,164, 35,226,115,120, - 88,187,207,195,143,130,160, 28, 5,244,195, 35, 20,249, 27,102,171,156, 26,124, - 68,132,199, 90, 3, 10, 32,222, 43,137, 4,137,100, 65, 35,160, 46,229, 31, 39, -250,144, 21,108, 58, 41,132,255,227, 7,122, 39, 5, 35,160, 44, 18, 32,150,197, -245, 12, 15,150,220,147, 28, 42, 18,145,114, 66,105,110, 76, 52, 85,198,245,172, - 19,158,162,107, 31,221,238,128, 89,183,227, 75,185,142, 46,227,109,134,184,219, - 7,133, 1,132, 16,119,156,126,103,224, 36,249,143,195, 1, 36, 15, 0, 95,184, -207,200,175,232,245,175,114,127,161, 5, 28,195,180,173,171,102,189,152,135,165, - 47,243, 29,175,146,182,139,220, 42,173, 23, 84,161,123,247, 36,205,231,239, 12, - 90,245, 23,169,162,107, 64, 38, 27,223, 84, 73,144,168,153,252,212,225,140,137, - 93, 18,145, 41, 25, 41,118, 1, 38,148,121,218,152,234,211,115,181,177, 55, 22, -149, 3,128, 12,229, 76, 62,158, 75, 3,194,157, 38,137,176,131, 93,223,175, 43, - 99,253,250,140,113,211,203, 12,119,227, 17,142, 62,156, 93,252, 81, 75, 66,140, -188, 43, 38, 15, 29,188, 16,231,123,116,208, 51,184, 17,147, 94, 24,231,152,124, -245,117,205,165,229, 32, 65,187, 19, 94,117, 38,219, 84,184,135,235, 13,190,165, - 32,122,184, 42,230,180,138, 41, 25, 55,142,128,167,130,110, 43, 22,121,116, 94, - 3,199,103, 43, 76,205,140,167,213,146,151, 36,250,184,125, 91,167,146,209,212, - 9,129, 59,245,155,190,253,225, 56, 38, 31,141,196, 79,246, 6,109,148, 65, 64, - 16,198,204,220,176,174,147,145,133,104, 34, 44,122,146,215, 14, 73,112, 32,243, - 14,141,177,125,141,242, 14,238,201,219,124,183, 78,242,146,129,163,210,225,163, -234, 82,153, 73, 77, 36,209,203, 18,116, 26,223, 89,252,202, 80,154, 63,161, 62, - 51, 33, 6, 33, 38,112,112,154,252,185,155,173, 0,163,221,146, 92, 91,211, 78, - 36,193,147, 65, 32,208,185,208,122, 20, 90,110, 66,123, 10,147, 55,194, 48,186, - 16,173, 10, 73,146,152,235,191, 6, 62,153, 52, 41, 25, 71,157,227,114, 50, 60, - 69,178,127,182,221, 69,220, 25,151,244, 58, 27,200, 12,145,188, 2, 53, 70, 1, - 74,103, 77,176,215,112, 31, 6, 78, 98, 84,201, 46,112,133,253,149,172, 26,205, -195, 76,242,243,199, 22, 53,245,147, 7, 2,112,204, 86,131,220,138,174,222,231, -188,249, 44,198, 91, 38,141,233,113, 91,223, 74, 8, 1, 38, 79,122, 35,196,115, - 19,100,220,247,119, 38,167,232,194,167,176,195, 41,187,140, 58,205, 68,115,224, -155, 79, 76,182,178,140, 76,162, 55,138, 33,116, 76,149,143, 28,244, 31,191,113, - 14, 61,215,111,131,214,130, 32, 12,193, 70, 70,186, 80, 71, 3, 28, 80,138,248, - 50,169, 98, 12,131,229,132, 92,153, 93, 9,174,237, 86,209, 0, 30,234,192, 84, - 48,101, 46,196, 63,246, 32,173, 4, 42,216,165,134,104,191, 29,168, 28, 1,205, -173, 86,162,134,148,106,154,167, 3, 9,221, 26, 52, 20,147, 28, 57,244,132,150, -164,218,150,203,199, 98,138, 65, 3, 1, 77,174,135, 46, 0,104,105,133,154, 90, -212, 25, 63,141, 41,211,194,134,198, 64,153,197,211,243, 10,146,141,250,232,254, - 23, 96,152, 33,172,216, 16,123,182, 13,168, 82,230,249,189,101,172, 80,115, 90, -118,129, 59,111, 5, 0,243, 98,229,180,251,240,233, 44,190,116,206,241,101,198, - 25, 94,171,175, 27,143,101,224,144,133,172,105,235, 70,234,164,208,250,151,155, - 98,160,232, 44, 88, 0,243,255,147,153,240,101,120,122,247,249,158,164, 1,140, -190,159,160,248, 1, 63, 64,232,109, 53,138,100, 57,182,141,140,196,111,163,181, -199, 75,207, 24,138,113, 49, 90, 60,161, 64,132, 9,211, 95, 4,212,234, 31,253, -242,115, 95, 10,208, 63,216,166,211,206, 24,202,240, 42, 24, 16, 36,138,210,134, -160, 78,112, 39,255,160,139, 49,114,194, 65,184, 33, 5, 79,155, 27, 82, 31,248, - 88,181,128,156, 96,224, 65, 21,120,203,140, 76, 3,109,180, 19, 23,222,245,132, - 47,145, 31,118,130,109,125,239,107, 96, 51, 78,202,194,250,190,192, 5,178,231, -249,213, 16, 44,107, 91,219,246,144, 0,219,105,163,189,143,243,245, 68, 94,176, -204,190,196,215,153, 16,122, 17,234,100,248,151,127, 91,227, 3, 18,120,195,218, -119,253, 49,187,138,178, 76,164,115, 74,149,198,215,168, 35, 46,122, 37, 68, 89, -104,131,135,104, 74, 42, 82, 67, 96, 90,226, 6, 79, 1,148, 76,197, 17, 86, 90, -180,153, 97,220,172,133, 90,197, 83,247, 46,183,234, 21,232,198,198,236, 19,224, -161, 22, 26,192, 70, 26, 62, 32,235,255,169,213,127,131,172, 90,197,245, 25, 36, - 58, 86, 17, 50, 65,254, 26, 81,247,227, 39,211, 24, 19,141,178,144,231, 11, 8, - 13, 5,148,229,207, 97,183,104, 86,174, 80,181,113,119,109, 50,230,255,124,108, - 93, 13,233,100,161,172, 19,129, 29, 30,136, 17,154,106,220, 18, 32, 83,152,149, -210,233, 77,152, 78, 35, 9,126,159,195, 44, 8,103,195, 53,166,145,116, 98, 62, -110, 34,212,134,201, 59, 26,153,150,213,182,114, 1,174,126,123,111,206, 40, 47, - 54,255,122,126,157,111,219,101,207, 14,246, 74, 93, 85, 33, 69,200, 16,120,175, - 37, 37,221,172,115,107,172, 27, 9,156, 17, 12, 94, 43, 10,130, 93, 14,179,144, - 20,243, 48,135, 84,225,135, 81, 28,201,134, 23,131,139, 48, 59, 11, 76,212,148, -242,181, 18,148, 35, 6,138,171, 8,120, 1, 5,147, 42,250, 88,226,200,245, 20, -145, 51,225,206, 6, 87,137, 82, 46,135,214,253,205,132,201,177,255,204, 24, 70, - 84,147, 97, 26,130,246,197, 56, 86, 31,223,133, 51, 15, 31,229, 10,128,182, 6, - 93, 84,231,157,243,211,155, 9, 4, 28, 29, 56,236,187,129, 6,138,101,211,188, -184,183,142, 80,183, 15, 54,148,225,131, 56, 38,217, 86, 99,174,244,162,175, 31, -238,180, 26, 79, 65,230, 93, 85, 28, 36, 49,215,209,248,161,127, 7, 55,194, 80, - 44, 9, 51,125,234,100,138,202,150,207, 37, 53, 24, 33,119,134,196,138,127,122, - 14,168,198,115,178,123, 7,250, 29,205,138,184, 39, 56,141, 53, 81, 22,160,206, -191, 62, 84,124,178, 30,247, 15,129, 35,158, 7,171,122,240,114, 92,252,252, 89, - 95,179,225,153, 60,143,199,147,191,168,162,168,143,136,202,180,210,154, 33, 55, - 48,154, 14,217,161, 64, 69, 61,239,174,108, 17, 91, 75,233,146, 29,106,200,103, -149, 25,221, 56, 95, 8,174,202, 8,244,181,187,200, 41,143,220, 41, 30, 40,185, - 80, 28,111, 33,149,194,221, 98, 35, 18,234, 81, 90,196, 37,248,112, 6, 13,228, -126, 63,119,193, 93,112, 66, 99, 25, 66,204,232, 70,149, 7,192,162,131, 95,173, -105,198,166, 41,209,101, 38, 34,168,236,243, 15, 27,178,194,199, 94,193,135,253, - 87, 87, 43, 23,146,115, -} ; - -// ../Source/Template/GB_AxB_saxpy3_template.h: -uint8_t GB_JITpackage_34 [4529] = { - 40,181, 47,253, 96,156,116, 61,141, 0, 58,126,244, 22, 45,176,142,142,115, 18, -172,220, 4,201,118,155,134, 62, 32,111,200,182,156,126, 4, 41, 62,118,124,200, - 71,100,150,228,147, 95,124,194,129, 25,223, 75,127,208,127,176,254,167,195, 1, -100, 1,107, 1, 96, 1, 23,200,186, 52, 20, 14, 7, 78, 54,119,144, 92,195,186, -237, 58, 21,183, 45,126, 38,202,196, 5,106,174,134,228, 23, 19,180, 93, 59, 41, -246, 96,124,178, 20,109,127, 63,104,186,117,101, 36, 7, 73,217,121,184,184,221, -238,252, 65,182,146, 51, 68, 78, 13,248,171,166, 87, 23,197,179,183, 59,164,150, -112,113,214,223,220,254, 52,107, 58,215,133, 40,149,215, 31, 28,174,217,168, 93, - 18, 22, 52,172,217,207,110,111,251,214, 29, 30,126,225, 84,101,174,164, 93,182, - 47,107,186, 39,242,110,141,215, 94, 22,247,123, 25, 56,112,103,191,161,194, 27, - 42,237, 82,161,208,244,232,197, 88,116, 10,244, 32,147,245,202, 34,122,190,177, -242,237,211,123,230,202, 29, 2,186,172,139, 67,153,104,224, 76, 64, 3,197, 69, -225, 64, 75,198,162,112,174, 2, 18, 50, 21,112,115, 85, 21, 30,206,166,167, 5, - 52, 52, 56,170,120,120, 15,125,233,182,101,237,126,210,103,147, 57,206,126,233, - 60,205,206,150, 53,206,239,192, 42,245,220, 78,218,183,103,123, 56,162,129,128, - 3,162,193, 26, 22, 57,120, 72,229,246,244,157,156, 85, 26,108, 39, 99,109,105, - 84, 68,100, 28, 25,139, 42, 91,214,220, 94,237,211,154, 75, 9,255, 10, 64, 16, -128,104, 32,120, 16,128, 56,133, 77,127,182, 69, 49,226, 14,248,146,118,233,214, -156,191, 13,180, 84, 26, 23,235, 4,132,109,141,220,134,111,119,155,134,140,106, -151,183, 63,182,232, 0, 42, 93, 96, 41,152,252, 85, 14, 80, 50, 57, 68,115,240, -141,146,219,248, 94, 5, 74, 28, 41,218,171, 34,193,171,154,248,195, 67, 67,227, -225, 33, 45,185,190,178,219,254,224,108, 52, 21,137,208,180,117, 19, 2, 10, 65, -166, 89, 85, 29, 70,197, 61, 24,151,116,238,112,174, 2,133, 14,185, 69, 40, 68, -225, 90,117, 6,211,171, 7, 39,107, 89,102, 53,126,184,158, 86, 44,110,183, 45, - 57,232, 92, 89, 27,253, 85,159, 93, 85, 27, 14,180, 44, 22, 8,186, 42, 16, 87, - 58, 63,253, 71,221,233, 20, 13,180, 76, 40, 17, 87,131,202, 68, 67,169, 88, 50, - 21,142, 5,130,117,109, 42,246, 51,187,246,198,246,143,123, 72,131,136, 11,102, - 66,217, 92, 26,140,196,197,137,188,251,113, 43,219,169,224, 22,159,253,190,228, - 77, 64,194,117,200,130,122,187,252,177,184,233,160,190,174,166, 8,217,120, 79, -177, 71,138, 13,164,176, 46,161, 44, 30,140, 99,192,224, 0,193,221,236, 75, 81, - 0, 14, 60, 18, 64, 20, 48,112,175, 3, 15,136,200,255,247,123, 37,184,179,187, -233, 20,142,132,234, 97, 35, 6,185,178,139, 20, 95,180,221,166,107,216,237,145, -237,100, 20, 61, 25,107,119,177,174, 94,107,177, 64,184,176,149,212,227,108,224, -100,130,234, 84,213,196,157,108,109, 79,147, 90, 81,188,172, 93, 79, 71,174,157, - 23,145,220,162, 43,213, 4, 53, 96,192, 45, 44,142,194, 59, 22, 77,225, 30,138, -159,122, 92, 34,161, 24,140, 43,136, 76, 84,228,212,116,201, 73, 36,235,247, 90, -174, 14, 15,213,184, 61,139,123,247, 10,217,184, 77, 25,103,204, 51, 82,146,147, -222, 74,158,149, 67,207, 26, 88, 87,158,252,105,176, 80, 46, 26,138,131,139, 83, -105,192, 88,228,108,168,210,209, 29,182,155, 56,101,174,116, 63, 89,212,159,123, - 35,102, 15,185, 1,127, 35,158, 23,127,153,164, 23,167,100, 36,112,120,210,236, -189, 10,104, 61, 92, 42,214,103, 55,174,236,174,131,245, 70,111,124,108, 17,117, - 95, 79,142,190,147,159, 49,199,157,207,136,157,111,204,184, 46,162,130,185, 96, -172,123, 9,227,144,138,136, 12,132,107, 82,177, 48, 28,120, 77,136,100,179,107, -138,137,101, 39,222, 41,130,242,201,100, 18,137,184, 64,238,234,189,100,250, 8, - 82,186,136, 18,251,155,156,241,158, 76,127, 92, 22,168,198,164,115,162, 46,154, - 77,206,162,200,114,182,196,239,144,113,210,190, 28,205,110, 75,114, 98,110,165, -246,144, 75,230,226,104, 48, 36, 10,210, 36,114,170,255, 38,220,116, 6, 99, 50, -185, 4,187,130,247, 35, 39, 48, 97, 45,105,103, 43,217,151, 36,215,142,187,178, -179, 92, 15,153,184, 84, 52, 21,139,178,145,112,129,142,140,101,103,235, 64,183, -241, 25,127, 62, 81,122,110, 59, 50,153,156,173,172,221,120, 77, 40, 20, 28, 72, -129,250, 98, 22, 16,194,191,233, 80, 70,172, 57, 74,229, 43,223,142,126,198,236, -165, 44,114,149,209, 33,162, 93, 58, 41, 23,204,117, 84, 22,241,136,106,127,149, -114,244, 89,211, 73,183,215,158,125,182,221, 3,130, 37,163,193, 84, 88,206, 26, -199, 65,179,199,109, 41,142,100,188,135, 80,175,160, 88, 50, 22,102, 50, 1,128, -166, 2, 51,147, 67, 79,240,124, 59,110,163,152,196, 56, 11,117,111,151,148,118, -172,110, 8, 67, 17,198, 16,156, 14, 7, 64, 8, 33,140, 16, 66, 8, 33, 21,130, -161, 11, 90, 84, 21,125, 21,247, 71,170,254,168, 80, 40,212,177,114, 1, 52, 71, -118, 29,120,196, 0,231,172,147,216,236,217, 65, 14, 60, 32,135, 98,197,139,150, -177, 49,230,184, 52,227,163,104, 30,141, 1,212,131, 49, 69, 30,145,204,206, 35, -225, 25, 81, 41,109, 54, 35, 71,226,107, 88, 6,135,195,113, 1,210, 39,113,246, - 87,226,176,141,183, 79, 47, 93,110,227, 91,222, 40,198,157,202, 23,207,110, 56, -149, 42,106, 93, 71,149,222, 86, 52, 17,168,137, 66,194, 17, 51,198,162,228,186, -206,159, 71,178,189, 93,234, 46, 22, 47,199, 24,137, 43,107,167, 31,236,118,197, - 56,107, 59, 59, 2,254,158,145,192,192, 31,196,223,195,182,118,223,168,108, 59, -106, 58,137, 98,127,239, 77,122, 74,131,185, 84,252, 61,160, 76,244,210, 17,183, - 79,172,220, 51,214,100, 14,147,241,157,188,177,228,182,126,150,167,193, 88, 62, - 35,191, 13,197,170,112, 12, 28,248, 39,110,237,193,168,158,100,228,122,217, 59, -121,246,233,232,222, 70,136, 2, 19,137,202, 55,114,253, 80,119,178, 13,224,223, -126,123, 86,150, 50,110,214,114,189, 81,187,118, 62,174,241,118,171,124,175, 93, -218,161,247,220,249,181,221,246,107,101,244, 92, 25, 59, 11,252, 42,191, 35,227, - 16,198, 26,246, 30,219, 30, 97,126,199,181, 77, 91, 20,181,121,123,163,215,110, -143,254, 88,118, 58,154, 69, 42, 61, 18, 11,222,253, 43,127,120,118, 21,234, 93, -112,211, 41, 38, 21,148, 11,192,116,150,173,141,110, 63,146,241,252,180,181, 49, -147, 29,213,236, 47,241,114,219,247, 85,192, 5, 18, 5,211, 35,104,214,211, 25, - 23,156, 67,133, 3,168, 3, 26, 90,154,100,204,208,204,140, 72,146, 36,105, 12, - 99,145, 16, 24, 18, 9,204, 37,179, 65,101,217, 62, 3, 65, 67,233, 32, 32, 10, - 98, 25, 12,193, 17, 8, 97, 16, 6, 65, 64, 2, 67,104,136,128, 16, 73, 8,145, -132, 40,130, 94, 29, 39, 56,211, 84,158,183, 13, 82, 0,254, 10,184, 9,139, 31, -237,187, 24, 49, 4, 4, 72, 85,192, 27,140, 61,138, 28,162,212,189, 76,113,189, -159, 15, 61, 81, 43,102,234, 24,196,231,116, 4, 7,190, 48,177,184,196, 91,162, - 38,234,116, 46,114,112,147, 28,241, 5,206,109, 79,150, 3, 5,210,216, 92,232, -201,226, 82, 69,100,146, 63,244,227,162,102,198,193, 52, 52, 94,222, 59,213,212, -202, 48,134,213,138, 14,161,196,105,235,138,227, 51, 67,179,198,249, 47,107, 61, - 59, 22,111, 53, 47,135, 89,190,107,112, 89,129,188,231,232, 27,167,252,139,111, -206, 53, 88, 69,212,239,193,251,116,160, 0, 70,177, 25, 5, 8,119,235, 80,123, - 36, 9, 9, 58,191, 25, 59,232,187,199,130,147, 17,192,251,168, 24,233,240, 95, -113,122,207, 67, 98,199,175, 67, 16,155, 27, 20, 56,195, 39,255, 54, 74, 33,188, -177,103,218, 20,221, 99, 30,106,189,244,240, 27, 41,104, 66,105, 63,169, 62,249, -192, 46,122,208,226, 93,147,148, 95,122, 62,214,229,177, 91,251,189, 57,107,110, - 7, 26,101,131, 15,160,252, 75, 19, 44,192,224, 8, 24, 18, 2, 17,196, 46,232, -123,137, 70,130,180, 58,223,104, 89, 32,126,147, 84,172,153,202, 16, 21, 29,129, -143,165,117,185,237,202, 90,214,105, 19,181,133,151,249,138,225,230,233,152, 33, - 24,250, 2, 92, 42, 97,240,188, 98, 98, 47, 58,233,151, 39,101,187, 1,122, 62, -213, 40, 69, 79,127,187,185,229, 87,190,175, 36, 11,216,106,240, 97,203,159,211, -241, 85,181,156,111,102,180, 96, 10,240, 32,150, 68,157, 31, 69,147, 67,242,238, - 54,156,149,100,171, 3, 48,168,113,205,151, 11,102,170,133, 68,131, 92,243, 51, -128, 29, 89,155,234,108,114, 46, 26,100, 65, 18,207, 40,102,125, 79,115, 22, 43, - 0,180,226, 12, 45, 73, 77,167,133, 98, 79, 50,238,199,233, 70, 57,105,242, 82, -149,212,118, 25, 64,245, 72, 17,205, 62, 52,155, 47, 47,183, 22,145, 32, 66,248, -157, 7, 11,253,228,162,182, 11,124,147, 89,200, 48,169,133, 55, 42,228,171,206, - 32, 9, 6,188,146,185, 46, 18,118,183,216,112,235,162, 41,184,200,144,199,231, - 20,112, 47, 78,158, 33, 16, 82,133, 84,207,168,125,131,136,221, 4,249, 77,234, -200, 85,160, 16, 52,141,159, 30,216,241, 79, 51, 71,203,247,228,183, 5,143, 44, - 84,133, 33,193,165,121,242, 98, 91, 80,115, 85, 90,129,109, 82, 58,119,193, 59, - 24, 40,220,167, 75,153,185,109,102,173,112,171,251, 19,182, 29, 2, 39,113,191, - 25, 82,141, 23,251, 78, 50,144, 44, 47, 25, 42,184,130, 84, 66,154, 83,237,154, -169, 53, 98, 41, 21, 9,141, 24,170,101, 55,147,199, 59, 46,233,211,193, 11,178, -194,176,226,133, 71,197,145,215, 28,137,201,118,178, 89, 18,248, 86,116, 22, 62, -107, 22,108, 25, 27,184, 90,198, 9, 98,137, 47, 9, 29,181,128,224,221,162, 70, - 2,197, 71, 64,130,124,171,223,203,121, 79,159,142,234,236,108,188, 43, 63, 42, -145,112,139,104, 92, 5, 68,181, 4,207, 59,170,169,174, 7,144,206,132,130,118, - 34,136, 9,141, 18,130, 48,156,164, 71,152,142, 63,132, 89,135, 67,119,227,241, - 20,179, 1, 8,198, 1, 29,233,115, 63,168,196,203,184, 58,175,206,253,159, 74, -112, 29,150,164,187,107, 18,237, 7,200,148, 14, 97,101,140, 86,131,236,176,208, -178,179, 93,122, 18,227, 49,127,157,134, 24,168, 75,168, 23, 78,155,141,100,147, - 47, 80, 39, 13,182, 96,185, 36,160, 25, 10,184,156, 96,235,162,173,219, 17,130, - 61, 62, 92,166, 77,125,186,144,255,137,119,173,144,137,228,119, 74,132, 97, 15, -159,171,227, 5,160, 83,196, 56,104, 22,131,255, 45,179, 78, 51,240,136,187, 52, -174, 17,150, 68,130, 32,213,232,230, 49,110,234,164,147,109,122,187,225,228,252, -188, 57, 69, 69,217,209,144,131,245,209,133,161,208,158, 26, 84,160, 57,242,101, - 95,133, 86,251, 41, 34,214, 71,161, 78, 17,190,240,179,169, 55, 1,237, 21,202, -167,244,129,100, 20, 37, 48,204, 76, 51,185,145,181,184,254,182,247,133,249, 81, -215,107, 30,243,233,234,245, 41,166, 65,148,222,118,235,219,146, 97,204,121, 93, - 88,197,181, 89,101, 86, 79,171,157, 80,162, 59,194, 74,193, 49,180,168,176, 52, - 71,174,179,213, 9, 26,137, 38, 8,189,190, 65,111, 74,210, 66,123, 17, 78, 96, - 80, 44, 74, 28,137,243, 68, 60,131, 59,151,170,192, 58,156, 81,121,133, 92, 76, -182, 19,226, 71, 31,170, 11,220, 16, 38,177, 54,247,132, 20,207,131, 17, 89,191, -166, 19, 15,202,248, 23, 95,218,218,135,121,237, 35,174,192, 4, 44, 9, 18,196, -105, 40,188,228,159,245, 73,116, 31,100,143,146, 23,148, 74, 17,154,129,116, 15, - 76,120, 66, 40, 10, 60,131,168, 75,158,188, 28, 94,182,246,140,137,232,165, 81, - 2,135,229, 99, 55, 19, 90, 42,206,209, 47,144,181, 9,114, 36,241, 72,199,183, -255, 71,195,253, 53,170, 42, 50,186,163, 20, 67, 91, 67,254,138, 7, 92,155, 26, - 13,168, 59,223,151, 50,172,151, 28, 69, 6,125,107,195, 36,221, 17,211,162,108, -100, 4, 76, 5,220,151, 20,116, 55,115,248, 62,168, 30, 76,103,218,238,121,231, -223, 19,245, 30, 2,108,195,146, 99,142, 91, 44, 63, 78, 49,162,203, 71,145, 56, -227,110,165,130, 11,132,106, 9,160,108,148, 5,157, 89, 23,140,109,211,241,215, - 74, 48,179, 41, 92,102,216,160, 68,167,231,129,145,223,228,114,239,163, 79,119, - 75,215, 17, 42, 75, 34,134,211,140, 60, 29,245,238, 86,236, 35,255,153,160,202, -150,180,199,119, 18,107,196, 23,251,232,113,143,117, 35,124,140, 8, 92,139, 26, - 29,210,249, 77,172,130, 0, 25,160,180,224, 78,225,151,190,101,172,171, 28, 64, -163,192,191, 49,197,182,227,184,185, 80,230,224,134,159, 36,159, 67, 1, 11,169, - 29,208, 81, 3, 83,161,130, 17, 28,151,208,151,175,154, 3, 86,113, 64,212,248, -104,223,253, 65, 35, 75, 43,191,192,103, 41,153, 39,155, 74, 62,162,230, 29, 15, -115,125, 0, 51, 66,182,148,201, 31,200,133,225,122, 66, 58, 8,182, 35, 72, 74, -116,239, 82, 75,213, 4,209, 11,193, 18,245, 90,184, 25, 94, 56,102,200,242,219, -168,241,122,172,195, 36, 98, 59,207, 50,243,231,183, 3, 75, 53,114,224,231,229, -181,214,162, 6,190,121,242,140,115, 28,223,251,240,177,127, 76,206, 57,129, 81, -124,255,223,183, 50,235,234, 41,164,161,185,151,154, 12,123,172,210, 89, 33, 83, -165, 94, 45, 5,201,174, 7,123,140, 0, 34, 90,123,196,232, 69, 50, 93, 84, 7, - 4,216, 97,200, 47, 3,164,224, 42, 79,227,240, 77, 31,217, 46,180, 83,169,114, -206, 53,178,112,110,255,236, 56, 54,235,151,121,130, 39, 76,240,101,212,183, 97, - 92,151,110,125, 18,236, 95, 13, 51,126,112,210, 96,130,119, 38,209, 96,242,196, -150, 6,220, 68,177, 40, 8, 3, 72,188,136,202,182,241,115, 60,161,181,183, 84, - 88, 56, 95, 24, 35, 67,188,178,208,250, 67,162,193,244,175,195, 1, 96,150,113, - 5, 40,106, 58, 0, 34, 32, 73,176,113,211, 53,253,113, 60, 51,141,181, 16, 30, -176, 81, 50, 76, 4,111,176,175, 7,240, 46, 98,155,160, 42,185, 40,135, 21,149, -188,118,206, 91,238,186,239,140,149,163, 9,214,149,203,124, 15,167,123,220,189, - 24,142,216,114, 63,221, 30,113,157, 69,173, 40,168, 39, 51, 52,124,139, 4, 40, - 39, 35,110,147,159,130,238, 55,100, 39, 26, 89,235,140, 99, 60,105,166,194,219, -203,112,220, 21,139, 94, 69, 17,145,162, 81, 33,114, 68, 73, 32, 91,129, 17, 77, - 5, 94,196, 53, 6,204,212,146,111,215,200, 27,240, 53, 98, 55, 37, 89, 62, 80, - 35,199,250, 79,213, 52, 25, 25, 26,165,172,130,248,251,214, 96,191,205, 78,250, - 8,147, 65,161, 18, 7, 28,114,147,207,118, 61,216, 78, 5, 84,242, 69,238,209, - 64,192,105, 96,222, 99,252,222, 49, 35, 62,179, 55,203, 71, 14, 32, 31,245,226, -146,197,139, 4, 69,137, 67,192,242,177,234,160, 45, 33,183,176,117,164, 9, 64, - 80,125,209,199, 53, 45, 18, 75, 60,147, 71, 52, 22,156,131,245,198, 9,137,229, -204,178, 40,237,234,196,134, 17,239, 65, 40,100, 26,182, 78,162,160,152,120,163, - 56,102, 96,128,221,159, 87, 34, 49,162,133,255, 82,184,112, 70,243, 38, 60,152, -231, 14, 49,121, 55, 4, 74,163, 42,160,151,125,230, 41,109, 17, 27,221, 5,159, -186,255,102,185,108,168,105,134,180, 0, 24,254, 0,182, 64, 60,220,182, 97, 93, - 46,143, 64, 15, 72, 30,197,126, 29, 73,199,220,145,154,243,229, 52, 41,100,107, -191, 96,199, 33, 68,103, 43, 66,254, 25,152, 83, 77, 33,160,240, 73, 91,178, 30, -144, 88,141,144, 33,146,127, 80,177, 96, 17,134,107,226,139,188, 18, 51,149, 27, - 97,170, 53, 54, 0,237, 61,126, 39,113,201, 7,165,176,182,231, 61, 32,205,209, -185, 62, 19,237, 26,194,168, 7, 75, 11, 77,148,117, 32,205,114,140,112,156, 16, -179,187,203, 67,185,202, 18, 73, 0, 84,112,179,228,254,112,240, 15, 19,136, 91, -199, 59, 74,110,227,204,242,222,180, 90,165, 55, 38, 12,176,244, 3,247,242, 67, -124,244, 39,188, 82,180, 13,207,219,156,228,211,213, 82,196,205,205,136,210,169, -121, 71,148, 2, 83, 17,251,123,149, 51,243,134,158,182,220,149, 92, 19,225,137, - 32,125, 29,131,143, 82, 76,184,147, 98, 42,198,149, 0, 75,105,214, 87,164,163, - 49,122, 36, 52, 9,188,109, 80, 79, 57, 76,177,198,131, 98,163, 2,173, 25,173, - 15,235,155,220,191,164,112,136, 76, 93,201,245,180,178,225,178,194,146,213,205, - 54,236,158, 30,110, 92,171,232,147, 36, 53, 26, 58,169,222, 78, 11, 77, 84, 24, - 28,212, 16, 48,152,162, 6,175, 4, 86, 28,126,171,111, 82,202,205, 85, 59,122, -168,165,111, 94, 68,157,158, 30,133, 1,175, 0,147, 62,134,157,208, 56,133, 60, - 87,149, 86, 72,235, 9, 81, 31, 71,206,191,244,245,105, 32,229, 27,234, 85,189, -178,112,168,244, 15, 17, 4,213,218, 55, 55,154, 63, 50,245, 40, 18,163,163,173, -230,214,171, 72, 11,134,230,194,250, 75,120, 15,159,209, 65,190,205,197, 73, 90, -127, 53,239,233,143, 60,230,160,111,199,178,112,168,209,100, 92,168,209,243, 77, - 51, 56,154,198, 23,151, 67,225, 84,132,233,253,118,254,169, 4,107, 68, 76, 64, -148,231,161, 1,139,147,175,140,104,143,190,180,198, 98,127,178, 20, 6,177,175, -194,122, 61,204,109, 20, 28,228, 79,172,108, 66, 42,108, 44,130, 67,153,221,165, - 65,193,209, 88, 58,128, 29,117,234,130,118, 18,208,112,147, 29, 87,236,147,200, - 13,209, 23,147,173, 67,159, 40, 99,219,194,249,227, 78,137,138,163, 24,206, 78, -161, 64, 79,230,193,212,201,165,210, 84, 64,108,167,169, 21,194,154, 69,112,197, -120, 74,132,190, 26, 77,145, 18,119,149, 54, 87,210,174, 45,113, 2,187, 20, 82, -105,158, 66,160,142,207, 89,124,167, 58,180, 5,158,150,173,232, 48,151,184,242, -177,211, 19,167,240, 68, 24,217, 9, 88,118, 88,182,241,193, 93, 88, 87, 28, 97, - 32,124, 99, 24,150, 88,192,249,235, 30,160,217,137,153,195,216,198, 54, 91,213, -170,134, 14,203,113,145, 24, 70,224,237,190, 46,195, 70, 85,157,142,104, 82,205, - 73, 38,116,218, 7,243,191,184, 22, 13,166,128, 40, 69,157, 1,239, 28,109, 42, - 69,158,163,181,163, 89,154,160,166, 25,243, 82, 10,182, 34,203, 64,101,202,234, -196, 84, 44,115,244, 48, 61,214,178, 12, 84, 3,236,170, 87,156, 42,171,156,107, -103,176,173, 82, 2,149, 7,226,213, 64,108, 60,231,187,102,164,217, 95,249,111, - 25,140, 23, 6, 56,238,137, 86,116,230,159, 52,146,155,240, 3,105,145,201, 80, -214, 82,211,123,148,128,219,111,178,174, 94,127, 15,129,228, 45, 0,124, 0, 5, -103,223,250,232, 51,128, 79,192,176,228, 5, 45,224,160, 53, 9, 46, 16, 72, 7, - 42,217,122,255, 70, 48,234, 56, 1,102, 43,180,250, 7,101, 15, 22,145, 39,196, - 29, 8, 77,193, 7,198, 51, 78,116, 4,121,157, 62,224,210,192,186, 62,138,161, -180, 93,127, 75, 12,156, 59,162,165, 25, 24,224,103,170,181, 1, 20, 20,229, 71, -119,193, 20, 7, 17, 81,110, 64,239,236, 57,132, 72,149, 78,139,214, 51, 5,195, -121,109, 81,224,128, 17, 69,224,215,108, 65,200,170,216,170,170,227, 95,118, 53, - 31, 32, 72,136, 1,106,153, 9, 58, 37,114,228, 48,215,163,168, 81, 83, 12, 37, - 53,206, 48, 6, 90, 34, 88,137,110,247, 66,228, 27,176,140,181,149, 11, 68,212, -241,171, 55,171, 35, 27,118, 27,115, 90, 99, 25, 88, 8,220, 31, 1, 61,177,184, -234,217, 20,128,148,250, 90,139, 60, 67, 45,162, 33,144, 2,169, 66, 96,232,182, -225, 5,252, 56,202,221,220, 97,245,224,212,133, 61,177, 30,108, 45,129,179, 62, -128,104,103,237,232,231,130, 49,197,194, 25,136, 36,236,105,212, 66,197,173, 70, -114,155,184,116,148,135,114,239,175, 46, 86,113, 69, 90,115,235,188, 78, 73,208, - 34, 64,146, 99,220, 79,156,108, 62,122,108,106,226, 6,192, 20, 12, 98,181, 80, - 71, 5, 79, 34,174,103, 65, 76,167,254,244,169, 43, 1,167, 49, 49, 5,135, 40, - 9, 65, 39,249, 67,208,192,203,170,230,147,174, 95,138,228, 79, 18,109,108,212, -105, 13,229,204,162,150, 22, 59,251,246,133, 5,174, 0,172,230,184, 20,168,128, - 92,180,221,181, 96,179,150,199, 4,118,129,232, 73,229, 29,122, 6,201, 83, 71, -125,253,144,152,195, 13, 49,151, 19,188, 46, 13,220,252,171, 70, 0, 20,153,204, -116,124, 96,162,155,166,250,130,153,138, 34,234,152,135, 62, 67, 76,172,216,116, - 97, 83, 34, 53, 77,107, 5,140, 74, -} ; - -// ../Source/Template/GB_AxB_saxpy4_meta.c: -uint8_t GB_JITpackage_35 [909] = { - 40,181, 47,253, 96,254, 9, 29, 28, 0,182,234,129, 40,192, 18, 89, 29, 74, 4, -198, 98, 30,222, 5, 14, 4,172, 77,205, 69, 93,188,126,147, 10, 99,206,215, 97, -170,156,227, 74, 58,143,167,223, 85, 20,138,235, 32, 4,121, 0,110, 0,120, 0, -219,148, 30, 60,195,109,170,209, 92, 59,171,164,198,181, 39,173, 72, 22,148, 75, - 36,107,205,109,220,152,227,188, 97, 80,204, 57, 14, 62, 58, 48, 32, 48,144, 20, - 10, 8, 12, 14,205,231, 17,166, 26, 73,121, 4,126,179,101,219,209,235,145, 5, - 43,113,243,228,133, 96,176, 58,211,207,114, 36,158,236, 50,205, 60, 62,186,237, -109, 54, 73,227, 43, 61, 12, 31,113,220,167, 29,211, 79,143,162, 0,156, 12, 76, -103,144,185, 59, 12, 97,227,109, 72,140,197, 13,136, 69,136, 75, 36,142, 36,145, - 4,158,247,225,190,242,120,210, 78,170,182, 62,171,242, 23, 22, 24,201,168,173, -182,123,111,249,184,183,153,101,247,107,179,228,190,238,155, 83,190, 35,120,210, -108,107,174,254,200, 85, 73,252,218, 71,152,235,122, 59,227, 89,103,121,187, 54, -134,212,215,171,244, 25,203,217,222, 38,223,214,111,153,106, 28, 99, 84,122,105, -215,248,149, 74,153,163, 95,230,215,106,207, 26,127,223,112,213, 30,211,103,118, -203,221, 29,211,237,114, 8, 34, 6, 82, 7,149,137,162,244,199, 73,205, 55,153, -246,149,220,236, 12, 58,117, 93, 68,236,226,170, 46, 11, 69,169, 48, 11, 70, 0, -252,129,177,163, 25, 4, 63,153, 52, 56, 72,211, 39,175,205,105,230, 51,134,144, -144, 43,125,198,213,206,141,212,224,228, 27, 14, 65,211,243, 74,165,226,225,249, -133,161, 44, 11,198, 8, 62,154,120, 52, 61, 55,198,255,223,113, 58, 28, 71,163, - 89,133,228, 74,181,206, 32,191,246,222, 14,112, 40, 21,133,133, 98, 2,195,172, - 74,163, 1, 78,204,181,241, 68,214,249,218,142,243, 65,208,152,235, 15,200,140, -116,150,156,215,117,134,188,179,143,155,149, 22, 92,235,172,126, 1,239,128, 52, - 10, 31,101, 96,217,221,214, 79, 6, 62, 77,211, 52,197, 24, 99,220,128,158,141, -203,130,161,174, 11, 94, 32,134,186, 92, 68, 64,240, 57,101, 97,224,197,130, 18, -206,214, 84, 9, 33,165,219,230,221,131, 78,188,135, 71,124,126,129, 19, 87, 21, - 39, 88,204, 52, 88, 76,177,120,206,218, 76,230,153,248, 60,233,205,184,175,192, - 51,182,192,241,252,178, 44, 20, 19,133,129, 1,128,167,168, 33, 77,163, 12,137, -204,136,164, 36, 5, 73, 26, 3, 96, 68,100,172,170,234,114,112,112,150,133, 41, -134, 20, 36,196, 4, 66,193, 72, 36, 50,138,202, 42, 40,116, 55,113,162,203,219, -178,209, 58, 5, 70,192, 85,152, 56, 30,157,157,222,132, 25, 34,175,251,151,170, - 68,120,240,186,188,108, 41, 90,171,134, 3,106,170,220,226, 72,168,134, 61,197, -195,239,190,185, 79, 72, 41,217, 18, 4,145,228,135, 72,238,199,146, 36, 3,139, -255,144,198, 57,202,166,251, 59,137, 11,109,249, 32, 95,196, 23, 25,133, 67,107, - 96,128,255,229,250,124,160, 3, 33,195,171, 74, 99, 45, 37,134,145, 58,159, 66, - 20,202,212,218,160,101,216, 29,209,219,212, 80, 93,179, 32,132,206, 50, 38,225, -181,145,213,191,145,228,158,226,109, 10, 21,189, 16,162,110, 40,199,208, 48, 15, -110, 51,145,192,215,111, 14, 60, 70,218,163,167,230, 3,172,200, 25,138, 64, 69, -185,182,123,101,170, 68,124,154,192,175, 51,129,164,129,150,112,135,131,217,134, -252, 42,158,104,144, 13, 45,123,165,230, 89, 11,238, 54, 14,142, 5,219, 78,219, -116,202,210,117, 59,100, 62,165, 48,186, 6, 21, 95,126, 66,195,140,171, 69,147, - 23, 33, 85,204,119, 61,221,115,137,242,233,166, 2, 46, 89,147, 41,251,136, 23, -235,212,250, 70, 64,207,120,155, 85,126,208, 75,240,169,209, 5,121,193,130,195, - 15,187,168, 77,247,240,249,149,187, 68,115, 0,175, 66, 30,252,155,255,250,249, -214,190, 60,236, 43,166,228,222,100,154, 58,139,176,248, 52,217,173,185, 96, 29, -158, 6,165,198, 81, 4, 16, 76,181,105, 74,127, 48,217, 42,183, 4,169,228, 31, -209, 91, 86,251,116, 67,245,112,239, -} ; - -// ../Source/Template/GB_AxB_saxpy4_panel.c: -uint8_t GB_JITpackage_36 [914] = { - 40,181, 47,253, 96,129, 21, 69, 28, 0,230,167,123, 33,240,214, 54, 72, 4, 78, - 65,105,204, 13, 17,104,121,252,125,153,254,190,111,137, 57,205,201, 20, 70,164, - 76,145, 77,132,109,244, 5,115, 0,110, 0,114, 0,135,130, 70,248, 17,188,103, -117, 6,250, 88,196, 59,127, 72, 33,188,206, 15,226, 10,161, 19,201, 20,194, 31, -161,175, 95,227,122,143, 32,172,241,178,172,142,109,218, 65, 35, 40,178,131,230, - 23,104, 57,166,241,232, 70,188, 80,221, 52,110, 83,132, 61,199, 54,181,194,141, -231, 69, 59,198,107,244,158,155,223, 56,221, 84,254,217, 20,125,226,168,233,157, -160,250, 99,224, 19,103,128,133,242,243, 61, 45,194,116,150,174,182, 92,169, 90, -174,115,131,161, 34, 24, 12, 1,229,245, 31,221,209, 57, 23, 77,215,159,150,119, -228, 31,194, 72,139,115,129, 95,228, 21, 10, 97,216, 10,207,212,191, 4,101,172, -245,239,244, 20,153,160,143, 32, 30, 73,142,109,207, 56, 53, 81,240,138, 92,226, -113, 50, 22, 12,196,118, 38,254,227,246,207, 88,252,240,181,233,133,109, 45,103, -181,173,182, 44, 83, 17,226,126, 25,126,223,242, 20,189,103,249,121, 69, 27,127, - 14,241,207,245,151, 97,190,163,235,208, 28,247,139, 92,227,209,171, 2, 31,248, - 52,227,125, 93,155,134, 66, 89, 0,107,219, 4,154,150,191, 28,125,131,172,225, - 31,210,227,223,225, 3, 45, 50,213,226, 81, 56,187,161,136, 56,144, 17,180, 16, - 35,107,248,133,141,213,242,106, 39, 92,231, 91,103, 19,100,236, 7, 93,131, 1, -248,163,124,221,209,240,131, 63,188,146,190, 45, 34, 97, 57,195, 17,254,250,130, - 94, 85,167,235,204,150,143,224,198, 36,237,238, 94,157,170,170,208,185,185, 51, -246,240,195,107,150,158,255, 63, 83,120, 31, 13, 85,149,170, 66,164,237, 44,105, -189, 10,199,226, 93, 36, 27,137, 38, 99, 67,164,229,114, 26, 72, 49,118,153, 94, -241,195,204, 31, 15,207, 66,254,232,143, 36,207, 52,109,219, 26, 78,222, 71,191, - 42,181,105, 90,150, 29, 62, 80, 61,171, 99, 36,190,150, 87,132, 11, 28,159,167, -199, 49,118,199,153,121,252,244, 48,191,173,167,192, 96,216, 54, 45, 51, 53,182, -156, 99,164, 99,165,206, 49, 79,210,109, 90,214,240,235, 64,130, 44,231, 36,154, - 90,129, 72, 34, 34, 14,115,128,174,160, 65,189, 98, 72,102, 68, 68, 82, 90,144, - 20, 26, 3, 96, 68,100,202,104, 61,209, 1, 30,127,157,214,197, 79,222,125, 32, -127,200,138, 6,157, 24,146,187, 11, 24,244, 46,133, 57,120, 41, 6, 72,189,159, -144, 82, 14, 24, 6, 45, 18, 14, 65,182,176, 54,103,202, 95, 36,250, 9,170,111, - 36,164,250,122, 56,157,140, 56, 49, 59,160,183,147, 7, 61, 65,200,130,218, 42, - 17, 21, 64,149, 13,174,166,198, 80, 54, 42, 5,110,163,254,109,181,143, 86, 83, -125,217, 65,220,230, 98, 63,192, 55, 32,131, 6,242,160, 12, 26,200,160,106,135, - 14, 1,179, 96, 96,186, 52, 96,125,139, 53, 47, 0, 97,192, 67, 67, 60,117,205, -157,136, 90, 53, 57,120,230,176,153, 35, 98,209,114,189, 49, 30,246,201,249, 10, -199,247, 20,103, 39,226,203, 87,111,160,184, 25,193,220,225, 81,162,157, 66, 23, -192,126,192, 68,139,109,215,200,205,226,106, 50,195, 12, 14,183, 32,122, 3,110, -155,223,187, 50,123,248,123, 13, 98,195,131, 67,212, 57, 25, 37,143, 99,248, 77, - 1, 4,197, 92,254,230, 53, 4,148, 65,153, 47, 49,130, 90,129,253,129,110, 45, -230, 44, 56,238, 64,126, 80,139,200,198,163, 8,246,205,130, 7,128,244,103,247, - 29, 32,204,192,213,220, 43,162, 65, 41,212,141,120, 0, 14,236,244, 69,193, 89, - 6,164, 29, 0,137, 1,162, 46, 44,128,177,157,128,119, 59,179, 58, 37,168, 30, -190,189, 12,219, 64, 51, 55,111,201, 41, 90,168, 54, 9,165,165, 28, 99,192,129, - 45, 4,215,142, 90, 6, 45, 0, 37, 54, 1,194, 32,183,165, 26, 32,234,185,166, -102, 56,242, 96,199,136,107, 16,240, 16, 72,102, 38,231,131,105,116,217, 0, 0, -201, 39,232, 86,100, 3, 66,136,241,249,146, 3,210, 77,147,243, 51,147,186, 8, - 87, 29, 82,148,136, 10, 60,128, 57,110, 80, 69,175, 24, -} ; - -// ../Source/Template/GB_AxB_saxpy4_template.c: -uint8_t GB_JITpackage_37 [3122] = { - 40,181, 47,253, 96,236, 72, 69, 97, 0,154, 96,212, 17, 45,176,172,172,115,200, - 50,240,251,252, 57,188, 69,102,150,141,253, 38,154,131,160,219,167,185,111, 38, -172,169,240, 92,229,182,175,114, 77, 14,153,117,252,160,255,160,255,194, 67, 9, - 12, 1, 10, 1, 27, 1, 22,217, 13,220,217,191,103,182, 13, 37,219, 89,121, 49, -154, 97,253,255, 12,134, 4,203,214,218,100, 5,134,116,201, 80, 92,209, 55,202, - 17,218,158,103, 43, 48, 46, 14,172, 13, 86,217, 88,155, 91, 43, 92, 22,131, 79, -249,104, 61,158,149, 59,233, 8,121,147,106,172, 42,131, 81, 68, 84,149, 78,153, - 61,235,202,147, 61,149,110,215,250, 31,242,242, 7,185, 30,234,216,240,182,185, - 75,107, 58,233, 71,239, 61,153,245, 43,189,210, 11,191, 48,203,228,153,187,231, -110, 95, 92,227, 27,130, 31,205, 26,213,169,233,113, 39, 91,174,224, 47,157, 16, -255,195, 54,228,193, 88,120, 72, 28,204,101, 18,172, 62,169,220, 91,223,201,154, -229, 96, 59, 57,235, 7, 71,131,134,204, 67, 99,139,202,150, 53,183,151,243,180, -230,158, 87, 61, 18,144, 44, 72, 28, 7, 34, 11,146, 75, 89,244,104,219, 66, 54, -252, 81, 61,196, 93,250,245,245,184,169, 30, 42, 28, 40,171,195,100,195,183,195, - 13, 3, 2,202,239,118,231,149,199,202, 96,136,131,176,173, 18,180,213,163,231, -133,219,109,223,242, 88,105, 84,212,100,249,132,175,244,192,143, 47, 86, 32, 4, -130,164,197, 42,160, 10,171, 56, 28, 2, 97, 56, 32,144, 7, 89, 30,150,175,189, - 61,195,219,147, 62,235,203, 31,119,187, 74,106, 31,163,237,202, 20,196, 44, 32, -117,122,111,101,123,242, 83, 30,115,238, 36,196, 37,156,138,190, 89, 48, 85,178, -151, 73,146, 20,125,242,133, 43, 56,181,141, 85, 38, 80, 2,135,214,212, 34,170, - 72,141,232,211, 59,149,232, 82,199,225, 98, 8, 42,107,149,190,210,143,252, 62, -191,208,163,217,103, 63,130,211, 17,234, 56, 58,143, 18,117, 7,138,131,162, 92, - 18,113, 72, 62,147,200, 7,156, 12,212, 35, 21, 41,226,152,196, 73,100,105, 28, - 66, 69,123, 22,195,124, 58, 40,227, 68,209,169,155,117,189,150,107,227, 22,122, - 65, 24,206, 36,104,187, 74, 47, 46,123, 30, 46, 17, 5, 40, 50, 13,170, 77,180, - 32, 44,234, 30, 79, 9, 58,168, 75, 49,126,173, 89,116, 30,163, 71, 72, 88,151, -117,105,170,204,255,201,159,199, 91,229,181, 31,219,150,202, 55,122, 91,233,205, -216,130,103,127,149, 47,107,159,166,121, 6,202, 23, 78, 69, 82, 36,102,253,201, - 25,210, 34,246, 66,141,185,204, 94,154,145,213, 36, 87,238, 98, 95, 56, 61,246, - 60,121,240,163,151,159, 71, 86, 80,129,114,173,239, 41,141, 83, 7, 77,246, 2, -212,163, 58,151, 53,119, 97, 99,196,129, 97,115,225, 31,173,236,153,178, 94,235, - 87, 64,122,230,174,172, 63,122,229,132,104,209, 92, 48, 87,229,208,152,131,243, -141, 55,166, 41,239, 79,212,165,207,193,121,134, 15,229, 28,206,190,147,102, 84, -171,244, 59,157,167,128, 52, 6, 97, 2,100,143, 0,103, 45,244,178,249, 9,159, - 9, 3, 86, 13,153,137, 75, 77, 32, 12,229,151,164,142, 39, 58,164,241,169,163, - 99,222,128, 92, 66,199,115,185, 38,186,199,254, 99,215,242,145,114,233, 70,191, -104,170, 7,203,165, 1, 99, 96, 61,144, 62,159,248,233, 60,145,149,215, 66,158, -188,237, 75,159,216, 69,151,186,216, 81,245, 6,151,135, 12,132,132,197, 1,128, - 15, 24,112,205,197,122,200, 88,145, 3,214, 53, 86, 97,215,195, 4, 68,164,115, -169, 19,101, 42,136,203,170,108, 46,154, 12,246,233, 66,133, 73, 29, 48,236,117, - 66,170,125,162,238,145, 95, 83,164,134, 39,185, 98,191,146,122, 91,131, 37, 17, - 33, 1,129, 73, 8, 88, 22, 96,155,137,135, 12,182,177,164,142, 34, 60,118,244, -203,101,105, 56, 88,131,172, 91,202, 64,152,232,227,239,151,139,162,130, 81, 92, -214, 21,113,105,176,176, 77,133,105, 5,112,158,122, 54, 67,247,178,253,132,173, -199, 19,166, 12,198, 4, 14,245,139,115, 24, 40,212, 47,164,137,164,163, 95,210, -248, 90,153, 49, 24,186,145,116, 17, 99, 55,132,134, 20,125,242,198,167,130,210, - 90,114, 49,137, 92,112, 36, 61,137, 52, 71,226, 68,231, 44,212,184, 78,186,209, -125,206, 57, 17,135,195,146,159,243,201, 67,155, 84,227,239, 11,237,228,122,253, -143,141,134, 58,183,149,185, 75, 90, 95, 14, 7,206,190, 94,104,185,222,222,118, - 76,182,104, 15,151,201, 11,157,113,129,138,206,158, 20,121,140, 91,116, 4, 87, -132,133, 93, 52, 19, 87,166,178, 80,148, 83,223, 46, 97, 18,162,148,111, 26,119, - 51,210,202, 17, 54, 8, 93,145, 81,239, 17,196, 55,156,180,111,198,182,107,118, -201,147,106,231,206,175, 13,191,223,142,206, 87,106, 96,120,201, 61, 54,136,181, - 10,172,120, 55, 3,229, 84,103,194,186,174,226, 96, 85, 73, 82,236, 62, 81,175, -128,239,164,174,123,228,170,232, 21,134,233,166,169,235, 36,221, 36,210,109,156, - 13, 99,177, 32, 36,174, 42,250,116, 9,100,241, 64,199,108,182,225, 39,147, 90, -105, 17, 58, 28,132,105, 68,166, 15,131,134, 8, 9,203,101,131,105, 36, 22, 96, - 23,118, 93, 28, 58, 21, 80,122, 16,108,237,173, 19,112, 72,131, 52,168, 66,164, -212, 41, 69, 35, 34,146,146, 36,133, 12, 7,114, 32, 8,131,161, 64,143,181, 40, -232, 14,162,128, 52,200, 81, 32,196,176,136, 33, 68, 17, 67, 12, 33,148,136,136, - 4, 34, 36,129,200, 4, 81, 32, 81, 7,137,231, 84,153,101, 6,206,171,142, 86, -139,213, 55,115, 9,163, 40,196,132, 41,161,220, 43, 18, 73, 66, 31, 12,253,118, - 78, 73, 73,224,222,159,148,222,219,166,174,112,127,182,207,126, 45,223, 42, 25, - 13, 31, 98, 7,181,181,162, 13, 75, 79,181,189, 37,157,106, 55,184,129, 3,173, -208,169,234,123,225,180,156,111, 52, 34, 41, 12,189,135, 21, 8,109,156, 19,150, - 22,237, 30,231, 27,143, 63,209,230,207,170,119,238,172, 35,130,160,120, 70,127, -239,219,182,149,186, 77, 12,155, 83,188, 76,155,142,130, 38, 60, 20, 58,172,132, - 2,196, 58, 31,241,228, 87, 13, 35, 67,150,204, 46,233, 23,242,115,197,141,120, -112, 61, 50,154, 42,196, 77, 81,167,107, 65, 53, 53,226,248, 56,125,244,250,187, -134, 13, 34,203, 53,195, 1, 59, 2,197, 73,181, 63,202, 93, 64,232, 17,182, 69, -149,226,195,130,161,225,205,200, 29,176,194,200,136,118,219, 12,180, 13, 74, 50, -104,135,239,105,240, 83,253,190, 66,224, 11, 61,156,220,157, 45,118,145,159,108, - 4,104,213,161,145, 5,211,202, 7,115, 3,210,204,112,100, 11, 14, 84, 1, 98, -111, 76, 15, 87, 59, 76,200,208, 58,215,137,181, 33,188, 26, 81,164, 69, 59,165, - 6, 38,169,157, 11,232,161, 38,189,234,193, 6,132, 94,153, 70,169, 4,103,104, -129, 77, 82,203,149,152, 51,233, 10,154, 11, 98, 73, 58,138,165,158,250, 16,194, -221,179, 85,229,204, 86, 1,173,198, 88,142, 61, 10, 17, 93, 8, 22,109, 90,218, - 2,251,209, 64, 15,250,107, 52,114, 22,226,213,120,215,220,194,232, 6,142,208, -105, 68, 23,168,208, 12, 48, 3, 99,240,162,147,171, 0,173,181, 70,183, 33,201, -210,201,122,228,150,130, 62,228, 17, 94, 42, 39, 76, 62, 53,112,221, 48,226,255, - 45,125,215,153, 33,142,145,192,114, 91, 56,237,202,207,136,237, 41,143,252,121, - 92, 48,156, 24,153, 54,135,136,164,223, 51,170,175, 47, 6, 47, 27, 78,104, 37, -234, 99,104, 70,155,243,168, 24,123,255,118,241,204,237,190, 79,200,225,167,128, - 55,135,155, 88,230, 87,196,238,186, 1,241, 54,159,177,138, 86,228,198, 91,225, -196, 98, 42,216,176, 63,195,118,145, 72,226,188, 40,137,241, 9,103,216,159,104, -238,210,134,238, 27,167, 77,120, 51,190,252,232,116,141,173, 44, 8,133, 46, 72, -157, 98, 13,198, 54, 42, 62, 21, 25, 55,162, 80, 86,171,236, 79,225,209,142,145, - 33,220,199,150,137,187,227, 68, 22,141, 63, 67, 98,219, 61,189, 99,119,231, 55, -255,144, 83,225,133, 64,204, 57, 93,162, 83,175,126, 71,219, 56, 77, 28,211,203, - 24,121,146, 1, 16,160, 76, 80, 26,190,110, 3,235, 79, 32,253,210,127,222, 23, - 89, 75,142, 60,198,138, 59, 94,145,229,139,105,205,201,111,129, 37, 28, 68,219, -112,136, 68, 74, 55,144,182,143,201,139,202,117,232,146, 54,236,122,228, 12, 73, - 24,193,253,221, 98,113,189,157, 48, 12, 7,233,109,128, 64,118,220,143,124,255, -161,250, 21,229,198, 94, 20, 57,101,184, 35, 23, 64,234,147, 40,210, 89,195,204, -233,167,144, 58, 98,217,212,195,228,243, 28, 46,128,246,156, 16,156, 45, 23, 98, -212, 67,118, 99,107, 16, 69,134,154,184,126,156,236,191,165, 19,170,122,202,128, -251, 55, 5,201, 51, 26,104,158, 75,176, 31,145,180, 62,167,159,203, 64, 98, 5, -117,192,162, 91,160, 30, 2,247, 70, 34,104, 17, 28,230,142,225, 93,103,213,160, - 91,135, 33, 24,173,208, 35,217,122,139,222, 41, 46,246, 54, 23, 18, 94, 93,244, - 70,119,177, 23,121,161, 77, 24,101,230,147, 61, 28,177,160,200,145, 19, 67, 17, -255,169, 91,122,216,236, 96,148,135,209, 56, 18,101,163,206,163,219, 61,200, 54, -149, 34, 8, 66,200,150,160,237,136, 92,118, 32, 9,251, 28,118,124, 68,109, 81, - 70, 22,228,230,237, 24, 2, 37,138, 72, 43,207,184,113,163, 25,209,120, 29,137, - 65,177,179,134,201,135,192, 92,191,103,215,105, 57,171,129,233,236,219,172,195, -125,114,111,166, 54,169, 35,190,185,175,205,224,171,120,238,147,214,215,130,124, - 93, 90, 21, 69, 6,165,103,165, 68, 48, 9,169,243,159, 52,138, 33, 55, 1,226, -231,251, 0,236,117,213,113, 40,148,213, 9, 38,159,160, 42,135,191, 33,219, 61, - 59,119,112,252,111,152,114,183,167,145, 73, 31,223, 56, 87,156,250, 69, 64, 56, - 84,211,188,144,218, 56,205,200,185, 19,126,117, 48,231, 35, 87,149, 14, 86, 21, -230,110,153,160, 68,218, 11,174,211, 38,100,237, 0, 64,130, 41,125,244,232, 0, -116,176,238,222,115,194,240, 4, 13, 44,250, 37, 2,186,248,161, 22,124, 23,153, -132, 16,213,173,174,153,108,181, 92, 6, 34,115, 42,178,135, 34,238, 37, 47, 14, - 8, 99,252, 47,134,191, 89, 28,101,223, 7,160,230,186, 15,240,247, 33, 74, 17, - 56, 56, 6, 94,101, 84,215, 31,198,209,170, 72,204,161, 52, 82, 42,130, 21,134, - 83,224,241, 70,204, 48, 2, 80,211,104,221,217,236, 2, 77,252,230, 87,102,198, -231,134,192,103,131, 66,215,112,156,200, 9, 16,230, 65,194,146,154,127, 29,119, -133, 66,124, 9, 84,146,135, 91,228,138,142,158,243, 42,101, 23, 81, 63,137,196, - 3,148, 1, 92,227,245, 66, 79, 11,202, 41, 60,229, 80, 78, 0, 76,139,160, 43, -137,188,187,197,133,217,172,218,237,164,193, 45,225,204,108,216, 23, 82,195, 6, -175, 66, 32,210,110,253, 57,143, 6,186,153,179, 20,126, 81,159,128,228, 50, 66, -242,106,104, 39, 11, 9, 18,226,109, 12,119, 25, 13, 13,238,196,182,247,157,178, -153,136,140,193, 9,242,145,147,165, 95,181, 15,239,254,136, 80, 63,147, 64, 29, - 38,242, 17,239,239,175,108,240,169,196, 28,217, 37,212,242,245,128, 69,202,213, -229, 76, 52,131, 49,231,179,245,131,171, 78, 87, 55, 80,176,155, 19,108, 19, 39, -156,155, 91,131,161,131, 61,128,235,206, 21, 31, 42, 77,113,244,247,248, 66,189, - 81,182,101,154,228, 49,164,145,255, 88,113,118, 57, 30, 73,126, 84,137, 86, 10, -202,249,225,152,208,117,129,100,120,242,219, 31,173,166,200, 94, 62, 94, 59,115, -222,150,118, 76, 3,254,177,205,165, 41,219, 38,140,245,110,195,202, 26,246, 49, - 37,217, 22,130,148,142, 32,195,182,205, 10,125,205,205,125,117,107,232,200, 70, - 30, 20,226, 85,136,206,244,252,135, 49, 60,202,195, 22,106,229,138,217,136, 73, - 51,196, 32,230,175, 35, 16,102,179,213,101,184,125,114, 39, 27, 79,193,176, 48, -180,160,104,239, 83,130, 51,115,168,200, 56,175,222, 2,110,207,100,206,116,143, -198, 0,113,212, 89, 27, 10, 31,208, 34, 72, 23, 12, 21, 61, 43,133,138, 95,156, -195,221, 98, 94,132, 83,230,125,110,111,109,178,137, 27,170,105,211,209,142, 59, - 64,120,221,120,125,227,178, 49,200, 39,199, 49, 93, 81,144, 38, 13,127, 0, 62, -229, 19, 35, 57, 64,165, 28,238, 48,101,160,161,227,172, 47, 83,192,250,158, 7, - 48, 99,129, 12,130, 80,113, 50, 27,108, 52,150,237,152,115,101, 40,214, 40, 29, -154, 85,170, 50,108,245,232,183,236, 70, 22,154, 2, 82,150,143,158,168,192,130, -129,205,188, 49,128,144, 80, 24, 3,220, 78, 77,190,110,194, 76,186,109, 32, 5, -114,152,197,195,202, 3,253, 11, 40,104, 35,248,130, 22,171,198, 30, 43, 53,102, - 12, 74, 47,228,195, 94,174, 11,207, 85, 27,164, 56, 33,197,252, 71,193, 63, 49, -112, 54,220, 12,212,144, 10,222, 62, 64,208,144,102,188,137,241, 40, 35,194, 8, -184, 12, 61,221,243,183, 65,122,241, 18, 43, 9,242,208, 90,152, 43,100, 44,201, -254, 92,177,100, 36, 70,140,249, 48,216,129,163,159,157, 32,197,163,114, 75,175, -240,132,171,161,251,118,233,255,150, 50, 27, 21, 46, 26,108, 16,101,158, 24,190, -139,119,192, 12,170,133, 22,150,100,155, 0,156, 46, 67,246, 36, 98,103,246,241, - 78,160,200,127, 89,173,138,239,103,138,243, 58,105, 48, 8,203,175,153,208, 84, -145, 40, 42,145,163, 10, 25, 40,136,158, 96, 35, 1, 13, 86,238,176, 60,239,193, - 29,182, 58, 24,170,246, 7, 33, 31, 49,161,244, 82,100,244,155,163,233,233,158, - 78, 56,172, 22,254, 30,240,160, 55, 0, 63, 0,133,114, 88, 79,148, 8,107,228, -225,220,240, 28, 83,138,151,228, 48, 19,187,115, 0,108,109,112,153,112, 66,248, - 45, 21,185,140,156,237, 97, 6, 88,244,255,165,225, 89,124, 76,175,237, 2,197, -180,194, 19, 81, 59,100, 26, 14,211,182, 22, 36,253, 24,236, 50,227, 83,206,135, -177, 43, 30,140,214, 81,113, 65,126,236,127, 62, 76,148,251, 11,124,170,195,131, -116,222, 22, 10,168,176,255, 71,177, 85, 57,149,123,212,236, 87, 39,122, 33, 55, -205,236, 16, 76,244,150,151, 73, 22,242, 17, 65,185,164, 28, 6,199,208, 42,100, -102, 2, -} ; - -// ../Source/Template/GB_AxB_saxpy5_A_bitmap.c: -uint8_t GB_JITpackage_38 [1090] = { - 40,181, 47,253, 96,145, 11,197, 33, 0, 54,115,152, 40,208,210, 56, 7, 84,147, - 52,161, 39,210,162,178,116,226,198,157,168, 82, 16, 8,221,177,141,249, 16,193, -238,238,113,151, 53,210, 99, 31,240,197,131, 34,247, 23,143, 0,135, 0,140, 0, -124,111,164, 25,119, 91, 4,169,166,237,223, 41,159,201,248, 36, 2,138, 65,197, - 26, 22,233,187,165,114,131,250, 74,206, 34, 42,182,146,177,230, 84, 26,153, 11, - 74,198, 32,149, 45,119,110,175,230,209,157,111,219, 59,117, 96, 64, 96, 80, 45, - 20, 16, 24, 92,130, 77,167,108,131,196,204, 41,239, 35,237, 78,174, 61,167, 48, - 30, 7,106, 52,214,141, 5,131,111,119, 24, 82,101, 58,210, 42,108,107,164,246, -240,212,223,169,109,235, 64,183,125,235,146,181,144,195,129,135,153, 88,183, 96, - 20, 26,185,219,159,235, 93, 9, 35, 42,138,246,130,162,119,193,205, 43, 21,169, -170, 84, 2, 25,203,150, 29,214,149, 37,123, 60,224,117,214,202, 2,146, 21,209, -209, 84,104, 54, 32,206, 64, 45, 32,251,148,118, 59,228,214, 67,118,109,142,237, -101, 87,119,107,237,206,143,237,166,118,153,187,109, 59, 49,170,243, 98,241,225, -118,159,111, 44, 43,135,238,137,144,136,175, 19,244,140,175,141,216,231, 50, 98, -135, 63,165, 98,221,142,202,254,104,163,125,183,142,211,176, 27,185, 95,219,113, -127, 7,205, 95, 74,157, 55,206,111, 84,188,121,174,195,176,120,214,238,231,253, - 22,177,206,122,202,201,157, 53, 15,229,117, 30,142, 54, 57, 43, 89, 3,217,196, - 91,151,177,134,217, 75,228,100,179,200, 85,187, 23,215,201,141,183, 45,214, 72, - 79,185,249,200,121,196, 74,179,190,191,178, 37,117,126, 58,215, 99, 38,183, 44, -203,178, 32,132,208,227,121, 23, 23,192, 69,146, 73,164,185,216,240, 92,111,218, -109,206, 15,219,141, 45, 48, 34, 46, 56,109, 95,240, 28, 77, 69, 71, 51,113,117, -107, 26,117,168, 32,133,151,127, 28,170,119,204, 63,239, 23,235,122, 45,215,129, - 51, 60, 27, 50,171,192, 47,151,188,129, 56, 84,214, 49,231,126, 47, 4,133, 43, -251,215,202,137,193,119,202,250,253,127, 73, 18,145, 36, 80,103, 50, 32,146, 52, - 34,141,156, 10,157,234,247, 78,117,244, 39,183, 68,214,244, 76,230,121, 56, 25, - 20,221,220,201,190,146,142,158, 60,202,241,207, 3,152, 14,106,174,123, 32,116, -204, 31, 13, 61, 10,210, 83, 34,120,202,163,217,132, 62,211,161,166,243, 56,150, - 38, 67, 57,222,161,208, 41,165,148, 74, 58,224, 7,199, 41,103,209,203, 37,148, - 6,167,195, 11, 2,110, 36, 13, 23,204,225, 7, 46, 41,168, 44,148,101, 42,152, -252,153,228,203, 59, 56,206, 88,111,199,252,214,120,237, 5, 63,234,188,180, 43, -102, 57,187,200,100, 98, 67, 54, 94,249,134,203, 9,142,153, 10, 40,172,185, 40, - 71, 1,128,215,168, 1, 69,101, 16, 34, 25, 17, 17, 73,146, 20, 50, 28, 96, 68, -100,204,202, 54,226,112,108, 24, 36, 89,166, 8, 49,196,200, 69,150,145,146,194, -250,217, 9,166, 33, 34,206,219,108,216, 78,123, 62,120,239,234,244,116,151,206, -142,251,223, 20, 42,162,112,148, 69,169, 61, 89, 80, 85,145,181,210,150,141,168, -215, 36,235,104,231,147, 54,183,254,226,182,225,152, 85,128, 1,226, 39,133, 48, -157,178,123,248, 58,164,118,140, 69, 35, 18,129, 77,217, 35, 68,100,175, 29,135, -250, 70,224, 47,117,160, 63, 15, 77,236,244, 17,153,237, 44, 11,213, 46, 3, 38, -140, 64, 57, 43,142,210,144, 52,235, 81, 94,212,173,124,134, 98, 29, 50,197,215, -126,177, 24, 57,202,176, 83, 35, 0,254, 50,226,185,134, 66, 9,116,113, 73,193, -205, 92, 99, 69,106,125,220, 95, 13,233, 22,246,150, 11,192, 45, 4, 22,144, 34, -145, 21,180,255, 13,106, 67,231,253, 52, 86,239,180,101,100,171,151, 24,229,159, - 94,126, 26,101,164, 37, 24,198, 6, 25,190, 58,151,106, 40,159,129, 51, 32,153, - 9,135,100, 9,159,108,205,155, 98, 2, 52,107,168, 52,237,164,201,120,207, 20, -165, 44, 45,101,222, 68,178, 11, 13,235,102, 68, 46, 82,141,152, 82, 35,136,137, - 20,203,129,175,126, 35, 31, 29, 60, 47, 24,206, 64, 3,250, 8,177,127,128, 89, -106,145, 58,218, 65, 99,108, 47, 19, 19,252,104, 31,198,248, 49, 47, 42, 31,134, - 26, 45, 54, 45,239,117,230,242, 3,254,138,200,148, 23, 68,127, 48,149, 97,104, -170,218,255,138,107, 48, 7, 16, 57, 5, 12,155,119,246,195,118,151,170,133,156, -128, 80,149, 32,164,195,247, 70, 37,114,225,100, 10,153, 67, 56, 62, 17, 87, 47, - 96, 41,192, 3,168, 94,224,181, 77,195,143, 82,163, 32,152, 46, 61, 13,127,189, - 42,230,122,126,125,177,220,200,182,150,226, 68,248, 62,227,195, 79, 33,163,160, -157, 69, 2,184,189,172, 73,216, 84, 61, 42, 95,250,241,247, 94,123,152,139,121, -118,152,137,220,248, 46,216, 27,209, 10, 54,205,251,131, 41, 41,181,137, 40, 41, -208, 67, 57,122,198, 67, 41,141,135, 1, -} ; - -// ../Source/Template/GB_AxB_saxpy5_A_iso_or_pattern.c: -uint8_t GB_JITpackage_39 [1253] = { - 40,181, 47,253, 96, 11, 14,221, 38, 0,166, 56,168, 40,176, 84, 85, 29,244,237, - 47, 43,182,169,206,172,243, 71,225,210,191,247,192,153,219,235, 19, 61,145,167, - 98,233,151,220,218, 41,253, 65,255,193,246,148,110, 6,159, 0,150, 0,158, 0, -157,212,122,235, 74,171,247,201, 97,150, 59,109,136,195, 49,212,209, 74,221,201, -229,158,223,168,188,245, 16,247,173,136,192, 98, 64, 77, 78,147, 22,190,225,206, -254,116,166,115,203, 80, 19,211,169,181,134,210,128,216, 88,182, 25,114, 39,158, -156,227,204,121, 52,231, 93, 7, 63, 29, 24, 16, 24, 80, 11, 5, 4, 6,159,104, -210, 39,220, 33, 18,226, 22,248, 16,151,171,215,216,167, 14,212, 68,206,202, 43, -209, 48,241,149,182, 51,115,127,157,232,242,129, 95,172,244,114,123, 14, 63,117, -221,247,185,117, 76,164,192,170, 98,189, 65,179,208, 59,115,150, 54,187, 53,171, -184, 51,152, 37,132,236,136,196, 89, 28,129, 89,148,248,229, 18, 81,151, 75,245, - 10, 28,115, 58,187,144, 7,202,122,117,239, 57, 67, 80,200,180,159, 49,173, 90, -132,159,172,231,255,143, 72,162,232,211, 27, 13,216, 38,109,250,105,125, 39,157, - 30, 15,248,173,247, 78,129,200,202,112,174,139, 75,226, 51,183, 79, 11,244, 39, - 46,183,200,177, 7,237,219,222,196,167, 77,229,174,185, 92, 61,248,171, 92,158, -222,113,227,138,144, 38, 35,242,231,121, 55,233,157,160, 99, 25, 10,249, 91, 63, -223,102,198, 82,243,156, 74,237,241,183, 92,172,252, 89,218, 15,117,182,115,199, -105, 89,122,207,248,243, 14,255,169,207,150, 91,179,172,223,184,128,185, 82, 91, -239,125,154, 38, 63,185,252,154, 31,221,189,122,190, 50,227, 44,126,220,154,109, - 95, 13,207,237, 29, 4, 28,213,229, 54,111,127, 32,243, 94,122,165,130, 65, 88, -102,122, 7,204, 9, 94, 73,147,130, 73,107, 79,210,208, 38,205,238,219, 38,167, -225, 79,168,132, 55, 57, 47,151, 51,239,163,221,236, 58,121,165,189,245,234,165, -231, 33,175,221, 58, 63,211,222,230,215,201, 16,234, 50,239,228, 68, 30, 41,240, - 85,229,150,101, 89, 86,140, 49,198,145,137, 52,114,109, 54, 48, 12,131, 27,128, -138,187, 90, 61, 19,119, 24, 49, 94,115, 93,112,174,138,172,155,227,236, 3, 21, -109,196,220,243, 64,193, 87,247,192,103,173,111,198,243, 82,206,176,129, 22, 88, - 38,102,157, 76, 6,177, 72, 81,132, 47, 16, 69, 37, 37,248,147,101,165, 95, 24, -132,216,100,100, 20, 25,171,231, 71, 59, 79, 58,250,149, 67,203,113, 15, 4,144, -238,221,225,221,248, 19,232,211,188,149,122,244, 39,249, 9, 75,159,162,253, 52, - 18, 63, 97,151,196, 68,122,188, 56, 80, 99, 93, 16,152,227, 76,103,174,244,211, - 7,200,115,202,229, 43,236,234, 68, 68, 96, 84,222,210,113,159,214, 99, 59,183, - 99,206,149,209,108, 50,152, 38,195, 34,203, 96, 29, 78, 38, 2,244,234,208,130, -160,229,120,131, 64,214, 90,107, 39, 29,241,131,227,214,179, 44,230,147,137,139, -210, 99, 54, 81,125,226,128,169, 30, 79,249,164,128,106,152, 26,164,130,202,191, -117,230,248,212, 2,129, 0,168, 81, 65, 82,102, 70, 68, 68, 36, 5, 73, 10, 25, - 14, 80,132,200, 84, 89,113, 3,242,144, 76,140,114,148,161, 68, 64,136,145, 2, -162, 9, 74,100, 22,164,160,126, 54, 65, 75,138, 74,213, 60,162, 85, 2, 52, 2, -141, 62,190,212,160, 62,189,215,181,173,101,125,200, 63,141,165, 81,181,119,136, -108,203,102,214,108,100, 86, 97,234,151, 38,199,107,220,194,137,182, 50, 56,211, -130,139,241,156,121, 72, 68,182, 95,120,123,176,211,253,213, 7,189, 0,162,116, - 98,140, 91,242, 35, 13, 31,166, 54,197,105,151,162, 72, 21,114, 85, 98, 37,231, - 68,149, 8,197,228, 89,124, 30,130, 39, 3, 45,145,222,172,161, 94,132, 97,150, - 32,120, 7,198, 10,196,250,202,115, 56,164,205,110,121, 74,195,146,212,111,156, -229, 5,196,233, 8,124, 59,113,116,143,149,133,134,137,191,156,233,209,100,109, -218,211,169, 90, 42, 63,159, 81, 33,221, 49,148,183, 29, 60,241, 0,105,206, 56, -106, 69,193,138, 27,129,120, 25,113, 82,119,224, 84, 48,153, 6, 93,181,171, 70, -119, 40, 50, 4,178,161,229, 81,248,176,235,130, 42,143, 6,180,111,203,200,236, - 72,180,205,154,249,102, 85,172,182,105,134,161,246, 33, 44,180,163,182,244,113, - 72,117,172,202, 65,124, 32,159, 90,177,196,225,251, 82, 75,254,215, 98, 17,218, -208,166,136,100,140,236, 22,184,199,136, 44,181,150, 87, 37,171, 79,149,116, 26, -245,100,164, 50,195,148, 26, 80, 76, 0,131,173,151, 51,108,221,172, 34, 43,182, -184, 99, 29,223, 16,203,154,173,174, 10,133, 56, 9,206, 79, 18, 8,169,104,111, -178, 50,234, 26,215, 17, 8, 55,239,203,209,229,244,200, 52,223, 18,174, 43,211, - 9,116,127,116,121,144,221, 85, 67,236, 31,152,209,112,224,138, 64,225,154, 64, -141, 24,232,203, 29,176, 3,179,162,132, 5,163, 99, 89,253,170, 68,102, 43,203, -144, 41,161,243,101,228, 26, 22, 90, 29, 24, 22, 24, 23,149,154,126,245, 8, 88, -247,131, 83,144,179, 73,135, 63,204, 32,210, 99,144,238, 59,171, 60, 82, 90,225, - 62, 85,153,217,120, 25, 52,230,208,200, 12, 35, 24, 61, 97, 83, 17, 15, 36,242, - 18,152, 45,255,248,179,235, 60,110,205, 8,171,250, 7,113, 94,102,138,133,199, -254, 19,113,230, 98,137, 10,156,137, 5, 97,216,100, 82,242, 36,136,209,165, 39, -186,241, 99,138, 99, 71,232, 14,151, 24, 77, 2,169,183,218,193, 23,230, 6, 44, - 23, 50,194, 50,159,180, 4,112,193,185,164,120,249,166,249,254,204,228, 51, 85, -201, 75, 63,210,173,213,104, 94, 82,171,210,192, 24, -} ; - -// ../Source/Template/GB_AxB_saxpy5_unrolled.c: -uint8_t GB_JITpackage_40 [2932] = { - 40,181, 47,253, 96,105,200, 85, 91, 0, 58, 83,112, 15, 45,176,172,170,234,138, -235, 11,188,206,124,107,248,171, 15, 57, 18, 43, 79,117,184,193,112,209, 84,244, -191, 36, 90,215,140, 80, 53,210,215,221,193,180,246, 7,253, 7,203, 63, 56, 23, -236, 0,244, 0,231, 0,179,192,181,153,252, 97, 28,234,108,197,151,110,142,145, - 56,144, 29, 44,249,243,186,250,134,107,243,188,212,179,127, 64, 81,117,243,144, -103,207,125, 24, 54,109,254, 54,177,154, 85,219, 89, 46,163, 25, 79, 12,227,221, -196,110,253, 13,158,125,103,243,106,222,168,150,175, 97, 25,127,220, 45,213, 51, -246,249, 84,195, 52, 56, 80,140,119, 38,247, 44,241, 55, 92,234,117,180, 99,171, -179,117, 54,210, 93,154,243,244,126,233,183,205, 77,196,226,250,108,187,103,221, -124,229,136, 26, 58, 66, 53,108,122,213, 41,151,214, 76,205, 29,205, 36, 34, 20, -119, 20,171, 19, 17, 7, 16, 11, 54,151, 98, 90,113,156,181,140, 90,241,109,171, - 14,197,142, 58, 34,129, 81,255,129, 61,135,112,221, 76,136, 55, 84,239,104,217, -114, 21,115,200,162,154,176, 52,111,222, 8, 10,197,119,122, 22, 52,215,207,194, -177,109, 95,230,184,222,242,142,106, 27,183, 24,170, 10,196,114, 10,214,144,209, -109,179,183,251, 46,169,227,113, 38,190, 44, 78,117, 89, 17,119,112,112, 68, 28, - 28, 2,143,140, 61,195, 39,248,156, 74,168,248,122,158, 95, 23,205,243,186, 38, -216,224, 65,175,237, 50,234,161,255, 14, 8, 26, 12, 72, 83, 39,164, 81,177, 39, -163, 25,165, 29,189,243,248, 26,135, 52,135, 42, 62,244,160, 24,207,182,207,110, -188,250,181,207,183,217,217,154, 43,182, 94, 70, 87,111,229, 40,214, 60,214, 25, -254,208, 84,175, 64,254,208,128,234, 99,249, 41, 16, 16, 21,102,130, 65,130,235, -128, 4,166, 27,139,197, 98,177, 44,203,194, 96,170, 5, 23,128,115, 8, 68,170, - 63, 30, 78,117, 89,240, 0,115,109,214, 98, 80, 5, 22, 18,151,101,113,189,172, - 79, 92, 40, 42, 46, 8,174, 90, 53,237,225, 30,129,136,245,202, 61,235, 25,171, - 55, 99,122, 25, 42,188, 97,239,194, 31,222,209,109, 67, 32, 98,121,229,220,243, - 37,167,220,213,103,220, 89,204,170, 14, 89,158,255,223,225,152,224,112,100,106, -214, 5,200,104, 87,187,239, 88,189,180,163, 25, 15,112, 47, 93,112, 88, 36, 42, - 46, 20,151,136, 12,205, 50,117, 1,107, 48, 50,138, 63,171,101,202,109,180,187, - 20, 65,231,218,140, 5, 84,148, 82,202, 62, 4, 65, 6,205, 83, 57, 83, 3, 65, - 16,230, 18,241,220,186, 84, 84, 19,150, 11,132,119,241,170,169,252, 19, 60,207, -243,188,232,208, 33, 14,246,188,227, 97, 28,229, 40,110, 40,169, 40,165,148,212, - 33,125,138,122, 60,254,191, 30,242, 60, 15,195,243,202, 33, 38, 65, 72,165,212, -103,130, 18,124,228,220, 7,188, 86, 7,229,106,254,124,158,159, 96,166,248,157, - 61, 20,193,210,184,184,231,113,103,184,198,115,200, 31,144,102, 61,183, 46, 3, -149, 63, 6, 60, 84, 14, 35, 20,136,242, 64,200,127,113,138,213,237,149,231, 59, -179,198,181,217,171, 23,195, 52,123,132, 9, 94,156,131, 57, 40, 54, 61,172,185, -118,227,207, 39, 64, 32, 88,131,103,238, 62,224,225,209, 43, 15,132,176,202,205, -174,147, 61,116,251, 50,170, 97,248,143,238,193,217,164, 87,203, 23,247,117, 27, -221,182,121,167,119,143,179,159, 92,198,188, 94, 86,243, 31,127,232,181,116,119, - 75, 41,165,164, 40,138,162, 40, 80,248,247, 60,163,219,195,230, 1, 14,135,164, -104,214,125, 11, 14, 71, 5, 74,222,190,153,161, 25,140, 32,132,221,221,221,221, - 29,187, 99,199, 24,187, 59,198, 24,163,148, 82, 74, 41,165,148,146, 36, 73,146, -108, 73,146, 36,105,154,166,105,154,166,105,154, 38, 73, 75,166,150, 72, 36,146, -169, 91, 34,145, 72, 36, 20, 69, 81, 20, 69, 81, 20, 69, 77, 38,113, 50,153, 76, -168, 56,153, 76, 38,147, 40,138,162, 40,138,162, 40,138, 96,212, 13,163,110, 8, - 33,132, 48,234,238,134, 16, 66,216,221,221,221,221,221,221, 49,198, 24, 99,140, - 49, 70, 41,165,148, 82, 74, 41,229,195, 53,147, 94, 12, 14, 38,201, 40,187,194, -165,175,163,148,231, 52,156, 4, 15,113,156,212,176, 59, 74, 72,253,144,115,212, -134,203,166,221, 78,241,148,160,128,115,207, 53, 44,215, 13, 44,193,219,252,232, - 25,207, 13, 70, 56, 10, 69,132,171,192,193,100,195,216, 16,123,133,110, 38,174, - 32,201,216, 48,130, 19, 74, 50, 77,146, 36,101,140,221, 16,206, 67, 17,162, 55, -148, 1,131, 95,168, 66,139, 25,153, 25, 25, 17,145, 20, 36, 5,201,112,178, 34, - 4,162, 72,146,197,152, 85, 89, 7,146, 40, 26, 5,113, 8, 3, 34, 8,194, 96, - 8,130, 32, 8,130, 32, 36, 67, 4,132, 8,140,128, 8, 8, 33, 70, 41,163, 17, - 86, 7, 72,206, 33,134,209, 51,166, 33, 19, 13, 24, 40,218, 93, 99,210,197,252, -228,203,164, 88,138,138,124, 15, 66,202,138, 63, 6,238,190,172,217,104, 56,211, - 11,160, 70,123, 11, 67, 34, 3, 87, 77,169,137,225, 64, 53, 32, 47,123,159,115, - 64,216,172, 95, 65,150, 29, 3, 39,171,103,242,105,239, 10, 62,150,114,240,139, -217, 39,126, 6,220,160,193, 25,109,156,219, 2,101, 61, 34,194,239,119,127, 37, -108, 17,120,234,147, 13, 54,148,217, 54,233, 3, 69, 71, 38, 35,248, 69, 21,181, -177,122,100,160,240, 61,141,130, 60, 74, 8,216, 51,110,197,205,122,129,227, 23, - 75, 26,206, 80, 39,242, 16,123, 82, 63,229,158,128,170,239,254, 95,242, 43, 30, - 88,100, 90, 17,185,158,167,128,159,138, 60, 36,100,216, 51,110,109,236,186,192, -227,239, 83,241,250,155, 0,148,250,201,190, 5,186,101,109,100,146, 80, 13,212, - 49, 20,202,242,142,133,241,179, 30,208, 68,119,245, 80, 40, 30,186,255, 48, 17, -222,202, 23,196, 37, 11,167, 56, 58,112, 59, 35, 69,226, 96,152,181, 25, 71, 10, -186,122,168,132,234,173,228, 46,244,199, 91, 81,119,146,202, 28,178, 99,160,181, -203, 24,244,158, 63,221,124, 45, 90,136,203,212,204,236,108, 40, 78,198,168,152, - 76,182, 13, 8, 51, 16, 81, 70, 64, 68,176,164, 20,133,183,131,100, 30,230, 66, -151,250, 74,207,219,147,226,184, 38, 90, 51,201, 66, 9, 47,142, 56,101, 48, 72, -168, 76,125,166,240,127, 1, 55,247,217,158, 13,234,189,238,242,162,208, 73,218, - 32, 94,132, 22,105,179,141, 67, 70, 57, 12,180,114,129, 65, 94, 85,226, 28, 70, - 19,225, 83, 51,217, 97, 67,159,169,201,208,116,250,136,251,114, 9,230,206,200, -192, 59,204,116, 33, 38, 48, 89,236,122,210,116, 42,235, 58,240, 46,137,248,132, -146,105,138,236, 44, 52,163, 22, 67, 99,165,161, 96,232,208,114, 34,219,146, 57, -117,219,226,245,137, 25,110,253,169, 20,255,116, 57, 0,117,159, 1, 5, 27,224, -181,161,239, 30,168, 47,193,252,252, 85,198, 62,195, 54, 2, 48, 79, 47,234,156, - 72,182,242,200,158, 19,247,205,104,110, 94,142, 75, 71,183,189,162,173,199,140, -128,227,208, 69,208,194,216,168,217, 12,207, 26,147,141, 3,238,111, 37,131,119, - 91,226, 57, 79, 34,115, 41,209,103,200, 46,161, 50,245,179, 2, 76,119,186,237, - 29,253,254,198,250, 22,228, 39,193,222, 88,214, 41,183, 21,193,109, 9, 27,111, -233, 19,151,189,172,110,120,198, 70,196,107, 71,177,122,162,216, 13,119,166,162, -213,160,198,207,223, 51, 49,227, 8,224,102, 8, 11,218, 1,189, 28, 60,209,109, - 21, 71, 62,169, 40,253,175,205,130,204,200,195, 95, 58, 10,146,120, 35,153, 93, -116, 26, 27, 23, 69, 72,251,109, 45, 40, 61, 2, 16, 36,229,143, 64, 59,172,108, -211, 57,211,244,214, 60, 89,210,145, 29, 2, 4,134,170, 40,107, 13,141, 35, 27, - 81, 46,208,206, 27,178, 87, 12, 85,156,213, 89, 92,181,204,167,162,210,116, 28, - 37, 47,214, 92,102,124, 62,152, 34, 91, 84,194,244, 30,255,141, 73, 20, 99,238, -168, 46,195, 15,208,180, 49, 29,117,212,176,119, 40,112,162,190,162,192, 53,186, -227,174,216,158,170, 16, 94,154, 34,164, 20,133, 91,233,137,218, 82, 19, 4,210, - 18, 50,164, 36, 2,144,142,112, 39, 21, 81, 34, 13, 65, 71, 10, 66, 70,244, 67, -128,168, 7,119,160, 29, 42,225,181, 13,129, 41, 76,209,229, 71, 39,132, 7,158, -224,251,137, 45,101, 12,167,114,133,185,142,158, 12, 46, 71, 85, 93,212,221, 81, -254,130, 59,207,200, 36,166,243, 94, 0,221,202, 8,168,149,193,222, 43,144, 5, -238,152, 5,102,206,157,218,205,141,128, 40,125, 64, 54,181,129,224,194, 5,252, -105, 2,213,203, 3,168, 45, 41, 11, 24, 17,128,134, 19,192,131, 36, 59,168,102, -132, 18, 40,196,169,202,234, 95, 71,206, 36,213, 80,199,163,200,193, 73, 68, 41, -143, 22, 98,199,251, 81, 69,202, 39,128, 53, 26,143, 90,113,117, 17,117, 4,178, - 9,243, 14, 17, 55,174, 32,165,177,175, 81,217, 31,187,156, 27,195,206,108,110, - 98,212,103, 62,252, 22,103, 27,136, 76,227,243,156,102,197,107, 67,177,126,241, -143,162,178, 99, 17, 7,232,152, 1,219, 64,123,228, 31, 73,247, 13,191,128, 12, - 35,110,221,143,182, 60, 64, 80,205,135,160, 10,225,165, 49,178,187,206,132,159, - 76, 22,201, 12,190, 86,235, 98,254,100, 76,226, 69,137, 21,162, 76, 70, 84,108, - 58,213, 62, 87, 85,212, 83, 92, 86, 92, 96, 27,190,214, 85, 43,133, 23,178, 66, -201,174, 24,216,220,108,181,107,137, 93, 87,159, 3,195, 10,162,175, 68, 96, 30, -203, 83, 49,152, 14, 5,124,185, 50,242, 4,130,126,107,249,190,178,154, 94, 85, - 75,166, 22, 54,245,166,156, 90, 85, 74, 76, 11, 69, 10,159,115,224,206,208, 47, -135,206, 28,185,101,224, 48, 3, 0,105, 0,238, 9,106,145,177,100, 39, 94,148, - 68,230,160,215, 24,202,136,211,243,220,195, 59, 70,172,181,103,226,149,115,232, - 89,208,185,218,157, 10,195, 71,167,203,182,178,149,244,131, 79,156,161, 15,114, - 89,249,204,149, 2,226, 36, 22,147,240, 89,164,177, 90,102, 76,176,133, 66,132, -110,135,137,105,200, 70,186,108, 39,121,216,224, 89, 3,190,173,200, 23,103,114, -177,249, 33,180, 22,245, 16,143,191,201, 47,252, 50,177,133, 90, 31,133,106,248, - 86, 33,153,192,171,146, 76, 25, 26,149, 12,129,204,177, 94, 50,201,224,131,207, -141,105,156, 95, 9,164,110,202,195,217,127,139,225,116,143,145,157,169,211, 49, -192, 51, 45,199, 66, 4,148, 13, 70,121,153,253,251, 77, 95, 69, 16, 63,162, 48, -255,219,224, 44,234, 69,231,213, 88, 9, 96, 45,190, 42,238,140, 63,222,106,199, -203, 52,241,190, 70, 50, 64, 33, 4, 6, 86,241, 79, 3, 96,174,161,104,159, 42, -112,205,192,123,248, 21, 40, 95, 47,136,170,209,216,186,248, 32,112,171,200, 79, - 41, 2,146,112,255,243,146,156,134,103, 67,139,244, 74,128,189,158, 94,140, 66, - 77, 24,162,130, 42, 85,222,118, 72,212,193, 82,148,251,186,155,243, 4, 66,176, -115, 6,170, 14, 99, 22,243,104,255,206,240,252,152,235,135,216, 27,218,181,233, - 52,105, 24,110,131, 34,198,192,215, 7, 15,142,152,186, 66, 81,134, 35, 94, 73, - 89,157, 43,155,229,195, 32, 15, 65,197, 77,186,231, 82,128, 11, 25,193, 99, 17, - 30,148, 21,234, 71,198,134, 66, 61,111, 2, 82,204,245,170,234, 51,108, 62, 62, -161, 62, 53, 56,104,154, 51,210,147,227, 12,216,189,200,172,235,250, 38,215,183, - 68, 35, 20, 57, 26,137, 47,162,183, 23, 72,154,133,240,139,225, 56,230,144,101, -214,255, 46, 85, 25, 14, 86,194, 91, 33,223,253,222,255,110,128,212,186, 26,160, - 78,136,162,215, 67,133,236,157, 98,196,100, 44,163,168, 98, 91, 80,195,105,128, -145,214,105,101,165,211,147,203,252,215,132,228,165,102,165, 86,171,235, 13,198, -110,112, 27,215,104,228,185,213,174,172, 80,146,123,232,106,114,224, 67,172,192, -188,114,244,219, 10,142,129, 11, 49, 74, 12,235,229, 4, 95,167,196,248,156,130, -156,222,206, 80,198, 66,132,115,189,240,139, 32,229,225, 29, 3, 4,133,121, 16, - 13, 90, 23, 68, 56,108, 98,187,142,161,138,182,226,207,247,138,200, 49,132,155, -157, 75,198,167, 83,120, 3, 47, 16,230, 67, 67, 35,245,250,168, 52,251, 35,170, -207,174,150, 10,248, 93, 62, 37,212, 44,108,115, 3,113,167,178, 96,253,183, 85, - 24,227,188,203, 39,185, 95, 61,171, 83, 26,204,228, 50, 9,130, 42, 73,178,110, -151,197,165,229,227, 93,158,226, 80,121, 91, 31, 78,155,141, 95,194,123,253,153, -234,181,135, 95,245,217,241,160,209,232,216, 86,230,219,116,127,119, 41,120,118, -171, 42,100,231,194,187,143, 17,169,150,191,147,242,122,226, 4,198, 74,165,204, -175, 3, 52, 92, 8,128, 96,164, 14, 13, 9,234, 95, 96, 82, 49, 41, 12,110,133, - 30,203,139,221,239,191, 87, 49,238,114, 92, 12, 71,165,255,227,172, 99,210,151, - 47, 53, 47,140,240, 42, 11, 88,192, 90,152,128, 51,187,128,156,225, 13, 81,104, -190, 81,136,240,232,226,189,204,119,179,219, 66,162, 96,176,200,197,150,125,201, -155,130,253, 38,170,141,224, 50,149,192,212,230,138,106,118,177, 19,102,253, 46, -199,247, 49,113, 61, 5, 54, 93,104,169, 26, 76, 73,102,124, 37,183,144,199,144, - 53,190, 74, 31,174, 16, 27,195,230,130,212, 88, 44, 33, 39,205,227,169, 33,149, -244,180, 68,172,179,228,135,163, 85, 16, 19, 23, -} ; - -// ../Source/Template/GB_Template.h: -uint8_t GB_JITpackage_41 [791] = { - 40,181, 47,253, 96,135, 9,109, 24, 0,166,171,125, 36, 16,115,219, 61, 14,101, -196, 77, 68,224, 69,220, 73, 52,151, 98,224,169,251, 85, 40,131,165, 43,222,121, -217, 77,198, 62, 85, 85, 13,170,252, 6,124, 0,111, 0,116, 0,141, 68, 4,113, -121, 42, 22, 19, 16, 19, 51, 56, 53, 64, 99,224, 80, 38,220,214, 82,143, 50, 72, -238,169, 31, 50,131, 38,236,144, 87, 87, 38, 26, 15, 22, 14,227, 15,201,206, 23, -234,223, 56,250, 66,157,123, 84,130, 64, 49,160, 76, 22, 14, 12, 40, 58,176, 4, - 84,226,253,177, 15,234, 60, 90,181,143,175, 47, 42,177, 60,149,134, 70,173,140, - 96, 96,151, 75, 89,248,123, 90, 26,103,177, 61, 63, 85, 25, 39,117, 24,251, 27, -246,196, 76, 25,154,195,191,142,122,124,137, 26, 34,180,160,160,153, 20, 20, 4, - 14,213, 83,143,213,249,197,197,146, 62, 20, 85,198, 73,217,162,234, 68, 34, 10, -123,242,174,167,148,137,108,155,107,229,220,194,216, 15,249, 33, 36, 99,166, 98, -140, 6, 48,108, 7, 91, 87,255,190, 7,168,254,106,249,206, 82,185,189,178, 99, -112, 91,132,157,212,222, 31, 19,201, 62, 55, 46,158,139, 6,168,194, 28, 43,249, -195, 57, 96, 67,185, 25,201,174,169, 23, 87,164, 57, 31,204, 34,202,108,186, 5, -155,163,213,212, 44, 62,253,109,223, 48, 64,149, 4,210,206,174, 39, 8, 10,168, - 66, 1, 69, 14,208,229,185, 88, 38, 64, 51,240, 60, 96, 48, 73,157,235,140,192, -130,115, 82,117, 11, 37, 63,236,166, 97,248,214,151,145,162,166,235, 7,192,200, -214, 47,165,171,222,234,221, 46,170, 14, 59,105,217,178, 84,102,152,125, 62, 53, -190, 74,158, 88, 82,234,250,112,219, 29, 28, 56, 40,100,161,120, 20,198,247,217, -161,222, 42, 97,239,140,228,246, 21,170, 78,108, 54,223,162,110,167,119,134, 90, - 38,162, 40, 34, 33, 32, 8, 77, 51, 53,131, 12,208,172,149,156,219, 69, 61,106, - 98,162,100,170,114,243, 69, 9, 10, 47,249,127,151, 71,212,190,111,137, 87, 59, -110, 0,121,190,183,249,182, 95, 83,190, 71, 24,223,167,112, 68,199,150,101,123, -136,145,156,169,100,124,252,114,185,165, 23, 67,218,146,203, 30, 85,114, 97,123, -148,107, 95,212,126, 31, 79,143,165,226, 75,118,119,199, 80, 50, 38,154, 30,182, -244,213, 47,254,194, 73, 49,131,253,110,238,196,204,249, 3,107, 32, 48, 68,168, -144,157,117, 75, 11,102,231,130,151,241,200, 28, 0, 48, 46,162,114, 98,152, 88, -162,222,178, 80,106,224,122,224,152, 20, 28,183, 61,242, 53,123,204, 36,222, 51, -168,153,192,130,234,210,195,122,183, 35,117,175,132,231,212,183,231,149,231, 34, -178,104,250,222,127,240,204,113,158,101, 2,154, 93, 0, 89,143, 0,207,244, 89, -131,147, 65,250, 97, 67, 63,148,169,124, 43, 97,245, 6,114,112, 19,168,147,129, - 53,129,223,255,142, 86, 48, 72,194,198, 48,110,114,130, 66,193,116,161, 65,147, -240, 57, 7,136,227,134,135, 62, 2, 56,109,137,255, 29, 22,187,129, 67,237,172, -184, 23,207,208, 10,236, 9,173,112, 71, 2,148,220, 95, 98, 25,191, 17,200, 91, -172,233, 96,206,194,197,194,113, 2,180, 27, 13,216,215, 26,125, 56,194, 25,105, - 87, 7, 96, 32, 1,187,190,248,206, 54,120, 45,136, 8, 16, 71,142, 58, 66, 88, - 8,234, 46,190,216, 42,191,169, 49, 2, 60, 90,206, 91,221,194,169, 81,154, 6, - 40,211,134,112, 1,218, 82,159,112,214,204, 79,185,152, 3,112,209,115,226,171, -139, 12,214, 1, 0,157,233,114,154,189,205, 43,132, 61,104,102,158,153,110, 67, -100,181,126, 32, 58,123,125,159,162, 96, 8, -} ; - -// ../Source/Template/GB_add_bitmap_M_bitmap.c: -uint8_t GB_JITpackage_42 [714] = { - 40,181, 47,253, 96, 82, 17, 5, 22, 0,198, 91, 88, 32,224, 90, 55,224,207,180, - 99,154,225,243, 48,154,240, 16, 31,196, 35,115,234, 90, 59,108, 62, 52, 39,148, - 36,204, 16,105,196,132, 80, 0, 76, 0, 77, 0,251, 51, 97,144,231, 76, 29, 99, - 44, 18,139, 67, 67,145, 88,120,129, 35, 56,166,113,234, 90, 28, 65,125,245,109, - 17,196, 33,199, 54,218,169,223,120,201, 12,228, 53,121,199,237, 55, 46,183,153, -115,233,101,154, 99, 94,113,172, 26,232,132,162, 9, 36, 21,135,104,118,188,224, -198, 37,219,117,215,214,140,103,217, 60,100, 89, 88,251,234, 83,247,243, 74,243, - 37,203,205,149,228,214, 95,230,155,114,242,191,141,223,187,240, 58,182,197,176, -251, 29, 62,248,121, 4, 69,206, 49, 39, 69,215, 52,246,202, 76, 32, 22,135,255, -184, 59, 82,135,144,143, 61,188,195,239, 52,135,215,225,115,184,115, 24, 89, 62, -136,238, 83,228,235, 7,185, 14, 19, 63, 97,208,179, 40,150,124,146,188, 48, 18, - 62,196, 27,141,102, 67,151,140,173, 25,119,239,187,176, 20,212, 74,105,196, 11, -238,114, 89,141,173, 70,240, 16,232,178,109, 20, 32,113,255,106,160, 62,113,138, - 38,241, 74,196,221,125,206,214,156,136, 15, 69,223,250,126,246, 93,150,124, 95, -144, 20, 61, 95,237,115,190,220,189, 53, 61,220,133,143,215, 14,242,199,213,151, - 85,199, 52,206,255, 10,112,136,198,194, 6,252,187, 50,115,225,183,159,188,181, -211, 17, 97, 62, 84, 11,105,170,221, 52,150, 18,188,213,185,120, 64, 23,142, 13, -105, 54, 30, 6, 20, 44, 74, 95, 15, 71,188,240, 44,172, 65,199, 84, 27,173,104, -131,129, 99, 37,205,214,128,161,160,241, 37, 83, 35, 19, 68, 83,144, 20, 50,173, - 1,112,136, 12, 17,217,230, 19, 40,139, 51, 69, 74, 69,185,141,176, 84, 20,177, - 45,161, 78, 52, 44, 62, 10,155,196, 89, 92,233,174, 24,118,128,116, 23,138,217, -145, 19,231, 67,179, 57,248, 52, 61, 24,115,231, 61,100,129,168, 47, 1, 22, 70, -238,152,113, 13,200,204,156,146,198, 79, 70,244, 8,184,108,214,162, 67, 71,225, - 88,174, 96, 38, 27,231,152,251, 0,117, 50, 25,220,240, 60, 83,180, 44,117,205, -211,137,156, 74, 4, 37,100, 81, 52, 64,146,128,185, 76,220, 22, 79, 68,112,129, -200, 39,168,195, 30,150, 11,135,177, 96, 36,208, 10, 30, 58, 2,131, 35,160,243, -160, 5, 60, 87,129,199, 0,132,103, 36,127, 5,141, 90,192,111, 4,148, 93,112, - 13, 28, 52,240, 36, 65,102, 95,176, 28,235, 23, 5, 8,221, 39, 96,230,185,125, - 59,146, 84, 92,220,211, 73,196, 13,128, 29,169, 71, 24,219,107, 81,154,144,232, -226,184,209, 70, 8,186, 56,106,180, 17,131, 49, 30,233, 71, 27,126,232,146,113, -129, 90,134,145, 5,112,217, 72,193,128,194,225, 35,100,162, 72,113,227,109, 80, -140, 93, 21,166, 51, 62,103,180, 93,190, 29,240, 22, 25, 67, 51, 6,107,132,114, -153, 46,204, 25,194,215, 97, 35,240, 54,247,215,226, 68,169,159,214, 87, 25, 98, -161,148, 64, 81, 9, 48,222, 41,131,180,233, 32,219, 96, 4, 23, 32,118,159,105, -255,148,245, 70, 93, 29,194, 13, 20,126,166, 25,180,105,110, 84,102,106,159, 96, -197, 46, 25, 20,181, 35,113,113,154,102,164,232, 36, 3, -} ; - -// ../Source/Template/GB_add_bitmap_M_bitmap_27.c: -uint8_t GB_JITpackage_43 [842] = { - 40,181, 47,253, 96,201, 11, 5, 26, 0,230,229,115, 40,208,240, 56, 7,254,167, -122,237,247, 13,176, 93, 64,190, 21,166,199, 48,226, 25, 38, 84, 71,207, 23,252, - 46, 30,172,172,114,205,252, 69,174,102,192, 11,231, 11,108, 0, 98, 0,104, 0, -242,110,157,113, 36,109,183,198, 36,131, 36, 66,243,153,100, 77,170,109,219,225, -246,106, 22,210,225,115,194,191, 1, 75,197, 34, 49, 16,168, 88, 14,193,168, 63, - 43, 73,172,249, 4, 94, 67,187,220, 72,134,254, 64,144,161,210, 40,215,205,165, -109,101, 10,234, 43, 59,208, 52,103, 39,162, 84,207, 54,254,131,127,157, 99,110, -253, 85, 17,152, 73,232, 60, 16,172, 95, 12, 44,157, 72,121,116,229, 21,179,140, - 99,181, 57,133, 50, 73, 40,148,242,242,181, 84,207, 46,107, 13,179,135,108,209, -162,108,198, 93,181, 27, 71,157,232,179,231,228,202,244,116,196,157, 71, 22, 92, -233, 3,243, 76,222,223, 77,102,156,118,187,243,255,159,166,210, 52, 77,180,203, - 93,239,202,112,114,237, 46,214,213,107,187,155, 76,122,109,237,202,190,220,150, -245,221,122,212,147,142, 56,236,239,149,123,199,202, 91, 83,101, 98,145,180,134, - 49,133,191,212,150,162, 21,245,234,250,187, 32,117, 24,171,106,243,204,249, 55, - 30,100,125,187,190,190, 49,102,157,179,127,221,213,123, 43, 15,185,120,146,186, -144, 35,234, 34, 74,125,129,211,137, 33,133, 13,194,233, 49,207,252,239,109,108, - 24,245, 6, 15, 39,196, 9, 57,192, 79,196,176,124,255,178,173,233,223,173,124, - 45,253,141, 4, 5,165, 72,228, 8,199,188,242, 12, 5,177,147, 73, 27,118,137, - 80, 27, 39, 47, 86, 63, 81, 28,130, 5,211,212, 81,185,220,118, 43, 51, 47, 69, -176,103, 94, 65, 39,126, 89, 16,222,230,219, 23,100,145,204, 54, 43,114, 55, 86, - 81,226,227,177, 94, 85,158,140,217,200, 26,157,220,240, 32, 31, 29, 2,148,173, - 39,233, 0,167, 22,245,143, 71, 1,196,129, 80,168,170,139,179, 50,210,191, 12, -248,119, 33, 89, 3, 61, 12,213, 35,240,153, 91, 47, 65,174, 7, 4,156,219,206, -190,206,193,113,198, 52, 26, 24, 61, 32,142,168, 51,145,124, 4,128,156,160,145, - 37, 51,138,208,136,140, 36, 73, 10, 25,214, 64,132, 24, 67,102, 55, 7,201, 98, - 63, 80,156,107,171,178, 51,142, 24,180,114,176, 32, 86,113,113,222, 29, 0,141, - 43,116, 11,243,216, 0,204,123, 89, 32,156, 76, 76, 64, 8, 92, 72,151, 4,120, -112,227, 37, 29, 47, 68, 59,134,136,102,211, 40,198, 19,153,125, 97,241, 36,114, - 61,205, 2, 3,218,230, 65,245,226,181,179,251,104,164,201, 71,184, 13,140, 44, - 16,223, 15, 8, 7, 4, 3, 12,168,182,253, 42, 32, 79,161,243,192, 37,244,154, - 33,104,131,192,236,231, 95, 10,224,242,224,246,178,133, 14,143,106,236,126,101, -225, 12, 50, 76, 2,202, 0, 78,232, 46, 38,118,102,181, 60,143,229,154,192, 68, -193, 45, 1,215, 0, 20, 38, 96, 13,120, 6, 65,119, 1,123,154, 15,139, 46,159, - 12, 3, 34,205, 96, 56,135,199, 28, 78,220,228,231,172,203,120,146, 52, 1, 62, - 68,128,240, 87, 53,192,185, 57,161,232,240, 10,166,130, 0,210,237,143, 26,217, - 2,183, 2,194,144,255,190, 41,211,173,225,192,255,203, 94, 45,157,234,123,203, - 29, 19,199,205,210,172,166, 95,255,219, 63,103, 78,201,106,178,201,166,201,206, - 63,147,216, 37,228,152,117,249,168, 1, 54,214, 48,122,193,134,206,110,207, 74, -210,218,199, 58, 14, 64, 1,103,202, 75, 20, 22, 26, 21, 53, 43, 10, 63, 50,138, -237, 22,195,109, 20,204, 84, 23, 7, 99, 55, 10, 89,200,237,104,196,105,190, 73, -100,133,164,121,110, 73,183, 64, 49, 97,104,212,118,211,110,180,201, 12, 92,124, -211,124, 84,102, 98, 7,189, 54,255, 56,122, 14, 93,127, 17,251, 57, 68, 82, 20, -220, 1, -} ; - -// ../Source/Template/GB_add_bitmap_M_bitmap_28.c: -uint8_t GB_JITpackage_44 [1138] = { - 40,181, 47,253, 96, 77, 16, 69, 35, 0,198,235,132, 40,192,208,170, 14,248,125, -236, 97,162, 9,185, 8,203, 6, 37, 52,207,181,239,170,123,108, 61, 47,174,196, - 82,165,150, 92, 4,216, 75,192, 52, 9, 2, 0,150,207,126, 0,116, 0,122, 0, -151, 36,129, 80, 30,189, 97,244,198, 87,190,174, 90,205,182,179,204,163,177,109, -172, 50, 60, 34, 46, 28, 72,214,163,175,113, 59, 28,231,205,162, 58,156,227,226, -225, 0, 69, 66,121, 24, 76, 36,148, 59,176,233, 16,215, 17,189, 28, 18,143,177, -101,175,171,158,195, 78,100,144,219,165, 31,166,210,248,163,183,211,185,138, 58, -210,215, 23, 99,139, 64, 46,190, 60,228, 56,145, 22,137, 80,243,234,215,161,164, -162,133,160, 1,176, 92,175, 28, 80, 52,243,210, 46,215,207,204, 50, 58, 37,230, -145,136,244,136, 68, 2,182,239, 97,254,238,243, 36, 40,208,160,168, 91,170, 75, -110, 77, 14,108,177, 10, 53, 89,175,102,236,187, 68,113, 7, 86, 51,205,120,106, - 78,148,245,134,225, 59,236,188, 38,156,209,254,182, 60, 59,145,118,174, 57,122, -127, 59,239,180,179,160,223, 5,168,158,213,252,108,171,124, 21, 51,111,203,173, -249,255, 75,146,134, 36, 65,112,228,232, 39,202,152,232,203,184, 69, 28, 29,253, -235, 45,215,126,102,233, 97,246,108,214,217,118,215,220,237, 60,236,159,119, 13, -174, 15,119,226,159, 75,210,106,102,175,233,229, 25,167, 4,103,115, 53,230,122, - 35,242,123,104,155, 27, 61,224,247, 18,252, 40, 71, 49, 60,175,233,156,141,135, -235,188,135, 23,241, 16, 84,233, 37,110, 24,104,238,207,169,120,235, 14, 16,172, - 83,195, 67, 66, 39, 3,145, 48,233,229, 18,231,166,147,209, 58,179, 90, 61,252, -196,233,113, 74,137,185,117,250, 60, 15, 14,170,221,116,237, 78, 95,200,104,166, - 39, 1, 99,169,110,253, 16,102, 88,108,122,195, 38,227,201,120, 28, 34,103,134, - 48,205,135, 89,146,180,177, 65, 81, 19, 73,183,203, 81,208, 97,149,242,115,199, -228, 22, 86, 79, 89,151,119,226,181, 90,170,203,207,203, 88,143,190,229, 16,168, - 71,244,203, 2,214,175, 9,117, 57, 16,194,208,148,119,122,228,132, 14, 55, 57, - 93, 78, 5, 16,174,142, 16,172, 76,242,154,119,223, 91,126,102,171,102,169,254, -234, 21, 19,150, 9,196,106, 71, 45, 70, 38, 41, 2,216, 82,148,171,110, 97,235, - 12,245,148,183,222, 88,229,176,156, 25,127, 85, 11, 9,100,108, 61, 76,114, 13, -138,222,122, 69,129, 7,168,225,169, 34, 51, 34, 34, 35, 73,146,100, 89, 3, 49, - 12, 66, 97,144, 91, 73, 61,194,136, 68,138, 50, 12, 75,128,136, 35, 68, 25, 66, - 8, 18, 24,162,132, 34, 73, 19, 73, 65,242, 84, 73, 13,213,121, 90,191,155, 8, - 32, 68,218,144, 35,162,229,163,179,100, 17, 1, 9,250, 65, 41, 4, 31,161, 81, -177,175, 38,194,127,142,107, 22, 46, 21,169,127,143,188,247, 26, 97, 28, 20,247, -223,240, 12,251, 95, 16,165, 21, 8,133,166, 61,118, 2,127,163,186,117,224, 1, -191, 53,242,233, 12, 51,224,215,123, 24,206,139,219,100,121, 29, 79, 75, 5,146, - 34,249,193,195,118, 9, 31, 67, 80, 80, 3,183, 90,117,233,231,230,221,111,131, -102,104,119, 53,236, 35,237,230,254, 45,223,102,151, 72,200,207,147, 85,109, 29, -207,166,102, 65, 48, 29,184,111,254,208,239, 42, 9, 11,245,140, 47, 35,134,185, - 18,126, 45, 94,168,169,237, 92, 66,167,134,171,193,244, 50, 27,191,133,136, 40, -107,223,100,254,148, 46,218,135,121,254,227,235,153,172,167,139,176, 2,152,145, -103, 52,231, 50,114, 26,218,132, 5, 26,152,182,160,195,153, 11, 39, 54, 90, 14, - 25, 22,110, 80,214, 39, 1, 79,147, 31, 49,155,217, 1, 55, 5,169, 84, 15,206, -144,168,205,177,143, 58,250,121,124,246, 44,195, 88, 67,165, 0,117,238, 77,144, -197, 32,138,161, 52, 33,109,192,221, 82,141, 67, 2,104, 77, 63,151,208, 25, 66, -123,250,154,189, 46,164,161, 16, 8, 71, 1, 56, 96,231, 31, 94, 30,198, 36,105, -200, 90,109, 31,224,231, 91,241, 85,253, 20,188, 35, 45, 78,121,236,138,205,241, - 47,174,228, 7, 68,171, 54, 69,152,121, 18,208,235,148, 53, 47, 84,109, 59, 87, - 34,208,212,115,154,125, 84, 16, 57,146,135,153, 1, 76,254, 0,189, 60, 29, 22, -248, 27,198,228,106, 87, 5, 91,208,250, 86, 34,193,221, 94, 54,134,192,106,150, -188,136,206, 27,172,116, 36,152, 24, 56, 2, 63,165, 19,249, 14,195, 93,158, 23, - 1, 67,160,125,174,171,211,150,218,116,220, 75, 53,136,215, 31,102,222, 27,199, -240, 87,172,226,157, 82,221,117,220, 7, 94,196,175,160,111, 19,222,159,164,231, -223, 82, 84, 50,107,235,230,205, 76, 77,135, 14,139,169,157,103, 9, 26, 48, 64, -134,118,248,242, 3,128,200,174, 73, 29,248,117,195,252,195,239, 46,224,250, 13, -163, 51,190,206, 83, 64, 3,171,246, 62, 3,242,204, 40, 0,216, 28,101,180,174, -231, 21,227,252,224, 97,162,238,220, 20,247, 71,161,243,196,215,136,206,215,217, -133,100, 62,255,168,228,202,169,135,243,111, 36, 61, 80,157,228,166,105, 85,102, - 50,151, 74, 89, 39,165,166,183,235,151,108, 63,133, 78,149, 6, 56, 1, -} ; - -// ../Source/Template/GB_add_bitmap_M_bitmap_29.c: -uint8_t GB_JITpackage_45 [1142] = { - 40,181, 47,253, 96, 77, 16,101, 35, 0,166,235,132, 40,208,208,234, 24,248,109, -148, 89, 1,171,114, 85, 85, 75, 52,197, 54, 54, 21,205, 35,168,240, 58,116,167, - 88, 53,228, 6,197, 93,221, 34, 87, 51,224, 7,179, 4,127, 0,116, 0,123, 0, - 87, 36,129, 80, 30,148,203, 38,142,175,100, 90,183,186, 47,213, 50, 15,170, 47, -205,170,195, 99, 2,195,129,104, 52,148,169,166, 16,215,155,195,168, 16,183, 54, - 30, 14, 80, 36,148,135,193, 68, 66,249,148, 73,135,186,134, 38,230,144,120, 13, -110,127, 94,245, 28,118,162,131,197,225,153, 23, 42, 84,231,137, 59,116, 87, 80, - 39,202, 20,107,112, 17, 8,214,143,135,214,130,182,136, 5, 53,183,252, 58,180, -168, 88, 37,104, 0, 46,215, 43, 8, 20,141,196,211,219, 21,147,154, 54,165,181, -240, 72, 36,122, 68, 34, 1,135,218,165,248,112,103,252, 45, 9, 10, 56, 40,234, - 23,203, 37,175,164, 73,223,172, 66, 73,247,171, 59,203,143, 44, 62,101,117,207, -173, 37,106, 65, 26,229, 50,253,233,202, 75,210,218,164,153,219,210, 3,109,183, -212,218,249, 79, 15, 99,102, 12, 96,185, 86,247,247,173,241, 22, 75,251,184, 77, - 53,255,255, 40,226,136, 34,136,182,236,204,160,157,129,242,214, 20,100,103,232, -153,114,187,210,107,119, 30,238,239,106,116, 95,234, 81,139,189, 47,123,254,174, -209,245, 1,213, 47,112,197,177, 43,218,170,118, 47,249,109,105, 73, 10,206,230, -186, 69,181,165, 29,145,227,195, 75,109,232, 1,199,135,121,218,153,105,121, 73, -231,108, 62, 93, 37, 62,204,176, 14, 63, 21,195,196,141,131,117,234,147,195,118, -190,250,244,129, 85,122,136, 80,232,100, 36, 20, 36,134,193, 68,185,233,100, 54, -170,221,173, 30, 98,150,116, 75, 90,213,177,111,121,240, 79,245,164,111, 88,122, - 67, 70, 35, 61, 10, 11, 23,203,171, 31,194,141,155, 73,127,216,100, 60, 25, 15, - 68,228,200, 78,207, 29, 81,212,209, 65, 81,147,184,233,220, 20,251, 28,214,199, - 56,169, 56, 77, 94,101,245, 84,245,136, 43, 94,235,197,242,152,191,157,209,208, -185,221,193,233, 67, 67, 51,111,129,234,215,132,194, 28, 8, 97, 39, 35,230,116, -135, 92,148, 30, 37,195, 71, 87,110, 79, 29,172, 72,241,219,135, 79,185,125,237, -214,237,242,174,187,229, 23, 21,151, 9,204,170, 55,175,134, 22, 41, 2,250, 82, -211, 98,220, 42, 59, 42,227,171,211,172, 90, 29,229,214,185,110,157,192,214,247, -203, 36, 20,246,129, 9,168,193,173, 50, 51, 34, 34, 35, 73,146,100, 89, 3, 65, - 12,130, 48,200,173,164, 30,178,120, 88, 16,165, 24,150, 0, 17, 72,136, 81,132, - 8,140,224, 72, 73, 80,177, 50, 75,218, 6, 68, 73,165, 83,121,186,183,155, 11, - 64, 56,216, 80, 42,226,171, 71,143, 37, 45, 10,176,173,231, 39,202,178,167,209, - 76,196,155, 73,163,190,192,152,113,172,149,226, 33, 3, 89,113,130,209, 91, 26, - 13,252,167,237,185,141,210, 61,133, 66,209,158, 68,224,135, 81,125, 25, 48, 74, -198, 30,103,151, 60, 28,200,255,104,115,202,181, 18,244, 98,160,216,199,145,200, - 2, 81, 34,249,133,234,181,242,145, 20, 26, 53,121, 34,137, 46,158,140,223, 59, - 11,136,172,237,144,200,254, 4,184,206,191, 47,110, 69,192, 36, 68,243, 36,177, -182,199,179, 71,179, 18, 92, 15,252, 57,247,251, 1, 74,250, 72,189,242,185,199, - 80,113,165,184, 40, 87,162, 62, 19,221, 26,233,182,251,209,106, 44, 7,201,132, - 91, 15, 38, 68,211,247, 72, 25,134,243, 63,107,101, 51, 52, 45,114, 24, 48,214, -204,150,200,185, 93, 20,210,210,180,130, 52,125,118,212,248, 33, 85,204,204,246, -152,179,195, 88, 31, 72, 18,164,153,253, 6,108,230, 38,220, 96,184,168, 84,114, - 74,130, 0, 56,136,252,253,107,244,100,189, 34, 8,245,198, 85,197, 54, 97, 22, -149, 40,134,210,139,105, 67,220,138,106, 30, 72,136, 86,240,195, 35, 62, 67,104, - 99,158, 51,240, 4, 80,224,150, 15, 83,192, 6, 16,254, 4,151,196,216, 30,141, -165,150, 62,241, 8, 12,127, 44,254, 74, 48,121,182,209,226,138, 71, 90, 10,116, -228,197,136, 27,180,159,108,232, 9,195,240,102, 42,157, 30,128,169, 16,200,215, -214, 94,153,183, 54,191, 15, 9, 87, 38, 11, 83, 51, 99,206,221,162, 90, 9,174, - 35,122,212, 37, 94, 66, 86,231, 45,153,125,155, 8,227,239,170,219,250, 50,140, - 52, 24,253, 28,216,234,114, 24,210, 58, 82,253,244,167, 22,118,133, 91, 47, 31, - 22, 76, 9,237,187, 46, 8, 44,237,230, 52,160, 75, 72,152, 97,190,190, 34, 51, -135,156,196,191,176, 18,127,114, 48,245, 33,156, 16, 26, 23,157,198, 76, 56,126, -172,159,215, 77, 65,242,172,175,155, 69, 51, 56, 61,138,176, 76,237, 54, 75, 20, - 81, 61,180, 49,247, 95,115, 1,143,108, 72,106,250,175, 47,230,141,252, 2,196, -209,239, 18, 61, 51, 67, 96, 78,202,224, 61,142,202,160,207, 64, 61,195,133,159, -205, 81,162,133, 61, 23, 49,206, 12, 30, 26,117, 90,167,184,122, 20, 18, 79, 72, -205,118,126,214, 21, 4,136, 50,137, 74,143,156, 50,112,248,198,249, 2, 41, 68, -110,154, 87,101, 38,122, 73, 17,215, 73,254,116,164,250,157,228, 39,106, 73, 15, -235, 24, -} ; - -// ../Source/Template/GB_add_bitmap_M_sparse.c: -uint8_t GB_JITpackage_46 [1476] = { - 40,181, 47,253, 96, 1, 24,213, 45, 0, 54, 57,167, 39,192, 24,113, 14,192, 31, -182,239, 46,215, 70,243, 71,229, 27, 33,230,190, 58, 95, 0,254,168, 32,130,243, -100,196,143, 25, 8, 14,176, 44,130,128,178,168, 64,158, 0,147, 0,159, 0,152, - 1,195,248, 74,151,223,235,190, 74,182, 76,248,174,174, 54, 35,246, 19,184,231, -208,102,135,107,157, 51, 85,200, 26, 63,218,167,104,191, 19, 29, 96, 50, 5,156, - 89, 43,167, 59, 76,110,172, 43,228,203,162,128, 41,100,171, 51, 10, 62, 34, 54, - 48, 23,135, 38, 83,230, 56,173,153, 72,115,252,189,233, 46, 33,115,144, 41,104, - 64, 56,200,220, 98, 73,119,180, 67, 27,113,204,244,147,172, 70,173, 59,238, 60, - 83, 6, 39,147, 59, 41, 60, 92,123,243, 68, 24,169, 69,235, 23,220, 79,150, 39, -153,193,169,187,119,238, 56,151,105, 3, 65, 1, 60,116,238,192,116,174,164, 21, - 85,201,213,106,127,170,235,218,138, 67,113, 3,131,168,192,192, 32, 60,179, 90, -105, 27,252,227,247,118,174,188,212,226, 87, 19,217, 41, 5, 50, 4,115, 43,149, - 20, 68,183,194,203, 62,205, 69, 96, 87, 32,174,168,111,206, 86, 63, 74, 85,149, -206,198, 64, 4,175,149, 2, 67,172,208,162,152, 56, 25, 37,214,191,221, 72,248, -117,251,212,134,123, 71, 29,139,135,147,107, 93, 9,251, 21, 50,229, 41,105, 83, -231,201, 89,201,198,159,159, 60, 24, 57,191, 76,223,220, 50,226, 90,138, 52,183, - 84, 32,186,148,244, 14, 14, 9,143,103,114,123,107,155,149,194,104, 65,206,234, - 93,141, 16,179,248,255,115,126,249,244,205,223,249,140,119,255, 31, 69, 79,137, - 34,204,123, 91, 20,198,174, 77, 35,103, 29, 24,132, 77,230,188,189, 13,101,181, - 75,238, 96, 67,230,207,233,102, 43,209, 74,230,155,135,124, 58,253,139,164, 36, -200,187, 47, 49, 74, 83,237,206,196, 51,117,168,170,181,191, 24, 63,188,205,138, - 53,104,174,246,160,249, 55,167,228,140,213,226,208,179, 10,114,150, 17, 14,237, -172, 4, 31,249,230, 29,137,112,177, 64,126, 33,185,225,156,115,238,130,124, 87, - 81, 82,250,180, 81,117, 72, 80,104,238, 50, 74, 58, 85, 85,112, 40, 70,104,103, -213, 2,114, 14, 82,189, 96, 99, 15,154, 95,243, 16,144, 71, 41,151,203,195, 53, - 63,248,230, 87, 75, 22, 4,103,181,182,240,228,146,248,109, 23,103, 22,189, 69, -162,215, 6, 81,180,178,114, 48,185,238,139, 87,236,186, 86, 63, 41, 23, 70, 89, -105,148,112, 75,226,163,153, 72,107,145,222, 81,148,174,252,206,106,194,135, 75, -171, 5,221,180,200, 48, 98, 45,125,198, 79,159,156,213,230,222, 72,120, 74,174, - 0, 17,245,168,115, 45,206, 72,105,126, 14,135,118, 53, 73,155, 40,138,176,190, - 32, 3,125,139, 45,112,238, 30,175, 44, 63,171,162,206,176, 3, 44,140, 66,166, - 10, 56, 95,219,179, 96, 86,227,231, 60,151, 51, 48,112, 75, 70,134,199,196, 85, - 84,190, 49, 81, 29, 22,156,202, 99, 81, 77,210, 51, 36, 52, 56, 36, 48,170, 14, -139, 11,140, 47,172, 5, 64,116, 53, 17,216,116,123, 99,125, 69,173,243, 99,222, - 11,129, 91,168,177, 37, 67, 68, 35, 34,146, 20,164,160, 80,104, 12, 97, 12, 66, -148,148, 88,170, 59,130,136, 60,206,225, 16, 69, 12, 70, 2, 68, 8, 17, 16, 70, - 2, 9, 36,146,104, 36,148,160,180,122,138,147,156, 32, 45,204,252,102,100, 54, - 33, 49, 61, 5,102,113,188,116, 21,112,217,250,180, 52,243, 85, 38, 88, 89, 84, - 80,233, 98, 72,217, 68, 65,233,193,112,178, 8,152,116,123, 80, 50, 81,187, 71, - 24,217,106, 68, 58,103, 18,178, 15,118, 58,202, 71, 62,138, 71, 71,171,247, 73, -168,170,222,129,179,149, 44, 11,224,246,220,152,168, 41, 84, 56, 56,167,198, 68, - 88, 45,185,229,104,170,169,139, 37, 7, 49,148,107, 0, 61,156,156,189, 91, 18, -183, 20,131,103,137,185, 21,158,185,172,156,109,162, 67,120, 1, 90, 40,219,164, - 91,241,194,180, 60,141,144,109,226, 45,232,148,134, 46,215, 65,234, 35,206,113, -143,154, 93,131,127,164,254,194, 92,170, 37,173, 5,133,182,146,223, 16,102, 50, -125,218, 79, 13,125,170,228,200,122, 54,254,162,157,211,179, 63, 98,167,198, 59, -170,180,214,103, 37,247,183,160,145,169, 50,154, 16,235, 44,206, 42,231, 90,178, -218,135,168, 35,114, 1, 60, 76,176,107,199,138,188, 90,197, 94, 10,118,162,227, -227, 75, 98,163, 12,170, 95,216,227, 73,123,144,170, 39, 56,161, 66,254, 42,118, -196,234, 26,154,135,129, 73,107,247, 96,218,185, 61,195, 87,199,243, 27,215,158, -240,175, 18,171, 73, 14, 39,211,184,158,147,243,137, 42,233, 60, 65,168,103, 61, - 59,147,208, 77, 67,242, 48,127,132,178, 38, 1,122,134,102, 78,117,218,190, 56, - 12,156, 6, 6,138,138,164,244,210,215, 6, 45,241,216, 53,212,150,107,118, 36, -218, 59, 28, 11, 78, 88,201, 53, 31,226,102, 25,187, 35,217,162, 83, 92, 52, 58, - 29, 74,186,232, 24,100, 51,169, 21,116,121,144, 93,245, 44,225, 84,251,188, 76, -134, 79,118,129,169, 14, 75,170,248, 35,218, 96,230,214,113,234, 21, 3,178,158, -246,135,154,233,157,131, 24, 74,144,141,105, 94,120, 62, 22, 22,158,169, 52,117, -195,236, 1,108,198,191,125,238,202, 23,110,180, 49,222, 89,249, 94, 60, 88, 16, - 38,125, 91, 67,211, 34,237,193, 11,169,216, 85,155,180, 74,199, 90, 28,255,235, -170,111,202,238, 10, 64,161,166,177, 49, 11,121,110, 34,251,223,142, 99, 46,118, - 47,147,243, 21,130, 75,236,221, 29, 33,215, 23,156,176,114,236,160,179,243,194, - 48,147,167,196, 18, 21, 87, 74,167,144,100,228,225, 92, 96,224,243,178,238,151, -130, 73,191,227, 14, 82, 25, 43,174,122,176,235,219,177, 39,192, 50, 63, 98,173, -139,186,247,245,203,156, 77, 55,129,149,224,223,237,135,204,209, 25, 0,244,130, -202,177,147, 31, 54,183, 4,229,168, 7, 32, 66, 54,221, 65,250, 40,215, 79, 57, - 4,226,162, 44, 45,206, 24,122, 82, 25,179, 93,247,248,232, 12, 17,167, 7,254, - 76, 74, 23,175, 48,219,140,181,206, 86,180,154,204, 50,239, 46, 22,200,234,232, - 99,212, 98,192,205,160, 13, 33,241,166,117,174,142, 57, 66,161,113, 79, 6, 24, -223, 1, 30,113, 78, 32,165,131, 11,128,156,222,209,122,109,135,182, 9,148, 37, -185,131, 0,170,145,107,223, 65,129, 85,208, 15, 47,185,236,153,164,188, 83,181, -199, 83,132, 99, 79,129,138,243,229,241,193, 2,199,191, 64, 4, 81,121,176,196, -140,222,200, 16,186, 15,140,119, 84,100,254, 83,189,134,237, 83,244, 67,102,181, -125,165, 30, 41, 14,208,146,219,169,165, 49, 83,164, 95,190,105, 86, 63, 48,173, -234, 36,243, 20,111,189, 83,123,225, 58, 9,141, 74,209,107, 19, +// ../Source/JitKernels/GB_jit_kernel_AxB_saxpy4.c: +uint8_t GB_JITpackage_8 [306] = { + 40,181, 47,253, 96,186, 1, 69, 9, 0, 6,210, 60, 33, 16,179, 30,230,109,130, + 35,245, 18, 31,103, 47,136,106,246,246, 35,165,110,240, 40,235, 51,162, 5,175, +224,136, 0, 0,170,110, 6, 50, 0, 51, 0, 50, 0,217,245, 58,219,144,254,190, + 30, 26,187,142,183,255,115,159, 4,201, 40, 96,158, 59, 25,247,202, 3,226, 23, + 71, 37, 66, 33,200,234, 58, 65,178,226, 7,243,115,234,190,155, 58, 51,175,170, + 56, 85, 85,224,115, 87,155, 46, 13, 10,213,253, 39,191,254,205,245,246, 52,119, +115,140,165, 75, 8,203, 96, 77,138,131,193,242, 1, 39,112, 73,223,143,109, 56, + 37, 61,228,237,206,119, 43, 46, 81,169, 77, 47,180, 57,114, 78,180,172,198, 8, +240,168,223, 22,135,223,239,138,152, 25,192,191,243, 96, 14,188,129, 40, 97,236, +201,184,190,142,249, 21, 13,148, 53,189,199,217, 80,250,149,255,102,238, 6,191, +123, 76,175, 3, 49,142,226,194, 7,148, 58, 48,204, 66,235,204,153,192,193,236, +217,159, 1, 28,101,247,127, 53,225,238, 30, 69,113,225, 3,129, 79, 42,147,141, + 82, 19, 24,202, 69,210, 58, 47,178,106, 14,201,230,136,184, 22, 17, 0, 71,133, +163, 50,197, 72, 8,105,116,189,206,136,201, 2,146, 2,171, 15,168, 7,105,251, + 67,212,243,134, 6,176,105,254, 60, 51, 69, 27,198, 86,235, 23,131,248, 80, 56, +145,231,240, 20, 5, 67, } ; -// ../Source/Template/GB_add_bitmap_M_sparse_24.c: -uint8_t GB_JITpackage_47 [833] = { - 40,181, 47,253, 96,148, 11,189, 25, 0, 6,101,113, 39,208,210, 86, 7, 42, 29, -227,242,158, 4,192,207,181,189,224,185,237,200,208, 18,114,218,199,107, 99,162, - 10, 79,192,159,100,149, 46,163,212, 3, 30,176,188,107, 0, 99, 0, 99, 0, 85, -198,233, 48,161,208,120, 40,151, 28, 93,137, 37,196,113,198, 50, 38,196, 41,117, -111, 5, 23,203,101,130, 64, 96,185, 60, 18,167, 55, 60, 71,173, 57,197,189, 3, -203, 89,104, 70,188,125,156,195,195,108,223, 6,204, 71,230, 41,250, 72,148,138, - 64,149,215,220, 51, 87,218, 14,172,114,206,219,171,183, 39,113,212, 2, 7, 64, -161, 58,198,224, 2, 37,190,109, 49,228, 64,219,161, 60, 45,120, 93, 13, 95,195, - 43, 21,105, 82,169, 4,120,146, 84,116, 73, 44,226, 71, 42,172, 38,124,181,188, - 88,134, 33, 81,253,205, 64,167,146,210,190,109,111, 67,217, 59,148,209,215, 6, -100,126,205,252, 92,231,111,246,134,137, 52, 14,192,100,112,185, 50, 44, 75,206, -255, 95,146, 62, 36,137,130,229,204,186,188,253,231,114,149, 33, 73,109, 40,139, -191,106,159,131,231, 43,201, 66,185, 76, 36, 22,219,186, 99,174,156,160,153,171, -188, 54, 19,137, 3,205,114,211, 29,124,175,161, 47,153, 69,210,122,237, 88, 61, -195,111,217,149, 30,199,243, 17,141, 54, 39,234,113, 58, 40,115, 12,107,113,171, - 58,245,248, 12, 19, 20,110,159, 57,245,183,230, 81,227,244,135,206, 38, 98, 19, - 1,225, 60,112, 3,119,126,187,170,180,111,249,118,198,246, 25, 26, 28,124, 72, - 36, 87,200,220,114,106,138, 96,218,163, 26, 49,146,169,102, 51,199,123,233,226, -145, 56,115,231,146, 20, 98,201, 89, 61,158,212, 63, 36,241,148,115,157,165,229, - 26, 52,175, 90,193, 44,195, 7, 43, 60,157,234,239, 54,237,136, 97, 99,150,246, -131,196, 12, 8, 33,168, 84, 73, 71, 23,184,173,166,123, 58, 12,159,205, 4,195, -123, 86,134, 39,116,111,246,141,195,189,105,204,214,184,142,195,187,196,157,122, -117,235, 3, 3,111,137,169,180, 14, 2,242,214,104, 28,236,124, 54, 32,121,129, -102,192,155,254, 44,251,128,157,160,161,169, 50, 37, 37, 34, 34, 41, 72, 10, 82, -104, 12, 64,132, 16, 66,119,182, 1,201, 98, 31, 44,154,183,177,130, 78, 22,241, -199, 42,100, 2, 95,178,227,182,211,192,158,157,208, 22, 51, 20,104, 27,195,181, - 63, 14, 38, 52,193,185, 76,132,194,205,164,196, 66, 64, 30, 47,119,188, 8, 53, -102, 25,124,173,217, 18,170,241,139,208,154,152,120, 33,124, 33,221, 2, 35,148, -109, 52,213,220,117,179,251,192,104, 38, 20,233,165, 16, 25,100,240, 17,216, 10, - 2, 48,176,240, 58,237,171,134, 60, 69, 78,246, 2,225, 45, 12,163, 13, 25,102, - 38,223, 74,129,174, 71, 28, 59,187, 16,192, 17,237,234, 87, 86,230,191,210, 37, -178, 10,124, 65,127,221,146, 80,204,187,199,236,129,104,115, 3, 5, 54, 0,184, -134,161,187, 50, 13,196,155, 6, 90,211,225,112,235,114, 51, 96,240, 96, 38,211, -156, 65, 33, 45, 85,208,229, 84, 30,129,212,126, 44, 80, 62, 59, 70, 86, 13,114, -238, 78, 29,218,117, 9, 64,145, 44, 1,153,147, 78, 68,217, 98,216, 67,132,196, -191, 56, 99,154, 2,165,161,252,170,123,181,252, 20,159,183,240, 80, 60,126, 70, -179, 48,141,248,207,228,105,230,244,150,147, 95,142, 44,204,244,157,128, 47, 66, - 7, 86,204,101,218, 67,227,230,136,139,123, 3,110,218, 47, 18, 9,252, 9,192, - 10,124,224, 57,133, 39,213,168,173, 22,124, 71,248, 34, 46, 24, 66, 18,210, 19, - 11,154,132, 51, 43,143,168, 51, 35,107, 69,216, 33, 12,131,146, 90,155,105,113, -145, 2, 55, 48, 26,108,196,132,235,108,154,157, 63,152,108,133, 47, 74, 10,216, - 73, 68,232,113, 93, 49,198, 73, 62, 40, 69,175, 24, +// ../Source/JitKernels/GB_jit_kernel_AxB_saxpy5.c: +uint8_t GB_JITpackage_9 [1097] = { + 40,181, 47,253, 96,161, 20,253, 33, 0,198,235,136, 40,192,240, 58, 7, 60,135, +153,176,242,190, 19, 84,233,102, 31,167, 42,160,122,217,151, 53,112,239, 7,214, +238,189, 38,123,123, 31,234,224,186,138,130, 32, 27,204,125, 0,128, 0,124, 0, +222, 12,197, 87,110, 83, 15,205,182, 63, 13,210,216,182, 71, 51, 16,138,134, 45, +242,245,232, 54,238,206,113, 6, 63,180,243, 90,227, 43, 4,203,192,130, 36, 28, + 24, 88,127,120,212, 43, 76, 71,179,225,145,248, 18,152, 67, 16,237, 94,113, 49, +147,129,161,121, 49, 21,174, 51, 21,113,211,237, 80, 9,148, 52,190, 51,132,159, + 73, 66, 19,148,233,197,227,171, 90, 69,158, 99,122,203,171,140, 32, 50, 20, 88, + 94,153,148, 66,164,137,101, 70,138,178,182,189,157, 33, 51,197,144, 25,230, 18, +201, 4,145, 72, 2,175,186, 94,136,194,239, 55,244, 28,251,216,174,247,132,199, + 55,204, 94,143, 14,102,170,241, 47, 4,115,131,254, 13, 71,235, 98,183,185,104, + 46,153, 77,163, 73,138,137, 40,185,248, 32, 49, 27,173,163,105, 46,220,255, 79, +211, 22, 53,157,150, 73,206,192,192,187, 46,110,146,211, 36,192, 61, 10,127, 80, +231,116,156,206, 38, 39, 21, 27, 69,228,100, 70, 17,101,230,178,233, 92, 34,158, +137, 25, 39,131,145,157, 6, 49, 77, 1, 96,164,243,172, 33, 80,103,137,144, 97, + 2,222,159,168,122,150, 10, 76, 6, 17, 11,210, 96, 32,206,192, 51,219,103, 75, +179,152,177, 13,189,202,114, 18,189,121,106,100,118, 41, 15,105, 52,229,215,181, +134,215,138,228,228, 31, 13, 71,213,210,123, 52,207,140,187, 11,166, 19, 59,201, +117, 29,206,182, 73,112,178,115,201,104,155,134, 99,249,175, 11, 59,117,236,193, +176,112,174,211,178,141,180, 32,160, 36,229, 96,162, 45,245,244, 39, 16,193, 24, +206, 51,172, 95, 13,193,219,233, 29,244, 40,168,209,185,116,241,139,242,190,243, +248,118,198,244,211,247, 21, 7,235, 96,210,245, 99, 41,166, 28, 4,211,212,241, +177,244, 82, 80,227,246, 58, 83,208,187,243, 37, 59,111, 89, 22,199, 93, 44, 22, +234,246,138,114, 95,133, 63,170,236, 85,124,101,161,238,185, 40,146,130,145,240, + 4,165, 40,228, 81,141, 31, 57,180,207,162, 11,234,181,229, 13,165,140, 57,207, + 80,248,217,121, 76, 31,223,183, 57, 28, 28, 27, 83,101,122, 76,179, 86,106,231, +232, 58,102, 48,133,182,154, 44,203,186,176, 91,209,117, 97, 22, 2,101, 98, 89, +216,229,161,159,237,142, 0, 47,178,241,104,143, 86,130,103,121, 81,190,217, 55, +128,221,160,145, 53, 50, 51, 35, 35, 34,146, 36, 37,201,112, 80,132,200, 20, 17, + 21, 55,230,131, 84,112,248, 64, 66, 48,112,233,199,124,132,132,131,164, 35,182, +179,113,253,212, 5,240, 88, 32,128,184, 3, 58,163,164,135,166, 7,170,200,208, + 48,109,146, 68,176,115, 31,150,111, 88, 53, 71,255, 64,160,179, 0, 20,159,237, +179, 14,175,165, 98, 3,177, 32,189,113, 43,113,138,102, 83, 88,239,220, 17,167, +140,244, 19,136, 83,213, 59,167,128,124,148,176, 27,141, 49,206,156,173,253,133, + 36,145, 49, 95, 13,107, 34,135,211, 47,149,242,153,119,129, 33,210,104,169,130, +206, 64, 17, 83,147, 43,103, 82,139,181,111, 48, 72, 95, 98,159,179, 97, 48,224, +202,143, 30,115, 52, 38, 1, 38, 54, 5,200, 2,112,214, 22,142,217, 4,156,109, + 57,172, 9,118,254, 54,153, 90, 16, 54, 41, 7,139,113,143,135,201,149, 58, 46, +148, 32,220,141,181,171,199,118,211,156, 19, 44, 58,192,164, 67,184,233,199,171, +238,156,245,207,174, 59, 15,251,119,217,197,211,254,185,109,231, 6,220,155,196, +246,181,122, 2,102,142, 41,102, 80,243,161, 42,196, 88,255,251,131, 35,109,164, +239,138, 24, 70, 58, 17,144,126,154, 49,242, 64, 33,196, 94, 57,168,137, 14,170, +127, 71, 77, 11,190, 62,208,163, 64,251, 4, 0,223,196,220, 62, 42,174, 61, 54, +249,192, 50, 62, 52,124, 48,115, 93,224,115, 91,250,135,245,218, 1, 7, 30, 0, +128, 54,192,248,142, 3,174, 99, 14, 53,180, 78, 96,131, 14,173, 79, 61, 56,133, + 15, 4,240,193, 40,149,103,160,235, 99, 14, 63, 97,204,136, 33,179,145, 3, 40, + 31,195, 14, 1,141, 76, 94, 42,118,112, 76,170,115,142, 12,159,151, 41, 20,120, + 56,233,176,171,129,206, 24,156,227,177,241,181,120, 65,102,164,121,128,166, 0, +227,184,236, 37,236,104,230, 4,223,218,167,170,248,214,113,229, 9, 12,160,131, +224, 23, 16, 42,130,182,109,110, 63,194,139, 69,177,134, 13,138, 92, 56,153, 21, +138,173, 13, 21, 25, 40, 89,189, 91,134,180, 92, 15, 1, 8,129,138, 14, 60,126, +224, 58, 2,116,121, 86, 4, 1, 33,231,242,131, 14, 61, 36,132,137, 10, 96, 15, + 6, 84, 26,139,100, 32,204,125,127, 20,144,208,246, 14, 4,228,243, 80, 96,223, +176, 71, 5, 70, 23,224,245,214, 73, 3, 51,222, 17,160,105,219,206, 65, 19,230, + 15, 38,181,170, 78,142, 60,232, 92,116, 8, 85, 9,166, 20, 5,120, } ; -// ../Source/Template/GB_add_bitmap_M_sparse_25.c: -uint8_t GB_JITpackage_48 [1087] = { - 40,181, 47,253, 96, 3, 15,173, 33, 0,134,107,132, 40,224,208,232, 24,248,189, - 18,180,156,212,224,103,121,195, 37,253, 6,201, 64, 85,143,137,126,217,148,179, -245, 8,220,180,252, 77,243, 52, 97,134,148, 24, 19, 2,125, 0,116, 0,122, 0, -146, 4, 66,121, 80, 46,155, 24,190,146,105,221,234,190, 84,203, 60,168,190, 52, -171, 13, 15,137, 11, 7,162,209, 81,166,154, 62, 92,111,238,162, 62,220, 90,248, - 71, 64,145, 80, 30, 8, 19, 9,229, 84, 54,253,233, 58,154,151, 67,224, 53,184, -221,137,170,231,175, 3, 27, 34,135,103,198, 84, 58,116, 87,140,142,100, 45,198, - 22,129,127,153, 98, 13, 46,242,248, 52,183,142,253,197, 10, 94, 10, 26, 0, 11, -246,138, 1, 69, 82,157, 39,214, 82, 35,241, 20,237,250,145,154, 54,101,196, 60, - 18,145, 30,145, 72, 33, 61,247,159,118, 41,254,219,121,110,141,191,101,193, 1, - 71, 85,221, 98, 93,242,107,162,180,157,163,155, 85,170,233,118,117,103,249, 82, -197,169,172,238,185,245, 68, 45,134, 70,185, 76,159,186, 18,155,180, 54,105,230, -182, 20, 97,220,237,150, 90, 59,243,196,199,162,238, 83,116, 49, 51, 14,176,174, -213,253,125,235,115,247, 10,245, 52, 0,147, 1, 69,235,184, 77, 53,255,127, 73, -226,144, 36, 72,252,131,251, 82, 17,181, 88,212,101,215,238,188,174,215,232,122, - 44, 91,231,186,133, 6,182,190, 93, 86,205, 75, 91,213, 46, 38,187, 45,161,156, -224,108, 48,170, 45,237,136,188, 75,237,232, 2,199,151, 94,158,118,102, 90, 98, -211, 57,155, 78, 87,249,151, 1,255, 64,117, 94,224,166, 97,110,250,121, 5,127, -157, 2,189, 58, 57, 64, 44,116, 50, 17, 11,114, 94, 46, 80,110, 58,153,141,106, -119,171, 1,214, 41,252,247,129,211,161,140, 17,243,235,243, 91, 38,252,186, 5, -166,248, 7,155,190, 89,172, 95,255,123, 27, 55,155,238,176,201,120, 50,158, 7, -200,145, 1,146,212,209, 81, 85,147, 24, 39,135,237,148,128,254,106,140,159, 79, -126, 89,153,245,250,234,122,196, 20,175,213, 98,253,215, 99,238,118, 70, 71,231, -118,232, 81,160,238, 84,103, 58,154,121, 15, 92,199, 38, 21,230,188,247, 66, 50, -226,233,144, 35, 61, 11,152,208, 31, 23,167, 71,201, 0,210,149,219, 84,232, 85, -166,248,173,195,167,220,190,118,235,102,177,126,235, 22, 20,150,201,203,170,104, - 94, 13, 45, 82, 6,244,173,166,181,126,113,171, 12, 81, 25,127,157,102,213,234, - 40, 3,128,241,168,241,169, 34, 52, 34, 50, 83, 80, 80,148, 66, 99, 48,132, 24, - 99,204, 56, 15,162,128, 72,139, 66, 24, 73, 96,160, 17, 40, 99, 8, 33, 72, 96, - 2, 73,146,153,168, 37,169, 14, 36, 67, 28,122, 76,179, 10,169, 1, 86, 20, 18, -122,232,219, 22,114,250, 83, 64,231,128, 80,107, 33,218,239,223, 63,228,108,149, -186, 80, 97, 28,218,122, 92,249, 71,136, 64,164,185,188,154, 99, 97,160,120, 55, -194, 66,170,120, 23,184, 70, 76,125,224,216, 84,215, 96, 50,152, 97,132,234, 27, -207,183,210,251,155, 47, 52,177,224,109, 92, 70,178,153,158, 16, 81, 34,254, 96, -175,140, 70,168,136, 34, 64,150,212,151,204,237, 4,159, 68, 19, 60, 11,215,230, -122,134,215,196,137, 20, 3,145, 27, 69,220,223, 17, 94, 37, 63, 77,204, 87, 90, -129, 93,252, 3,241,104, 0, 55,147, 87, 96, 99,185, 16,122,249, 14, 79,202, 74, -213,137, 17, 60, 20,255,245, 90, 84, 6,166,136, 13,234, 64, 59, 51,113,174, 34, - 95,112,238, 40,163,192,145, 24,224,182, 6,213, 44,133, 28, 54,150,114,224, 62, -112, 59,153,109,130,106, 37, 88, 52,236, 18,210, 64,133,196, 25,135,113,164,212, -108,255,197, 44,164,185,160, 46,209,149,148,125,123,214,159, 88,130,122, 66, 20, -129,235, 69,213, 5,130, 64,141,253, 69, 92, 79, 91,249,129,234, 68,185,144, 1, -127, 89, 36,126, 89,128,252, 15, 44,209,137,114, 10,153,171, 52, 16,208, 73,246, -219,181, 76,159, 45, 7,196, 70,234,229, 23, 93, 98, 44, 34, 92,235,117, 57,154, -149,102,226, 6,150, 99, 43, 86,130,145,169,159, 48,107, 46,123,222, 72,224, 62, -115, 67, 94, 13,189,157,201,169,193,241, 97, 44,174,180,178,218, 76,234,217, 26, - 97,207,221,183,141,149,216,199,205, 57,152,109,203, 71, 55,100, 8,131, 12,230, -227,155,176,154,200,186,189,128, 36, 98, 88, 83,204,124,115,231,119,184, 18, 58, - 28,197,239, 50, 44,175,253, 74,252,169,136,121,142, 69,129,102,112,188,244,107, -114,255, 44,248, 73,122, 42, 76,102, 60,203,142,231,239,164, 97, 66, 4, 22, 23, - 25, 50,124,183, 2, 47,184, 1,104,216,178, 4, 62, 94,217, 28,166, 70,125,234, -197, 87,225,164,200, 84, 0,255,134, 7,116,207, 72, 85, 70, 2,230,220,130, 97, -204,247, 84,196, 77, 94,169,196,239,212, 94,104,174, 77, 99,122,168,119,163, 40, -153, 32, 32, 55,205,245, 7, 19, 84,217,227,146, 59,192, 73,245,253, 18,127,156, -157,164,187,170,225,155, 7, +// ../Source/JitKernels/GB_jit_kernel_add.c: +uint8_t GB_JITpackage_10 [287] = { + 40,181, 47,253, 96,114, 1,173, 8, 0, 86,209, 58, 33, 0,211, 60, 62,183,128, +189,105,233, 64, 32, 94,117,183,105,166,238, 33, 81,107, 55,210,127,220, 96, 49, + 88,254,255,239,245, 33, 4, 49, 0, 50, 0, 49, 0, 32,199,211, 21,241,163,246, + 56,246,119,238, 88,137,241,252, 49, 83,222,245,198,194,120, 4, 20,151, 71,148, + 48, 23,151, 35,190, 9, 99,239,134, 47,234,207,220,157, 49,151, 86,167, 40, 41, + 81, 84, 63,138,255,229, 77,170, 96,145, 9,191, 71,255,248,157,143, 27,188,228, +206,195,112,122,100,176, 42, 75, 58, 20, 42,203, 7,159,192,163, 49,123, 60,204, +167,233, 31,112,111, 52, 89,226,145,157, 27, 13,150,199, 1,119,119, 9,146, 9, + 31, 8,156,147,112, 93,228, 98,216,188, 91, 6,233, 50,135,111,147,114, 91,189, + 18,173,113,105,149,213,100, 73, 15,126, 30,103, 58, 66,127,182,228, 45, 62,214, +164, 82,134,100,194, 7,214,102,215, 53,177,151,234, 42,112, 81,119,246,107,192, + 55,253,246, 66,142,230,247,165, 21,224,143, 59,225, 39,230,202, 33,156, 6,153, +100, 86,163,100,215,106, 47,230, 13, 0, 68, 37,149,175,224, 9, 53,117, 86,129, +218,214,115,208, 91, 39,140,201,212,160,249,243,204, 20,109, 12, 91, 45, 95, 24, +244,235,130, 61, 69,193, 16, } ; -// ../Source/Template/GB_add_bitmap_M_sparse_26.c: -uint8_t GB_JITpackage_49 [1091] = { - 40,181, 47,253, 96, 1, 15,205, 33, 0,214,107,132, 40,208,208,234, 24,248,109, -212, 86, 66, 6,180,235,114, 46,248, 40,197,153, 82,130,133, 88, 83,191, 26, 67, -167,152,217, 89,234,175,104,145,171, 25,240,131, 89, 2,127, 0,118, 0,120, 0, -199,162,200, 99,226,168, 28,157, 57,158,242, 85,187,217,141,171,134,113, 84,141, - 43,181, 12,142, 8,203,230,161,213,208, 87,117,117,184,222,156,133,117,248,189, -241,144, 96, 18,153, 56, 14, 36,145,201, 39, 42, 29,106, 27,154,150, 63,226, 49, -184,237,125,108,231,144, 19, 25, 46, 46,207,239, 66,225,212,109, 65,156,232, 94, -208, 6,185, 14,191,154, 49, 56,200, 35,204,188, 58,118,120, 81,209, 74,200, 0, - 84,176, 83, 12, 38,178,234,111,102, 45, 51, 50,207,207,182,153,212,180, 41,175, -203, 33,144,200, 1,129, 4,210, 27, 52,152, 14,166,227, 16, 55,178,211,115, 31, -106,184,230,195,253,205,173,243,183, 44, 48,208,160,168, 87,170, 71,110, 73,147, -190, 51,132, 41,133,146,176,103, 55,253, 30, 81,124,162,118,207,173,165,122, 65, - 90,229,168,254,132, 37, 38,105,109,214,143,219,242, 3,194,219,111,189,119,126, - 51, 63,127,188,207,143,197,252,114, 64,117,205,238,111,108,255,121,215, 60,110, -215,204,255, 63,138, 52,162,232, 17, 15,175,141,235,167,222,252,241,232, 53, 60, -175,237, 51,218, 6, 87, 71,185,245,103,183,110, 96,107,236, 81, 42,123,180, 89, - 13, 99,210,219,242,146, 18, 27, 13,246,171,234, 91, 55, 32,207,135,184,222,208, - 5,158, 15,191,121, 39,213, 18,147,190,209,120,218,202,124,120,113, 29,122,108, -102,137, 26,134,235,212, 39,151,239,188,245,201, 3,173,212,240,160,192,193, 64, - 40,200,204, 98,137, 82,195,193,108, 85,195,155, 13,168, 62,229,195,236,146,126, -201,235,186,220,122,246, 45, 17,110,189, 34, 79, 60,195,164,111,149,231, 87,183, -126, 8, 51, 48, 13, 81,180, 65, 81,146, 24,119,157,187,102, 49,226, 57,180,143, -113, 82, 81,114,171,162,213,237,169,152, 39,110,227,173,219, 74,245, 91,143,159, -183,105, 13,157,219, 29,156, 60, 53, 52,191, 93,125,192, 58, 38,161,242, 6, 66, -216,201, 40, 99,222,200,142,194,165, 59,228,162,244, 40, 23, 60,218,114,123,234, - 32, 69,138,223,188,252,202,237,107,216,110,149,119,221,171, 87, 76, 84, 36,144, -218,207,196, 24, 90,156, 12,104, 44,227,169,121, 45,176,149, 93,149,241,214, 43, -181, 1,128,243,168,225,169, 50, 52, 34, 34,163,160, 32, 37, 41, 52, 6, 48,132, - 16,195,152,209, 60,146,112,104,146,164, 24, 22, 33, 8, 9, 36, 49, 2, 66,148, -224, 4, 51,129,132, 21,197,168, 58, 19, 67, 28,228,230,224,242, 20, 18, 2,206, - 19,242,224, 10,205, 66, 44,254,216,130,229,128, 48,195, 66,202,167, 1, 14, 17, - 9,157, 38,165, 20,143, 13,227,114,212,164, 65, 68,195, 69,171,143,194,224,227, -109,204,194,174,241,170,224,235, 17, 37,238,221,124, 37, 86, 92,216,183,246, 24, - 55,119,207, 10, 19, 4,151, 97,224,228, 12,141,192,203,250,178,253,155, 45, 80, - 68,143, 36, 31,190, 52, 27, 33, 7,204,138, 12,127,141,197,222, 78,255, 36, 97, - 89, 59,241, 12,162,137, 19, 74, 6,180,108, 54,112,255,179,188,136,119, 58, 6, -144, 43,170, 11,244,196,169,163, 16, 3, 13,165,247,122,227, 38, 72,255,190, 58, - 77, 46, 93,245,128, 26, 30, 53,191,164,166, 63,219,175,136,135,117,168,159,221, -151,243,243, 53,228,148,105, 58,170,221, 48, 1,108,254, 30,161,165,202, 89,112, -191, 1, 33, 65, 61,223,140, 10,213,129, 88, 66, 96,209,114, 23,189, 68,129, 96, -137,112, 38,193, 83,178, 16,196, 13,165, 32,168, 87,239,168,178,242,136, 65, 40, - 37,140, 90,112, 43,169,183,131,158, 80,109, 95,152,240, 19,237,136,185, 60, 81, - 32,228,207, 88, 22,206,183, 22, 88,238, 47, 23,111,138, 98,125, 48,254, 28, 40, -159,240, 91, 23,159,206,187,117,128, 74, 52,164, 44, 81, 8,198,224,134, 61,128, -190,237, 51,131, 76,114, 96, 57, 27,227,228,209,214, 67,253, 17, 73, 44, 19,184, -215, 72,204, 16,164, 28,247,193, 32, 71, 18, 53, 39,174, 99,153,184,127,221,143, -214, 34,206,155,120,123, 46, 86, 75,179,150, 63,193,128,110,202, 48, 10, 25,192, - 71,157,136,153,126,222, 65,128,154,152,108,138,171,213,220,250, 59,113,209, 92, - 89, 97,225, 12,237,181,100,213,231,116,214,164, 56,112,139,143,134,214, 77,253, -239,157,158,110,167,184,100,182,140,178,149,233,152, 2, 5, 33, 0,235,148,240, - 25,126, 55, 89, 94,210, 0, 21,236,177, 36, 71, 94, 97,172,106, 65,241,212,244, - 73,129,153,134,164,146,249, 76, 67,236,148, 85, 19, 41,193,168, 76,138,195,224, - 54,148, 46,142,179, 5, 59,106,193, 37,239, 56, 28,151, 26,152,238,108, 90,237, - 3, 5,109,140,130, 41, 78,114,211, 92,127, 48,133,202, 6, 47,189, 6, 78,242, -239, 63,228,143,176,147, 52, 84, 74,187,121, +// ../Source/JitKernels/GB_jit_kernel_apply_bind1st.c: +uint8_t GB_JITpackage_11 [271] = { + 40,181, 47,253, 96,106, 1, 45, 8, 0,118, 16, 56, 21, 16,253, 42,159,251,182, +128,245,113,202,147, 7,218,153,237,136, 0, 0, 2, 0, 1, 49, 0, 49, 0, 50, + 0,181,229,164,118, 93,210, 95,122,183,248, 7, 16, 82,161, 15,159,158, 63,244, +245,233, 59,231,113,219, 10, 42,183, 38,185,195, 52, 93,146,112, 42,215,233, 75, +222,173, 75, 74,214, 71, 16,192, 64,144,134, 72,117, 7,154,230,117,106,167,222, +183,111,118,109,189, 15,195,209, 47,152, 37, 89,140, 70, 73,150, 79,156,195, 47, +236, 54, 47,169,127, 68,127,103,239, 57,110,193, 95,124,145, 38,177,116, 25, 36, +248, 41,212,118, 73,228,168,117, 93, 68,106,213,230, 85,217,215, 34,137,211, 44, + 18,188, 48, 82,178,128,228, 88,140,148, 61, 75, 58,250, 78,157,182,106,123,203, + 41,122, 25,169, 45,167,103,171, 5, 0,208, 3,207, 39,190,175,154,166,240, 35, +165,218, 26,190, 92,227,119, 90, 7,231,145,222, 37, 76,199,233, 77, 6, 63, 69, +113,248,148, 91,225,255,255, 1, 30,120, 62, 49,124, 14,228,188, 46, 11, 0, 78, +133,156, 94, 7, 8,192,106, 17,210,160,111, 29, 39, 38, 83,131,230,207, 51, 83, +180, 21,108,181,225, 4,131, 66, 69,193, 16, } ; -// ../Source/Template/GB_add_bitmap_noM.c: -uint8_t GB_JITpackage_50 [467] = { - 40,181, 47,253, 96, 49, 6, 77, 14, 0,166, 19, 64, 33, 0,211,230, 87, 31,107, - 24,153,192, 65,209, 9,245,246, 51,119, 85,154,112,205, 72,127, 59,133,131,133, -157,244,255,219,127, 40, 1, 55, 0, 55, 0, 51, 0,139, 87,243, 28,111,204, 96, - 48,229,211, 54, 33,212, 11,173,216, 64,116, 22,109,184,245,136, 53,155,164, 23, - 51,159,159,142,125,162,131,169,192,142,136,100,192, 26, 90,204,136, 45,245, 94, - 91,105,227,150, 37, 41,203, 10,248,152, 36, 84, 23,213, 30,103,195,121,132,216, -184,195, 35,216, 55,163, 58,131,205, 97, 8, 85, 89, 76,170,219, 27,177,115,107, -207,163,119,193,218,191,111,126, 50, 92,132,139, 58, 20, 8,215, 37, 46,250,148, -241,198, 6,125, 59, 44,160,128,196, 37,122,143,167,102, 92,103,116,138,198,216, -182,153,171,211, 15, 62,175, 56,118,203,250,127, 41, 59, 82, 86,223,167,233,222, -162, 5, 63, 47,182, 55,226,150,252,149,100,137,158, 3, 82,126,126, 8,234,176, -236,240, 5, 13,157, 47,177, 67,142,103, 77, 95,127, 2, 92, 85,184,106,224,125, - 53, 31, 7, 94,208,126, 74, 20,130, 62,153, 17, 74, 70,235,150,213, 25,189, 3, - 97, 72, 52,198,163, 82, 50, 71, 23, 85,160,193,177, 52, 51, 19, 22,148, 36,149, -114, 53, 64,134,136,177,185, 30,201, 36,139,102, 29,149, 94,217, 63,102,178,136, -171, 57,163,104, 81,142, 75, 0, 21, 22,142, 46,145,228, 24,150, 16,122, 12,156, - 65,131, 40, 58,104,134, 54,135, 0, 26,191,212,146, 65, 68,153,104,147,182, 89, -176,139, 58,232,204,219,112,215,168,130,103,151,217,105, 24,212,243, 32,105,168, -196,112, 61, 50, 92, 62,201,124,185,180,141,101, 2,144, 89,121,212, 64,142,160, -167, 10,220, 23,230,118,198, 71, 24, 46, 2,104, 56, 90,220, 59, 75,158,244, 67, - 56, 86,208,202,232, 53,171,129,159, 97,147,117,154,218, 21, 1,135,123,176,142, - 0, 60,143,221, 94, 14, 53,142,179, 6, 0, 89,163,210, 66,178, 5, 54, 2,216, - 29,232,163,129,219, 92,202,246,166,169,243, 51,147,187,130,149,158, 40, 74,162, -147,192,198,148,162, 64, 15, +// ../Source/JitKernels/GB_jit_kernel_apply_bind2nd.c: +uint8_t GB_JITpackage_12 [271] = { + 40,181, 47,253, 96,104, 1, 45, 8, 0,102, 16, 56, 21, 16,253, 42,159,251,182, +128,245,113,202,147, 7,218,153,237,136, 0, 0, 2, 0, 1, 49, 0, 49, 0, 50, + 0,181,229,164,118, 93,210, 95,122,183,248, 7, 16,123, 17, 13,159,158, 63,244, +245,233, 59,231,129,202, 11, 42,183, 38,185,195, 52, 93,146,112, 42,215,233, 75, +222,173, 75, 74,214, 71, 16,192, 64,144,134, 72,117, 7,154,230,117,106,167,222, +183,111,118,109,189, 15,195,209, 47,152, 37, 89,140, 70, 73,150, 79,156,195, 47, +236, 54, 47,169,127, 68,127,103,239, 57,110,193, 95,124,145, 38,177,116, 25, 36, +181, 45,212,118, 73,228,168,117, 93, 68,106,213,230, 85,217,215, 34,137,211, 44, + 18,188, 48, 82,178,128,228, 88,140,148, 61, 75, 58,250, 78,157,182,106,123,203, + 41,122, 25,169, 45,167,103,171, 5, 0,208, 3,207, 39,190,175,154,166,240, 35, +165,218, 26,190, 92,227,119, 90, 7,231,145,222, 37, 76,199,233, 77, 6, 63, 69, +113,248,148, 91,225,255,255, 1, 30,120, 62, 49,112, 32,231,117, 1, 11, 0, 78, +133,140, 94, 7, 8,192, 34, 17,210,152,111,157, 49, 38, 83,131,230,207, 51, 83, +180, 21,108,181,225, 4,131, 66, 69,193, 16, } ; -// ../Source/Template/GB_add_bitmap_noM_21.c: -uint8_t GB_JITpackage_51 [687] = { - 40,181, 47,253, 96, 19, 9, 45, 21, 0, 70, 93, 92, 32,224,220, 28, 3, 28,146, -176,166,194,249, 74, 52,132, 37, 37, 14,140,171, 9,170,161,233,113,207,204,142, - 97,140,193, 19, 3, 14, 83, 0, 81, 0, 82, 0,182,115,189, 85,169,219,121, 24, -206,203,133, 2,161, 40, 56, 18, 8,197, 7, 31,119,169,239,171, 82,110,152,143, -169,182,216,186,159, 75,207,196,116,170, 92, 71, 11,196,234,177,102,143,221,215, -229,217,186,131,184,126, 94,222,187,236, 8,115,226, 29,146, 80,208,140,136,105, -174,173,125, 79, 20, 4, 43,237, 44, 63, 28,182,194,225, 16,152,122,156, 6,171, - 29, 85,155,182, 92,248,163,136,122,104,199,154,159, 91,226,107, 43, 85,199, 12, -136, 28,188,251, 27,223, 48,172,114, 94,130,162,106,219,204,255,127,219,102,155, - 29,171,190,247, 54,132, 65, 81,176,170,175,230,121,200,104, 47,234,110,108,193, - 75,193,106,108,191,139, 41,136, 40, 28, 3,104, 95,163,213, 1,153,244,211,252, -228,223, 55,125, 80, 40,147,110, 60, 23,148, 5, 81, 87, 18,249,228,151, 82,134, - 63,238,154,205,229,115,249,116, 38,135,178,116,221,151, 32,182,249,114,143,117, -235,252, 77, 25,141, 25,129,112, 73,228,136, 79,184,129, 14,235, 11,127, 16, 2, -135,197,187,191,241, 91,233,131,239,238,186, 53,103, 67, 23,168, 63, 8,219, 86, - 35,124,222,156,117,219,211,156,168, 11, 98,143,138,155,118,116,196,217,120,239, -198, 26,214, 79,211,170,202, 97,213,128, 46,160,150, 56, 96, 27,190, 30,120,246, -184,115, 54, 21,207, 37, 84,233,186,147,168, 47,205,151,176,121,185,186,149, 82, -230, 6,211,157, 48, 88,201,203,125,187, 64,192, 29,101,117,104, 35,221,105,180, -155, 2,128,132,160,241,169, 66, 52,193, 72, 82,148, 20, 50,172, 1, 64,132, 24, - 83,118,245,201,130,102,128,244, 57, 44, 98,153,139,238,106, 51, 7, 47,235, 4, -143,192, 11,119,168, 68,197, 61, 12,242,153, 20, 15,108,202, 0, 23, 77, 65, 79, -134,154, 86,194,146,154,208,242, 45,115, 42,146, 96, 18, 17, 11, 41,100,187,186, -184,254, 94, 30,229, 67, 12,183, 64,230,131, 90,182, 18,224, 32, 28, 77,139,172, -238, 48, 4,198,170,216, 87,209, 11,168, 50,192,135, 3,156,155,117,210, 34,166, - 2,171,131, 34,199,221, 60,218, 54,148,245, 99, 42, 11,216,172, 16,239,163,161, - 8,117, 40, 89,166, 0,102,107, 19,189,160,107, 64,111, 4, 99, 57, 19, 92,138, - 11, 53, 87, 68,109,128,164, 5,216,161, 40, 73, 62,156, 60, 38,200, 58,100, 56, - 5,251, 87,186,136, 4, 87,188,169,210, 66,147, 27,104, 43,213, 90, 89, 58,241, -183,214,135, 8, 6, 1,196,145,161, 47, 76, 45, 62,243, 60,183, 78, 17,148,153, -100, 44, 9, 78,203, 41, 3, 38,124,204,210, 44,107, 6, 9, 99, 24,112,189, 13, -160,182,189, 69, 18,241, 62,130,113, 0, 11,152,121,206, 7, 15,207,140, 82, 48, - 69, 56,106, 63,160, 40, 11,187, 28, 72,132,204, 22,169, 51, 43, 9,133,142, 66, - 15,122,109, 48,152, 75, 89,185,105,122, 84,102,186, 59,180,194, 27,140,152, 9, - 39,109,131, 41, 69,221, 19, +// ../Source/JitKernels/GB_jit_kernel_apply_unop.c: +uint8_t GB_JITpackage_13 [593] = { + 40,181, 47,253, 96, 35, 5, 61, 18, 0, 22, 93, 93, 33,224,152,109, 48,163,107, +189, 86,199,234,187,104,146, 24,229,154,215,197,113, 65,104,189,223,239,147,184, + 26, 49, 70, 68, 19, 28, 2, 82, 0, 84, 0, 84, 0,153,162, 64, 48,248, 21, 90, +142,153,111, 2, 35, 62,168,142, 26,119, 89,250,141, 99, 95,237,182, 49,131, 90, +194,184,166, 6,243,119,247,159, 31,205,167, 43,226,119, 93, 58, 74,131,248,116, + 93,134,252,170,150,231,210, 29,126,130, 56, 35, 28,228, 18,159, 22, 69,230, 12, + 90,242, 98,125, 73,118,255,200,110, 18,215, 52,154,105, 90,137,141, 95,245,241, + 43, 91, 94,198,122, 58,207,171, 23,127,232,138,129,107,244,224,232, 67,215, 52, +119,119, 74, 41, 22,147,177, 95, 4,195,121, 92, 36,244, 1, 74, 24, 24,178, 59, +134, 96,174,206,208,247, 67,191,241, 21, 41,217, 53,241, 13,191,203, 58, 17,111, + 32, 94,147,190,230,213,184,185, 71,209,107,156, 36,171, 99, 7, 3,193, 16,155, +253, 40,182,158, 30, 89,173,181, 54,124,159,165,189, 44,129,115,158,103, 99, 33, + 84, 69, 45,207,108, 50, 26,207,118, 28, 70,195, 89,188,171, 91,166,147,216, 13, +165, 66,105,232, 69,124, 77,242,174, 80,142,141, 28,123,199, 74,243,109, 61, 65, + 44,247, 50, 24, 78,195, 47,124, 73, 19,232, 88,118,236,171,229,213, 82, 28,254, +190, 45, 34,148,174,104,195,175,239,227, 32, 16,206,103, 55, 45,177, 28,235,115, + 95, 13, 8, 7,121,244,118,147, 0,252,138, 39, 25,226,255,113,204,121,155,184, + 12, 85,149,235, 34,225,115,220, 40,203, 18,160, 60, 30,145,188,163, 77, 97,108, + 83, 24,180, 60,210,113, 19, 12,200,225,160,234, 59,124,189,205,171, 5,190,237, +130,122,245,178,161, 4, 88,160, 97, 65, 65, 70,102, 72,102,166, 40,133,194,112, + 96, 68,100,172,140, 30,205, 8, 57, 67, 32,184, 57, 78,131,146,204, 87, 15, 36, +249, 25, 21,187,252, 82,104,218, 26, 65,148,162,218,228,147,113, 99,132,116,172, +231,157, 14, 99,210,159, 54,212, 44, 27,213,189, 84,215,109, 34,233, 24, 15, 22, + 36, 98,194, 53, 14, 53, 16,154,105,214,196, 25,255, 39, 50,216,139, 2,160, 96, +137, 72,228, 30,125,251,186, 38, 3, 89,210,179,201,250, 97,228,150, 52,103,102, +254,165, 72,204,193,141, 72,214, 6,211, 45,141,246, 22,145,103, 37, 88,210, 22, +192, 6,234,146, 18,200,230,153, 4,178, 51, 7,141, 8, 0,167, 12,255, 35,186, + 1,160, 44, 13,159,222, 85,246, 99, 31, 98, 43,230,146,116, 7,236, 12, 11,131, + 75, 54, 87, 64,219,173,132,206, 95, 28,178, 79, 58,131,117, 15,154,155,159,153, +238, 56, 90, 1,223, 4, 98, 92,240, 42, 69, 93, 19, } ; -// ../Source/Template/GB_add_bitmap_noM_22.c: -uint8_t GB_JITpackage_52 [1013] = { - 40,181, 47,253, 96, 34, 13, 93, 31, 0,230,167,121, 40,208,208, 88, 7,120,107, -239,101,162,127, 4,216, 47, 80, 65,135,193,222,181,214,216,222, 62,222, 55,160, - 55, 13,185,101,196, 59,101, 59,200,213,176, 2,191, 23,114, 0,106, 0,110, 0, - 16,202, 99,106, 87, 91,248,202,157, 52,163,185, 78, 44,243,152,184,206,139, 50, - 60, 38, 48, 27, 8, 54, 65,119,226,249,112,156, 53, 12,250,240,109,131,127, 3, - 20, 9,229, 97, 48,145, 80, 62, 93,210, 31,166,160,198, 28, 2, 31,210,114,199, - 81,136, 63, 14,100,136,154,237,171, 80,225,204, 76, 51, 56,209,157, 54,164, 69, - 38,190,109,241, 35,252,187,245, 23, 41, 88, 89,175, 80, 40,178,161,171,210, 54, -151,105, 71, 98, 88,203,168,240, 72, 36,122, 68, 34, 1, 7,231,160,168,203,237, - 45,151,188,186,149,166,139,230,206, 88,154, 91, 6, 54,181, 11, 75,146,203,168, -191, 93,246,109,110, 91,223,114,221,155,195,232,107,237,179, 36, 40,200,149, 78, -188, 77,203, 39,140,245,188, 90,174,210,250,219,168, 23,252,235, 88,210, 67,246, -226, 38,247, 8,131,129, 82,195,201,100, 19,203, 40,192,111,119,203,188,125,120, -172,246,177, 78,203,179,225,255, 31, 69, 28, 81, 4,137, 63,196,244, 86, 36, 9, -183, 51,182,248,131, 59, 87,170, 55,140, 74,229,103,202,248,234,243,162, 27,142, - 50,227, 75,179,143, 64,198,181, 67,120,224,173, 65,245,234, 87, 86,148, 81,172, - 90,178,203, 18, 74,138,141,198,234,136,212,185,129, 30,112,251,119,123,235, 11, - 75, 75,250, 70, 99,249,212, 97, 42,237,159, 6,252,243,208,150, 14, 37, 6,106, - 24, 58,207,206,169,201,243,168,116,203, 65,147,113,136, 72,224,100, 36, 18,100, - 75,207, 44,191,176, 21,175,222,207, 50, 81,212, 81, 81, 20, 53,233,136,173,217, -173, 61,127, 52,198,206,235, 36, 61,163,167,162,173, 56,165, 23,203, 95, 61,218, -219,229,107,130,174,229,207,155, 60, 19,212, 55, 11,220, 99,217, 9,101, 55,239, -189,247,254,100,180,210,225, 70, 66, 36, 40,124,254,180, 40, 61,202,133,234, 30, - 76,167,207,171, 72,241, 89,247, 60,181,124,172,210,236, 98,185,124, 5,199, 5, -163, 21, 74,170, 29,205,215,181,248, 52,121, 23,229,186,134,176, 72, 17, 8,128, -226,168,209,169, 66, 51, 35, 34,146, 36, 73, 97, 89, 3, 32,132, 24,164,170,140, - 30,194,144, 64,142, 51, 36, 66, 24,177, 2, 98, 68, 40,144,192, 2, 9, 36,148, - 64, 65, 97,105,218,201,106,196,233, 17, 51, 41,173,236, 17,156, 29,134, 36, 15, -206, 82, 56, 67,251, 84,184, 56,225,241,119,185, 37, 54,207,139, 1,171, 42,211, - 7, 50, 60,176, 37,138, 28,153,248,161, 29, 57,141,234,151, 13,255, 63,190,192, -192, 43, 83,101,111,187, 56, 23,129, 51,115, 47,200,145,199, 18, 56, 28, 21, 44, -150,152,228,173,144, 32,242, 51, 40, 98,108,104,145,130, 44, 10, 70,115, 26,156, - 82,123, 68,225,109, 34,132, 34, 82,165, 16, 15, 7,246,245, 77,245,111, 61, 59, -137,166, 60,223,107,190,158,252,211,156,132,196,192,106,163, 14,247,241, 86,130, -241,167,136,153,103, 37,118,129,173,202, 94, 86,174,129,106,207,124, 23, 66,252, - 32,109,187,250,164, 46,154, 5, 85, 9, 76,253,206,117, 50, 89,126, 22,169,184, -145, 55,102,214,231, 60,185,227, 46,242,173,231, 44,163, 89,208,130,253,147,201, -107, 79,194, 51,142, 17,247, 59,112,161,121, 11, 26, 9, 46, 52, 94,209, 17,129, - 97, 21,112,165, 14, 64,118, 2,155,163, 21, 5,163,245,239,187,109,149,138,149, - 21,169, 67, 40,232,122,112,253,187, 91,102,241,137, 9,168, 65,166, 32,153,161, - 43,111,202,165, 66, 8, 67,178,209, 39,105, 92,150, 94, 58,147, 80,190, 90, 86, - 98, 20, 44,224, 26, 33,171, 29,108,101,185, 10,160,152, 40, 0,152, 7, 53,253, -209, 44,146,131,212,223,102,142, 3,208, 54, 46, 48,238,246,247, 25,191, 38,105, -250,129,124,132, 81,228, 39,238,205, 58, 35, 54,231,242, 34,184, 29, 57,187, 90, -147,104, 9, 0,183,142,234,124, 59,152,206,205,201,189,214, 38,213, 84,129,150, -230, 88,177,195, 69, 95,122,183,207,168,148,194,206,178, 84, 72,124, 32,122,195, -129,144, 47,148,139,119, 25,119,172,180, 17, 46, 87,216, 51,104, 84,225, 52, 48, - 18, 77,209, 91,241,178,224,229,219, 78, 58, 4,168, 61, 54, 1,227,240, 66,231, - 85,112, 79,113, 45,145,153,188, 15, 57, 83,158,206,113, 24,181,240,205, 8,174, - 20,246, 98,110,158,128,198, 78, 62, 10, 61,155,166,171, 6, 83, 86,213, 8,198, - 48,230, 23, 63, 95,174,179, 13,151,210, 3,112, 2, +// ../Source/JitKernels/GB_jit_kernel_build.c: +uint8_t GB_JITpackage_14 [306] = { + 40,181, 47,253, 96,191, 1, 69, 9, 0,182,145, 59, 33, 0,211, 60,238,206, 4, +253, 16,159,143,211, 70, 18,235, 45, 88,146,135, 18, 54,189,208,237,100,134, 60, +104,255,255,247,250, 23, 2, 49, 0, 50, 0, 51, 0,212,229,157,111,135,154,203, +185, 68, 47,109,126, 98,151,179,195,235,220,137,244,247, 29,169,156,153,231,208, +226,126,176,148,135,239, 88,169,248,193,252,153,186, 47,166,206,204,171, 74, 78, + 85, 21,182, 19, 47, 63,228,191,150,187,193,247, 24,211,107,240,237,213,166,201, + 34, 66,121,191,201,175,127,115,189,191,203,221, 28,227,203,165,130, 53,176, 38, + 3, 97, 96,121,100, 33,151,244,221,116, 11, 15, 9,231,112,190,237,205, 91,127, + 22, 56, 22,161,112,149,115,119,233,145, 8,143, 32,135,112,144, 45, 82, 23, 26, + 67, 50,171,134, 61, 54,204,225,218, 53, 33, 90, 86, 57, 70,163,206, 76, 14, 40, +107,250, 47, 82,202,143, 68,120, 68, 41,166, 80, 72,104,157, 57,131, 28,204,227, +254, 12,176,212,239, 14,139,154,223,213,195, 0,127,111,196, 22,188, 1, 74, 41, +221, 26, 12, 45,194,189, 27,110,106, 4,121, 21, 32,128,194,116, 99, 27,228, 68, +105, 40, 64,207, 93,216,132, 16,175, 39, 52,246, 50, 11,220, 93,107,147,160,180, +251, 57,204,125,152, 64,166, 6,205,152,103, 38,181, 13,178,154, 11, 66, 76,199, +251,113, 24,138, 42, 55, } ; -// ../Source/Template/GB_add_bitmap_noM_23.c: -uint8_t GB_JITpackage_53 [1015] = { - 40,181, 47,253, 96, 33, 13,109, 31, 0,102,232,122, 40,208,176,170, 14,232,147, -180,248,102,126,137,175,235, 54, 53, 57,143,233, 92,107, 16, 38, 45,252,153,247, - 71,170,228,226, 59, 13,172, 89,234, 97,208,203,128, 18,115, 0,106, 0,114, 0, - 3,147, 71,115,217,180,241,148,219,116,163,185,182,134,121, 52,174,157, 81,134, -199,132, 69, 51,160,181,231, 54,238,135,227,204, 97,208,135,119, 93, 60, 36,152, - 68, 38,143, 3, 73,100,114, 41,139, 14, 49,245, 76,203, 7,226, 63, 92,254, 60, - 10,113,184,137, 12, 22,103,231,189, 80, 54,157,105,198, 6,178, 14,111,219, 15, - 7,105,124,167,197,143,135,191, 14,173, 41, 86,215, 41, 4, 19,217,240, 85,105, -167,151, 41, 38, 53,109, 74,235,114, 8, 4,122, 64, 32, 1,175,142, 61, 75,132, -115, 76, 83,229,246,212, 35,175,110, 35, 41,163,121,102, 28,117,151,161, 53,151, -225, 72,122, 25,245,247,219,222,117,215,205, 91,239,251,244, 48,230,181,246, 89, - 22, 24,228, 74, 27,119, 77, 93,194,218,236,203,229, 42,175,195,141,154, 89,135, -216, 21,253, 99, 51,175,189, 67, 22, 75,148,153, 13,102,107,109,163, 0,191,223, -169,190,243,214,181, 58,175,125, 92,238,134,255, 63, 4,113, 64, 17,211, 95, 80, - 36, 19,129, 59, 51,182,184,131,103,174,211,236, 48, 42,149,157,150,241,213, 59, -163, 29,142, 50,227, 75,183,142, 64,198,245,163, 18, 30,184,155,158,154, 97,175, - 46,104,163, 90,189,228,151,165, 37, 41, 52,153,235, 86, 7,164,118,231,121,192, -237,225,157,221,204,176,188,162,107, 50, 31,166,210, 30,106, 88,135, 28,138, 69, -183,164, 37,102, 24,172, 79,159,156,237,230,171, 75, 28, 72, 35,135, 12,198, 33, - 66, 97,131,145, 80,144, 88,244,141,250,133,173, 56,102, 5, 16,212, 81, 77,211, - 36,233,136, 51, 55,198, 57,164,143,113,214, 41, 74,209, 55,250, 41,218,138, 83, - 90,161,254,234,209,222, 47,103,237, 57,151, 59, 80,226,180,103,222, 76, 93,224, -156, 75, 50, 89, 13,132, 16,194, 67, 25,173, 70, 66, 40, 92, 58,135, 92,140, 30, -229,130,117,121,117, 14,166, 92,150, 58,144, 18,197,111,223,115,115,249, 90,165, - 91,133,186,124, 5, 71, 69,163,148, 41,170, 31,205,217,181,184, 36,129, 25,245, -102,253,104, 49,128,225,168,225,173, 50, 52, 34, 34, 73, 82,144,194,178, 6, 32, -132, 24,163,152,217, 60,194, 80, 96, 20,200, 56, 68,224,136, 20, 32, 35,164,130, -137, 68, 2,177,140,210, 20,180,216, 41,107,210,231, 33, 87,146,194, 45, 15, 85, - 13, 12,153, 13, 46, 13,166,147,125,162, 92, 71,211,209, 29,254, 41, 98, 58, 47, - 53,174,172,194,158, 78,248,189,172,108,112,152,230,183,152, 24, 26, 18,205, 92, -184, 13,223,111, 96,148,170,146,230,174, 93, 17, 8,159,185,232,201, 81,131, 38, - 41,254, 23, 98,157,148, 76, 38,221,152,242,129,162,199, 10, 0, 26,135,177, 1, - 23,247,231,156,219,156, 98,252,136,246, 86, 91, 21, 9,217, 41,120,217,181,125, - 27,211,191,219, 51,132, 68, 27,120,118,212, 14,207,151,154,161, 24, 59,128,170, - 81,199,253,121,229, 57, 7,135,152, 36, 87, 48, 23,195,234, 98,179,218,171,129, -226, 39, 19,122,130, 64, 7, 30,218,196, 23, 58, 0, 78, 21,224,255,173, 58, 76, - 70,190,139,216, 3, 73,155,102, 52,185,223, 57,208,165,128,203,146,203, 30, 11, -236, 60,190,214,222, 5,230,245,115,174, 56,202, 65,121,192, 97, 15, 55, 70, 94, -205,241,109,232,153, 84, 38, 11,150, 73,112,115,186, 83, 72, 90, 84,225,243,181, - 82, 0,206,210,134, 31, 20, 84, 53, 15,187,192, 54,203,122, 16,172, 80,176, 89, - 97, 77,163,141,221,226, 23, 38,208, 51,229, 66, 95,210,227,114,250,159, 77,212, -248,131,144, 5, 5, 0, 95,110,115,217, 17,160,149,227, 66, 0,209, 50, 11, 0, - 37, 13,250, 35,217, 7, 9,180,255,110,205, 89,255, 28,224, 57,223, 41, 31,142, -129,116,162,100, 31,189,128,236, 47,242,210, 51,236,120,122,253, 72,228,230,242, - 56,174,129,105, 73,248,175,197, 55,173, 45,231,230,157,243,243,237,115,167, 43, -137,107,229,157,223,150, 52, 11, 53,143, 31, 47,164, 81, 16,138,100, 37,170,253, - 47,150, 10,228,165, 81,165,148,191, 41,152,131,186, 76,246, 2,225,163, 87, 35, -135, 11,191,136,238, 71, 73,197, 17, 66,218,217,237,227,200,160,246,105,234, 24, -142, 39,161,170, 18,241,148, 82,178, 82, 16,237,206,188,251, 90, 18, 15, 83, 11, -175,132,252, 48,113, 78,170,204, 92,131, 6,151, 39,229,166,217,212, 96, 26, 42, -218,129,105,100,191,240,191,173, 67,109, 85,162,244, 0,242, +// ../Source/JitKernels/GB_jit_kernel_colscale.c: +uint8_t GB_JITpackage_15 [284] = { + 40,181, 47,253, 96,116, 1,149, 8, 0, 86, 17, 58, 21, 16,253, 42,159,251,225, + 11,144,251,177, 38, 53,212,211,160, 71, 4, 0, 16, 56, 8, 51, 0, 52, 0, 52, + 0,159,246,223, 77,225,149,246,165,159, 99,212,231,174,188,214,174,253,122,124, +157,235,242,245, 85, 33, 69,148,127, 76,228,187,165, 73,187,177, 73,186, 31,158, +127, 75,214, 43, 75, 78,151, 79, 18,224, 72,146,116,173,166,235,231, 93, 87,242, + 70,195, 40,204,225, 44, 10,227, 9,115,240, 6,189,222,101,229, 17,201,231,106, + 29,191,107,232, 13, 80,218, 38, 85, 46,231,235,249,244, 92,202,224,175, 87, 27, + 4,230,245, 13,224,214, 81,228,102,113,159,165,249, 77,154,186,237, 34, 67, 44, + 35,167, 11, 80, 16,230,248,170, 89,202,146,127,230,191,162,107, 13,255, 19, 59, + 62, 13,127,115,221,142,177,242,144,243,223,243,167,255,231, 3, 0,176, 3,144, + 39, 64,208,162, 40, 17, 36,167, 25,158,237,250,207,129,137,252,186,116,229,247, +215,100,224,255,105,187, 38,188, 10,222,123, 15,232, 0,228,137,193,119, 97,247, +121,164,181, 73, 84, 13, 0, 70,128,146,244,166,248, 34, 64, 0, 22,128,144,198, +200,117,154,152, 76, 13,154, 63,207, 76,209,230,177,213,188, 99, 80,102,184, 0, + 81, 81, 48, 4, } ; -// ../Source/Template/GB_add_bitmap_template.c: -uint8_t GB_JITpackage_54 [730] = { - 40,181, 47,253, 96, 8, 8,133, 22, 0,118, 39,118, 40,208,208, 88, 7, 52, 58, -177,179,237,158,184,159, 33, 99, 53, 92,195,156,189,136,209,149, 34,124,198,204, - 78, 68, 63,120, 64,181,116, 25,165, 30,120,192,242, 2,112, 0, 98, 0,108, 0, -191, 68,146,105, 18,225,236, 57, 90,157, 82,185,177,190,146, 97, 67,132,173,228, -215,154,200, 4, 6, 98,130, 12,170,108,185,115,123,179,138,238, 60,198,234, 18, -193, 68, 50,137, 28, 12, 72, 38,135,188,199, 37,219, 32,135,249, 84, 61,148,221, -169,117,196, 37, 79,165,177,100,212,213, 5, 10,219,234,168,135,111,111,158,232, - 10,150, 35,225,114,201, 34, 80, 85, 46,167,240,117,145,106,124, 47,234,180,219, -159, 11, 66,119, 89, 22, 78, 81, 81,132,162, 2,135,108, 45,191,231,126,167,188, - 88, 46, 85,199,230, 45,111,209,129, 32, 71, 40, 93, 6,177, 0, 36,235, 83, 62, -110,217,186,247, 9, 18,157,214,151,206,135, 98,116,175,239,188, 84, 11, 89,119, -174,238, 22,206,236,178,246, 24,221,227,161, 72,169,251,188, 87,114,191,198, 48, -134,210, 93,226,186,221,183,213,107, 31,186,109, 31,146,238, 12,114,217,165,123, -183,110, 97,157,118,206, 34,254,201,118,175,243,213,116, 37, 91,174,212,202,120, -240, 84,214,197,217,104, 50,155, 78,230,225,138,104,112,192, 24, 98,237, 64,184, -228,149,219,232, 64,242,253, 94, 5, 6, 87,246,180,209,221,150,248,185, 72, 35, -178,177,134, 83, 59,127, 46,191, 27,149, 77,225, 96, 56, 17,167,168,255,143,162, -140, 40,154, 56, 54,246, 10,217,112,139, 79,182,227,156,221,135, 62,135, 44, 27, - 99,232,192, 96,170,139,227,105,200, 94,103, 23,178, 47, 77,219, 88, 7, 81,180, - 17, 33, 60,133,200,229, 87,157,151,237,235, 16,141, 70, 98,243, 74,229, 86, 20, - 97, 13,229,246, 57,172,243, 18,219,203,162, 88,206, 95,235, 56,254,186, 95,202, - 15,131, 47, 93,167,213,137, 89,162,163, 36,200, 87,178,198,145,106,243, 85,166, -161,140, 98, 72, 39, 3, 65,193,112, 13,141,103, 60,157, 10,194,115, 89,143, 99, - 29,121, 35,224, 77,214,148, 1,231, 24, 55, 76,190,122,229,236, 54,111,178, 59, - 63,175,243,113, 75, 96, 32, 32,132, 16,162, 20,218, 13, 44, 67, 84, 23, 49,219, -182, 64, 10, 11, 90,151,186,151, 99,154, 13, 10,162, 75,192,106,130, 8, 40,143, -177,129,170, 3, 16,133,107,244,250, 34, 8, 44, 0,103, 9, 5, 8,130,228,110, - 1, 0,204, 5, 49, 31,205, 29, 24, 68, 39, 1,242,201,197,129, 17,144, 6,221, - 90,199,172,227,108,229,160, 30,131, 12,175,160,122,192, 7,130,236, 19, 54,108, -238, 34, 24, 44,232,155,176,149, 8,123,130,249, 5,124, 22,137, 22,100, 87, 43, - 69,194, 13, 9,176, 40,128, 64,108,225, 86, 20,206,200,113,145, 11,146, 74, 42, -163,128,164,240,152,135, 35, 64, 91, 33, 67,198, 64,132,127, 56, 87,205,225,150, -171, 44, 35, 8,112,144,161, 32, 18, 48, 27,141,180,138,210,200,139, 13,152,201, - 9,217,197, 7, 45,239, 93, 71, 69, 98, 34,225,224,129, 89,146, 26, 96,223,250, -121, 25,220, 98, 93, 55, 1, 17,172, 64, 74,227, 49, 32, 25, 27,218,210, 92,172, - 97,228, 61,126, 27,112,191,178,139,220,188,105,106,158,153,108, 91,188,154, 43, -128, 24,154, 88,192, 37, 43,138, 2, 55, +// ../Source/JitKernels/GB_jit_kernel_concat_bitmap.c: +uint8_t GB_JITpackage_16 [437] = { + 40,181, 47,253, 96,223, 2, 93, 13, 0,166, 25, 82, 33, 0,181, 30,214,170, 36, +224,202, 10, 12,199,205, 56,127, 40, 8, 73,148,196,160,183,116, 21, 3,232,184, + 83,254,255,239,245, 33, 4, 70, 0, 73, 0, 75, 0, 78,217,201,101,120, 65,149, +225,130,233,163,205, 6, 61,151,115,185, 77,237,218,228,170, 51,196,135,186,230, +237,247,253,108, 17,115,209,213,187,122,220,171,131, 27, 95,159,142,223, 17,185, +122,246,205,208, 93, 45, 6, 45,253, 30,235,239,208,125, 57,244,202,220,178, 98, +101, 89, 1,225,165, 83,206, 44,177, 60, 97, 40, 19,236,241,245,190, 11, 68,138, +115,235,228, 25,116,133,115,174,141, 3, 65,161,250,141,173,121, 58, 66,255,245, +238,198,223, 57,170, 15,241,219,171, 85, 23, 6, 69,208, 61, 72,127,248, 21, 15, +247, 70,115, 43,254,125,211,165,161, 48, 40, 84, 7,194,160, 16, 29, 91, 51,223, + 87,173,239,215,184,101, 53, 34, 14, 78, 98,169,120,223,121, 55,224,238, 30, 73, + 49,225,212,228, 19,110, 82,161, 80,202,140,112,142,139,114, 19,147,104, 13, 73, +165, 1,113,109, 94, 19, 45,163,156,227, 17, 35, 53,114,201,113,121, 93,186,156, +211, 93,138,176,201, 41, 19,137,133, 2, 3, 49,150, 98,194,169,109,107, 96,152, +101,163,151,206, 38,199,250,179, 95, 3,172,224,203,158,223,244,202, 0,254,221, +231,179, 56,122,183,195, 31,240,232, 38,252,120, 52,131,153,118,244,135, 18,190, +168,232,200,227, 10,247,232,219,251,133,180,243,238, 30, 67, 12,222,109,241,199, +243, 38, 32, 64, 68, 32,146, 33, 61, 78,194,112, 64, 65, 26,137, 20,230,154, 49, +195,103, 65, 1, 8, 68,135,254,195,137, 0, 18, 16,113, 52, 64,104, 36, 8,108, +142,115, 68, 9, 48,138,110,174,109,134,208,251, 91,168, 52,174,115,132, 13, 0, +227,217,108, 2, 29,240,220,176, 90, 7, 61,118, 44,123, 12,218,166,233, 60, 51, +121,155,166,171,245,204, 17, 2, 11, 67, 3, 56,226,225, 41,234,134, } ; -// ../Source/Template/GB_add_full_30.c: -uint8_t GB_JITpackage_55 [360] = { - 40,181, 47,253, 96,143, 2,245, 10, 0,246,212, 66, 33, 0,211, 28, 3,252,221, - 12,211,251, 17,189,170,182,177,209,110, 12,169, 23,232,203,178,125,135,104, 22, -133, 89,250,127,175, 15, 33, 57, 0, 58, 0, 55, 0, 87, 83, 21, 23,204,115, 56, -240,235,238,228, 18,155, 14,202,229,170, 25, 6,187,117,205,152, 5,111,136,197, - 91, 93, 79,191,121,245,243,242,250,129, 74, 51,113,221, 80, 17, 50,140,195, 75, -182,109, 53,163,140, 83, 84,156, 40, 42,160,125,252,255, 99,244,196, 74, 96, 77, -150,211,106,158, 55,104,123, 47, 23,244,236,214,152,236,246,172,118, 29, 83, 69, - 17, 17,108, 86,163,237,182,146,111,144,195, 92,201, 49,158,151, 4,171,178,166, -194,160,178, 30,105,208,229, 14,136,231, 31, 94, 61,241, 12,253,143,145,118,193, - 10,110,200,226,112,179,156,182, 31,121,217, 5,237,173, 90,205,129, 89, 23,122, -215,223,229,216, 98, 92,117,205,207,221,247,218, 97,170,206, 0,140,171,156,151, -219,199, 5, 49,126,226,135,242, 44,214, 60,240,124, 65,143, 64, 22, 88,131,178, -160,212, 2,157, 30, 30,125,251,102,243, 50, 95,110,230,101,230, 86,232, 51, 83, - 76,136, 35,163, 12,122,105, 62,241, 40, 35, 47,244,235, 30, 73,234,120,218, 3, - 32, 32,112, 34, 19,164,235, 1, 94, 2,223,109,198,216, 22, 27, 2, 28, 12, 72, - 58,135, 17,228,151,211,149, 53,104,140, 34, 59,251, 25,100,195, 99,136, 53, 91, -168,173,193,187,170, 36,216,235, 64, 33,115,197,168, 76,146,207, 53,163,112, 65, -114, 69,205,160,233,121,102, 90,219,128,171,185, 0,100, 18,175, 90,209,233, 6, - +// ../Source/JitKernels/GB_jit_kernel_concat_full.c: +uint8_t GB_JITpackage_17 [338] = { + 40,181, 47,253, 96,213, 1, 69, 10, 0, 22,212, 65, 33, 0,211, 60,238,110, 1, + 62, 58,197, 99, 92,172, 55,218, 59, 82, 80, 3,202,176,169,248, 13,119, 87, 71, +182,255,255,123,253, 11, 1, 55, 0, 57, 0, 56, 0, 25,220,185,228, 38,102, 89, + 64,171, 47,195,135,218,130,220,111,172,225, 34,117, 14,214,219,102,190,157,177, + 79,119,235,249,221,224,121, 26, 74,221,246,230,239, 86,239,179,126, 76,221,248, + 82,173,203, 41, 42, 74, 20, 21,130,169,146,222,114, 45, 56,221,160, 31, 83,240, +206, 63, 97, 72, 31,230,191, 24,147, 34, 9,109,154,252, 70,127,248,155,135,219, + 82,193,219,116, 73,168, 4,149, 84, 24, 8, 42,143, 46,228, 50,196, 27,155,240, +105,122,199,178,191,155,194,225,216,180, 50,236,170, 29,163, 17, 99,212,113,121, +113,137, 93,186,156,211, 93,114, 40,228, 90,246,128, 68, 95,136,235,148, 19,148, + 20,132, 36, 90, 70, 63, 99,202, 79, 2, 49,186, 96, 11, 57,248, 57,194, 47,248, +198, 49,126,226,193, 35,142, 83, 80, 10,225,170,165, 47,200,179,214,236,215,128, + 59,121, 96,230,119, 5,248, 79, 52,222,205, 56,224,238, 30, 61,241,224, 17,228, + 89,151,109, 90,197, 48,200,162,118,147, 62, 50, 90, 49,197, 35, 23, 0, 76, 9, + 3,128, 2, 34, 12, 16,128,181, 33,164, 33,251, 58, 35,102, 54,155, 2, 58,212, +185, 21,171,245,132, 30, 39, 22, 63, 10,218,166,249,243, 76,161, 93, 9, 0, 29, + 11,130,115, 12, 58, 49,223,220, 92,199, 11,240, 48, 7,167, 40, 24, 2, } ; -// ../Source/Template/GB_add_full_31.c: -uint8_t GB_JITpackage_56 [466] = { - 40,181, 47,253, 96,125, 4, 69, 14, 0, 54,152, 76, 33, 0,181,142, 1,106, 66, - 73, 74,224,238, 46, 83,220, 88,218, 9, 16, 29,140, 24, 98,150,168,230, 40, 48, - 58,204,210,255,187, 63,188, 66, 0, 68, 0, 64, 0,191,180, 21,209,198, 7,242, - 36,112,143,161,189,252,226,100, 68, 3, 49,205,143, 68,213,153, 98,174,110, 27, -226, 40, 76,195,109, 61,215,246,218,175,215, 76, 47,239,137,244,219, 21,154, 64, - 50,182, 39, 10,135,121,111,232,155,158, 71,167,246,120,150, 81, 88,150, 5,199, -225,120, 26,126,104,198, 0,133, 55,130,187, 74,254,255, 20,101,162, 8, 3, 3, - 86,193,142, 98,249, 68,174,246,179, 91,172, 30, 4,171, 90,172,157,141, 96,154, - 70,101,224, 85, 81,174,186, 90,174, 55,248,177,150,223, 43,127, 29, 12, 4, 3, -134, 40, 16, 12,183,186, 42, 17,237, 2,121,198, 45,208,101,171,111,239, 96,206, - 61, 90,245,207,158, 50, 9, 4, 37,177,251,226,248,138, 19,206, 56,174,254, 83, - 86,103, 55,221,186,170, 55,228, 85,176,211,183,196,185, 85,218,163, 53,131,123, -134, 33,241,121,252,126,235,189, 52, 83, 28, 20,117,250,172, 39,110,115,220, 83, -206, 77,133,178,101,122,105,167, 39,221,213, 51,161, 64, 38, 24, 14,242, 89, 64, -213,183,158, 50,177, 94,209, 3,199, 91,245, 10,197,193, 65, 50, 14, 77,243, 84, -215, 20,183, 70,109,167,252,133,127,141,228, 47,144,165,213,229,108, 72, 74, 61, - 32, 80,136,144,148,157, 7,177, 0, 76,225,200, 97, 28,178,115, 96, 74,225,162, -209,232, 24,192, 30,194,192, 10, 56,195,193,175, 12,232,129, 13, 92, 0,185,225, - 0, 69,144, 11, 21, 1, 26,173,193,162, 19,144, 97,173, 62,248,244, 96,122,192, - 89, 55, 81,113,194, 57,208,183, 95,204, 39, 49,254,130,165, 1, 81, 15,200, 96, -101,158,120, 95, 23, 11,220, 56,232, 24,125,246,139,230, 48,234, 66,190,161,251, - 64, 36,143,161,193,250, 88,232,110,131,145, 85,161,181, 31, 12, 13,112, 39,202, - 14,169, 52,163,236,130,228,128,154, 65,243,121,102,106, 91,227,213,114, 70, 68, -245,239,250, 20,189, 67, +// ../Source/JitKernels/GB_jit_kernel_concat_sparse.c: +uint8_t GB_JITpackage_18 [338] = { + 40,181, 47,253, 96,216, 1, 69, 10, 0,214, 19, 65, 33, 16,209, 60,230,145, 11, +255,252,199,116, 19, 23,100,157,136, 16, 87, 27,187,143, 61, 76, 82,211, 23, 77, +117, 68, 0, 0, 85, 53, 3, 54, 0, 56, 0, 56, 0, 59,172,224,205,103,165, 23, +229,137, 87, 43,234,111,108,169,178,114, 12,214,251, 86,220,175,135, 59, 99,167, +158,223, 13, 63,234, 43,142,118, 95, 46,135,156, 5, 63,235,167,216,141, 63, 75, + 41, 92,146, 36, 36, 73, 1, 19,244, 30,119, 69,234, 6,253, 88,130,119,254,110, + 1,253,152,159,195, 23, 4, 73,100, 81,247, 23,253,227,107, 62,110,111,130, 53, + 7, 65,234,147, 48, 9, 38,168, 48, 16, 76,254,112,142,207, 17, 95,110,194, 35, +234, 25, 47,126, 81, 10,187, 20,118, 91, 48,164,124, 50, 62, 63,159,216,167, 79, + 74,221, 39,166,114, 60,195, 28,143, 39, 28,177,165,147,138,179, 18,157, 72,134, + 85,159,177,228,187,128,124, 62,124, 29, 23, 67, 71,248,135, 57, 41,136, 2, 82, +110,228,193,159, 90,173,170,122, 84, 75,233,172, 45,251, 53,128,139, 64,177,242, +219, 2,252, 59, 11,200,101, 28,112,119,151, 26,121,240,199,113,108,195,180,204, + 90, 85,163, 89,181, 27,173, 28,151,229,208,172, 70, 24, 0, 75,128,226,212, 53, + 0, 80, 65,196, 1, 2,176, 90,132, 52,174,239, 17,182, 0, 96,204,108, 54, 5, +116,168,115, 43, 86,235, 9, 61, 78, 44,123, 20,180, 77,243,231,129, 41,154, 81, + 24,130,198,172,229, 25,131, 58, 80, 24,122, 1,142,204,225, 41, 10,134, } ; -// ../Source/Template/GB_add_full_32.c: -uint8_t GB_JITpackage_57 [784] = { - 40,181, 47,253, 96,252, 7, 53, 24, 0,134,100,110, 33,224, 90, 23, 3,212, 55, - 98,221,119,225, 94,213,220, 59, 84,155,121, 81,254, 23, 3,155,192, 90, 1, 5, - 29,195, 24,131, 48,194, 11,103, 0,101, 0, 99, 0,133,171,199,235, 97, 75, 1, - 20,209, 24,190,171, 42,175,190,155,235, 29,150,240,230,162,200,125, 46, 20, 8, - 69,193,145, 64, 40, 46,240,178, 79,141, 85, 54,114, 3,119, 86,184, 73, 20,238, -124,114, 56, 11, 13,179, 45, 39, 15,206,221, 56,197,193,202,155, 89,225,225,234, -210,102,125,141, 79, 63,127, 75,123,238,223,104,223,125, 82, 2,183,117,255, 67, -177,168,162,152, 2,235,247,217, 74, 39, 63, 28,176,194,225, 16,166,137,179,119, -119, 97, 50, 21,140, 71,194,169,124, 36,149, 83, 1,177,139, 64,104,141,222, 33, -207,215,142,248,246,156,253,199, 4, 30,222,118,235,236,138,169,239,134,158,190, - 96,172, 93,166, 63,123,203,112, 87, 84,106,124, 73,130, 23,175, 40,218,210,230, -103, 20,121,139, 42,217, 50, 3, 94,146,215, 62, 50,220,247,242,255,199, 48, 23, -134, 48, 40, 10, 55,244,108,230,254, 40, 47, 6,241, 30,239, 87, 9, 84,187, 98, - 80,218,173,179, 62,105,187,199, 74, 79,176,162,246,210,136,235,233, 86,250,237, -215,195,162,166,117,235, 18,131,167,193,119,101, 52,246,136,191,245, 72,122, 24, -136,191,177,171,228,174, 92, 13,105, 50,221,213,226,125, 29,198, 43,170, 30,120, -254, 44,173,104, 61, 93,187,236,154,140,118, 1,169,113,229, 62,243,231,138,251, - 52, 97,155,157,171, 17, 46, 99,177,251,146, 78,224,190, 93, 16,216, 11,123,153, - 62, 49,165,164,227, 19,182,211, 44, 58,198, 16,237,223, 78,115, 73,110,239,170, - 30,238,211, 20,152,174,202,150, 91,251,224,166, 46, 39, 8, 89, 51,231,156,243, - 27,239,103,165, 57, 59,167,169, 29,201,228,244, 25,210,236,180, 82,232,228,219, - 77, 26,135, 91,112,154,143,140, 30, 36,191,111,184,255,141, 24,132,252,116,237, -215, 62, 18,125, 59,228,195,137,233, 97,148, 29, 89, 95,128,141,168,177, 41, 67, - 68, 34, 34, 90, 80, 82,144, 66, 26, 3, 48,132, 32, 83,102,230, 1, 98,152,112, - 20,101, 64,138, 96, 98, 4, 22, 5, 35, 83, 25, 41,163,164,164,232, 1,145, 64, - 89,129,123,161,172,110, 74, 12,184, 13,189, 4, 23, 36,210,244,101, 68, 36, 68, - 1,165,227, 78,231, 1,240, 5, 48,101,108,197,146, 83,246,109,125,126, 62,185, - 89, 79,249,188, 66,179, 39,178, 7,172, 26, 60,183,223, 79,101,201,143, 54, 6, -159, 21,232, 2,131, 56,141,165, 20,104, 96,126,127, 76, 20,144,253, 78,102, 82, - 36, 69, 0,162, 26,202,253,218, 58, 3,217,152, 10,236, 39,204, 8, 58,235, 34, - 71, 35,159,223, 14,242, 75,238,114,108, 61,137,104,150,135,155, 43,151, 7, 30, - 9,230,237, 18, 88, 50, 81,168, 62, 64, 99, 24,248, 84,209,146,146,203,235,157, - 70,248,100, 0, 78, 61,183,207,249, 14, 20, 25, 20,226,124,142,132, 30,104,249, - 74, 72,252, 31, 41,120, 69,166, 71,134,188, 62,229, 14,185, 80,101,108, 29,184, - 15, 60,212, 74,168, 6,136,144,215, 64, 33, 92,125,111,112, 20, 18, 5, 71, 77, -181,119,129,239, 63,165,149,229,168,178, 43,246,185,126,183,212,158,109,188,142, - 52,235,212,191,201,237, 37, 76,173, 18,193,137,183,214,121, 39,204,141,246,173, -122, 66, 31, 41,204,172, 54,188,100,130,164,173, 90,229, 14,106, 31, 96, 33, 40, -205,156, 28,194,230,160,201,254, 96,210, 74, 5,166,176, 19,124, 50,249, 0,230, -149,210,128, 19, +// ../Source/JitKernels/GB_jit_kernel_convert_s2b.c: +uint8_t GB_JITpackage_19 [335] = { + 40,181, 47,253, 96,206, 1, 45, 10, 0,198, 83, 65, 33, 16,211, 54,230,159,197, +126, 20,224,167,145, 8,166,205, 0,224, 93,178, 13,160,170, 37, 84, 45,226,232, + 30, 17, 1, 0,168,210, 25, 55, 0, 55, 0, 55, 0, 29,112,147, 24,220, 57,229, + 42,102,129,217,211, 11, 3,247, 27,103,184,153, 61,204,198, 20, 39,183,127,169, +189, 92,186, 27,238, 68,169, 74,187,245,107, 70,242, 90,241, 71,253, 23,187,113, +104,173,133, 83,212,148, 40, 42, 83, 37, 61,120,189, 92,221,160, 31, 87,240, 30, +255, 99, 72, 95,142,127, 49, 38, 73, 20,218,244,189, 70,127,249,155,151, 27,180, +224,205, 69,177, 58, 37, 84,130, 74, 42, 12, 4,149, 71, 23,114, 90, 98,141,167, +240,169,122, 88,181, 50,108, 97, 59, 70, 99,206,168,227, 52,116,138,157,146, 37, +182,213,105,118,119,215,178, 7, 36,202,148, 83, 51,221,252,200,169,208, 68,203, + 18, 63,226,202,127,129, 25,133,216,131, 60,147,142,240, 16,223, 41, 8,115,126, +230,193, 35,142,187, 18, 9, 8,103, 45, 61,234,204,126, 13,184,211,111, 79,204, +152,223, 22,224,255,101,196, 59,226,128,187,251,244,204,131, 71,144,103, 93,182, +105,214,170, 56,219,109, 87,228,129, 93,143,237,114,120, 22, 0, 73,128,194,212, +205, 28,194, 0, 1, 88, 27, 66, 26,203,247, 88, 99, 0, 37,102,230, 71, 5,240, + 79, 56,159,151,245,204,199,211, 30,202,168,183,181,196,166,105, 67,130, 41, 90, +116, 67,202, 97, 1,224, 13,131, 66,100,186, 68, 81,224, 6, } ; -// ../Source/Template/GB_add_full_33.c: -uint8_t GB_JITpackage_58 [467] = { - 40,181, 47,253, 96,128, 4, 77, 14, 0,118, 24, 77, 33, 0,181,142, 1,106,162, -134, 21, 44,222,168, 50, 88,220,147, 1, 16,141, 12, 90,165,150,168,230, 40, 48, - 58,204,210,255,187, 63,188, 66, 0, 69, 0, 65, 0,191,246, 21,213,198, 7,242, -164,111, 20,193,123,249,181,201,200,252,114,213,143,132,221,186,230,205,142, 55, -180, 81,185,130,227,245,124,223,203, 95,183,186,126,190, 11,235,181, 43,166, 64, - 50,180, 63,113, 56, 80,140, 67, 30,237,186, 74,231,227, 89, 70, 97, 89, 22,249, - 25, 20, 95,193, 79,213, 25,160,232,196,111,180,146,255, 63, 69,153, 40,194,192, -128,217,143,171, 89, 62,161,237,245,238, 24,218, 14,130,217, 29, 90,238, 70, 48, - 77,163, 50,232,172, 72,219,109, 45,223,227,247,185,150, 99, 44,127, 29, 12, 4, - 3,134, 40, 16, 12,183,184, 42,146, 18,153, 23,200, 51,110,129,174, 91, 93,123, - 39,115,238,145,213,189,123,202, 36, 16,148, 66,238,139,231, 43, 78, 56,227,185, -250, 79, 89,220, 29,235,184, 43,139, 67,157,253,184,125, 43,164, 90,181,187,106, -245, 55, 82, 48, 20, 94,139,222,177,197,184,234, 26, 20,117,242,110, 23,106, 84, - 28,233,164,155, 10, 69,251,212, 21, 87,110,211,250,101, 92, 39, 20,200, 4,179, - 65,188, 11,176, 27,219, 83, 22, 90, 44,122,224, 89,171, 94,161, 56, 54, 72,198, - 49,167,167,250, 84,220, 18,247,165,242, 87,254, 53,146,191, 64,183, 86,151,180, - 17, 60, 32, 80,134,144,152,153, 7, 73, 0,168,230,200,129, 53, 88, 5, 39,184, -126,250,130,105,101,162, 64, 2,105, 92, 0,192, 12,248,119, 43,113,193, 28, 53, -248,158, 8,110, 0, 70, 89,213, 96, 14,139, 85, 64, 40,180,202,193,231, 5,115, - 7,156,113,147, 21, 39,144,163,125,251,197, 92,137,177, 23,172, 13,216,122, 64, -134,149,121,249,157, 93, 44,112,226, 0, 99,244,217, 47,152,195,175, 11,226,134, - 54, 3,161, 60,134, 6,235, 99,161,186, 13,126, 86,117,107, 63, 56, 26,231, 78, -180, 24, 84, 9, 70, 57, 3,201, 1, 53,131, 38,230,153,233, 54,199, 87,203, 27, - 65, 5,176,181, 40, 90,220, +// ../Source/JitKernels/GB_jit_kernel_emult_02.c: +uint8_t GB_JITpackage_20 [271] = { + 40,181, 47,253, 96, 97, 1, 45, 8, 0, 6,144, 55, 33, 16,241, 54,150, 46, 98, +178,161,216,199,117, 98,249, 20, 72, 21,123, 4,226,228,191,236, 72,132,112, 52, + 30, 51, 2, 0, 80, 5, 51, 45, 0, 46, 0, 46, 0, 26,171,158,212,222,200,253, +206, 37, 55, 93,103, 40, 30, 93, 1,181,136,132, 35,112,176,188,250,104,165,240, + 14, 75,204,227,240, 69,253, 23,188,179, 5, 95,204,167,105, 74,211, 20, 10, 8, +157,188, 70, 63,249,155,147, 27,172,228,205,195,208,122, 68,168, 84,149, 10, 3, +170, 58,244, 61, 30,145, 89,227, 41,156, 90,223,128, 59,131,201,157, 71,156,205, + 46, 56,122, 1, 16, 92, 41,220,101, 17,199,133,179,235,177, 93, 13,207,236,213, + 50, 12,119, 11, 6,190,216,164,104,149, 30,252,188,209,122,165, 63, 83,242, 22, +127,178,144,158, 20,255,203,153, 36, 9,115,118,166,193, 33,142,187, 44, 43,194, +225,171,177,199, 69, 93,238,215,128,143,254,246,194, 17,243, 27, 3,252, 39,101, +248,137, 57,224,238, 62, 57,211,224,208,227, 90,167,109, 1, 12, 0, 73, 69,206, + 46, 2, 4, 96, 1, 8,105,244, 91,167,137,201,212,160,249,243,204, 20,109, 11, + 91,205, 21, 6, 49,255,124,181,162,192, 13, } ; -// ../Source/Template/GB_add_full_34.c: -uint8_t GB_JITpackage_59 [793] = { - 40,181, 47,253, 96,255, 7,125, 24, 0, 22,228,109, 40,224,176, 88, 7,248,157, -220,153,122,131,216, 76, 64, 6, 11,134, 41,119,105, 46,152,247,217,218, 79, 62, -167,183,121,246,197,147, 34,101, 48,195, 48,140, 23, 2,101, 0, 99, 0, 97, 0, -141,107, 95,147,225, 49,145,128, 25,144,221,185,141,251,225, 56,103, 24,243,225, -148,190,187, 2, 73, 68,242, 64, 32,136, 72, 30, 93,208, 29,158,157,152,240,129, -119,141, 44,111,155, 9,113,151,121, 12, 85,102,227,173, 76, 50,157, 39, 39,243, -220,182, 26, 25,164,241,141, 22, 31,207,191,187,247,141,175, 46,107,188,245,169, -146, 30,101,253, 19,131, 2, 72, 41, 7,131, 82, 70, 88, 85, 14,129, 60, 15, 8, - 36,145,198, 77,232,214, 57, 28, 46, 22,135, 8,133,140, 69, 66, 1,102, 44,216, -228,144,164,141,122,157,114,251,233,145, 83,183,208,255, 39,186,102,142, 25, 67, - 77, 57,178,179, 11, 63,170,208,130,176,140,125,179, 12, 55,156,138,157, 54,165, -241, 70,123,187,217, 30, 55, 24,241, 90,128,223,237,147,220,178,220, 13,255,255, -231,225,120, 34, 3,146, 71,103, 87,180,239,147,219, 19,155,185,182,180, 60, 2, - 26,242, 77,151, 8,220,152,177,197, 26,142,185, 74,145, 78,199,168, 19,106, 13, -223,169,247, 53, 41,126, 48,227, 59, 49, 77,224, 25, 26, 28,228, 58,159,113,221, -174, 7,155,178, 90,112,203,176,130, 20,152,139,245,170, 49,237, 14, 72,109,218, -121,192,237,221,141, 52, 94, 24, 90,208, 49,151,233,209,134, 39,180,119, 25,213, -157,102, 94, 64,175, 96,194,187, 48, 84,151, 30, 51, 75,227,169, 7,207,211,209, -161,185,155,127, 47,206, 75,212,159,173,248,156,210,163, 76, 63,245,103,239,150, -175,238, 60,203,154,139, 52,221,137, 55, 79, 23,184,198,178, 4,146,197,184, 63, -206, 57, 39,107,223,193,103, 49, 16, 66,161,162,221,101, 15,250,131, 11, 85,229, -212, 53,120,102, 57,210,220, 4,122,199,182,231,206,242,101,157, 24,229,218,167, -127,186, 69, 5, 69, 78, 2,119,205, 77,172, 1,128,146,168,145, 45, 67, 84, 34, - 34, 82, 80,144, 36,149,198, 48,132, 24,164,174,204, 3,146,128,128,146,101, 36, - 68, 20, 49, 4, 82,129, 76, 77, 82, 82, 30, 37, 69, 15,153, 6, 92,130, 0,143, -192,108,143, 45,156, 82,133,166,196,121,166,132, 6,202,199,166,221,147,237, 11, -181, 2, 5,200,253,154, 7, 88, 11, 32, 32, 99, 56, 54, 42, 43, 85,159, 96,157, -194,122,138,231, 21, 52,171,128,124, 32,180,137,120,253,151,149, 30, 39, 89, 76, - 61, 43,232, 5, 18, 77, 34,165,164,106, 64,226,221, 49, 33, 67, 8,118,164, 9, - 33, 20, 39, 49, 25,170,252, 9,181,199,108, 31, 5,182, 75,210,107, 54,108,110, - 37, 11,185,243,224,146,187,156,236, 65,211,199, 68,106,214, 2,187, 41, 63, 9, - 78, 18, 12,248, 37,235,146, 60, 33,221, 16,238,240,124, 70,233,182,164,220,239, -119,154,206,147, 65,104,253, 97,191,186, 3, 73,100,200,164, 16, 11,134,196,123, -194,243,116,144,212, 64, 34, 80, 17,142,143, 60, 60,232,147,135, 28,101,242,255, - 3,164, 76,130, 99, 22,106, 43,213, 44, 9,234, 26, 62, 12,213,215,228,197, 19, -126,217, 49,201,132,220,140,146, 44,238, 78, 73,201,168,216,232,224, 45,150, 23, -116,207,204,164,209, 73,246,242, 89,210,248,130,114, 79,109, 64,233, 91,228, 12, - 19, 58,140,166, 80,249,132,118, 40,243, 81,249,171,192,123, 73,233,148, 69,107, - 26,218, 96, 40, 84, 71,131, 77,164, 92,130,228,126, 48, 7,205,251,131,105, 43, - 53,157, 34,111,240,137,152, 2,244, 85, 74,187, 77, +// ../Source/JitKernels/GB_jit_kernel_emult_03.c: +uint8_t GB_JITpackage_21 [270] = { + 40,181, 47,253, 96, 97, 1, 37, 8, 0, 6, 80, 55, 33, 16,241, 54,150, 46, 98, +178,161,216,199,117, 66,237,117, 72, 18,123,164,226,228,191,172, 55, 34, 28,141, +199,140, 0, 0, 84,193, 12, 45, 0, 46, 0, 46, 0, 58,179,222,212, 95,217,253, +206,103, 71, 93, 95, 36, 14, 93, 65,181, 7, 68, 35, 96,184,220, 2,107, 53,225, + 61,158,150,199,227,147,250, 43,120,103, 10,190,153, 75, 18,141, 36, 41,137, 71, + 13, 31,163,223,124,206,205, 45, 78, 50,231,227,104, 29,170,168,137,138, 8,131, +137,242, 7,116, 28, 50, 51,230, 75,120,181,158, 17,247,197,146, 61,135, 58,171, + 93,177,252, 2, 15, 92, 77,216,211, 32, 13, 12,107,152,131,195, 24,174,217,187, +105, 25,246, 20, 11,124, 51, 58, 85, 42,122, 17,252, 74,235,150,254, 44,201,155, +252, 80, 17,189, 73, 62,152,181, 40, 18,148,110,104,193,159,174,195,174, 11,210, +225,171, 51,199, 73,125,238,215, 0,176,254,254,198,210,242, 27, 3,252,195,115, + 4,201, 28,112,119,167, 26, 90,240,199,241,205,219,184, 12, 0, 73, 69,206, 46, + 2, 4, 96, 1, 8,105,244, 91,167,137,201,212,160,249,243,204, 20,109, 11, 91, +205, 21, 6, 49,255,124,181,162,192, 13, } ; -// ../Source/Template/GB_add_full_template.c: -uint8_t GB_JITpackage_60 [667] = { - 40,181, 47,253, 96,161, 11,141, 20, 0, 22, 93, 89, 32,224, 88,231,136, 23, 28, - 41, 58, 98,173, 45,214,108, 48,104, 98, 82,102,252, 48,229,250,192,247, 12, 74, - 25,204, 48, 8,230,189, 81, 0, 78, 0, 77, 0,109, 26, 27,183,231, 56,123, 35, -235,249,189,243,150, 34,113, 72, 24, 26,136, 67,226, 4,110,112, 11, 91, 19,149, -252,154, 71,121, 57,252,236,231,150, 54, 51,153, 39,210,177,226,104, 60, 82, 81, -235,108, 75,154, 60,182,143,252,145, 21, 38, 36,242, 59, 58,211, 43,126,157,183, -123, 75,221, 86, 43,221,178,202, 49, 76, 26, 48, 44, 53,244,114,127,111,220, 94, -126, 23,254, 34,136,244,203, 86,244, 49,252,216, 34,202,179,240, 91,244,122, 75, -225,233,145, 91,141,237,105,236,193, 51,216,184, 71,241, 57, 4, 53, 39, 97,250, -189,189,207,127,201,195,149, 48,180,199, 81,113,222, 49,182,237,108, 6,187, 90, - 12,141,193,230,108,198, 16,146,116,174, 26,158,137,166,205,199,197,231,109,193, -200,160, 77, 73,137,100,110, 28,205,210,117, 5, 59, 27,144,242, 10,235,195,252, - 17,104, 61,234,189, 49,245,196, 99,235,229, 91, 21,164, 15,177,237, 44, 87,246, -194,231, 33,143, 28,195,254, 95,202,235,210,207,102, 49, 60,234, 94,202,217, 28, -102,241, 67, 97,250, 30,233,113, 82,118,182,130, 29,144, 43, 57,255, 11, 4,157, - 93, 40,230,204, 26,119,182,130,137,198,136,206,212,124, 44, 25,182,207,254,152, -183, 87, 0,238, 58, 40, 0,239, 90,186, 28,120,111,102,205, 91, 17, 66, 38, 16, -156,178,205,193, 83,153,201,198, 51,193,108, 31,203, 37,187, 74,181, 97,187, 77, - 66, 38, 3,218, 28, 2,185,102,240, 79,128,133,160,241,173, 35, 50, 34, 34, 41, - 44, 40, 72,105, 56,112, 70,132,134,174, 27,240,201,202, 13,133,191,244, 56, 61, - 0, 77,107,154,171,193, 38, 32, 77,251, 7,187,210,238, 93, 49,200,116, 26,246, -207,225,158, 51, 44,186, 65,147,136,196,135, 89, 1, 14,146,176, 7,205,113,162, - 33,254,247,126,140, 13,189,153, 45,134,243,178,253,172, 12,140,139, 64,229,200, - 30,188, 57,115,199,136, 33, 22,184, 3,156, 82,226,118, 88, 64,116, 24,155, 15, - 70, 59,118, 54, 0,158,208, 41,183, 5,143, 31,223,221,193,113,255, 16, 51, 54, -249, 70,140,107,104, 58,164,105,142, 57, 83,226, 33, 36, 2,114, 33,236, 76,201, -158,100, 54, 27, 5, 36, 76, 56,100,238,181,166,130, 22, 11,199,176,125,175, 26, -203,224,149, 17,241, 16,217,116,129,154, 1,126, 48,112, 68, 64, 35,178,220,108, - 22, 42,219, 38, 84,123,146,236, 6,164, 50,217,181, 99,234,116,172,245, 5, 8, - 79,210,201,168, 44,108,190,147, 72,148, 29,156,236,210,225,160,112, 44,104, 32, -230, 83,232, 98, 27,203,234,197,143,240,225,174,225, 60,203,214,167,109,129, 13, - 90,152, 54, 12,155,198, 64,123, 92,143, 96, 20,104,234, 78,129,166,115,203, 45, - 84, 64, 75,181, 10, 19, 29,178,176, 93,147,166,206,207, 76,119, 64,173,240,255, -184,252,185,254,138, 2, 61, +// ../Source/JitKernels/GB_jit_kernel_emult_04.c: +uint8_t GB_JITpackage_22 [270] = { + 40,181, 47,253, 96, 97, 1, 37, 8, 0, 6, 80, 55, 33, 16,241, 54,150, 46, 98, +178,161,216,199,117, 66,237,117, 72, 18,123,164,226,228,191,188,160, 96, 56,160, +158, 25, 1, 0,168,130, 25, 45, 0, 46, 0, 46, 0, 58,179,222,212, 95,217,253, +206,103, 71, 93,103, 40, 30, 93, 65,181, 9,197, 35,128,184,220, 2,107,129,194, +123, 60, 49,143,199, 39,245, 95,240,206, 22,124, 51,159, 38, 42, 77, 83,139, 72, + 13, 95,163,223,124,206,205, 45, 86, 50,231,227,104, 61, 34, 84, 84, 37, 25, 6, + 84,229, 16,248,120,100,102,205,183,240,106,125, 35,238, 12, 38,123, 30,117, 86, +187, 98,249, 5, 17, 92,160,176,167, 73, 30, 24,214, 48, 8,135, 57, 92,179,119, +211, 50,236, 49, 26,248,102,148,170,149,244, 34,248,149,214, 45,253,153,146, 55, +249, 33, 67,122,147,124, 48,107,210, 36,148,118,232,193,161,174,195,174, 75,210, +225,171,179,199, 73,125,238,215, 0,176,254,254,198, 18,243, 27, 3,252,195,115, + 4,201, 28,112,119,167, 28,122,112,232,241,205,219,184, 12, 0, 73, 69,206, 46, + 2, 4, 96, 1, 8,105,244, 91,167,137,201,212,160,249,243,204, 20,109, 11, 91, +205, 21, 6, 49,255,124,181,162,192, 13, } ; -// ../Source/Template/GB_add_sparse_M_bitmap.c: -uint8_t GB_JITpackage_61 [1607] = { - 40,181, 47,253, 96, 93, 54,237, 49, 0,214,250,170, 40,176, 84, 85, 29,228, 88, -159,138, 65, 82,179, 28,203, 38,133,217,193, 66, 60, 66,189,254,137, 20, 5,120, -173,109, 3,134,230, 39,252, 83,250,211,228,236,120, 6,164, 0,149, 0,159, 0, - 37, 81,100,225,178,197,222, 87, 62, 66, 42,239,151,179,239,102,252, 81, 9,186, - 86,229,169,108,235,175,189,214,185,118,215,212,235,108,246,198, 30,146,221,115, -231,183,224,121, 43,194, 88, 10, 42,205,101,210,131,207,220,158,219,204,181,181, - 78,165,113,237,108, 78, 84, 54, 30, 44, 44, 90,131,110,227,190, 56,206, 28,200, -188, 56,165,240,148, 65, 1,166,160,162, 64,128, 41, 56, 37,147, 78,225, 9,146, - 15,183,192,135,184,108,187,137,113,202, 3, 39, 34,231,201, 11,145,241,116,158, -159, 39,186,117,234,182, 23,226, 46,175, 78,197, 9,110, 28,172, 6,202,135,202, - 72,213, 51,158,236,242,196, 46,235,106,124,165,135, 47, 77,147, 87,132,248,229, - 18, 85, 46,151,159,146,245,220, 32,207, 72,116,172, 11,131, 3, 17, 89,242,231, -229,207,190,218, 87,223,236,155,100, 98,220,217,167,245,125,158,221,205,204,101, - 87, 54,190,188,121,164,111,235,177,166,201,247,109, 14,164,206, 60, 45,245, 70, - 56,191,165,251,178,236,218, 58,127, 59, 75,122,173, 39,245, 60,105, 49,149,207, -248,235,222, 92,126,109, 80,111,243, 90,227,239,141, 29,135,164, 8,149,215,232, -103, 57, 28,130,101,247, 80,149,185,246,204,230,182,245, 67,183, 65,199,243,154, -229,114,119,199,147,195, 0,248,255,248,233,240,155,191, 2,176,143, 83,245,219, - 92,158,253,107,183, 83,148,126,219,255, 71,209, 3,148, 15,239,211,161,215,241, -249,233,115,154,222,112,239,154, 99,190,185,244,140, 37,141, 51,227, 59,183, 11, - 78,236,155,205, 73,234, 71, 94,158, 65, 32,176, 94,178,213,166,160, 15,252,243, - 77, 20,227, 77, 76,142,231, 5, 47, 56, 30, 15,180, 80,176,107, 47,141,107,107, - 82,122,174,141,251,122,199, 61,111,174,125, 74,229, 27, 36,185,119,155, 61,190, - 54,103, 13,162,242,211, 38,104,106,117, 62,127, 24,165, 1,160, 92,155,230,148, -238,212, 8,134, 7, 86,150,128,192, 41,150,119, 10,179,164, 91, 87,220,252, 51, -187, 83,107, 49,205,231,167,231, 43, 51,190, 54,183,188,231,235, 32, 33,215, 25, -121,156, 50,165,174,243, 91,107,245, 11, 16, 9, 81,116, 18, 99,140, 16, 66,152, -109,189, 38,111, 77, 31,127,237,225, 73,140, 49,198, 24, 29, 14, 61, 8, 33,140, - 80,122,211,201,137, 52,200,237,238, 25, 76, 1,140, 12, 48,206, 72,240,110, 44, -179,208, 0, 97,110,153, 27,131, 16,194,248,140, 2,118, 82, 93, 54, 95,241,226, -176,168,168, 30, 79,174,164, 50,195, 23, 69, 69,135, 34, 67,114, 30,149, 84,252, -184, 26, 30, 67,217,235,250,120, 38, 96,162,232,100,154, 42,111,155, 90,165,124, - 78,205, 83, 85, 37,221,162,130,227,233,104,112, 98,140,152,165, 78,141,192, 83, -159, 41,165,195,235, 1, 86, 76, 84,120, 58, 85,213,152,182,230,211,148,157,128, -227,129, 17, 22,215,195, 3, 12,136,159,224, 55,175, 46, 61,198,129,119,168,113, -185, 50, 36, 34, 34, 35, 34, 73, 82,144, 52, 6,145, 12, 65,138, 49,232, 32, 44, - 15,130,112, 68,142, 97, 12, 67, 33, 8, 69, 64, 16, 33,132, 16, 43, 32, 2, 34, - 64, 2, 34, 32,132, 48, 33,137,148, 92, 29, 33,136, 88, 98, 60,251,199,249,188, - 14, 44,133, 76,245, 61, 65, 32,199,201,187, 42,124, 83, 78,136,167,199, 5, 83, - 90, 68,248,210, 84,120,213,182,231,187, 79,252,233,143, 79,203, 29,213,233,143, -202,160,220, 7,222,244,199, 39,154,254,155,251,113, 85,251, 66, 85, 57,134,138, - 66, 72, 67,155,158, 43, 53,164, 90, 82,233,157,132,248, 44,129,157, 96,246,231, -153,100,216, 18, 95,238,252,116, 69, 25, 89,156,111,156, 85, 73,120,242,134, 4, -103,124, 67,233, 99, 8,162,235,202,206,189,226,188,127,135, 82, 17,186, 1, 71, -193,243,255, 43,131,233, 82,240,243, 5, 69, 57,138,244, 27,228, 39, 66,136, 10, - 50,235,112, 8,208,201,220,217,156, 69,159,209,229, 71, 87, 91, 72, 6, 20,105, -193,225,208, 79, 20, 87,198, 2, 33, 10,104,201,184, 89, 44,198,211,163,123, 21, -110,101, 39,249,211,200, 87,200,171,189,120, 94, 34,120,222, 0,250, 49,239,164, -154,106, 58, 36, 0, 4, 59,113,170,169,209,208, 5, 67,252,251, 11,103, 0,131, -179, 51,143,240,135, 18,254, 15, 1,157, 54,108,171,154,116, 1, 95, 27, 68, 7, - 43,206, 81, 24, 10, 60, 46,202, 65, 88,220, 27,236,100,206, 21,113,158,220, 91, -157,143,192,107,231,230,205,125, 19, 40,111,166,255,107, 58,215,174,161,233,250, -242,222,236, 40, 27,225,114, 51, 75,131,205, 43, 79,138,246, 1,164, 80, 14,242, -210,115,120,224,173, 8, 73,221,236, 13,177, 51,118,192,192,204, 53, 96, 95,241, - 14,251, 55, 85,127, 0, 72, 11, 79, 98,168,184, 12,118,227, 27,126, 47, 94,214, -138,160, 30,194,136,250,169, 17,169, 4, 63, 58, 23, 91, 93,114,226,123, 80, 51, -173,152,250, 91, 64,207,248, 38, 74, 55,249,207,229,105, 46, 32, 72,132, 28, 13, -172, 0, 18,208,207, 88,136, 51,124, 91, 29,199, 14, 8,155, 91,234,252,234, 99, -216,253, 89, 39, 8, 8,108, 90, 46, 4, 59, 23,212,206, 45, 78, 9, 16, 18,117, -106, 33,156, 37,141,120,242, 40,137,160,213,166,175,119,188,210,181,164, 81, 63, - 96, 76,135,221,213,168, 35,226,198, 2,171, 41,242, 61,150, 92, 82, 79,246,120, - 50,141,143, 23,198,196, 52, 64,245, 17, 46,133,162,142,106,138, 14, 54,102,120, - 13, 79,136,102,163, 87, 29, 4,124,227,133, 30,138,190,225, 13, 22, 41,114,182, - 90,249,134, 37, 18,254,189, 40, 64, 58, 53,216,174,225,214, 24, 73, 17, 0, 46, - 35, 28,200, 19,154, 43, 72, 33, 10,254,100,152, 48, 19, 45, 95,188,109, 4,220, -236, 46, 69,162, 26, 10,207,180, 64,152,216,167, 2, 50, 19,138,134,192,154,117, - 57,207, 51,199,176, 17, 10,215, 42, 91, 0, 42,156, 85,251,135, 16,248,216,195, -148,152, 36,192, 54,105, 41, 16, 53,209, 78,243,222, 83,155,220,135,127,220, 16, -238,183, 83, 54,228,164,126,170,154,134,244, 76,180,122, 86,166,176, 80,144, 5, -199,235,172,126, 32,218,145,252,135,195, 46,208,128, 69,176,186,116,225,129,222, - 77, 13, 76,109, 8, 38, 52, 2, 11,199,103,147, 17,149, 72,235,171, 91, 43,114, - 90,167,212, 30,176,133,105,168,187, 95,208,212, 11,148, 6,210, 46,230,195,158, -228,236,186,226,231,110, 64,225,145, 13, 27, 4, 55,142, 57,216,162, 2,213, 82, - 0,128, 91,144,226, 82,200,243, 55,233, 32,209, 9,168, 23,226, 27,249,231, 52, - 97, 79,175,249, 33,128,195, 5, 7,125,202,138, 47, 24,163,194,179, 29,144, 31, - 49, 35,244,172, 41,216,185,172, 85, 54, 97, 31, 19, 52, 83, 66, 12, 6,181,133, -124,154, 59, 57,154, 59, 73, 46,152, 53,150, 19,236,108,105, 94,132,193, 71,145, -204,187,199, 61,155, 97, 99,176,202, 20,212,128,242, 62, 31,177, 40, 85,211, 7, - 62, 34, 0,107,141, 94,198,108,183,133, 50,174,248,236,113,181,203, 26,149, 75, -108,206,166, 89,249,131,169, 95,209,120,209, 87, 61, 68,141, 44,219, 60,163, 43, -193,188,127, 95,237, 43, 30, +// ../Source/JitKernels/GB_jit_kernel_emult_08.c: +uint8_t GB_JITpackage_23 [260] = { + 40,181, 47,253, 96, 93, 1,213, 7, 0,194,207, 52, 33, 16,179, 30,150, 12,146, + 15, 40,128,167,156, 7, 17,206,188, 42,154,214, 21,219,173,231,187, 98,223, 46, +252,136, 0, 0,170,106, 6, 49,142, 98,194, 5,214, 98,141,134,197, 94,170, 51, +201, 63, 29,238,215, 0, 44,185,253,157, 11,240,199,132, 30,254,114,192,221, 61, +138, 98,194, 5,146, 83, 54,138, 86,185, 7,235,110,213, 34,193,110,197, 38, 26, + 22,241, 58, 41,165,102,119,123, 64, 46,205,162, 37, 47,234, 59,204,125,166, 35, +244,231, 76,222,223, 99, 30,212,131,223,227, 92,169,139,163, 34, 49, 15,210, 15, +190,230,224,238, 52, 89,115,207,155, 62, 21, 46,235,162, 12, 4,235,114, 1,150, +124, 2, 51,136,115,184,156, 30,234,182,167,147, 55,159,236,172,180,251,112, 58, + 67, 60,168,185,143,253,157, 67, 27, 93,123, 50, 62,209,129,156, 11,134, 36,160, +104, 56, 2,203,131,117,183, 23,118,254,122,255,233,231,220,157, 55,151,102, 94, + 85,145,170,170, 12, 0, 69, 5,207, 46, 34, 4, 96, 1, 8,105,244, 91,167,137, +201,212,160,249,243,204, 20,109, 11, 91,205, 21, 6, 49,255,124,181,162,192, 13, + } ; -// ../Source/Template/GB_add_sparse_M_sparse.c: -uint8_t GB_JITpackage_62 [2495] = { - 40,181, 47,253, 96,125, 47,173, 77, 0,170, 82,244, 14, 40,192, 20,217, 28, 36, -173,112,153,132, 78,254,107,212, 6,235, 0, 32,210,171,103,177, 75,227,173,186, -221, 63,186,114, 94,232,211,167,223, 85, 20, 4, 69, 1, 8,228, 0,225, 0,228, - 0, 20, 91,220,188,112,189, 56,235,163,113,215, 39, 28, 90,221,120,198, 53,130, -226,213, 4,175,205, 89,135,188,185,252,205, 62, 55,198, 66,124,202,101,149, 19, -153, 56, 44, 21,138,162, 38,184,241,145, 57,213,249,207, 30,119,166,246,127,124, - 73,244,129,105,190,250,171, 27,244, 77,251,250,194,220, 82,121,245, 9, 62, 95, - 9, 10,249,171,184,126,206,231,238,232,219,156,200,165,191,250,181,219,193, 48, - 55,254,255, 83, 40, 37, 20, 10,245,107,143,189, 47,165, 24, 80, 7,149,230, 50, - 10,198, 95,110,215,173,230,175,181, 77,165,241,215, 89,141,168, 96,100, 58,148, -214, 33,183,113, 79, 28,103,174,163, 78,188,235,226, 39,132, 3,131,131,202,130, -197,224,224, 81, 6,125,194, 53,132,102, 78,197,127,184,108,189, 74,241,201, 19, - 35, 36, 7,210,251,224,233, 92, 67, 15,229, 54,248,225, 10, 62,175,125,244,214, - 39, 41,197,170, 97, 50, 68, 30,211, 5,178,126,153, 87,227, 75, 65,124,105, 26, -189,228,195, 11, 10, 40,149,130,130,150, 87,213, 53,158, 8,209,185, 50,153, 40, - 16,125, 66,223, 43,213, 73, 62, 15,111,186,246, 83,215,133,219, 47,165, 91,141, -195,219,252,207,237,144, 75, 99,154,189,163, 53,107, 16, 71, 17,195, 38, 38,143, -164, 70, 33, 72,202, 8, 48, 63, 48,240,107, 82, 29,197,108,215,113,154, 81,159, - 92,187, 61, 63,133, 43,166,216, 43, 31,172, 66,255,105,207,184,167,214,152,214, -142, 70, 8, 81, 30,200,175, 30,196, 93,111,254,250, 93, 71, 31, 89,160,139,214, - 89,238, 25,135,222, 49,194, 27,247,103, 39,144,122,185, 98,217,126, 31,205, 46, - 35,213,209, 27,230, 44,188, 25, 99,183,249,243,184,111, 13, 65,250,254,179, 53, - 87,237,179,217, 3, 62, 48,245,254,193,180, 3,222, 28,197,137, 69,250,186, 11, -249,244, 9,156, 87, 71, 62, 24,188,106,248,229, 30,119,184,108,190, 62, 26, 42, -243, 85,117,142,143,141,137,121, 20, 17, 81, 33,241, 10,224, 20, 19, 26,143, 39, - 70, 31,208,102, 7,187,181, 83,232,220, 60,166,111, 47,218,197, 79,125, 62,234, - 61,196,174,125,252,109, 46,215,254,151,193,206, 70,250,249,235,154,213,109,235, -123, 82, 68, 0,253,151,132,156,115, 70,130, 99,105, 60, 87,135,211, 89,189,153, -122,239,190, 92,190, 92, 16,162, 41,103,148,191, 28,108,213,195,130,222,225,104, - 60,155, 11,141,148,152, 29,137,159, 60, 42,205, 68, 78, 4,199,179,217, 90,251, -166,132, 46,107,189, 52,213, 8, 61, 94,155, 40,154, 70,166, 39, 90,179,206,106, - 89, 24,233,146,196,128,185,193,171, 67, 26,141,205, 4,135,194,210, 88, 92,153, -185,241, 92,113, 62,196,137,206,244,248,139,197,162, 89, 46,247,188,148, 50,227, - 91,183, 43,214, 87, 98,227,109,179, 87,140, 34,232,155,109,146,138, 79, 48,205, -249, 73,122,181,160,204,107,111, 78,204,171,231, 75, 51,190, 44,208,186,253,110, -231, 76, 65, 76,214,209, 26, 82,111,198, 97,254, 66,155, 61,171,157,197,188, 15, - 62, 37,165, 75, 27, 4,105,231,143, 94, 26,118,112,249, 95,205, 95,223,226, 79, -209, 3, 20,202, 73, 87, 7, 82, 82, 14,236, 40,118, 98, 93, 54, 95,241,202,232, -112,172,147, 75, 59,154,225,139,230,198, 36, 56, 27,137, 10, 73,178,192,250,234, - 28,150, 37, 73,191,181, 85, 22,134,125,146,152,148, 18,147, 82, 74, 12,147,209, - 39,232, 30,205, 38,162, 51, 55,211,116, 8,107, 34,102, 76, 68,137,141,180,100, -174,163, 94,144, 82, 24,119,247,133, 23,177, 29,174, 17,147, 21,186, 20, 65, 48, -252,176,182,251, 71,134,249, 66,187,209,136,121,135, 95,205, 17,128, 71,245,222, - 89,139, 93, 94,138,181,132,225, 19,234, 16,202, 61,146, 28,224,198,177, 8, 77, - 26,237,140, 65,175,243,149, 96,112,121, 93,112,225,100, 56, 18,206, 93, 72,143, -227, 79,245,116, 59,211,238,211,181, 86,179,214,114,119,116, 84,220,119,218, 54, -212,167,198,247,237,231,208,118, 14,165, 20, 43,203,106, 93,104, 57,252,137, 41, -247,249,173,210,236,153,158,203, 46,109,250,225,182,218,163,107, 55,104,226,198, - 52,111, 10, 60,155,105,253,117, 84,220, 1,130,165,168,226,195,144, 57,132,102, -100, 68, 36, 73,146, 66, 99,194, 40, 4,163, 96, 32,232,114, 10, 31,178,104, 84, - 18,197, 32, 8, 98, 26, 67, 8, 33, 2, 66,144, 64, 68,100, 36, 18, 25, 73, 18, -180,176,205, 1, 27,212, 22,172, 54,146,112, 78, 95,116, 10,157,194, 84,191, 59, - 49, 38,130, 48,127,116, 94, 82,222, 28, 36,130, 49,208, 99, 42,216,224, 13, 81, -138,229, 27, 22,218, 65,138, 46,209,224,173, 37,102,167,127,102,100,214,248,180, - 98,158, 26, 92,238,143,108,149, 18,127,164, 62, 77,117, 38,111,196,127, 64, 81, - 6,244,173, 92,147,172,118, 84,244,203, 18, 40, 38, 3,233, 17,237,154,241,139, -246, 18, 43,208,255, 98,238,141, 64,185,226,192,234,234, 11, 51, 42, 31,141,255, - 71,212,153,156,124,121,255,105,151,181,218,153, 63,240,204,110, 38,200, 50, 82, -125, 52,160,211,127, 8,139, 58, 35, 93,130,159,191,247, 48, 30, 90, 24,142,170, -106,121, 34,148,198, 71, 32, 8,111,203,184, 61,135,208, 16, 31, 48,109,217,132, - 78,203, 11, 58, 59,144, 31, 18,120, 2,224,188,120,141, 15, 74,195, 62, 33,113, - 4,224,197,255,131, 15, 48, 35, 64,122,215, 81, 67, 75,159,199,245,155,164, 95, -179,225,172,110,135,167, 0,252,189, 24, 28, 11,223,184,110,121, 1,110,246,191, -229,205, 73,124, 16, 23,174, 74,123,218,128, 77,104,186,209,185,111,227,223, 78, -241, 45,128, 78,110,174,229,120, 8,151,209,115,161, 82,185, 74,114, 17, 61,230, -249,164, 93, 20,170,170,173,165, 18,233,145,114, 65, 60,245,238,112,150, 8,101, -131, 92, 93, 67, 49, 34,181,137, 99,141,165,158,179, 6,168,133, 7, 18,247,246, - 8, 13,104, 18,194, 20, 90,199,236,186,100, 55,221, 60,173, 36,230,111,226,254, -144,193, 27,115, 41, 89,252, 62,122,242,111,210,116,153,178,232,136, 62, 32,110, -244,138,116, 15,170,224,208,169,113,179, 73, 72,118, 47, 71,246, 38, 8,186,124, - 24,196, 25,116,134, 57, 62, 97,210, 3, 37,254, 14,136,211,167, 4,119,248,154, -213,187,136,190,150, 6,166,220, 84, 1,220,182, 60,184,178, 66, 75,195, 47, 12, -229,215,190,252,206, 28,147,104, 67, 1,180,213,252, 11, 60,126, 84,124,159,210, -189, 72,125, 93,112, 94, 85, 79, 14,142,228, 81,183,244,253, 47,114,217, 16,112, - 52,249,184, 60,161, 88,119,202, 99, 98,230,212,246,124, 46, 80,126,188,137, 76, -198,246,240, 46,172, 50, 88,229,228,142,159, 96, 37,167,240,251, 71, 88, 58, 53, - 22, 52,210, 64,154, 53, 57,207, 43,142, 72,164,229,126,128,194, 74, 81,242,164, -248,105,215,250, 20,217, 87,191,168,162, 62,164, 99, 8,251, 1,239, 2,214, 22, - 56, 11, 17, 62, 43, 72,200, 36, 6,167,167, 16, 65,238,125, 76, 82, 49,168, 82, -249,227,164, 9, 1, 91,183, 49, 59, 89, 72, 44,152,174, 11, 32, 47,205, 97,226, - 48,153, 15, 2, 29,244,138, 25, 72, 23,176,167,182, 22,130, 5, 87,165, 48,106, - 31, 47,162, 39, 98, 2, 32,145,231, 28,113, 98,118,154, 73,215, 20, 72,207,104, -189, 73, 86,111,166,153, 47, 55,235, 15, 42, 87, 82,157,101,203, 58,213, 16, 20, -100,216,102,228, 57,106,236,230, 69, 95, 27, 46,129,254,198,142,103,168, 25,193, -177,116, 52, 52,185, 16, 50, 31,174,205,152,184, 57,233, 12, 55,118, 89, 56,122, - 19,173,188,134,210,153,136, 60,241,166,117,171,142,153, 66,150,129, 43,112, 32, -158,173, 81,180, 72,118,241,248,214,183, 20,239,164, 29,170,220,176,131,234,194, - 1,167,179, 45, 36,180, 3, 55,236, 69,194, 92,121, 65,130,203, 18, 97,106,114, -137, 97, 82,228, 5,235,194, 93, 24,230,189,197,207,114,204, 77,218, 5,145,162, -102, 56,136, 61,160, 60,207,156, 33,200,120,187, 58,251,141,228,235, 0,131,187, -235,108,173, 69,104,100, 12, 37, 81,242, 78, 40,108,132,146,208,189, 48, 69,105, -129, 7, 37, 28,230, 98,240,183,141, 10,218, 59, 25,103,169,200,192, 86,124,114, -220,109, 11,150,156, 22,124, 32,128,131, 49, 53, 78, 24,168,183, 9, 40,191,221, - 58,109,177,231,192,193,208,229,165, 99,183, 41, 42, 37,181,211, 92,113,100,123, -112,156, 64,177,129,142,234,115, 70,136, 41, 56,100, 50,189,213, 63,111, 95,168, - 77, 52, 53,254,159,195, 74, 76,145, 53,168, 32, 29, 7,152, 25, 34,161,191,121, - 12, 99, 28,201,219, 19,237,242,178,182, 59,113,155,247,112,174,178, 65, 90,140, -183,150, 0, 81, 90,190,120,245,181,246, 53, 27,223,210,140, 53, 82,213,156,153, - 44,220, 18, 10,237,162,215,217, 17,218,229,166,193, 42,217, 87,155,102,237, 26, - 82, 74, 96,243, 97, 38, 83,170, 84,198, 67,119,225,250,127, 46,199,183, 13,109, -136,255, 12,227,164, 18, 34, 96,138,104, 66,175, 24,240, 61, 80,225, 55,173, 47, - 34, 46, 21,178, 87,137,138, 30,166, 71,255, 83, 72, 89,207,148,253,198, 25,137, - 76,117, 17, 87,103, 81, 92, 18, 68,216,232,126, 72,223, 97,183,147, 0,205, 69, -102,149, 22,178,184,119, 4,144, 7, 75,195, 37,174,193, 69,244,186,190, 19, 58, -226, 92,176,198,131,231,197, 38, 98,206, 35,223,211,196,192, 45,221, 10,197,190, -223,241, 27,226,102,127, 34,203, 55, 57,199,242,185,231, 81, 79, 55,193, 46,112, - 39,210, 71,167,239, 30,146,196, 94,167,186, 14,252,150, 65,110, 20,142,251,252, -177,121, 58, 61, 17,132, 39,201, 69, 73,186, 66,134,214,217,164,139, 5,187,188, -128,126, 11,225,143, 69, 75,194, 1,187, 1, 58, 95, 58,227,158, 66, 95, 4, 27, - 66, 25,247, 70, 68,225,240, 9, 2,181,146,231, 41,217,139,168, 48,191,237,201, - 61, 35,158,185,204,135, 30,243, 38, 13, 51, 84,235, 62,211, 80,126,126, 53, 0, -131,237, 49, 21,157, 16,161,101,142, 99,112, 7, 6, 53,220,138, 36,109,246, 12, -139,154,176, 37,144,231,166,198, 48, 74, 85, 8,158, 76,154,184,250,214, 4, 39, -153,172,215,129,229, 96,148,148,115, 71,192, 42,205, 90,126,135,230, 26,218,185, - 90, 34,159,229,146,109, 9,201,221,198, 52,197,233,136,102, 44, 17, 9,215, 99, -119, 30, 47, 71,226,236, 56,177, 45,132,243,109, 14,159, 32,232,248, 26, 26, 15, - 23, 79,145, 42, 20,209,129,248,209, 97,109, 7, 66, 29,134,146,162, 80,139,134, -230,240, 28,198,131,156,239,186,216,255,212,177,132, 19, 47,162, 5,117,113, 66, -172,181,218, 45, 76,212, 35, 78, 9, 34,237, 39,226, 17,165,174,101,221, 79,234, -115,229,197,186,224,213,171,192, 92,225,216, 13,184, 19, 93,162, 80,144,213,115, -177, 93,133, 50, 65,186,200,104,155, 29,158,220, 57,241, 94,160, 62, 9, 8,171, -213,107,220, 93,143,160, 89,101,103, 37,240, 64,137,133,213,114, 24, 32,210,241, - 67,161,204,195,228, 26, 47,220,209,166,205, 61,177,147, 41,161,105, 10,182, 25, -202, 2,162,114,224,211, 13,194,205,166, 89, 15,192,244,215, 38, 82,158, 68,171, -119,182, 23,203,181, 74, 35, 58,248, 78,171,182,162, 63,129, +// ../Source/JitKernels/GB_jit_kernel_emult_bitmap.c: +uint8_t GB_JITpackage_24 [357] = { + 40,181, 47,253, 96, 43, 2,221, 10, 0, 54, 85, 70, 33, 16,211, 54, 54,143,197, +236,180,158,161,201,197, 46, 64,213, 60,231,253,228, 40,221, 90,184,113,228, 93, +141, 17, 1, 0,168,170, 25, 60, 0, 61, 0, 62, 0,254, 1, 55, 39,196,157, 71, +156,149, 81,112,180, 26, 75, 60,169,237,200,253,198, 37, 55, 93,115, 62,143, 40, + 97,178, 24, 13, 45,176,112,120,226, 78,163, 13, 55,198,212,157,203,240,107,126, + 81,255,166,110,172,169, 20,115,138,154, 18, 69, 5,144, 72,165,216, 44, 76,149, +244,224,181,163,229, 9,253,248,195, 91,124, 15, 34, 61, 41,254,197,153,116,121, + 84, 38,239, 59,250,201,223,156,220, 96, 6,111,158,179,229,209,161, 42, 84, 18, +194, 80,168,124,112, 5, 30,145,184, 99, 31, 62, 89, 1, 24, 41,114,240,190, 98, +249,249,230, 90, 76,206,246,250,254,140, 83,212,165, 65,186,137,101,251,222,251, +112,192,221,125,130,166,194, 7, 2,167,116,148,173, 82, 43,150,214, 65,104,237, + 50,139,118,213,236,154,108,151,196, 51,139, 82, 50,172,118, 1,115,134,166,194, + 7, 28,119, 57, 28, 22,174, 82,141, 9, 92,212,229,126, 13,184,211,111,155,199, +240,119,165, 24,192,223, 43,243, 21,231,135, 61,241, 21,222,144,234, 39,244,201, +240,175,126,230,128,158,170,127,111,123,201,170, 85, 26, 22, 0, 77, 9,169,146, + 28,148,179, 92, 90, 54,136, 71, 16,160,176,184, 11,111,224, 92,226,199,134,115, +234, 90, 65, 9,238,185, 91,128,196, 39,129,210, 88,145,158, 49, 38, 83,131,230, +207, 51, 83,180, 77,108, 53,151, 24,148,201, 80,220, 86, 20,184, 1, +} ; + +// ../Source/JitKernels/GB_jit_kernel_ewise_fulla.c: +uint8_t GB_JITpackage_25 [265] = { + 40,181, 47,253, 96, 93, 1,253, 7, 0, 6, 16, 55, 33, 0,211, 60,126,207, 18, + 79, 68,206,199, 8,120,213,221,164, 10,182,185,135, 42,204,252, 29, 70,160,120, +108,150,254,223,235, 67, 8, 44, 0, 46, 0, 46, 0,149,126, 97,167, 55,236, 69, +221,133,246, 55, 30,173,164,130,233, 7,129,103,142,121, 84,151,243, 88,185, 47, + 98,206,223,252,160,126,204,221,248,114,233,230, 85, 37,167,170, 10, 30,174,211, + 4,241,160, 40,191,209, 47, 62,231,226,254, 44,152,243,156,167, 75,132,203,186, +166,194,192,186, 60,242, 32,151, 68,188,233, 16, 78, 77,239,124, 91,147,193, 16, +151,236, 12, 14,238,113,103,173,145,196,213,172, 66,162,221,170, 53, 56,141,225, +117, 82, 71,221, 46, 68,177,184,116,147, 22,117, 77,255,121, 93, 56, 29,211,143, + 43,120,131, 79, 81, 76, 47,130, 31, 82,126,164,193, 35,107,181, 44,139,216, 75, +245, 6, 57,168,199,253, 26,224, 81,191,187, 28,102,126, 95,186, 1,252, 41, 99, +246, 64, 28,112,119,151, 30,105,240, 8,114, 7, 36, 10, 0, 76,133, 20,121,185, +176, 33, 36, 39,221, 58,120, 76,166, 6,205,159,103,166,104,243, 99,181,242, 62, +160, 69, 81,224, 6, +} ; + +// ../Source/JitKernels/GB_jit_kernel_ewise_fulln.c: +uint8_t GB_JITpackage_26 [257] = { + 40,181, 47,253, 96, 92, 1,189, 7, 0,242, 15, 53, 33, 16,241, 54, 54,220,197, + 4,107,254, 26,197, 9,229,213,172,201,232, 18,206,225, 55,234, 56,126,128, 67, + 61, 51, 2, 0, 80, 5, 51,115,118,166,193, 33,107,181, 44,123,216, 75,245,246, +184,168,203,253, 26, 0, 78,191,191, 60, 94,126, 95,186, 1,252, 37,101, 6, 69, + 28,112,119,159,156,105,112,232,241,206,209,121,141,203,168,245,145,184,154,229, + 32,218,173, 26,195,211, 22, 94, 49,218,213,237, 58, 56,197,165,219,172, 38, 75, +250, 16,252, 70,204, 47,253,120,130,183,248, 18, 78,122, 82,124, 16, 87, 41,130, +104, 76,146,207,232, 39,223,115,114,135, 20,236,121,206,152, 71, 4,171,178,164, +194,160,178, 28, 2, 31,143, 72,156,249, 16, 62, 97,190, 9, 55,230,130, 29, 30, + 89,172,210,112,252,244,118, 61,169,191,209,254,198,165,157, 84,128,249,193, 51, +191,192, 73,204,185,156,220, 39,177,230,111,126, 81,191,229,110, 92,185,116,115, +138,154, 18, 69, 5, 10, 0, 76,133,244,120,185,176, 33, 36,231,220, 58,120, 76, +166, 6,205,159,103,166,104,235, 99,181,113, 62,160, 69, 81,224, 6, +} ; + +// ../Source/JitKernels/GB_jit_kernel_reduce.c: +uint8_t GB_JITpackage_27 [1307] = { + 40,181, 47,253, 96,149, 12,141, 40, 0,198,123,182, 41,192,208,108, 14, 42,213, +238,181,201, 26,137, 85, 64,176,119,162,220,185,101, 95,213, 70,142,159,251, 48, + 63,202, 78,221, 57,195,150,211,239, 42, 10,213, 85, 0, 2,163, 0,162, 0,185, + 0,116,156,245, 98,135, 31,123,201, 6, 51,173, 95,165, 77,226,227, 58,214,175, +189,219, 75,167,120, 48, 87,208, 59,172,223, 41,132,224,243, 56,211,242,102, 60, + 90,250,219,162,175, 54,200, 73, 18, 8,229,209, 32,157,164,245,202,237,250,213, + 60,182,151, 61, 26,143, 77,107,230, 33,113,113, 32, 94,107,220,198,221, 57,206, +224, 69,237, 60, 12,173, 87, 6, 20, 9,229,145, 48,145, 80, 78,209,233, 21,174, + 26,243, 58,196,186, 8,204, 86,172,220,171,205,202, 88, 64,114, 94, 76,165,241, +157,228,214,185,150,155,116,103, 56, 41,190,205, 31,109,205,191,246,251,185,204, +225, 21, 10,105, 90,122,125,187,176,199,219, 25, 93,174, 24,157, 5,243, 72, 68, +122, 68, 34, 1,228,244, 10, 0, 8, 64, 33,149, 14, 73,113,134, 90,146, 42,215, +134,158, 55, 31,134, 21,116,177,106,220,226,255, 23,133,163,237,112, 30, 91,236, +190, 26, 32, 73,144, 10,194,184, 67,239,206,139,190,175,188, 14,143, 69, 19, 20, +206,227,250,133,141,115,205,165,189,157, 95,225, 10,102,175, 12,233, 88, 3, 62, + 78,175, 67,251,189,239, 60, 22,203,177, 69,222,113,125,123,150, 30,114,101,218, + 70,211,116, 7, 8, 28,134,110,243,100, 56,157,229, 94,140, 21,151,175, 68,114, +138,185,142,245,161,122,115,105,189,207,127,246,239, 92,146,162,165,207,179,130, +160, 87, 32, 27,246,167,162,124, 62,223,132, 82,186,140, 51,121,155,134,250,120, + 30,164, 37,126,213, 1, 96,195,116,130, 83, 25,211,116,106,236, 80,163,202,168, + 72,107,122, 38,227, 97,152,156, 99,105,176,173, 99,113, 54,201,223,105,232,182, +172,171, 88, 22,100,197, 67,214,201, 42,100, 93, 27, 14,195,120,222,236,104, 21, +109,158,221,244, 74,186,201,184, 76,230,177, 46,207,133,163,209,186, 75,166,209, + 56,235, 0,225, 27,151, 89, 54,147, 71,104, 25,134, 14, 6,161,105, 27, 76, 70, +141,170,130,233, 27, 45,227, 46,158, 11,235,116,151, 38,219, 58, 75,131,177, 58, + 28, 73, 72, 50, 57,198, 77, 88, 54,171,129,219, 54,218,165,147, 80,163,105,130, +203,184, 13,118,101, 29,214,177, 50, 23,236, 18,125,161, 0,227,172,139,227,161, + 68,211, 11, 78,133,166, 47,124,116, 74, 84,133,170,209,116, 93, 22,198,153,224, + 58,138,138, 87,237,104, 69,170,194,101, 24,146,212, 33, 41,156,218, 54,236,114, +241,108,211,199, 91,230,190,159,173, 70, 3,175,166,139, 72, 42,182, 56,234, 14, +128,201, 23, 22, 38, 14,142,175, 6, 52,157, 36,206,184, 54, 34,130,128,202, 97, +137,251,158, 34,152,254, 75, 27,146,194,169,233, 26,167, 97, 29,236,225, 25,203, +162,101, 48, 93,223, 6,171, 7,209,181,153, 78, 6, 92, 31,125, 73, 48,219, 15, + 46, 69, 92,164,233, 45,237, 22,249, 88,127,103,147,228,164, 16,111,156,239, 58, +155,113,158, 33, 41,118,190, 5,101, 92, 89, 92, 31,163, 29, 63,191,234,141, 29, + 64,187, 9,226,142, 98,240, 12,182,177, 42, 61,170,120,146, 11,159,167, 44,174, +213,156,230,156, 44,202,134,101, 22,141, 70,161,125, 44,178,250, 88, 4,200,170, +102, 85,128,240,168, 49, 45, 98,202,208,204,140, 36, 41, 72,161,208, 24, 32,132, + 16,227, 84, 25, 61, 50,161, 60, 11, 37, 78, 33, 1, 49, 68, 33, 36, 52, 34,146, + 52, 37, 41,169, 81, 56,210,138,113, 51,151,138,224,207,128,112,244, 92,110,135, +188, 49,192,179,216,186,111, 2,182,189,239, 20,162, 5,150, 25,222, 82,191,190, + 42,142,127, 66,138, 54,163,138,191,130,162,155, 70,138, 63,112,195,252,218,157, + 5,211,124,226, 38, 20,164,177, 91,105,177,193, 9, 20,216, 22,167,141, 83, 75, +251,211,130,133, 23,240, 99, 87,158,160, 73,186, 26,243,144, 59,230, 31,248, 9, +102,100,121,101,245,204,193, 0,143, 73, 8,202,193, 25,226,122,130, 77, 23,181, +213,100, 88, 4,233, 55, 65, 54,243, 11, 20, 50,111, 17,133, 92,154,196, 29, 4, +120,140,192, 12,192, 43,158,113, 37, 0,247,120,149,239,183,144,244,143,110, 57, + 29, 12, 48,194,112,210, 50,238,101,146,180,165,147,252, 0, 32, 82,137, 8,125, +137,172, 98,219,221, 85, 10, 68, 72,196, 87,112, 74,200,200, 27, 62,220, 8,110, +120,187,125,130,118,212,204,223,245,143, 46, 0,208,176,219,111,144, 87, 13, 18, +160,136, 44, 96,186,120,175,122, 21,184, 32, 30,120, 96,149,135, 10, 64,161,149, +130,132,184, 14,111, 68,150,150,207, 26, 20,246, 66,112,197,177,192,218, 90,134, +143, 64,212, 88,216, 14, 4,150,239, 30,237,107,102, 8,163, 17, 18,203,181,181, +181,174,135,120,184,205,229,188,178,252, 30, 11,129, 25,152,134, 80, 5,231,116, + 93,255,193, 12,161,200,184,159, 35,250, 96,213, 77, 33,195,248,235, 25,225, 59, +166,245,157,134, 23, 3,174,112,135, 0,251, 37,178,132, 0, 48,227,207,189,171, +223,232,225,152,220, 58,167, 71,167, 1,111,129, 23, 61,131,214,201,114,214, 6, + 80, 79, 52,177,244,165,216,192,248,139, 52,201, 3, 42,198, 97, 41, 82,125, 33, + 20,183,162,164, 87,159,157,237, 63,223,101,221,155,100,212,199,106, 97, 97, 87, +130, 36, 71, 14, 93, 64,192,183, 8,244,232,137,100, 13, 8,129,249,174, 1,110, + 63,202, 72,144,209,194,125,103, 44,143,241,169, 45,235, 72,195,138, 67,198,244, +248,135,145,214, 22,200, 69, 64, 26,162,179, 40,231, 60,209,197, 49,140, 65,248, +164, 0,139,160,199, 18,163,174, 91,142,222, 24, 86, 60,172,116, 35,143,104,194, + 37, 17,167,168, 91, 19,170,215,244,181,143,141, 77,146,117, 69,239,100,130, 92, +196, 23, 13,210,176, 49,224,166,249,254,204,164, 53, 57,107,112,201,125,242,120, + 4,242,253,235, 1,132, 1, +} ; + +// ../Source/JitKernels/GB_jit_kernel_rowscale.c: +uint8_t GB_JITpackage_28 [286] = { + 40,181, 47,253, 96,116, 1,165, 8, 0, 86,145, 58, 33, 32,179, 27,179,251,172, +125,126, 51, 53, 50,201, 85, 31,241,241, 95, 8,165,171, 6,186,191,145, 33,130, +206, 50, 32, 4, 7, 0, 2, 48, 0, 49, 0, 50, 0,142,219,109, 6,124,220,180, + 47, 7,211, 33, 27,126,182,157,175, 65,127, 51,253,250, 34, 52, 24, 88, 43,234, +228,150, 86,252,225,220,105, 29,188,190,153,249, 53,243,210,154,162,162, 68, 81, + 1, 56,123,153,239,218, 90,171, 11,136,202, 80, 73,137,131,161,234, 65, 21,116, + 1,191,135, 54,122,178, 58,228,101,206,247,147, 46, 72,107,187,188,144, 94, 77, +225,248,210, 80,122,254,142,140,247,191,178,194,117,115,203, 34, 93, 6,233,205, +186,184, 77,155, 19,199, 99, 94, 90, 52, 76,149,228, 94,165,161,213,138,235,143, +249, 12,250,197, 33, 57, 6,189,254, 38, 89, 26,146,233,226,158,235,216,187, 14, + 49,142,226,162, 7, 82,102, 24, 70,145,243,186,224,237,100,191,128, 58,121,166, + 54,252, 60, 79, 64,251,165, 99, 43,248,129,238,238, 40,138,139, 30, 8,154,155, +112,157,100,102,155,133, 5, 13, 0, 70,128,146,244,166,248, 34, 64, 0, 22,128, +144,198,200,117,154,152, 76, 13,154, 63,207, 76,209,230,177,213,188, 99, 80,102, +184, 0, 81, 81, 48, 4, } ; -// ../Source/Template/GB_add_sparse_noM.c: -uint8_t GB_JITpackage_63 [2031] = { - 40,181, 47,253, 96,118, 63, 45, 63, 0,234, 70,236, 12, 40,176,148,177, 14,180, -145,158,138, 11,149,130,216, 47,240, 78,183, 38, 21,184,176, 27,178, 30, 64, 24, - 71, 39,113,155, 6,104,126,194, 63,165, 63, 77,239,142, 75,194, 0,191, 0,200, - 0,179,203,213,252,110, 62,238,219, 81,213,176,207, 55, 42, 95,253,214,121,229, -241,212,250,102, 57,250,253, 42,119,207,147,231, 60,148, 59,179,244, 62,109,238, -240, 1,104,176, 60,158, 58,252,230,214,188,179,251, 54,219,179, 86,230, 47, 59, -192,111,125,149,233,196,243,218,231, 74,143,251,159,255,255,100, 50, 50,185, 88, - 50,149,217,105,210,194,107,238,108,174, 51,157,155,167, 50, 49,157, 90, 75, 84, - 48, 56, 20,150,109,130,220,137,103,232, 56,119, 29, 29,186,231,193, 87, 5,153, - 75,166,146,128,185,100, 78,209,166, 87,184, 65, 36,231, 22,248, 82,151,235,168, - 69,175, 46, 40, 17, 59, 43, 47,132,230,154,185,191,107,242,129,229,232,149,190, -186,211,150, 58,130, 91,175, 34, 5, 55, 20,143, 74, 51, 89,215,124, 42,197, 38, -190,210, 98,108,219, 36, 22, 33, 78, 64, 48,169, 16, 16, 4,215, 96, 46, 31, 1, -129,115, 1,222, 44,201, 78,201,111, 46, 66, 61, 52, 11,204,199, 37, 73,242,184, -122,122,103,206,210,126,118,162,223, 2,127, 43,119, 60, 61,251,229,119,208,222, -232,180, 92,125, 8,238,139, 78,186,136,130,199,157,214, 29,233, 85,110, 73, 42, -101,223, 75, 30,173, 31,161,100,218,213, 3,247,134,205, 43,177,136,109, 84, 98, -240,152,111, 54,239, 92, 48,130, 2,227,112,224,116,174, 3, 98,100, 56,229, 36, - 36, 24,110, 12, 78, 23,133, 58,215, 5, 41,217,111, 37,192,116,110,114, 58,158, -125, 51,157, 19, 68,118, 31,113,245,248,214,172, 77,144,123,242,219, 26,164, 55, -218,149,231,125,156,149,163,220, 89,151,107, 22,161,165,203, 77,250, 54,243, 23, - 41,184,177,126,139,132, 68,197,196,177,252, 86,187, 60, 71,199,221,229,215,124, -218,223, 38,198,210, 62,189,125,249,194,109,113,167,215, 33, 25,203, 2,230,180, -223,241,101,151,199,119,118,116,244,205,115,171,218,185,250, 73,219, 35, 85,207, -171,156,102,163, 95,189,242,227, 86,210, 23, 48,151, 12,102, 93, 31, 44,212,145, -240, 80,124, 40,217, 89, 79,198, 44,203, 10,178,238,238,238, 74, 51,100, 22, 86, - 51, 6,177, 12, 10,144,117,165, 39, 53,140, 81,148,204, 51,155, 0,121, 38, 42, -112,149,241,120,213,150, 53,157, 2,212,185, 60, 23,157, 24, 99, 54, 61,214,234, - 85, 8,124,229,209,114, 58,196, 56, 16, 36, 1,186, 60,220,220,104,140, 20,216, -223,156,195,158,186,101, 55,222,214,169,219,142,167,224, 55, 61,221,162,168,134, -219, 51,252,242,205,237, 51,102,128,144,105, 79, 29, 13, 79, 8, 36,178, 58, 22, - 24,231,227,185, 48,248,129,128, 33,138,103, 44,189,216, 25,223,230, 48,216, 27, -105, 29,127, 93,190, 38,147, 73,201,196, 44, 75,101,151, 24, 51,104, 39,153, 43, - 61, 67,230,166, 23,127,235,161,101, 99,140, 49,118,140,209,225,176, 33,132, 25, - 74,132, 2, 2,211,167,215, 29,169, 71, 18,231,175,102,242,130,137, 49, 70, 8, - 33,140,215, 44,200, 74,165,170,122,122,132, 21,130,157, 11,203, 8,193, 9, 79, -228,238,213,154, 97, 94,129,246,155,107,105,191,191,209,230, 54, 58,177,104,223, -240, 56,161,181,179, 54,241,157,153,182, 8,165,175, 80,217,105,223, 72, 97,224, -153,130, 59,192,152, 0, 99, 83, 25, 99, 62,111,229,102,118, 60,175, 65,104,144, -242, 21,132,241,154, 3, 14, 10, 87,167, 72,227, 15, 84, 49,190,178,218,154, 94, -178,218,104,142, 74,217,224,210, 29,101,140, 22,250,137,171, 29,205, 92, 73, 12, -127,139,188,211, 86,206, 4,200,234, 92,153, 2,235, 1, 19, 93, 33,207, 67, 85, - 3,129,249,168,129,181, 50, 52, 34, 34, 34, 34, 73, 65,146, 52, 6,161, 12, 49, -134, 57,166,180,179, 14, 34,120, 56,154, 34, 34, 4,193, 16,194, 16, 66, 4, 74, - 64,168,128, 16, 33, 34, 70, 40, 50, 34, 34, 82,101,115,213, 13,208,120, 61, 87, -243,102, 19,147, 8, 54,251,251, 77,188, 12, 39, 34, 85,231, 50, 82,246,190,185, -252,235,213,231,148,180, 71, 31, 20,102,165,186,160,237, 90,173,107,190,108,173, -114, 45,214,233, 57, 76,180, 57, 7,128,137,129,198,144,220, 42,107,197, 27,181, -210,143, 90,173, 38,243, 22, 13,214,101,224,139,194, 3,202,151, 62,165, 3,255, - 84, 60,212,110, 16, 7,199,252, 69,208,177,115, 49,163, 92, 63,232,174,178, 19, -174,129, 93, 39,178,160, 21,169,226, 32,125,102,106,197, 96, 48,214,159, 75, 83, - 79, 56,205,105,116,106, 4, 35, 36,111,111,191,230,242,187, 80,182, 87, 53, 78, -152,205, 22,249,223,138, 52, 63, 91,100,170, 42,217,105, 23,158, 22, 20, 15, 71, - 29,183, 77, 79,156, 41,142, 3, 95, 39,140,197, 54,164,223,224,200,209,237, 0, -120, 82, 28,147,121, 67,130,221,144,227, 1,100,156, 50,208,172,210,226,110,241, - 71, 75,186, 3,212,243, 3,180, 7, 68,112, 53,145,175,129,173,152, 63, 26, 67, -169,191,172, 62,195, 65,227,228,121, 78, 8,184, 81,152,240,195, 53, 85,181,162, - 15, 33,182,194,182, 14,196,231, 39, 13,199, 77,157, 80,161, 71,128, 84, 43,189, -114,232,147,178, 41, 9,134, 90, 25,255,205,235, 96,217,100, 23, 60, 24,122, 11, - 9, 9, 9,131,113, 7, 48,108, 41, 9,212,214, 25,143,236, 70, 8,139, 49,248, -100, 19,148,150, 58, 56, 38,175,110,132,152, 71,119, 98, 84,174, 16,172,128,135, -238, 74, 77,112, 9, 73, 57, 46,189, 98, 22,161,251, 52,114,246, 48,172,159,167, -167, 40,201, 65,114, 83,133,141, 12, 75,207, 18,144, 30, 95,251,207, 78,136, 89, - 74,115,222, 84, 61, 76, 16, 74, 93, 28,163, 63,104, 42, 57,117, 25,172,147, 48, - 40,102,188,106, 3,236,114,255,232,151,173, 76, 26,221,157, 0,221,229, 28,124, - 28, 20,188,140,111,187,129,234,201,139, 53, 84,255, 1,188,219, 43,204,175,239, - 56, 28,104,167,224,132,206, 20,163, 20,247,251, 23,203, 29, 1,140, 27, 59,249, - 56, 19, 26,194,169,189,211, 71,218, 44,224,165, 11, 60,180,143,186,165, 50,193, -150,171, 47, 0,238,177,220, 35,160,220, 55, 63,236,238, 47, 48, 10,225,248,112, -157, 55,192, 87,235, 84, 2, 13, 53,144, 59, 13,102, 53,159,205,208,140,127, 52, -111,140, 99,130,218, 0,254,115,240,183,157,198,104,125, 97, 27, 48,164,150,197, -192,128, 88,220, 38,130,210, 58, 36,249,147,166, 33,148,217, 66, 58,180, 57,108, -192, 52,140, 60, 65,244,241,177,116,141,232,133,135,221,168, 63, 57,173, 69, 18, -220, 5, 13,118,166,180, 4,187,124,229,248,209,152, 2,212, 0, 55, 0, 77,158, -111,233, 82,207,116, 58, 49,187,109, 24, 4, 4, 88, 60,232,145,101, 64, 14, 58, -224, 50,184,107,167,187,253,148, 3,142,131, 19, 42,205,120,159, 34,233, 27,116, - 11,168, 69, 17,162, 40, 79, 71,217,116,209, 12, 88,174, 14,178,176,129,169,196, -175, 45,187,177,248, 7,223, 53,186, 21,194, 69,149,116,236, 44,160, 3, 63,125, -110,249,173,115,141,115,125,122,205,232,170,220, 78,227, 6, 99,134,177, 23, 23, - 10,125,248,239,152, 94, 34, 69, 72, 45,145,109, 62,191,164,169, 52,128,210,106, -111,135, 82, 88, 52, 45,103,110,139, 46, 58, 10,160, 91, 49,187, 36,184,184, 59, - 87, 1,220, 95, 8, 73, 2, 47,151,188, 37, 0,187,232,124,127,118,207, 83,203, -137,181, 23, 19,215,210,251, 89, 31,188,168,108,187,160, 60,163,253, 18, 97, 23, -124,182,188,130, 87, 42, 7,110, 96,101,103, 1, 13, 33, 67,144,211,246, 60,234, -113, 42,117, 11,239,171, 35,161,149, 5, 4, 51,218, 26,197,100, 67, 87, 64,122, - 47,136, 48, 7,180,201,210, 16,150,181,176, 89,102, 46, 58, 76, 50, 68,128,114, - 4, 29,117,197,105, 37,236,208,205,200, 11,141, 52,197, 80, 81,217,180,161,201, -115,210,185, 9,127, 28, 99,238, 9, 26, 31,156,139,241, 42, 79,220,193,154,182, -221,203, 78,227,151,171,203,128,207,137, 7,152,193,154,164,198,144,205, 36, 39, -239,152, 42,135,158,146,160,178, 21, 18,180,242,107, 77, 51,237,126, 35,145,240, -182, 24,247, 83,156,147, 34, 27, 72,187,229,119,189,201,168, 46,141,188,230,231, -135,148,152,219, 55, 34, 19,140,212, 14,130, 10,130,242, 38,116, 27,103,115,128, -108,211,200,135, 70, 61, 28,236,126, 37,175,184,148,165,177, 97, 93, 66,220, 25, -111,181,151,104,166, 50, 64,113,207, 45,122,116, 9,150,180, 96,164,130,101, 32, - 88,191,143,116, 52, 39,242,119,125, 35, 44, 94,140,109,235,202,197,197,229, 38, -198, 49,128,145,160,188, 66,157, 76, 50,210, 21, 53,166,156,240,177, 94,128, 73, - 55, 74,101,114,141,206, 28,109,238,108,131, 40,219, 45,125, 15, 60, 72, 73,198, -164,238, 24, 77, 85, 90, 16,146, 40,244,143, 27,242, 58,105, 58, 53, 55, 57,238, -215, 14, 84,136,118,226, 86,141, 83,136, 43, 20,179, 59,246, 4,214,224, 54, 56, -147,219,114, 20, 53,200,214, 16, 79,142, 73, 68,241,146, 26, 39,252, 86,129,217, -169, 36, 53,203, 74, 14,182, 28, 52,235,255, 96,194,170,217, 97, 38,235,224,152, -106,116, 88, 23,103, 22,156,106,191,109, 2, +// ../Source/JitKernels/GB_jit_kernel_select_bitmap.c: +uint8_t GB_JITpackage_29 [319] = { + 40,181, 47,253, 96,195, 1,173, 9, 0,214, 82, 63, 33, 0,145,117, 62, 79, 3, +218,207, 30, 3,165, 68,193,149,136, 51,228, 9,251, 52, 69,251, 98, 25, 50,231, +204,210,255,235,245, 33, 4, 53, 0, 54, 0, 54, 0,213, 55, 99,206, 96,240,247, +129, 87,105,214,104,130, 39,134,104,244, 4, 77,175, 51, 78,189,250, 47, 99,252, + 63,194, 4, 49, 25, 79,110, 14,155,108,244,146, 93,158,125,185, 25, 91,174,133, +125,154,106, 52, 77, 1, 84,212, 99, 8,154,213, 17,103, 99, 10,206,101,139, 89, +212,104,217, 33,214,162,200,197, 73, 98,107,206, 70,187, 59,154,199, 10,238, 78, +146,213, 7, 6,138, 64, 69,135, 2,129, 58, 20, 62, 31,160, 88, 3, 94,151, 2, +150,147,124, 87, 34,185,143,237,122,215,195,114,246,162,224,192,255, 87, 78, 77, + 28,122,190,125, 91,199, 93,174,114,124,153,117,191,133,213,172,119, 53,251,232, +108,227, 90,101,109, 26,118,191,140,113, 45,172, 18,164,181,118,106,226,144,231, +217,197, 2,226, 93,235,196,158,151,103,154,251, 4,132, 82,103,144, 52, 49,157, +175,133, 1,222, 98, 74,134, 37, 5,139,101, 39, 14, 93,202,116,204,155, 67,130, +231, 17, 92,241,205, 3, 19, 0, 78, 9,137,133, 72, 36,133,211, 71,192, 9,205, +213,155, 6,118, 90,250,106,161, 22, 33, 13, 14,215,113, 98, 50, 53,104,254, 60, + 51, 69,219,195, 86,115,135, 65,140, 41,252,192, 16,154, 57, 60, 69,193, 16, +} ; + +// ../Source/JitKernels/GB_jit_kernel_select_phase1.c: +uint8_t GB_JITpackage_30 [394] = { + 40,181, 47,253, 96,107, 2, 5, 12, 0,102,215, 75, 33, 16,211, 54,134, 15,196, +236, 53, 67,137,207, 4,211,246,129, 47, 33, 34,189, 8,250,110,245,191,219,249, + 87, 17, 1, 0,168,210, 25, 65, 0, 68, 0, 65, 0, 85,193,224,210,141,124, 48, +226, 79,231,112,130,229, 37,184, 61, 29,204,249,160, 90,217, 5,138,157,198, 18, + 63,234, 78,172,191, 49, 89,167,115,144,136, 87,238,238,137,234,199, 14, 20,237, +190, 31,254,104,195,207,250, 57,118,227,141,189, 48,167,168, 57, 81, 84,214, 67, +179, 92,131,102,180,218,140, 82, 54, 42,241,204,186, 42, 25,102, 57, 72,196, 94, +216, 44, 16, 12,211,131,183, 19, 45, 79,232,199, 31,222,249, 61,200,244, 99,254, +139,179,233,226,208, 8,222,127,244,143,191,249,184, 65, 13,222, 60, 12, 45, 31, + 28, 12, 5,195,132, 8, 94,126,133, 51, 38, 91,118,124, 46,252,179,213,107,244, +119,236, 95, 28,142,150,243,238, 62,199,236,193,251,102,242,115,206,237, 50, 97, +216, 93,223,175,113,138,162, 19, 8, 71,177,108,223,123, 31, 14,184,187, 79,208, + 84,184, 20,121,133,171,108,154,173,104, 13,115,134,166,194,165, 90,105,163, 97, +169,246,210, 88,228, 89,147,251, 53,224, 18,126,119,161,216,249,109, 75,189,243, + 95, 24,192,223, 35,195,155, 37, 78, 38,193, 93,186, 36,136, 34,129, 47,188,116, +170, 97, 56,139,193, 88, 74,197, 86, 7,133,106,212, 49, 63, 28, 29, 32, 48,132, + 8,206, 44,118,212, 68,162,150, 89, 59, 75, 4,155,129,233,131,208, 91, 17,164, +220,190,128, 84, 46, 24, 7, 71,130, 32, 76,248,169,100, 80, 70,226,228,138, 54, + 92,123, 13, 1,241, 91, 84,105,128,184,227,132,153, 26, 52,155,103,166,219, 32, +173,230, 15, 67,172, 53,238, 27,211, 4, 70, 20, 5,110, +} ; + +// ../Source/JitKernels/GB_jit_kernel_select_phase2.c: +uint8_t GB_JITpackage_31 [336] = { + 40,181, 47,253, 96,239, 1, 53, 10, 0,134,211, 64, 33, 16,241, 54,230,113,200, +133, 61,140,215,215, 9, 45,121,142,201, 50,248, 12,120, 95,139, 89,167,237, 98, +217,136, 0, 0, 84,193, 12, 53, 0, 55, 0, 55, 0,148,111,194,141,185,224,206, + 7,150,202,170,144,244, 50,134,120,157, 61,210,254,198,165,157,222, 49, 26, 78, +221,221, 17,244,181, 23,146,119,127, 47,190,190,226,143,249, 45,119,227,202,173, + 48,159,166, 25, 77, 83, 4,137, 70, 31,126, 30, 73, 57, 34, 63,158,224, 61, 62, +200,136, 94,143,255,225, 44,138, 92,155, 4,126, 38,191,126,206,245, 14, 41,152, +115, 81,164,124, 96,160, 4, 26, 29, 10, 4,234,208,247,248, 64,227,140,119,185, + 20,152, 11, 61,174,112,141,229,251,195,121,235,207, 2,175,155,164,187,148,187, + 79,206, 76, 56,244,184,214,105,220,118,105,181,212, 98,187,157, 85,179,106,111, + 86, 31, 92,117,120, 70, 85, 90,134,221,142,209,184, 21, 54, 3,115,118,102,194, + 33,107,171,101, 65,236,173, 50,246,248,152,203,253, 25,240, 73, 21, 6,240, 7, + 75,241, 27, 39, 24, 28, 31,178,140,101,184, 55,207, 35,112,133,111, 36,146,251, +208,174,189, 30,117,171,215, 4, 7, 18,190,203, 24, 32, 80, 66,100, 91, 7, 69, + 8, 35, 76, 18, 73,157, 62,124,102,240, 0, 65,216,227, 62,164,180,141,113,115, +149, 5,238,214,218, 46, 40, 45,162, 52, 64,244, 56,129, 76, 13,154,207, 51, 19, +218, 32, 94,205, 31, 70,172, 13,183,198, 52,194,136,162,197, 13, +} ; + +// ../Source/JitKernels/GB_jit_kernel_split_bitmap.c: +uint8_t GB_JITpackage_32 [331] = { + 40,181, 47,253, 96,205, 1, 13, 10, 0,230, 83, 65, 33, 0,211, 60,238,110, 65, +100, 93, 69,167, 9, 54, 71,246, 92,144, 33,233,162,171,139,249, 27,238,174,142, +108,255,255,247,250, 23, 2, 54, 0, 56, 0, 56, 0,222, 9,119, 6,115, 61,159, + 29,205,172, 48, 91,141, 25,126,212, 54,119,191,175,166,147,151, 63,190,219,122, +102,139,215,169,187, 27,178,197,236, 59,193,121,172,248, 69,253,151,186,175,165, + 90,152, 83,148,148, 40, 42, 82, 48, 85,210,135,159,205,212, 13,250, 47,229,110, +241,193,133,244,163,248,223,205,164, 72, 98,155,192,223,232, 31,159,243,113,135, +149,203, 57,198,212, 39,161, 18, 84, 82, 97, 32,168, 60,250, 32,159,227,221,216, +132, 79, 52, 15, 78,209,240,140, 90, 90,134, 85,111,193,144, 50,234,248,180,248, +188, 62,127,196,150,226,147, 82,247,201,185, 32,223,180, 7, 36,162,121, 94, 25, +146,108,218,245,226,165, 60, 24,144,145,229, 90,200,115,198, 17,110,185, 95, 82, +126,228,193,163,174, 83, 92, 23,164,171,150,198, 32, 23,181,102,191, 6,124,211, +111,139, 51,230,119, 5,248,131, 26,252,137, 55,224,238, 46, 61,242,224, 17,228, +154,167,113, 91,221,168,195, 91, 88,217,214,213, 76, 17, 21, 0, 77, 9,121, 67, +112, 32, 0,139, 68, 72,131,248, 58, 20, 76,128, 98,102, 94, 83,192, 86, 2,124, + 19,144, 76,120,121, 20,180, 77,243,231,153, 41,218, 48,182, 90,191, 24,100,102, +190, 3,120, 99,182, 60, 76,128, 41, 10,134, +} ; + +// ../Source/JitKernels/GB_jit_kernel_split_full.c: +uint8_t GB_JITpackage_33 [330] = { + 40,181, 47,253, 96,193, 1, 5, 10, 0,166, 19, 65, 33, 16,209, 60,230,145, 19, +194,135,159,176, 6,108,140,139, 4, 9,101,127,150, 85,235,152,229,166, 47,154, +234,136, 0, 0,170,106, 6, 54, 0, 56, 0, 55, 0,212, 55,223,190, 88, 48,196, +231, 70,107,245,233, 43, 94,134, 31,197,171,183,223, 24,179, 73,203, 63,227,125, +253,178, 67,236,212,221, 13, 57, 99,188,172, 71,155, 63, 20,191, 98, 55, 6,109, +117,249, 52,201,104,154, 2, 82, 32, 81,209,127,220,213,212, 13,226, 99, 15,239, +240, 59, 70,244, 99,248, 28,174,145, 36,145, 73,221,103,196, 31, 95,243,113,127, + 20,172,121,206,212, 39,129, 18, 80, 81, 97, 32,160, 28,226, 30,159, 35,206,220, +132, 75, 1,154,194,225,149, 86, 88,189, 44,132,209,144, 18,218,248, 4,125, 98, +159, 63,230,235,249,164,212,125,106,172,199, 51,236, 17,129,168,158,150,126, 38, + 25,102,125,136,189,239, 2, 18, 2,241,125, 92, 95, 28,225, 32,230, 2, 82,118, +228,193,161,109, 83, 88, 86,100,179,149,120, 61, 30,138,152,253, 34,128,147,126, +223,172, 45,191, 45,192,191,195,100, 46,196, 1,119,119,201,145, 7,135, 30,199, + 32,152,150,217, 90, 35,139,154,109,182, 42, 30, 1, 21, 0, 75,137,108, 33, 54, + 16,128, 37, 33,164,161,189,142, 4, 19,160,152,153,215, 20,176,149, 0,223, 4, + 36, 19,222, 28, 5,109,211,252,121,102,138, 54,137,173,214, 35, 6,153,152,120, +192,238, 75, 91,194, 4,152,162, 96, 8, +} ; + +// ../Source/JitKernels/GB_jit_kernel_split_sparse.c: +uint8_t GB_JITpackage_34 [328] = { + 40,181, 47,253, 96,205, 1,245, 9, 0,134,211, 63, 33, 0,241,230,238, 50,108, + 88, 84, 29, 3, 2,125, 57,231,168, 27,125, 12,171,202, 44, 52,237,122, 84,208, + 97,255,255,183,255, 80, 2, 52, 0, 55, 0, 54, 0,137, 75,245, 27, 48, 95, 44, +216,113,106,107, 86,129, 99, 71, 98,182, 51,198,216,105,189, 67,156,187, 95,178, +136, 95,255, 27,186, 36,187,140,195,177,188, 97,139,100, 87,110,198,148, 91, 97, +159,166, 25, 77, 83,216,155, 2,137,138, 26,244,186,177,222, 64, 54,150,224, 44, +246,167,136,186, 20,219,195, 89, 4, 73,108,210,215, 25,178,203,230, 94,102,112, +130,185,135, 97, 61, 37, 80, 2, 42, 42, 12, 4,212, 33,239, 57, 45,113,166, 11, + 13,238, 98, 60,171,149,150, 97,215,161, 88,204, 9,109, 78, 41,167,248,180,203, +176,147,156,214,250, 83,141,245,124,211, 26, 15,168,142,212, 26,159,200,166, 89, + 45, 98, 73,127,129, 9, 81,112,247,124,188, 28,113, 74,115,118,230,225,144,181, +151,101, 61,236,173, 72,236,185, 72, 98,114,147, 0, 79,234,220,133,163,165,243, + 5,188, 63, 76,232,137, 56,240,255,147, 51, 15,135,158,107, 14,141,219,238,101, +185,186,217,108,179, 55,187, 2, 22, 0, 77, 9,121, 67,112, 32, 0,139, 68, 72, +131,248, 58, 20, 76,128, 98,102, 94, 83,192, 86, 2,124, 19,144, 76,120,121, 20, +180, 77,243,231,129, 41,154, 73, 24, 2,198,172,229, 23,131,246,204,119, 0,111, +204,182, 76, 1,154,162, 96, 8, +} ; + +// ../Source/JitKernels/GB_jit_kernel_subassign_05d.c: +uint8_t GB_JITpackage_35 [614] = { + 40,181, 47,253, 96,196, 4,229, 18, 0, 6,162,104, 33, 0,213, 54,238, 40,174, +177, 33, 60, 21,144, 92, 46, 85, 42,205, 0, 16,200, 56,218, 86,102,134,161, 93, +107, 81, 85, 53, 84, 69, 9, 95, 0, 92, 0, 96, 0,122,131, 31,155,241,123, 53, +183, 14, 6,130,225, 74, 20, 8, 6,175, 42,229,150,182, 34,250,112, 76,243, 18, +220, 98,104, 53,110,117, 26,231, 0, 71,154, 35,217,235, 76,199,238,183, 37,187, +233, 53,126,207,181,245,205,241,131, 35,183, 50,189,180,106,103,120,163,178,216, +220,179,138,121, 8,194,196, 31,171, 53,245,144,122,222,199,249, 67,115, 91,208, +116, 68,124, 48,152,174,193, 32,141,107,115,113,251,214,180,122,233,209,207,151, +106, 28,183,177,132,100,173,244, 43,189,227,231,185,101,209,223,179, 93,201,188, +245,235, 75,191, 49, 20,235, 12,105,186,241,235,207,163,103, 86,231, 34,118,133, + 87,153,149, 81,155,103,238,137,224,254,202, 68,192, 12,215,131,149,142,154,103, +249,237,103, 55,126, 79,114, 85,203, 93,156, 7, 6,243, 94,148, 95,127,198, 3, +158,123,105,245,253, 31, 72, 69,162,177,108, 50,223,123,159, 13,184,187, 79,164, + 73,225, 21,229, 23,205, 37,131,153,150,136,164,235, 52,199,166,155, 28,196,146, +129, 80,156,211, 28, 23, 46, 50, 53,146,201,116, 68,166, 9,211,111,243,189,224, +182, 35, 47,239,103,127,143,111, 77,134,190,173,111,210,227,214,103,210,203,109, +181,151,152,250,139, 40,232,152, 86,159, 72,176,136,127, 44,119,211, 84,154, 20, + 94,117, 29,100,219, 54,221,116,228, 8,229, 56,147,251, 51,160, 98,191,233, 29, +195,223, 19,224,239,145,183, 98, 91, 85,149,128,162, 4, 84, 40,139,163,234, 16, + 76, 71, 51,183,233,179, 30,254,192, 55, 65, 77,142,226, 56, 67,249, 71,223,252, +106,175,158,161,175, 98,168,240,198, 53,203,208, 25,254,205, 50,139,225,135,243, + 63,127, 26,139,118, 87, 76,126, 30,170, 52, 75, 32, 48,132, 16,231,142,117, 78, + 8,217, 82, 7, 72, 1, 39, 56, 4, 31, 84,198, 25, 54, 66,144, 36, 19,102,204, +240,183, 80,184, 6, 98,135,130, 36, 56, 7, 76, 8, 5, 0,203, 3, 71,176,114, +128, 60,131,152, 67,201, 51,140, 57,128, 84,131,201,193, 95,160, 42, 96,204,212, + 79, 3, 43,237,248,131, 40,168,126, 10, 11,130,172,182, 5, 64,119, 13, 15,226, + 39, 24,210, 64,161,206, 24,201, 64, 6,202,254,192,209, 95,253,178, 33,122, 55, +176, 39,134,160,111,148,231, 95,139,179,116,206,225,116,177,107, 38, 24,212,114, +107,122,191,160,207, 23,181, 36, 21,161,239,231,132,188, 17, 17,240,180,244, 96, +240, 13,215,208, 98,102, 27,168,204,113, 41,115, 28,202, 0,195, 52, 49,163,118, + 91,102,122,223, 37, 86, 27,220,130,232, 81, 20,184, 1, } ; -// ../Source/Template/GB_add_sparse_template.c: -uint8_t GB_JITpackage_64 [1707] = { - 40,181, 47,253, 96, 89, 34, 13, 53, 0,246,252,178, 40,192, 84,177, 14,104, 89, -224,245,150,180,253, 21, 50,184, 48, 63,135,107, 27, 45, 32, 65,240, 5,178, 83, -169,100,104,165,248, 80,102,183, 77, 81,232, 40,206, 5,169, 0,159, 0,167, 0, -157, 55, 59,170, 88, 7,149, 45, 58,150, 0, 26,235,145,194, 79,125,225,113, 99, -242,102, 56,250,221,106, 6,159, 77, 0,104, 62,231,150, 89, 56,202, 82, 84,157, -250,179,220,189,178, 78,161,100,126,235, 41, 6,212,193,165, 53, 12, 90,247,204, -109,153,201, 76, 59, 78, 92, 26,211,198, 36,231,162,241,128, 65,197, 6,185,141, -219,115,156,181, 14,233,249,156,238, 19,194,129,193,193,101, 1, 99,112,240, 10, - 38,125,194, 18, 4, 62,156,114, 31,209,114, 29, 73,208,167,143,227, 60,205,194, - 27,145,249,116,150,219,135,114,219,142,104, 5,199,242,214,105,107, 33,111,232, -104,172, 79,207,226, 42,235,207,116,134,211,142, 58, 95,141, 47,180,248,138, 17, - 94, 47,226, 5, 5,148, 75, 65, 65,114, 4,233, 72,148,122,110,177, 53, 12,191, - 66, 47, 75,194, 17,246,213,242, 53,218,232,236, 57,225,133,246,135,163, 14,120, -173,128,245,131,138,199,148,145,172,107, 24,236, 83,121,220,242,102,218,207,116, -171,216, 51,152,151, 80, 40, 21, 41,211,183, 94,241,167,251,166, 53,102,110,133, -160, 70, 68,143, 88,106,217,250,173, 89, 99,219,205, 56,207, 13,247,125, 86,143, -111,141,141, 55,128,169, 49,196,222, 51, 82,168, 61, 87, 90,227, 67,234,140, 85, -203, 61,122,107,160,159,106, 60, 97,246,129,225,232, 26,153,214,194, 99,122,183, -220,247, 35, 89, 82, 4,141,161,102,107, 62,135,147, 97,113, 12, 79,229, 99, 99, - 12,109,231,180,181,252, 41, 6,180, 55, 42, 51,173,216, 43,151,208, 79,197,219, - 32, 77, 53,208,192, 64,165,121,232,131,227,214,146, 14,242,108, 62, 31,135,177, - 88,150, 10,253,183, 44,142,180,175,201,178, 36,212, 3,171, 28,179,249, 56, 9, -140,235,225,193, 9,124,124,210, 44,233,214, 37,241, 34, 94,221,195,210,242,199, -228, 81,105,168, 60, 8,174,183,142,104,197, 23, 86,172,241,236,147, 99, 13,242, -158, 89,125, 99,114,226,195,211,122,220, 25,222,182,245,240,210, 51,218,179,130, -185,188,170,164,171,169,204, 62,107, 21, 61, 99, 56, 25,168, 16,199, 51,150, 28, -208,171,103,124,101,246,241,124, 37, 40,100, 42,111,205, 86, 94, 12,119,204,185, - 59, 44, 22,124,205, 25,110,240,234, 81,102, 9, 51, 97, 1, 20,202, 73,117,203, -146,178, 58, 33,149,217,201,175, 91,177,188, 58, 37,141, 59, 21,207, 6, 99, 67, -226, 38, 38,223,124, 60, 14,227,115,125, 38,174, 78, 0, 70,117, 42, 13,120,199, -109, 98,180,226,227, 58,215,133, 5,103, 99,225,217, 84, 92,160, 9,138,172,227, -173,239,150, 87,111,152,144, 86,153,109,213,188, 39,122,239,137, 68,239,189,247, - 68,239,189,247,222,123,239,189,247,222,155,228,123,239,157,200,137, 23, 97,240, -134,203,201, 72, 37,108, 76, 59,194,124, 97,198, 87,118, 42, 29,196, 88, 42,147, -179, 78,194,104,120,230, 30,119,120,197, 93, 53, 95,150,244, 43, 51,237,144,115, -207,185,177,104,195,242, 26, 38,181,144, 79, 33,204,133,162, 40,103, 57, 46,226, - 38,233,166, 59,235, 50, 25, 3,129,183,168,129,181, 66, 51, 35, 34, 34, 82,144, - 36,133, 52, 6,209, 12, 49,200, 65,233,164,121,130,144, 40, 79, 98, 24,194,224, -136, 17, 24, 66, 32, 65, 4, 9, 70,130,145, 64, 68, 98, 70, 68,134, 60,169, 1, -122,194, 61,137,232,172,140, 74,218,144,168, 62,234, 64, 89,114,124,100,100,134, - 18,198, 72,149,218, 51,239, 40, 35,235,212, 68,233,226, 93, 37,202, 82,255, 6, -121,225,127,118,189,166, 21,204, 64,172, 44,232,224,254, 71,118,132, 60,197,118, -160,114, 12,176,108,117, 10,160, 22, 67, 46, 79,194,169,130, 65,191,182, 94,233, -250, 66, 46, 1, 34,250, 78,201, 21,101, 25, 11, 68, 58,194,252,248,240,114,149, - 95, 74, 24,175,199,194, 82,176, 38, 74,115,150,133, 71, 84,224, 19,220,165,148, -237,254,125, 13,142,219, 35, 55,248,191,133, 54, 63,129,138,230,147,138,246,241, - 12, 95, 19,241,215,201,110,108, 44,141,221, 85,168, 17,107, 49,180,109,111,143, -102,211,166, 59,154,111,181,189,102,185, 95,119,150, 93,175, 59,150,209, 28, 38, -166,103, 96, 53,102, 10,244, 26,243,130,152,199,197, 46,251,143, 50,175, 74,186, - 1,116, 80, 57, 15,142,186,229, 70,200,206,172,202,219,167, 77,201,246,222,172, - 90, 58, 53,223, 87,228,106, 71,203,146,173, 16, 21,241,138, 12,175,229,109, 77, - 88,117,219, 12, 19,146, 95,235,250, 72,151,153,240,253, 17, 20,251,230, 64,125, -132, 52,240, 84,182,159, 13, 18, 73,177,208, 83,104,244,226,252,152,196,215,190, -131, 2,127,219,216, 63, 43, 66, 43, 8,136,188,105, 84,198,194,215,106, 8,242, -245, 47, 19,149,178,103, 80,217,123,119, 29,226,234, 20,151, 9,101, 25,153, 24, -112,102, 14, 35,240, 51, 86,100,227, 49, 32,161, 72,219,236, 85,142, 89, 39,176, -142,176, 33,101,235,173,215,126,167,167,224,116, 98, 16,158,135,100, 36,143,248, - 4, 34, 72, 89,201, 54,159,107,105,114,255,223,198, 82, 94,156,102,173,172, 67, -144,228,244, 31, 29, 73,152,188,128, 91,201,152, 8,119,117, 19,105,211,231, 79, -252,249, 97,219, 7,231,140,197, 46,134,208,157, 3,120,177, 28, 32,115, 35, 82, -178, 40,156, 83, 29,244, 30,249, 91,113, 25, 21, 14, 33,185, 61,228, 63,183, 20, - 96, 48, 34, 3, 28,168,227,189, 9,222, 34,164,124, 3,223, 84,216,240,111,187, - 22,206,246, 4,208,161, 43, 0,102, 94, 66, 48,235,162,236, 42,195,204,212,206, -237,173, 57,218,114, 78,153,183, 12, 54,226,252, 22,131,137,179, 16,137,120,155, -147, 45,162,190,228,116, 9,109,189, 72, 12, 35,114,150,165,172,201, 27, 52,241, - 89,160, 42,198, 52, 0,212, 29,150,252, 87, 1,120,223, 77, 77,169, 97, 88,131, - 59,103,109, 89,218, 98, 12,196, 94,111,205,189, 71,239,208,193,159,211,101,125, - 44, 99,123, 62, 86, 78,165, 56,250, 6,252, 98,222,237,248,239,127,116,148,195, - 4,196, 74, 68,119, 9,236,121,232,122,133, 92, 6,107,167,135,144,217,226, 90, -250, 77,180, 48, 4, 55,251, 90, 12, 19,104,247, 75, 41,248, 18, 5,134, 71, 27, -170,158,136, 13,184,200,137, 70,171, 11,252, 56,227,182, 47,165,112,247, 86, 4, - 45, 10, 79,122,254,189, 2,223, 69, 63,171,243, 73,174,114,184,127,219,172, 9, -240, 62,130,217,217,149,253,230,227,237,149,139,112,184, 21,114, 66, 88, 91,147, -206,139, 6,110, 76,125,151,123, 67, 8, 83,189, 92, 1,188,207, 72,225,180,203, - 32,249,109,208,182, 10,149, 79,250, 66, 81, 3,216, 48,200, 4,113,153,236, 31, -179,154, 12,153,188, 39,241,149,126,115,182,100, 88,239,141, 0, 9,147,178,232, - 86, 4,254,165, 5,143,193, 12, 68,226, 74, 46,200,185, 48,167, 8,185,217, 62, - 2,129,165, 48,154,141, 2,157, 84, 88, 73, 16,194, 78,250, 16, 11,152,147,193, -253,177, 98,121,164,167, 86,140,247,203,173,167,130, 22,163, 84,138,144,147,197, - 55,175,199,193,248, 5, 33,122,241, 33, 1, 42, 69,119,111,221,204,178, 38, 33, -250,188,111,178,115, 6,202,209, 68,239, 89, 17, 78, 28,205,117, 16,248, 66, 65, - 15,240, 10, 23, 27,231,144,132,209,227,169, 42,139,158,132,141,156,107, 22, 56, -202,143, 43, 98, 69, 18,133,183, 39,124,177,110,218,236,189,184,229,228,106,105, - 73,167, 13,255,107, 25,232,104, 34,193, 35,113,128,143, 75,150,140, 70,215,163, - 70,231,140,157, 52, 73,127, 48,121, 43,137,230,209,208, 59, 98,253,144,242,161, -243,104,171,210,202,213, 4, +// ../Source/JitKernels/GB_jit_kernel_subassign_06d.c: +uint8_t GB_JITpackage_36 [781] = { + 40,181, 47,253, 96,125, 6, 29, 24, 0,198,232,120, 32,224, 88,231,208, 5,174, +249,187, 22,106,173,180,214,196, 24,175,107,194,237,185,129, 41,185, 43, 84,214, + 49,140, 49, 88, 35,224,113, 0,109, 0,108, 0, 93,187,154,109,115, 20,140,214, + 11, 6,138,108, 50,174, 75,183,113,115,142,179, 39,170,156,127,159,246, 11,113, + 40, 28, 48,133,161,112,248,128, 10,126,225, 90,154,145,103,218, 81, 94, 14,193, +234,249,213,209, 46, 16, 79,156,119,178,104,124,167,216,233, 92,199,142,213,216, + 54,119, 92,191,221,182,103,250,117,231, 55, 41,190,227, 15, 76, 99,251, 23, 52, +227, 18, 5,105, 69, 21,227, 25, 26,177,252,218,222, 38,201, 92, 71, 18, 50, 57, +129, 96, 97, 4, 66,217,246,195,236,251,198, 14,235, 42,134,167, 56,193, 92, 67, +239,208, 51, 30,193, 87, 40, 54,180,152, 83,189,121,130,218,229,242,201,128, 35, +165,179,233,252,196,190,114,187,225,251,139, 76,199,155,113,227,111,118, 34, 24, + 82, 73,194, 83,123,152,127,101,219,184,175,248, 5,215,120,214,111,190,239,188, +118,206,206, 99,126, 93,157,135,246,140,107, 90, 99,176,184, 22,130,237,139,115, +161,151, 27, 99, 21,178, 3,214, 30,157,162,246,197, 13, 29,121,145,100, 56, 18, +203, 47, 26, 68,115,153, 72, 15,165,130,178,243, 93,154, 94, 22,122, 96, 91,190, +141,109, 53,181, 29,116,245, 24,156,248,157,103,223,252, 14,225,198,147,190,113, + 15,170,151,191,111, 10,110,111,231, 60,197,219,246,242, 13, 59,202,159,181,200, + 78,143, 62,119, 56, 30,149, 43,206,245,250,133,111,139, 40,207, 78,250,237,207, +182,135, 92,211,145, 11, 43,238, 26, 2,195, 20, 30,189,204,117,238,175, 57,220, +245, 6,150,181,178, 24, 31,116, 58,146,109,131,220,137,224,246,142,185, 47,128, +102,157,231, 39,130,157, 37,224,205,141, 31,181, 86, 87, 57,219,129,220,184,147, + 30, 30,197, 80,148,164,219,166, 78, 54,173, 31,150,164,166, 33,200,248, 3,147, + 40,240,142,119, 18,117, 67,176, 65,217,125, 59,108,195,154,169, 29,187,147,232, + 12,125,223,164,207, 45,146, 96, 40,158,204,135,211, 53,215,213,192,255, 91, 42, +139,241,129,224, 26,143,134,179,145,153, 9,165,211,209, 32,159,124,168, 81,153, + 82, 10, 33, 42,210,180,160,146, 54, 3, 32,132, 16, 4,161,213, 1,178, 8, 73, +201,112,137, 33, 14, 10,104, 40, 80, 80,251,127,180, 1, 57, 36,146, 27, 49,183, +153,251, 10,220,101,157, 22, 43, 1,208, 63,109,224,182,207,198,211, 45, 23,176, + 43,234, 55, 8,119, 3,142, 41, 70,203,112,248,195, 72,178, 16,182, 37,114, 96, + 1,105,218, 24, 78, 20,149,132, 89, 30, 38, 74,238,191, 59, 38,149,142, 38, 16, + 86, 2,218, 36,251,176,158,224, 80,205, 46,249, 85,112,230, 72, 43,124, 33, 66, +145, 74, 1, 54,233, 58,219,103,125, 28, 43, 86,195, 59, 19, 29,146, 5,111, 33, +186,233,148, 87,161, 61,233, 10,172, 35, 74,174, 90,168,147,197,213, 95, 72,160, + 66,116,180,200,139, 34,145, 67,124, 34,134,198, 16, 31,179,155, 31,212,167, 53, +219, 83,162,125,251,152, 91,254, 59,159,121, 86,150,117,116,164,217,238,202,114, + 52,127, 82, 79, 48,111, 31,200,199, 52,166,177,158, 6,116, 25,221,174, 13, 12, + 79, 91,225,179,100,117,192, 94, 60, 33, 35, 98,116,222,121,113, 81, 70, 8,196, +170, 9,242,174,226,221,202,164,240,214,188,120,244,164, 33,122,178,188,148,249, + 64,153,249, 48, 77,164,106,227, 97,166,233,114, 54, 24,220, 18,143,210, 3,248, + 2, } ; -// ../Source/Template/GB_add_template.c: -uint8_t GB_JITpackage_65 [1639] = { - 40,181, 47,253, 96, 9, 26,237, 50, 0,118,125,182, 40,192,146,117, 14,106,182, -112, 62,191, 53,181,167,215,237, 25,162,165, 19,187,149, 16, 12,163,199,247,180, - 98,147,102, 17, 90,159, 62,253,174,162, 32,200, 6, 51,168, 0,173, 0,167, 0, -167,125,203, 13, 94,202,231,234, 5,206,221,189,189, 52,180, 97,199,111,152,189, -226, 60,182,183,111, 93,251,173,244,150,235,246,202,132,214,166, 23,223,182,200, -182, 49,184, 2,171,229, 27,126,161,106, 73, 7, 19,138,132, 59,109,126,241, 21, -144,155,235, 75,121,203, 72,216, 82,214, 90, 35,201,184,116, 38, 27,139, 64,182, -236,185,189, 29, 71,123,238,121,241, 85, 2,229,128, 34, 97, 64, 56,160,156,210, -166, 87,182, 69,243,242, 73,252,168,187, 53,212,160, 87,159,168,145,221, 55,193, -137, 10, 91,112,126, 31,190, 29,126, 36, 0,136,235,193,122, 37, 11,162,197, 58, - 88,185, 83, 54, 58,143,192,118,118,223, 95,225, 59,189, 47,196, 23,219,182,137, -201,137, 27, 24, 72, 18, 3,131, 92, 39, 94,160,140,252,102,232,118,134,249,120, - 98,231, 99, 61,152,142, 6, 69, 60,200,223,168,195,108, 99, 81,210, 96, 54, 30, -140, 5, 6,202, 84,112,188,113, 45, 64,217, 19,117,103, 89, 67,215, 57,252,131, -144,124,241, 87,107,240, 90, 6, 9,126, 49,133,133,107,105,213, 28,190,245,165, -109, 93,175,228,171,248,203, 28,151,164, 16, 73, 58,152,151,179, 23, 72,249,130, -123,243, 22,235,149, 75,217, 50,248,245,169,142,170,167,120,174, 17,190,225,100, - 54, 23,152, 79, 6, 3,131,125, 50, 76,155,227, 77,160,194,141,178,111,161,173, - 80,182,129, 80,104, 67,161,118, 6,231,237,245, 66,203, 96,197, 30, 7,109, 59, - 89,107,207, 30,108,235, 97,231, 61,211,150,248, 39, 22, 88,175,198,162, 78,155, - 28,175, 40,148, 79,182,218, 93, 14,253, 78,238,171,218,153, 86,176,218, 87, 96, -189, 19,228,239,159,119,110,148, 63,222,110,143,178,143, 60, 90,191,177, 13,111, -251, 8,150,214,190,125,202, 71, 32, 36,151,162, 62,166, 87, 34,166, 83, 83,119, -150,117,221,117,233, 33, 0,191,166,115,109,185,174, 11,100, 93,120, 64,159,171, -133,224,181,157,139, 99, 97, 22,159,136, 81, 34, 34,159,192,138, 93,215,117, 93, -215,117, 29,132,126, 49, 6,105,251, 1,194,174,190, 54,151,148, 82, 74, 41,165, -148, 82, 74, 41,165,148, 82, 74,201,245, 70, 29,106,181,125,206, 62,154,161,203, -248,238, 86,215, 11, 67,204, 30,237,209,208,225, 84,156,110,241,106,205,216,122, -204,169,154, 11,137,223,243,194,146, 36, 73, 26, 10,140, 84,219,212,244, 83,242, - 99, 2,179,216,122,108, 89, 33,217,116,249, 8,194, 76, 60, 98, 60, 81, 99, 97, - 46, 27,151,149,148,217, 36,169, 42,126,213, 71,156, 34,118,137, 28,205,229, 12, -156, 22,203, 94,117,244, 28,160, 95,229, 96,154,184,225,100, 64,153, 15,167,227, -205, 80, 72, 95,161, 72, 1,218, 36,224,188,133,158, 70,169,131, 44, 98, 58,177, -237, 91, 90,123, 53, 11,141, 44,194,109,203,118,106, 79,120,197,154,190,121,220, - 97, 32,148, 30,132,106,211, 47, 26, 12,197,166, 59,203,186,206,250, 44,203,178, -164,148, 50,198, 24, 45,128,233, 32, 15,230,243,137,212, 41,183, 88,166, 83, 30, - 41, 58,216,229, 18,233, 68,107,144, 41,115, 84,214, 99, 10,178,199, 71,147,251, -108, 81,129,173,168, 97, 73, 66, 35, 36, 34,146,130, 36,169,180, 6, 33, 9, 33, - 8, 74,167,206, 60, 98,144, 32, 21,145, 24, 2,129,136, 38, 48, 68, 17,162, 72, -137, 68, 2, 33,145, 96,164, 48, 73,218, 41,151, 35, 84, 98,207,148, 52, 37,209, - 0,253,205,142, 63,195, 35, 93, 0, 51, 43, 15,252,224, 66, 43,205,229, 66,233, - 64,168,235,166,196,173, 7,228,122,132,120, 26,184, 91,210,180,215,229, 7,124, - 34,232,191,122, 16,100,215,130, 88, 35,248,187,210, 65,116,195,242,244,143,175, -120, 86, 46,162, 2, 31,160, 98,252, 29,155,188,151,196,109, 0,194, 90,201, 74, -156, 52,191, 7, 77, 31,121, 63,134, 21, 14,114, 84,226, 88, 85,235,248,208,177, -192,211,211, 66,123,132, 32, 4, 75, 65,208, 92, 7, 97,122,177, 52,162,139,166, -116, 33,202, 21,220,209,199,210, 0,196,186, 17, 34, 12, 90, 34,170,215,208, 82, -107,247, 96, 92,233,107,116, 28,149,249,172,142, 66, 12,226,239,130, 77,124,235, - 38, 29,221,235, 43,132, 28,217, 14,196, 82,145,231, 42,211,190, 54,184,176,136, - 81,121, 16,189,104,134,208,155,205,117, 97,134, 67,240,220,251,189,172, 19, 91, -210,151,198,155, 48, 2,212,208, 64, 37,237, 4, 87,138, 82,147, 55, 88, 6, 2, - 20, 67,106,212,148,155, 94, 27,100,237, 78,219, 45, 83, 47, 29,176,125,148, 16, -203,215,188,150,176,181,144, 30,222, 8, 37,219,110, 54,216,255, 23,190,168,126, -179,137,186,210, 70,131,208, 58, 13, 51, 64,176,228,218,117,196, 51,226,204, 99, - 24,113,173, 29,198, 15, 98,180,152,233, 2, 38, 50, 58,135, 4, 92,240, 11,155, -194, 35,121, 30, 67,194,114,237,230,248,212, 94,116,204,105,119,187,254,108,179, -227,226, 76,192, 46,113,244,173, 29, 14,101, 68, 18,103, 17, 65,231,144,131,143, - 46,180,234,198, 67, 7,154,156,251,245, 68,213,176, 64,110,212, 15,112,174, 26, - 88,178,208, 13, 5, 69,223,153,220, 29,181,221,240,212,169, 17, 80, 21,232,205, - 44,241,230, 62, 50, 85, 29,171,167,137, 23,204,170, 20, 93, 35,205,108, 14, 20, -102,138, 70,170,199, 15, 68,177,152, 47,165, 69,227,115,178,198, 87, 16,145,172, -113, 74, 63, 84, 74, 25,106, 27,169,173, 11, 55,205,127, 77,119,154, 40,211, 37, -113, 3,144,218,160, 61,243,245,169, 88,197, 88, 68,105,189, 39,243,199,135,188, -201,171,223, 12, 67,229, 61,218,246, 77,237, 83,219,147,234, 26, 54, 81,232,134, - 5,189,147, 64,116, 94,159, 56,210,104,186,180,209,243,127,157,253, 98,100, 82, -162,116,166,254, 57,104,141, 36, 71, 34, 88,239,136,231,106, 99, 39,111,189, 24, -214, 40, 89,156, 61, 96, 6, 55, 53,101,127, 10,219, 28,113,128,239, 40, 58,192, -149, 65,250, 32,187,220,174, 70,213,248,116,212, 22, 23,168,147,191,191,234,174, - 89, 40,251,230,222,165, 87, 27, 28,158,133,108, 74,148,204,148,191, 7,237,176, - 86,247,168, 50,215,243, 41,207, 36,134,238,164,196, 23,129, 28, 33, 41, 2,249, -136,128, 1,116, 7,153,140,145,151, 52,252,110,246,118, 33,210, 29, 16,223,197, - 49,121, 88,244, 48,142,170,237, 41,114,183,135, 43,112,214,198,191,216,244,113, - 81,168, 65,201, 14,217,213,149, 89, 30,129,102,194, 77,104,100, 38,112, 58, 78, - 23, 14, 76,111,197,193, 10, 80,147,144,173, 18, 97,211, 9, 32,217, 56, 8, 7, -252, 71,220, 52, 28, 6,114,119, 21,207,164, 73,254, 81,152, 97,213,186,117,232, -253,185,254,222,117, 17,200, 44,138,234,193,239,154,194, 4,153, 81, 28,203,120, - 87, 80,231,169, 69,134, 65, 59, 84,242,188,110,198,199,117,238, 80,119, 26,139, - 94,201,171, 36,149,123, 38,209, 36, 51,157,176, 69, 45, 86,140,201,139,144,129, - 48, 75,160, 6,152, 27,186,217, 29, 7, 57, 79,103,108,162, 17,117, 50, 12,128, -220,237, 20,192,132, 87,174,159, 96, 0, 30, 75,179, 33,128, 65, 73,219,159,243, - 41, 7,109,179,150, 75,184,251, 35, 72,211, 96, 77,210,217, 24,233, 41,218, 52, -221, 42, 51, 45,109,230,230,154,102,109, 57,111, 92, 31,142, 85,122, 88,157, +// ../Source/JitKernels/GB_jit_kernel_subassign_22.c: +uint8_t GB_JITpackage_37 [554] = { + 40,181, 47,253, 96,100, 4, 5, 17, 0,214,221, 93, 33, 0,181, 30,150, 87,176, +218, 72, 60, 52,116,220,140,243, 35, 64, 72,162, 20, 0,251,243,145,128, 4, 0, + 51,249,255,191,251,195, 11, 83, 0, 82, 0, 87, 0,151,165, 64, 28, 46,175, 40, +229, 4, 93, 69, 19,226, 5,204,199,111, 99,176,106,156,192, 97, 91,246,133, 51, +107,139,215,121,134,220,239, 42,114, 83,158,118, 82,237,115,116,194,235,251,157, +235,250,249,191,145,143,222, 24,248,195, 23,180,112, 93,242,126,170,214,211, 35, +106,105,255,230, 15,201, 93, 65, 50,211,220, 96,152, 44,131, 33, 34,165,243,233, +180,225,103,249,232, 62,227,251,169,190,216, 84,204, 91,191,182,211, 11, 65, 76, +101, 72,207,125, 95,127, 14,125,227,235, 11,194,117,121,135,191,253,149,233, 80, +184,172,255,232, 12, 49, 95,228,175, 94,221,247, 59,137, 69,235,102,113, 32,152, + 66,247,162,252,250, 51,174,247,247,169, 25,183, 22,115, 66,226, 58, 4,242, 63, +123,250,226,186,233, 21, 61, 15,209,233,177,118, 82,223,255,137, 84, 36, 26,203, + 38,227,125,231,213,128,187,251, 68,154, 24, 94, 81,126,209, 92, 50, 24,105,209, + 36, 28,135,101, 27, 78,110, 17, 75, 38, 66,241, 13,203, 46,155, 38, 53,146,137, +204,180,105,178,109, 27,139,228,126, 56,238,209, 97,225,237, 91, 79,234, 99, 55, + 63,219,137,129, 1,211, 84,154, 24, 94,113, 92,228,241,200,178, 70,249,205,226, +254, 12,160,133,223,211,134,224,111,153,105, 0,255, 78,180,244,214,170,170, 4, + 20, 37,160, 66, 25,143, 70,143, 96, 58, 26,217,153,188,218,221, 15,120,242,211, + 98,136, 67, 25,202, 63,242,228,211,106,181, 12, 61,197, 32,195, 29,150, 28, 65, +111,184, 39,199,140,193, 7, 3, 69, 32, 64,132, 16,100,200, 57, 48, 4,190,157, + 43, 57,211,241, 65, 36, 88,149, 25, 39,222,136, 64,146, 32,204,136,195,215,128, +226, 25,136, 15,117, 63,116, 3, 39, 4, 1,128,229,129, 30,254, 6, 72, 51,136, +114, 40, 61,195,224, 0, 72, 51, 88, 19,188, 26,170, 0,198, 76,253, 32,176,210, +142, 63, 68, 65,232,167,179, 32,200,234,153, 0,186,215,240, 19, 63, 65,148, 6, +171, 60, 99, 96, 86, 49,194, 44,205,135,221, 50,172,165,189, 66, 24, 0, 71,149, + 78,172,125, 78, 62, 56, 56,147,233,248, 29,107,168,249,122,199,136,111,238,132, +187,225, 14,166, 69,147,115,200, 89, 42, 98,135,105,218, 12, 98,182,204, 84,125, +157,174,214, 57, 31,207, 95,189, 1,129,162, 40,112, 3, +} ; + +// ../Source/JitKernels/GB_jit_kernel_subassign_23.c: +uint8_t GB_JITpackage_38 [552] = { + 40,181, 47,253, 96, 86, 4,245, 16, 0,166, 30, 95, 33, 0,181, 30,214, 44,146, +104,166, 6,176,193,176, 9, 42,226,201,100, 81, 10,128,253,249, 72, 96,133,195, + 58, 75,255,239,254,240, 2, 86, 0, 84, 0, 88, 0, 22,115, 10,113, 25,174, 42, +113, 48, 92, 62,152, 2,167,114, 5,201,135, 91,152,143, 60, 13,126, 53,227, 20, +135,109,153, 23, 74,172, 41,184,215,117,115, 19, 6,253, 51,150, 97,198,156,250, +124,191,243, 92, 31,191, 23,114,204, 25, 4,119,184, 98, 90,136, 43,222, 78,205, + 89,114,118,142,246, 47,254, 79,212,213, 19, 51,205, 11,133,169, 42, 20, 2,151, + 19, 85,172,229,135,233,251,249,113,248,237, 57,229, 79,105,195,199,209,209, 61, + 6,111,167,186, 66,207,141,117,254,108, 37, 13, 63,112,198, 79,150,219,166,169, +184,130, 66, 92,222,129,158,126,202,100,176,174,234,189, 41, 67,204, 21,248, 43, +173,250,126, 23,169,102,221,170,205,227, 98,117, 15,194,159, 31,227, 89,123,157, +138,113, 27,223,129, 80, 34,153,138, 6, 67,191,163, 53,224,238, 62,145,166,133, + 15, 4,110,201, 88, 48,151, 88,209, 34, 28,135,101, 26, 46,110,144, 10, 6, 50, +241, 13,203, 44,155, 22, 51, 17, 73,204,180,105,178,172,221,180,162,181,202,210, +159,227, 58,239,207, 29,174, 55,199,169,199,219, 71,186,142,174,244, 7, 73,207, +175,156,142,121,119,165, 59, 36,145, 11, 6,211, 84,154, 22, 62,224, 56,136,195, +145, 97, 77,224, 23,111,253, 24, 48,173,215,210,134,223,235,152,105, 0,255,110, +219,121, 39, 90,187,251, 1, 26,189,188, 67, 48,140, 31,252, 33, 26,127, 86,155, +227,231, 39,248, 45,188, 81,197,209,231, 12,167,113,132,193,239,191,248,143,105, +190, 96,213,243,110,234,159, 41, 57,214,202,233, 58, 66, 32, 48,134, 16,100,200, + 57,254,128,111,249, 74,192,228, 65,162,100,102,192,240, 88, 80, 24, 4, 18,135, +194, 15,181, 1, 19,194, 0,192,242, 64, 15,127, 3,164, 25, 68, 57,148,158, 97, +112, 0,164, 25,172, 9, 94, 13, 85, 0, 99,166,126, 16, 88,105,199, 31,162, 32, +244,211, 89, 16,100, 53, 89, 0,221,107,248,137,159, 32, 74,131,103,158,225,192, +172,115,109,100, 55,100,248, 0,176,231, 3, 69,217,145,224,180, 89,212, 42,186, +248,210, 26,176,132,142,223,177,134,154,175, 7,140,136,230,102,184,113,237, 16, + 92, 52,239, 22,223,195, 52,109, 70, 45,219, 96,170,157,214, 5, 72, 13,150,143, +142, 68, 6, 60,223,242, 6, 4,138,162,215, 13, } ; -// ../Source/Template/GB_apply_bind1st_template.c: -uint8_t GB_JITpackage_66 [394] = { - 40,181, 47,253, 96, 63, 2, 5, 12, 0,102,151, 74, 33, 0,181,142, 1,202,145, - 96,116,103,248,176, 11, 75,176,143,166,171,186,195,164,118, 60,130,136, 70,112, - 23,243,255,127,175, 15, 33, 66, 0, 67, 0, 62, 0,135, 79, 77,126,210, 55, 84, - 33, 39, 88, 23,113,219, 3, 93,204,167,139, 53,161, 92,174, 95,132, 97,245, 87, -243,197,238, 11, 94,226,164, 83, 40,159,189, 63, 30, 94,103,216, 93,187, 12,178, - 59,219,218,176,225,203,201, 68, 93,206, 53,163,145, 23, 10,145, 42, 20, 2,215, - 52,190,193,188, 65, 47, 11,175, 79, 41, 56, 86,217, 96,178,235,127, 36,197,138, -112,160, 44,167,213,108,157,241,217,219,185, 27,219, 77, 66, 89,141,173,118, 39, -148, 6, 82, 33,108, 54,244, 89,109, 45,215,155,243, 92,203,187,206,250,132, 56, - 84, 7,106, 97,168, 2,141, 87,127, 60,203,255,113,106,119,215,173,165,237,192, -205,114,154,254,196, 82,111,213,126,220,206, 64, 32,254,231,117,222,217,174,171, - 95,205,207, 32,239, 21,228,169, 95, 14,228,239, 44,161,216,248, 82, 74,233,156, - 27,204,248,102,161,148,130, 7, 49,150, 98,169,250, 20, 94,242, 21, 10,118,145, -100, 48,171,187,218,249,148, 63,133,244, 19, 6,139,204,207,229,200, 83,204, 98, - 77, 46, 12, 98, 65,124, 55,246,180,207,153, 63,113,168, 60,205, 40,141, 0,228, - 59,247,241,164,193, 96,132, 57,119, 60, 63, 34, 32, 96,130, 49,166,243, 78, 8, - 80,184,246, 29,199, 1, 73,233,106, 63, 12,175, 84,235, 29,160, 98,206,177, 35, -131, 17,107, 91,164,182,102,194,189,217, 29,220,129,212,221,105, 38, 70, 4, 48, - 95,251,168, 8,220,111,208,112,204, 70,144,167, 53,230,147, 23,157, 98,189, 65, -147,134, 48, 19, 58, 2,172,161, 14, 56, 90, 20,117,110, +// ../Source/JitKernels/GB_jit_kernel_subassign_25.c: +uint8_t GB_JITpackage_39 [731] = { + 40,181, 47,253, 96,210, 5,141, 22, 0,230,232,121, 39,224,206, 88, 7,104, 71, +209, 4,109, 75, 82, 7,112, 5, 92, 19, 3,143,228,101,230, 43,189,146,135, 60, + 22,242,101,108, 60, 92, 84, 35,198, 72,145,193, 33,117, 0,106, 0,105, 0, 18, + 95,202, 47, 94, 36, 8, 5,135,169,226,143,229,203,154,223,182, 34,162,230, 82, + 82,143, 8, 30, 2, 15,201, 96, 64,224,241,198, 99, 60,186,241,227, 20, 62, 81, +207,172,174, 51,114, 30,109,168,139,196,186,156,173, 64,248, 90,119,109,184, 35, +182,129,164,196,160,227,114,179, 99, 39,234,135,217,190,199, 60,114,234, 8, 79, +184, 17,230,160, 1,137, 32,140,201, 33,111, 42,120, 52, 26, 17,239,117, 29,236, + 54,201,212,178,167,117,148,104,146,202, 29, 14, 72,114, 56, 2,147,229, 43,179, +110,235,239,217,186, 99, 94, 81,247, 5, 11,173,148, 34,218,118,147,186, 92, 30, + 50, 19,123,207, 53,248,209,120,223,212,125, 88,178,125, 87,202,120, 38,249, 19, +251, 49,132,204,207,201,139,109,155, 96,182, 15,225, 43, 29,188,102,125,205,115, + 93, 83,190,108,175, 67, 36, 24,165,235,164,179, 88,148,245, 53,249, 55,126, 82, +240,120, 85,173,102, 12, 36, 48, 61, 36,182,158,187,168, 67, 44, 71, 24,155,114, +101, 9, 23, 74, 70, 67, 97,248,133,146, 52, 92, 42,141, 99, 89,104,146, 10, 4, +157, 58,140,175, 55, 86,203, 21,141, 9,163,130,210,223, 56,105, 26,221, 51,105, +113,254,169,177,139,198,211,122,204, 47, 79,119,207, 86,223,234, 56,193,246,186, + 87, 76,235,139,234,133,150,127,170, 88,118, 38, 38,145,185,121,204, 63,113,231, +150,173,142,252,190,216,124,199, 55,214,121, 68,249,195,143, 56,235,152, 81,119, +254, 56,235,212,189, 83,127, 16,116, 1, 69,222,216,108, 40,147,137,196, 86, 24, +167, 22,107,182, 0,111,226,118,242,154,220, 13,224, 92, 97,242, 81, 8,198,138, +114, 0,108,214,197,174,122, 53,143,229, 9,216,248, 69,121,155,135, 95,157,145, + 39, 72, 45,155, 71, 56,108,153,173,147,103, 99,182,240,210, 26,251, 81, 12,222, +243, 92, 71, 74,247,222, 28, 65,193, 88, 56,153, 7, 13,228, 10,198,128,255,135, + 44,160,200, 27,140, 55,112, 26, 52, 14, 45, 83,177,108, 54,148,228, 97,211, 2, + 97, 32, 32,132, 16,231,174,234,254,128,111,244, 74, 30,227, 64, 12,224,162,203, +204,152,195,111,128, 98, 5,200, 59, 20,252,112, 55, 96, 66, 60, 0,176, 60,208, +195,185, 1,242, 12, 98, 28, 74, 43, 24, 15, 0,213,130, 5,193,175,161, 42, 96, +204,212, 15, 2, 43,237,248, 79, 20,132,126,170, 5,129, 86,219, 4,160,189,134, + 15,241, 19, 28,105,176, 68,103, 8,156,193, 27,217,133, 13,243,176, 92, 44,105, +118, 19,236, 10, 45, 57,153, 65, 24, 40,245, 13,232,191,233, 90, 3, 80,135,255, +144, 99,224, 8,203,173, 99,142, 1,210, 12,201,145,136, 3,239,177, 81,194,130, + 65,164,179, 24, 32, 33, 24, 42,151, 81, 57,150,188, 57, 20,116, 25,211, 45,248, +124,196, 29,248,118, 13, 17, 70,195,160,143,109,117,224,139,176,132,113,210,226, +129, 89, 97,174,206, 76,103, 72,220,125,237, 97,243,210,163,193, 87, 93,131,139, +146, 91,104,155, 40,103, 51,100,108,133,191, 26,125, 54,205,207, 51,211,219, 64, + 88,173,127,130,166,142, 0, 64, 69,193, 16, } ; -// ../Source/Template/GB_apply_bind2nd_template.c: -uint8_t GB_JITpackage_67 [392] = { - 40,181, 47,253, 96, 63, 2,245, 11, 0,134,151, 74, 33, 0,181,142, 1,166, 20, -101,120, 35,252,169, 19,156, 81,183,187,103,176, 51,198,100,132,156, 9,137, 81, - 99,243,255,127,175, 15, 33, 66, 0, 66, 0, 62, 0,213,103, 38, 79, 63, 28,178, -144, 19,234,195,109,119, 32,140, 57,189,212,201, 99,211,214,139, 44,238,231, 89, -125,185, 27,131,151, 56, 67, 90,229,117,119,199, 69,214, 23,119, 91, 78,131,238, -198,180, 92,105, 25,115,176,144,211,218, 98,143,200, 11,133, 56, 21, 10, 1,181, - 50,190, 65,189,193, 14, 19, 89,159, 82,240,171,178,193, 96,214,255, 72,138, 20, -161,154,238,150, 89, 93,191,240, 46,238,224,157,175, 38,153,238,151,111,134, 39, -147, 6, 82, 33,104, 55,228,221,239, 90,254,237,205,131, 45,231,184,122,122,168, -168,106, 82, 24,168,103,156,186,227, 90,254,143, 51,195,219,238, 79, 94, 14,212, -238,150,125,159, 89,126,154,189,222,182, 49, 16,152,239,117,157,115,151,227,172, -103,245, 53,168,187, 5,121,172,167, 3,250, 27, 67, 36,118,198,115,134, 82, 10, -194,127,147, 49, 38,170, 53, 49,150, 98,137, 58,165, 78, 67, 75,190, 66,185, 46, -146,204,117, 63,206,118, 78,245,169,168,158, 98,174,200,252, 96, 43, 95, 47, 75, -157, 88, 23,228,130, 25,239,220,101,159, 83,159,114,170,124,197, 30,143, 8, 64, -190,131, 31, 79, 26, 12, 70,217,190,113, 29, 33, 32,112, 2, 25, 91,121, 14,217, -236,130,195,128,164,187,218, 14,195, 95,170, 22, 7,168,124,231,208,145, 33,136, -181, 45,178, 90, 51,225,222,236, 14,237, 80,134,121, 34,219,123,198,195, 24, 46, -236, 81, 10,147, 8,249,138, 33, 79,107,204, 39, 47, 58,197,122,131, 38, 25,194, - 76,232, 8,176,134, 58,224,104, 81,180,184, 1, +// ../Source/JitKernels/GB_jit_kernel_trans_bind1st.c: +uint8_t GB_JITpackage_40 [417] = { + 40,181, 47,253, 96,198, 2,189, 12, 0, 22,151, 75, 33, 0,181, 30, 86,165,132, + 54, 37,231, 48,117,167,118,139, 25, 30,186,141, 99,136, 36,154, 53, 6,108,241, + 72,254,255,239,245, 33, 4, 66, 0, 66, 0, 66, 0, 84,223, 16,216,240,170,250, +104,179, 63,158,251, 57,245,170,102,109, 50, 56,102,138,215, 35,152,189,223, 23, +228,201, 73, 80,169,104,122,254, 56,195, 69,151, 43,194,106,107, 3, 6,223,139, +213, 24, 28,183, 21, 31,143,223,177,251,114,172,149, 57,129, 32, 41, 2, 33,182, +162,113, 92,125,124, 51,143, 9,200,137,115, 65,231,220, 80, 22,170, 3,245,155, + 16,204,213, 21,227,223,204,221,248, 49, 14,234, 53,254,240,106, 20,165,193, 85, +152, 15,141,175,191,115,189, 55,154,219,185, 40, 86,167,136, 67,225, 64, 37, 12, +133,131, 79,225,244,158,161, 17,113, 88,214,139,212,238,179, 26, 22,233, 48,136, +107,213,218,180,204,126,142,135,148,165,130, 83,167,215, 53,157,219, 48,207, 49, +193, 94,139, 96,198,105,205,213,233,135,101, 11,159,110, 97, 93,213, 46,172,225, +238, 78,146, 22,159,106,166, 87,158,220, 22, 82,150,228,194, 39,207,195,174, 75, +226, 89,107,204,166,227, 17,180,127, 4,132,213,111, 80,204,158,223,246,245, 39, + 3,252, 49, 32, 49,196,119,218,160,140,175, 21,249, 52,216, 26,127,194, 57, 7, +211, 49,174,242, 89,138, 37,201,233,219,183,117,156,253, 2, 39, 32, 48,198, 8, +198, 92,242,148,101,103,202, 5, 8, 7,249,128,100,172,223,216, 73,103, 48,170, + 8,152,132,147, 15,129,168, 1,222, 47,108,177, 20, 18, 0, 0, 72,121, 92,148, +121, 10, 48,149, 6,232, 7,128,131,177,214,140,201, 0,235, 10, 0, 7,135, 54, + 24, 17,135, 81,199,189, 3,141, 7, 83,251, 3, 23, 18,240, 47,106,180, 95,166, + 98,108,154,157,103, 38,219, 12,172, 86,188, 16, 40, 84,244, 14, 1, } ; -// ../Source/Template/GB_apply_unop_ijp.c: -uint8_t GB_JITpackage_68 [743] = { - 40,181, 47,253, 96, 68, 8,237, 22, 0,118, 35,106, 32,224, 26,231,144,114,132, -156, 16,101, 12, 86,110,108,163, 35,248,168,179, 79,154,173, 57, 2,155,140,146, -132, 25, 82, 98, 76, 8,100, 0, 92, 0, 96, 0,180,189, 12,161, 49,237,110,106, - 8,160, 10,167,224,181,234, 54,238,206,113, 6, 75,179,243, 48,220, 30, 21,137, - 67,130,208, 64, 28, 18,215,186,236, 17, 79,149,172,188,176,189, 5,230,138,154, -159, 71,207,166,153,128, 86,222,139,163,241,149,214,211,121,166, 60,152,233, 37, - 58, 61,218,182,189, 71,109,203,110,235, 35,167,220, 97, 77,147,179,149,166,184, - 86,104,173,228, 38,151, 27, 12, 24,193, 96, 8,143,188,187, 25,226,141,203,248, -206,239,244,220,205,155,113, 95,193, 51,183, 96,100, 58,159, 49,253,143, 97, 46, - 12, 43,220, 14, 67,217,189,193,124,186, 29, 85,239,119,175,167,173, 29, 73, 66, -160, 60, 90,137,202,147,244,190,242,148,123, 84, 78, 74,197,143,120,126,251,151, -249, 67, 18, 42,101,122,147, 78,101,247, 13, 59, 20, 18,132, 6, 59,105,183, 59, -110,207,111,230,142,232,200, 30, 31,137, 34,207,242,167, 91, 87,175,244,184,171, -119, 42,249, 55, 7, 3,200,227,135, 71, 50, 68,236, 38, 74,210,150,151,117,152, -242, 26,236,240, 53,202,109, 25,246,100, 95, 48,115,168, 20,253,173,223,195, 43, -237, 45,170, 94,162, 74,242,218,128, 55,243,185, 80,210, 58,243,196,213, 62,114, - 22,229,143, 39, 46,184, 50, 99,139, 79, 88,102, 58,144,225,131, 59, 53,183, 5, - 24,246,181, 71, 83, 1, 12,123, 97, 47,155,157,179,225, 66, 26, 14,103, 27, 89, - 81,167,232,204,154,102, 31, 73,147,201, 5,144,253,155,135,220,254,113,171,153, - 16,131,168,209, 14, 85,210,114, 98,140, 49,122,180, 31,185,205,114,184,143,229, -242,120, 4, 55, 14, 51,185,152,240, 4,243, 91,164,211,122,175,179,188,109,235, -155,244,154,207,210,254,213,103,143,206,239,144,159,254,184,166, 5,128,128,168, -113,181, 66,166, 70, 68,130, 4, 73, 10,147, 66, 99, 48, 66,130, 16,179,236,226, -192, 76,136,243, 16, 18, 64, 67,232, 36, 94,137, 68,242,199, 7, 61, 52,206,188, -214,118,135,196,127, 85,251,172,225, 91, 29,184,165, 73,137,180,254, 76, 84,208, -144, 88,166,218,236,226,113,139, 14, 27,151, 73,192,134,198, 90, 11, 69, 10, 82, - 1,137,121, 13,143, 13,223,171,143, 36, 15,219,136,201,249,126, 92,166,183,150, - 73,198, 78,145, 74,217,146,114,170,109, 26,166, 17,123,253, 60, 70, 32, 3, 29, -172, 50,174, 48, 67, 97,219, 78, 14,136, 1,175, 82,250,144, 11, 12, 99,147, 66, -204, 96,104, 27,237, 22, 96, 10,234, 24, 49,110,185,176,218, 24, 40, 64, 3,211, - 78,200,136, 59,236,183,162,241,138,163,118, 84, 51, 82,129,173,166,220,239, 31, -184,142, 55, 36, 17, 44, 9, 17, 68, 37,128, 50, 98,224,191,138, 49,177,172,206, - 17, 70,128, 73,146,144,180, 67, 70, 0,206,102,217,130, 58, 64, 53,131,229,186, - 52,186, 75, 36,118,249,114,243,174,196,177,132,204,182,137,183,247,142,227,132, - 81,241,123,121, 2,236, 86,130,114,228, 38, 75,159,130, 2, 27,133,150,151,140, - 8, 23,143, 88,207, 9,111,128, 14,133, 65,165, 46,205, 63,214, 9,165, 0,165, -150,254, 50,238, 84,143, 36, 54,210,166, 9,253,204, 52, 30,104,240, 93,144,174, -212,113,155, +// ../Source/JitKernels/GB_jit_kernel_trans_bind2nd.c: +uint8_t GB_JITpackage_41 [415] = { + 40,181, 47,253, 96,194, 2,173, 12, 0,118,152, 79, 33, 0,243, 54,238, 78,154, +144, 55,131,212,134, 19,186, 85, 5,166, 96, 65,135,200, 50,194,187, 83,237, 76, +143,168,170, 90, 16, 8, 16, 70, 0, 70, 0, 70, 0, 46,137,145, 87, 19,119, 66, +204, 41,235, 31,204,230,108, 48,232,245,179,155,133,209, 97,169, 37,222, 44, 67, +253,253,198,231, 71, 37, 79, 21,216,200, 53,199, 23,238,185, 60, 33, 82, 99,174, +198,140, 43,215,204, 97,185, 47,249,185,124,205,221, 56,115, 45,205, 9, 4, 58, + 17, 8, 1,209,103, 28,160, 29,119, 39, 91,215, 89,183,252,152,207, 0,149, 62, + 94, 51, 56,204, 96,145, 22,168,106,122,140, 24,106,235,137,242,177, 5,239,252, + 35, 99,122, 51,191,136,183, 73,130,117,212,248,157,242,205,247,220,220,152, 11, +246,156, 36,173,215, 67, 85,168, 38,132,161, 80, 5, 94,119,177, 71,133, 61, 24, +214,253, 30,214, 3,239,150, 61,188,204,225,155,181,184, 77,187, 32,163, 65,105, +136, 82, 10, 94,189, 94, 87,228, 29,151,125,140, 72,246, 38, 25, 90,188, 90,237, +213, 99, 45,152,105, 10,151,108,230,217,237,202, 48,119, 74,113, 16,165,184,100, +117,189,116,148,134,168,194,165,239,203,174, 11,242, 93,171,212, 34,207,229,185, +191, 4,136,212,239,144,212,155,223,247, 77,142, 6,248,143, 39, 41,102, 28,112, +119,151,246,169, 51,190, 31,151, 6,219,204, 28, 49,138, 6,145, 47,252,227, 89, + 55, 1,239, 4, 68, 21, 46, 69,206,129, 92, 31, 32, 64,196, 8, 74,217,110,148, +201,190,204, 5, 28,148,254,224,109,195,120, 34,112, 11,144, 6,164,116, 92, 60, +243,116,128,234,229,130,131,241,239,140,185, 2,212, 3,128,237, 11,237,146,138, + 15, 74,142,223,111,201,110, 18,246,241, 59, 55, 74, 1, 81,163, 80,101,200,220, +166,249, 16,102,170,195,208, 26,196, 11,129, 66, 69,193, 16, } ; -// ../Source/Template/GB_apply_unop_ip.c: -uint8_t GB_JITpackage_69 [372] = { - 40,181, 47,253, 96,136, 2, 85, 11, 0, 6,151, 72, 33, 0,181,115,106, 8,156, -239, 98,247,240,113,109,199,218, 70,187, 99,124, 64, 81,255, 6, 0,172,160, 66, -225,164,255,223,254, 67, 9, 63, 0, 64, 0, 60, 0,144, 91,243, 34, 46,127, 94, -197,156,186,204,201,197, 93, 10, 70, 22,141, 65,122, 47,157,107,120,137,245,246, -187,168,179,223, 61,182,106,182,111,107,167,166, 41,127,191, 59,254,248,226, 86, -236,126, 54,196, 68,221,189, 20,187, 34, 31, 12, 98, 53, 24, 4, 90,119, 29, 47, -252,188, 59,183, 52,251,140, 4,203, 80, 53,151,209, 59,191, 0,187,110, 53,219, -214, 36, 85, 99,219, 89,157, 84, 25, 72,197,210, 26, 4, 54,110,203,113,230, 60, -213,242,174,155,167, 14, 6,130,161, 82, 20, 8,134, 79,153, 60,133, 43,136, 6, - 25,203,238, 66,173,185, 12,127,178,216,148, 88,163, 13,114, 25,243, 66,123,240, -219,222,117,215, 81,144,222, 95,239, 59,245, 60, 20,188, 1,198,239, 51,134, 72, -100, 91, 67,143,255,127,140,164, 24,173,199,135, 79,225,250,249, 77,242, 91, 1, - 49,110,173,217, 48, 16, 99, 41,150,166, 43, 95,161, 96,154, 73,165, 50,177, 43, - 50, 77, 31,170,202,115,238,166, 67, 91,179,253,178, 79,211, 61,213,153,242, 19, -187,174, 8, 64,126,171,143, 39, 9, 4, 35, 75,223,248, 61,227,132, 59,126,101, - 86, 51, 13, 25, 0, 69,113,207,171, 92,137,150, 77,177,100, 32,118, 3, 46, 38, - 59, 92, 38, 67, 13,214, 18, 75,245,192,149,105, 11, 46,174,204,200, 84,120,237, -159,136, 44, 51,233,161, 48, 3,217,120,232,101, 46, 98,205, 59, 54,205, 31,194, - 76,209,161,176, 53,152, 39, 12, 10, 21, 5, 67, +// ../Source/JitKernels/GB_jit_kernel_trans_unop.c: +uint8_t GB_JITpackage_42 [371] = { + 40,181, 47,253, 96, 11, 2, 77, 11, 0,182, 22, 73, 33, 16,179,115,230, 25, 36, + 36,130, 0,140,142,184,125, 54,212,214, 77, 75,220, 47, 98, 8,179,114,253,108, +117, 68, 0, 0, 8, 28, 4, 63, 0, 64, 0, 61, 0, 15,109, 50,232,161,149, 83, +155,196, 24, 27,203,221, 71,162,241,229,236,214,153,134, 91,180,224, 67,151,171, +225, 47,152,249, 36,144,210, 45,248,197,175, 39, 58,203,130, 53,156,184,114, 55, +207,175,235,237,206,204,148, 51, 25,143, 15, 6,177, 26, 12, 2,212,130,139,235, +137,172,145, 85, 34,193, 50, 84,189,233, 56, 43,159,184, 77, 51, 52,215,246, 32, + 85,227,218, 29,197,170, 75, 67,179,188,254,220,198, 77, 57,206, 27, 13,165,252, +251,228,169,131,129, 96,168, 16, 5,130,225, 83, 39,157,194,244,195, 53,110,201, + 49, 78,161, 83,156, 83,244, 20,136,233,148,242,167, 64,151,116, 45,155, 88, 38, +105,169,203, 74, 90, 54, 49,152,166,201,174, 52,211, 94, 32, 78, 28,202,113,104, + 7,106,175,210,131,249,153,222,171,157, 65,125, 5, 14,125, 21,188,215, 56, 60, + 14, 49,142,162,226,211,182, 57,174,203,178, 77,198,173, 55,204,125, 1,157,213, +153,251,172,167,243,108, 12, 90,192,219, 11,191,174,210,192,255, 71, 81, 84,124, +146,158, 85, 50,138, 54,183,137,164, 84, 38,230,152, 80, 28,146, 99,146,145, 97, +143, 89,129, 68, 2, 24, 0, 71,128, 66,169, 91, 60,162, 5, 1, 88, 18,130, 52, + 74,200,113, 38,220, 20, 51,243,154, 2, 22,192, 93, 9,240, 77, 64,108,162,234, + 82,160,137,148,254,224,102, 7,133,217,210, 94,242,217, 11,109,154, 54,207, 76, +209,214,176,213,166, 51, 12, 10, 21, 5, 67, +} ; + +// ../Source/JitKernels/GB_jit_kernel_union.c: +uint8_t GB_JITpackage_43 [345] = { + 40,181, 47,253, 96,254, 1,125, 10, 0,166,211, 65, 33, 0,243, 54, 62, 39,121, +224,154,217,106,195,174,130,223, 19,127,115, 26, 20,140,217,201,153, 28,230,209, + 65,254,255,111, 93, 2, 8, 56, 0, 56, 0, 57, 0, 28, 44,250, 20, 98, 94, 86, +158, 87,115,136, 71,245, 61,195,223, 56, 13,235,228, 81, 76,121,215, 29, 12, 3, + 18, 80,104, 62,101, 3,108,161, 57, 98,172,114, 7,231,212,154,159,245,111,236, +198, 26,155,113,110, 89,149,178,172,229,120, 79,204, 17,250, 49, 6,239,252,100, + 71, 61,154,127,196, 30, 85,105, 72, 42,242, 61,250,209, 7, 29,221,101, 6,131, +110,154,152, 79,134,139,112, 81,135, 2,225,114,105,140,124, 66,177,231, 54,188, +194,252, 83,238, 78,183, 60,205,235,155,196, 34,218, 74,193,183,176,163,108, 54, +236, 62, 99,204,147, 1,119,247, 10,170, 9,151, 34,255,196, 15,148,216,200,215, + 69, 38,214,219, 34,224,246,112, 15,203, 62,143,179, 98,231,176, 25, 87, 9,213, + 69,125,181,134,106,194,165, 48,220, 52,109, 18,218, 76,115,145,103,157,238,215, +128,177,250,125,205,147,243,219,146,228, 5,248,147,169, 57,102, 28,112,203,254, +139, 69,202,216, 74,130, 40, 18, 68,190,112,125,205, 59,162, 54, 27, 32, 96, 70, + 32,211,202, 3,132, 80, 37,131,174,133, 89, 27,177,225,114,216,129, 64, 25,140, + 43,144,193,195, 34,131,131, 5,178,163,205, 10, 13,227,205,109, 86,213, 62,206, + 1, 48, 15, 19,207,212,160,201,121,102, 66, 27,132,213,252, 49,178, 99, 86,191, +195,158,162,119, 8, +} ; + +// ../Source/JitKernels/GB_jit_kernel_user_op.c: +uint8_t GB_JITpackage_44 [298] = { + 40,181, 47,253, 96,158, 1, 5, 9, 0,214, 17, 59, 23, 16,159, 3,194,167,176, + 30, 15,242, 94,115, 48,129, 11,147, 53,148,136, 0,160,136, 3, 1, 52, 0, 52, + 0, 52, 0,125,150,201,248,235,180, 90,127,128, 12,211,164,220, 99,248,205,254, +170,103, 55,139, 39, 95,134,207,127,240,194,190, 41,141, 24, 30,229, 62,215, 99, +219, 95,185,179, 35,173,174, 99,100,253,113, 0,197,113, 4,165,170, 21,226,212, + 25,102,183,229, 62,119,239,103, 58, 69, 85,239,219, 22,122, 98, 81, 16,165, 96, + 18, 68,121,161, 12,158,152, 85,155,156,222,128,254, 78,105,216, 85,193, 39, 62, + 72,139,210,152,148,173, 38,193,255, 63,128, 3,206, 11,193,115, 32,231,117, 99, +199,141, 30,245,133,163, 70,109, 30,149,189, 6, 69,156,102,141, 99,100, 1,136, +161, 20, 61, 45,201, 24,250, 70,238,234,169,210,111, 55,175,162,207,111, 15, 0, +144, 3,206, 11,223, 71, 73, 82,248,141,145,108, 5,255,202, 53,221,229,173,162, +166,179,155,206, 11, 27,119,129,210, 22, 86,145,245,194,240,166, 10,219, 65,240, +207, 11, 47,172,210,229, 91,159, 67, 17, 0, 67,101, 66,202,128, 84,119,108,205, +158, 35,106, 60,175, 75,254,235,233, 40,174, 35, 98,178,152, 68,128, 27, 52,127, + 8, 51, 69, 7,198,214,192, 47, 6,195,207,181,147, 19,123,138,130, 33, } ; -// ../Source/Template/GB_apply_unop_template.c: -uint8_t GB_JITpackage_70 [420] = { - 40,181, 47,253, 96, 45, 3,213, 12, 0, 6, 25, 79, 34, 0,213, 22, 3,106,132, -109, 87, 58,203, 2,207,174,120,108,139,249, 81, 66,108, 6,232, 64, 66, 1,239, -157, 96, 46,253,175,255, 80, 2, 71, 0, 70, 0, 67, 0,244, 87, 2, 97, 64, 96, -140,131, 1,113, 11,172,126,233, 43,170,145, 23,232, 73,226, 46,201,155,249,133, -161, 29, 68,204,213,156, 52,172, 54,107,198,216,125, 79, 12,101,209, 42,151,223, -206,189, 1, 22,236,174, 99, 38,237,254,114,137,207,143, 52,230, 92, 63,200,228, - 89, 70, 97, 89, 22,249,251, 83, 44, 54,190,248,126, 35, 74, 41,213,190,207,242, - 27,113,183,170,111, 31,113,131, 75, 60, 78,230,227,254, 83, 38,202, 80, 64, 96, - 86, 4,107,166,111,152,246,130,238,198, 54,164, 96, 86, 99, 11,222, 14,219, 68, -188, 66,104, 69,166,213,246,114,189,197,208,189,124, 28, 3, 35,238, 89,118,202, - 68, 32,148,112,189,227,249,218, 13,223,158, 43, 11,188,187,110, 93,217,241, 12, -173, 8,234, 91,184,210, 97,181,166,184, 63,242,196, 55, 75,208, 71, 59,142,213, -172,249,153, 44, 95,201, 80, 53,115,224,212, 77, 86,215,105, 42,223,182,127,104, -117, 80, 20,117,210,110, 79,124, 55, 46,193,127, 40,128,123,185,241,125, 40, 32, -101,144,180,228, 73, 99,253,231,129,209,107, 86,151, 89,227,106,238,151,248,151, -213, 21,124,174,228,190, 31,171, 71, 75,157,180, 91,249, 87,174,238, 89, 62, 78, -231,121,180,250,183,123,114,231, 1, 35, 32, 80,130, 65,202,172, 60,165,196,241, - 25,108,243,203, 23,184, 9, 83,208, 13, 75, 93,132, 55,103, 0, 24,132, 4, 27, - 35, 43,203, 15,129,249, 5, 98,122, 40,201,149, 88, 28,231,128, 85,108,173, 2, - 88,148, 4, 51, 50, 97,153, 29,155, 26,190,211,238, 20,154,129, 8,249, 58, 16, -132,104, 42, 73,129, 30, 52, 61,207, 76,108,227, 95, 45,124, 23, 90, 20,189,110, +// ../Source/JitKernels/GB_jit_kernel_user_type.c: +uint8_t GB_JITpackage_45 [290] = { + 40,181, 47,253, 96,154, 1,197, 8, 0, 54,208, 54, 21, 16,253,106,158,251,225, + 11, 88, 95,179, 57, 53,240,156,129, 69, 4, 0, 16, 56, 8, 48, 0, 48, 0, 48, + 0,244, 92,202,223,175, 87,251, 3,252,249,225, 21,253,103,225, 75, 63,199,168, +247,224,133,249,198, 52,190,140,215,228,252,105,155,116, 63, 60,255,150,172, 87, +150,140, 44,127, 28, 64,113, 28, 1,231,191,231, 79,127,207,211,181,154,174,158, +119, 93,200, 19,139,130, 40, 5,147, 32,138, 23,204,192, 19,244,122,151,147, 55, + 32,143,171,117,252,174,160, 39, 62, 72,139, 84,185,156,173,230, 7, 29, 73,117, + 35, 72,122,212, 23,146, 26,181,121, 84,230, 53, 40,226, 52,139, 36, 35, 11, 64, + 12,165,248,170, 89,202,144,111,230,191,162,107, 13,255,243, 42, 62, 13,127,115, +213, 10,113,234,140, 0,176, 3,142, 23,190,143,146,164,240, 35,163,217, 10, 60, + 60,219,245,159,183,138,154, 72, 24,253, 39, 26,251,199, 11, 63, 95,105,114, 8, +188,247, 30,208, 1,199, 11,129,231, 64,206, 11, 21, 0, 69,101, 26, 20,135,164, + 44, 77, 29,136, 35, 0, 18, 22, 80,101,120,101, 79,244, 22, 39, 65, 72, 3,197, +117, 70, 76, 22,139, 8,112,131,230, 15, 97,166,232,176,216, 26, 94, 49,120,147, +218, 19,212, 50,219,137, 61, 69,193, 16, +} ; +// ../Source/Shared/GB_Operator.h: +uint8_t GB_JITpackage_46 [578] = { + 40,181, 47,253, 96,139, 4,197, 17, 0,230,155, 84, 31, 32,149, 27,230,119,146, + 39,133, 81,181,135, 82,177, 80, 81, 73,102,148, 66,244,230,172,130,211,144,124, + 73, 16, 18, 34,120, 77, 0, 75, 0, 75, 0, 23,158, 19, 99, 10,113,176, 14,213, +194, 96, 29, 88, 0, 3, 76, 93, 31, 61, 7, 19, 48,238,228, 87,145,103,152,194, + 96,146,134,220,158,133, 48,250,218,183, 97,250,157,195, 76,247, 97,131, 60,149, + 43,207,249, 88,171,124,105,245,119,234, 90, 71,102, 72,130,173,255,108,111,149, +172, 1,225, 66, 97,170, 10,133, 15, 57,251,151,231,163,182,159, 58,183,232,221, +150,207,125,185,173,242,176,103, 99,178, 6, 9,194,145, 62,111,144, 58,210, 8, +181, 85, 58,251,168, 38,107, 88,200,100, 17, 14, 85, 75,248, 54,140, 25,182, 93, +243,167, 29, 35, 85, 95,218,208, 37,213,198, 97, 33,196, 30,217,190,125,225,251, +242,227, 1,148,155,166,173,114, 18,137,134,194,211, 86,169,123,186,142, 68, 42, + 93, 95,226,222,186,140,197,182, 50,117, 93,126, 8,214,233,225, 8,128,117, 78, +173, 94,156,217,142,175, 37,127,118, 99,151,124, 62,202,241,135,250,195,254,142, +108,171,198, 23, 67,255, 60, 17,127,150, 80, 48,243, 52, 17,218,114, 1,211,116, +111, 55,105,229, 75, 89,172,185,188, 79,114,177,255, 49,107, 29, 7,149, 59, 86, + 72,253,167,115,108,241, 21,187,178,125, 57,249, 31,218, 51,251,236,128,184,184, + 67,121, 72,178,199, 4,163,100, 27,108,194,161,108,159,132,238,113, 15, 41,186, + 95, 91,165, 92,198,184,117, 99, 90,253, 97, 97,168,145,169, 51,135, 74, 65, 10, + 82,144, 26,173, 1, 48,132, 16,197,204,234, 1,114,184,168, 2, 7, 84, 72,146, + 42, 82, 82, 70,237,255, 60,117, 40, 93, 20,240,161,204,124,253,183, 88,229, 32, +147,202, 76, 49,241, 24, 60, 3, 23, 25, 74,138, 61,171,245, 61,185,171,189, 33, +137,116,189,166,217, 58,120,213,123, 83, 31,150,123,196,103, 34,110,163,143, 14, +220, 12,162,131, 0,179,249,232,121, 89,201,186,200,222,233, 68,206,160, 40,204, +172,167,255,143, 98,149,191, 4, 78,132, 17,174,249, 74,235, 25, 17, 20,252,193, + 73,243,184, 8,193,237,217, 26,173,110,195, 26,143,186,169, 99, 48, 16,136, 67, + 81,118, 16,172, 74, 43,147, 12, 78, 48,192, 6,163,168, 23,133, 67,119, 48,100, +156,248, 66,188,202, 59, 97,120,137,177,131,131,138,235,239, 80, 69,105, 67, 40, +204,192,203,110,197, 13, 90,186, 31,247, 31, 10, 73,221,203,192,181, 5, 33, 0, +107,218, 52,147,202, 76,119, 33,164,117, 69,174,191, 88,169, 84, 11,240, } ; -// ../Source/Template/GB_assert_kernels.h: -uint8_t GB_JITpackage_71 [986] = { - 40,181, 47,253, 96, 43, 14,133, 30, 0, 54,172,134, 40,208,206,108, 14,116,121, - 77,128,239,142, 86,102, 45,172,211,208,220,132,208, 82,163,158, 68,175, 41,230, - 96, 97,122, 44,178, 78,121,145,171, 25,120,225,124, 1,122, 0,124, 0,119, 0, -231, 79,223,211,176, 94,187, 26,206,221,109,218, 28,207,119,104,119, 58, 33,135, - 39,100,224,128, 52,184,147, 17,164, 30,169,220, 92, 95,202,243,106,176,165, 44, - 27,107,108, 42,140, 99, 50, 69,101,203,217,237,237, 58,157,221,243,168, 79, 8, - 16, 3, 72, 35,225,192, 0,114, 73, 70,159,108, 83,196,234, 14,234, 22,221,253, - 62,173,125,202, 80,152,164, 3, 99,165, 68,216,214, 8,102,248,118,152,129, 44, -253,250,145,206, 97, 61,166,149, 61,219,173,108,109,220, 36,148, 63, 30, 80,227, -241, 8, 23,134,105, 44, 91,118,217,104,191,192,225,178,113, 61,233,100,143, 19, -109,179,245, 56, 35, 67, 65,225,146,229,194,166, 0, 26, 49, 7,188, 7,124,219, - 44,236, 90,216,182, 7, 60, 50,217,235,200, 61, 32, 58,166,162,169, 36,128,232, - 92, 95, 68, 92,218, 68, 28,214,123,219,223,252,241,248,127, 8,162,104, 36, 86, -197,181,150, 89,153, 12, 5, 41,252, 81,112,233, 81,193,227, 44, 0,105,217, 69, - 66,157,227, 73, 67, 1, 40, 34, 57,237,253,243, 85,238, 22,222,149, 92,123,254, -214,143, 19,207, 54,124, 92,195, 27,114,175, 31,247,201,181,195, 9,174,125,182, - 81, 94,144, 61,119, 92,202,181,134,210,134,244,243,254,209,223,144,115,238,187, -125,253,186,130,149, 41,190,203,177,247,105, 70,158,183,240,188, 72,249,210,190, -237,223,200,243,147,183,158, 26, 63,151,172,234, 50,217, 42, 42, 58, 87,102,120, -100, 66, 6,172,204, 98,160, 24, 38,218,133,226, 32,136,157,188, 95,135,160,114, -167,211,245,254,126,244,223,188, 38, 73, 19,209, 49, 48, 46,129,210,196, 4, 70, - 25,235,194, 48,149,208,140, 40, 34, 42,178, 17,253, 62,145, 6,252, 34,169,130, - 19,127, 34,157,110,132,185,178, 73,198,170, 40,140,154,100, 15,155, 43,211,168, - 10,197,114,101, 87,165,186, 46,150, 75, 69,155, 88,152,149,209,104, 54, 86,101, -185, 48, 23,136,140,178, 92, 18, 11, 3,161, 57, 60, 50,114, 60, 47, 74,218,175, -145, 65, 48, 74, 26,114, 44,105,219, 79, 52,172, 92, 35,219, 43, 89,130,243, 93, - 54,215,146, 65,235,145,220, 73,131, 75,243,195,245,204,249,244,194,175,226,151, -242,135,111,188,118,234,100,119, 21,180,163,128,185,168,225,153, 66,104,104,100, -164,160, 32, 41,100, 88, 3, 48,134, 8, 72, 29,209, 57,114,152, 48, 2, 34, 92, -133, 56,132, 9, 8, 33, 70,128,168, 48, 5, 34,161, 84, 32,129,146,212, 3,211, -178, 97,205, 2,100, 18,253, 45,113,126, 28, 25,138,127,175, 49, 93,216,113,254, -172, 31, 54,136,193,206, 16,186,111,114,178,247,201,212,167,163,165, 33,231,164, - 42,219, 67,221,121,250,176,215, 28, 49, 36, 75, 80, 37,204,238,146,232, 6,170, - 96, 8, 80,219,139,232, 92, 26, 65, 65,130,111,197, 61,240,101,135,116,195, 42, -251,199,134, 34, 14,213,139, 88, 31, 63,240,224,197,171, 16,111,107,253,117,143, -131, 92, 60, 44,221,215, 87, 3, 8,160, 96, 0, 83,172,236, 22, 23,230,110, 67, -180,177,249,138, 57,247,147, 31, 29, 21,163, 12,105,229,101,194,192,174, 86,126, -139, 38,202,161, 46,251,106,149,230, 73,214,118,109, 58,144,152,142,168,210,138, -121,196,204,226, 30,212,209,205, 92, 99,143,229,154, 42,220, 60,116, 40, 62, 84, - 38, 15, 5,120,181,240, 14, 33,231, 73, 67,185, 9,130,104,227,195,126,136,220, -227,148,108, 79,226,181,138,104,209,181, 20, 45,253, 69,218, 87,156, 17,200, 89, -188,101,182,148,198,152,143,110,240,102,151, 6, 6,181, 87, 89,217, 67,183,132, -252,147, 52, 48, 7, 37,202,228,161, 23, 45,177,212,192, 53,217,136,215, 33, 61, -157,184,252, 9, 84, 89,196,154,223, 16,159, 93, 82,223, 92,139,135, 11,169,205, -226,108,183, 2, 20,168,152, 78,206, 9, 98, 44,107,202,224,164,125,125, 20,216, - 71, 72,173, 9,176, 86, 81,102,211,120, 7, 50,188, 2,235, 8, 10, 15, 25, 21, - 5, 52, 1,141,167,155,223,139,246, 71,121,166,131, 21,152,141,176,241,214, 18, -159, 86,253,120, 48, 43, 2, 64,124, 60, 66, 90,202,212, 86,183,187, 7,170, 46, - 96,197,135,137,211,254,100,108, 97,210, 68, 85,102, 10,227,143,236, 55, 56,158, - 42,242,215, 29,104, 2, +// ../Source/Shared/GB_apply_shared_definitions.h: +uint8_t GB_JITpackage_47 [406] = { + 40,181, 47,253, 96, 99, 2,101, 12, 0,214,217, 77, 32, 16,149,115,160,182,111, +244, 12, 59,151,173,220,153,150,101, 43, 1,206, 16,142, 96, 32,133, 94,101, 64, + 51, 1, 0, 84,193, 13, 70, 0, 69, 0, 63, 0,215, 43,235, 35,121, 41,168, 51, +159, 48,214,132, 33,185, 87, 33, 11,182,245,113, 24,190,221, 97, 36,187,241,172, +252, 57, 71,103,247, 74,227, 45,173,218, 3,125, 82, 16,136,106, 95,200,202, 78, +218,183,103, 71,134, 25,228,250,164,205, 70, 27,199,189,140, 1,121,161, 32, 81, +133, 66,242, 62,246,167,109,123,191, 91,247, 34,195, 91,134, 45,162,149,187,100, +168, 16, 20, 75,237,113,214, 23,149, 59,246,157, 12, 49,138,237,100,173, 39,212, +230,178, 84,144, 69,149, 45, 95,110,175,244,244,229,219,102,125, 74, 32, 12, 8, + 74,113, 48, 32, 78,208, 6,159,108,139, 94,151,151,118, 14,231,251, 52,170,244, +106, 47,126,210,186,242,100,207, 71,157,223,246, 51,127,197, 91,199,219,150,215, + 51, 91,192,176,219,180,217,129,211,251, 74,187,114,135, 2, 14,124, 50,119,126, +233, 60,139,158,188,101,251,180,111,175, 53,230,236, 57,146, 20, 27, 78,174,170, + 91, 72,229,101,208, 79,239,185, 11,245,236,238,147,247,245,197, 83,123,174, 44, +239,153, 45, 47,157, 82, 36,195, 80, 42, 88, 6,163, 96, 15,199,149, 93,142,139, + 21,193,100,156,137,197, 98, 69,134, 51, 2, 0,151,164, 42,131, 73,110, 93,154, +134,198,210, 8, 30, 32, 32, 66, 98,144,195, 30, 55,195, 95, 58, 68, 55,155,200, + 45, 75,183,240,244, 28, 44,180,231,182,132, 64, 62,168, 3, 24, 8,224, 55, 50, + 72, 16, 51, 29, 65, 96,120, 45, 49,136,159,126, 82, 49,204,124,169,174, 52, 39, + 11,114,183,113,123, 1, 8,141, 0, 59,218,125, 83,232,153,137,152,165,192, 4, +175, 44,244, 40, 10,220, } ; -// ../Source/Template/GB_atomics.h: -uint8_t GB_JITpackage_72 [3750] = { - 40,181, 47,253, 96,197, 72,229,116, 0, 10,118,200, 20, 44,192,176,138, 14,116, - 48,130, 36,129,100, 55,175,211,176,114,187, 8,135, 61,214,154,190,166, 58, 56, -246,197,253,159,231,246,255,201,142, 72, 25,246, 77, 81, 20, 13, 81,116, 32, 57, - 1, 76, 1, 65, 1,219, 89,184,214,132,125,117, 88,182, 1, 30, 30, 80,154, 10, - 12, 70,134,227, 82,173,131, 21, 7,184,162,231, 21,187,218, 78,188,182, 63,253, -105,177,108,103,159, 85, 25,214,114, 66,185,250,146,235, 22,178,254, 38,230,246, -122, 94,230,219,249,109,187, 99,131,156,209, 58,123, 98, 30,112,205,248,233,214, - 57,245,228,123,163, 52,172,103, 52,153, 38, 83,129, 78,118,108, 32, 49,225, 54, -194,116,206,233,241,121, 48, 90,141, 45, 15,148,238,137, 14,242,132,124,222, 72, - 19, 74,194,152,145, 93,246,154,124,154, 57, 75,200,175,162,199,110,140, 17, 73, -166, 9,255,142, 24,150,121,190, 90,159,189,143,177, 43,182,148, 72, 42, 18,163, -201,184, 36,212,236,181,158, 55,247,202,220,117,125, 45,142,238,173,182,177,116, -206,222,215,151, 29, 51, 50, 77, 82, 3, 3, 46,150,217,199, 85, 58, 91,159,144, -179,117, 49, 76,243,179, 73,183,158,229, 67,100,146,144,214,106,138, 93,210,210, -203, 21, 63, 92,135,145,214,225, 54,190,144, 40, 48,208,152,220,118,122,125, 55, -210,223,226,240, 70,190,119,201,104, 66, 34, 34, 33, 21,144, 68, 36,242,209,160, -140,156, 59,202, 32,167, 75,126,172,143, 23,115,100,164,185, 92, 44,176, 48,109, - 7,150,245, 86, 76,179,207,153,230, 65,123,177,152,217,177, 74,135,145,159, 33, - 87,235,210, 98, 77,222,248,138,175,212, 2, 7, 9,129, 60, 72, 16, 72,158, 73, -112, 33, 87,108,211, 53,121,139, 14, 2,177, 56,246,111, 89,118, 53, 29,243,237, - 67, 76,219,103,171, 53,252, 60,205,158,118,220, 66, 14, 63,109,204,125, 31,118, -177,103, 4, 49,207,141,159, 1, 72,165,215, 19, 53, 50,194,216,184,184, 93,200, -132, 66, 81, 42, 29, 21, 59,248,186,206,145, 63,141, 47,137, 72, 42, 6, 12, 72, - 58,122, 62,155, 33,194,180, 72,222, 62,160,188, 96, 56,184,108,104, 88,112, 92, - 24,104, 68,160, 44,153,153, 15, 15,143, 44, 16,153,160, 72,144, 97,161,145,161, - 18,202,231,220, 6,217,211, 69, 26,140, 71, 71,227,214, 56,123,169,107,250,229, - 34,147, 89,144,171,251, 98,124, 76, 40, 25, 81, 36, 25, 85,146, 34, 59, 32,137, - 9,141, 6, 17, 50,234,224,200,192,100, 68,178,173, 57,249, 98, 31,233, 31,103, - 27,126, 48,114,199, 17,198, 43, 55, 50, 23,209, 70,134, 2,131,140,203,133, 5, - 6, 38,194,133, 6,135,229,234,232, 17, 0, 0, 88,204,167, 14,106, 70, 18, 36, - 72, 4, 8,146, 67, 98, 72, 1, 9, 73, 41, 33,210,226, 29,215, 37, 73,146, 58, - 34, 34, 34, 34, 40,176, 8,121,147, 29, 85,204,133, 49,119, 3,181, 37,140,236, -190,141,117,236, 38, 3,191,232,179,104, 61, 79,200,156,182,163,214, 70,151, 25, - 77,152,182,104,159,219,147,145,211,237,237,181, 60, 23, 42, 4,176,184, 39,190, -167, 25, 61, 90,230, 98, 63,228,116,133,114, 61,211,215, 82,211,122,246,112,234, -197,209,198,162,125, 27,118,143, 88,118,175, 87,238,251,188, 75, 31,172, 67, 61, - 33,107,115, 36, 8, 22, 25, 24,140,140, 40, 92, 62,227, 75, 14,170,180,173,146, -148,242, 81, 49, 45,140,235,114, 55,239,217, 21, 61, 34,194,247,179, 8, 69, 34, -181,142, 95, 20,158,229,142,130, 93,141,197, 45, 7,242,110, 50,254, 39,236,236, - 49,112,175,237, 6, 89,122,143, 88,103, 54, 50, 20,135, 92,103,207,243,166,179, - 82,169, 84,178,195,129,199, 3, 18, 0,229, 3, 34,247,241,235,139, 29, 8,154, - 80, 44,228, 3,154, 80,168, 10, 13, 6,181, 97,113,129,169,160, 44,159,207,232, -162,199,218,209,201,179,117,122, 97,215,254,107,213,189,185, 23,191, 4, 19, 46, -103, 35, 2,135,198,165, 66,183,163, 36,173, 55,118,200,141, 97,173,215, 74,183, - 27,238,230,235,156,238, 59,228,237, 6,179, 42, 33, 58, 3,177, 28,168, 86,235, -176,192, 80,159, 86,200, 27, 0,254, 16, 17,193,225,169,202, 83, 19, 74,135, 60, - 64,113,128, 98, 67,228,137, 47, 90,191, 87,103,177,202, 73,211, 31,238,149,165, -195, 93,207,111,171,229,154,238, 89,216,219,137,255,180,197, 39,105,198,135,156, -191,156,214,207,142,220,152, 59,141, 47,225,131, 6,148, 6, 70,166,138,222,219, -113,150,103,175,226,215,186,235,143,135,217,152,192,224, 98,177, 65,169, 80, 72, - 14,100,247,204,226,200,116,223,214, 84,218,183, 81,110,237, 72,110, 51,180,248, -122, 31, 50,164,193,143, 67, 36, 38, 60,144, 73, 65, 16,149,192,154,220, 59,130, - 92,151,189, 6, 61,123, 88,163, 40, 24,115, 66,129, 82, 98,130, 34,161, 72, 34, - 40, 43, 80, 38,244,128, 42,148,133,131,140,203,131, 10, 10, 22, 23, 8, 4, 1, - 69,153,219,182,189, 14, 2,202,247,102,223,118, 78,223,181, 69,168,175,219,159, -206,159,150,140, 8,159, 77,239,230,202,160,195, 94,206,174,131,251, 16,102,216, -228,154,241, 93,212,219, 89, 79,124,240,120, 10,153,195,237,218,124, 31, 0,128, -124,204,132,210, 27,173,107,211,252, 60,152,121, 15,183,183,170,216, 45, 42, 62, -207, 79,153, 47,246,244,135,119,189, 53, 57,228,127,156, 45,144, 42, 2,145, 8, - 5, 89,200, 15, 70, 8,167,227,148, 65,206,228,202,157,216, 88,190,222,223, 75, -127, 95,239, 87,190, 29,243,157, 25,114,216, 93,115,192,128,230, 76,195,182, 75, -219,137, 27,125, 68, 40, 57, 27, 63,252,105,213,129,130, 34, 15, 60,114, 59,123, -172, 21,135,166,130,130, 96,161,161,162, 94,215,241,218,139,130,188, 89,127, 6, - 93, 79,196,146,211,226,100,177,179, 25, 53,251,186,200,237,183,197, 58,246,179, - 8,129,128,166,125,155, 44,186,215,248, 42,137,137,140, 34,201, 50,138, 54,176, -245,105,243,156, 80,178,227, 7, 82,207, 83,211,149, 41, 42,122,141, 51,106,141, -211,184,226,182,152, 75,113, 95, 22, 61,209, 58, 76,230,164,141, 31,198,255,178, - 43, 59,184, 3,132, 15,168,211,217,145,148,101, 16,213,200,136,164, 32, 73, 50, - 28,195,128, 24, 20, 22,143,209,167,115, 89, 89,208, 15,195,128,210,113,180, 28, -154,194, 16, 12, 1, 17, 12, 49,134, 16, 72, 8, 49, 4, 17,161, 17,136, 64,136, -208, 12, 25,231, 36, 93, 71, 29,192, 53,105,164,217, 84,190,249,249,254,151,190, - 60, 86,227,217, 98, 3,215,126,243,131, 95,182,190, 82, 92,179,248,127,232,158, - 66,220,121,175,248,197,173, 9,189, 8, 0,175, 11, 38, 16, 67, 44, 36, 67,195, -171, 79,147, 27,216,184, 57,188,121,130,199,103,209,233, 81, 41,230, 43, 68,252, - 84,100, 99,249, 41, 84, 59,103,240,140, 95,125, 66, 13, 27,199, 7, 89,150,183, - 3, 12,207,136,189, 64, 39, 90, 29,186,246,250, 18, 1, 42,214, 63, 40,168, 84, -137,114, 89,220, 51,161, 71,159,187,202, 55,143, 89,162,245,109,213,142,239,114, - 19,219, 7, 24,173, 68,224,213, 94,113, 3, 94,222,158, 51,125,192,105, 53,143, - 12,212, 21,152, 21,232,245,221, 62, 29, 0,185,164,101,117, 0,151,255, 24, 73, -132, 96,181,160,202,221, 33,167, 62,143,248,162,184,174, 84,251, 41, 84, 45, 11, - 51,244,134,195,239,207,173,101,150,117, 2,170, 85, 26, 11, 80,176, 20,136,103, - 60, 97, 69,208, 14, 4,198,169, 57, 82,227,102,189,235, 73,204, 44, 20,102,246, -116, 61,106,195,216, 30, 2,158, 73,134, 5,237, 25, 70,168,104,112, 72,107, 31, - 8,218,180,153,221, 8,128,166, 8, 37,134, 57, 99,129,205,206, 27, 90,105,116, - 2,208,138, 71,139, 85,102, 6,229,134,198,237,182, 82, 59,197,151, 69,191,131, -145,177,140,244, 1, 34, 58,163,133, 21,153, 99,165,175,248, 13,243, 97,244,252, -158,188, 75,243,103,114, 50,218, 89, 31,115,164, 62,250,152, 54,148,182, 18, 35, -227,130,239,200,198,199, 1,255,216, 44,206,181,207,113, 40,117,108, 50,113,185, -173,238,204,131,164,125,166,253,249, 44, 87, 16,119, 13,106,110,149, 71,226,177, - 95, 72,232,188,175,240,112, 16,106,241, 15, 20,203, 73,132,210, 16,171,229,106, - 9, 20,104, 11, 5,192,144, 49, 73, 59,113,128,220,124, 10,112,146, 99, 57,120, - 60, 51,205,234,104,112,204, 90,135, 10,194,232,227, 61,224, 29,151,207, 29,148, -196,108,159,188, 66, 74,132,222,218,214,202,138, 77,230, 19,177, 83, 31,116,165, -182,168,121,155,209,239, 63,212,235,239,126,102, 78, 18, 4,111, 4,105, 33, 81, - 42, 18,252,228, 83, 34,244,214, 6,140,234, 81,160,116, 98,165,191,155,125, 7, - 31, 0, 97,158,241, 4,226, 75,108,112,183, 63, 61,184,103,111,121, 85,105, 53, -236,132, 88,200,141,118,221,173, 98, 70,208,119,172,246,255,184, 34, 9, 19,113, - 96,195,163, 43, 99,107,127,134, 64, 80, 18,215, 62,204, 29, 16, 29,190,240,168, -168, 56,200,139, 24,149,203,219,193,252, 72, 78,171, 46, 84,205,154,236,176, 37, - 51, 86, 23, 56,170,166, 35, 68, 17,104,233,140,136, 9,136,116,146, 6, 51, 76, - 9,102, 42,253, 1, 85, 93, 16,217,157, 97,233,195, 7, 91,246,113,209, 15,236, -224, 43, 60,162,242,128,133,232,224, 63,222,227, 22, 12,138,138,173, 67,174,111, -205,193,111, 77,133, 3,177,128,194, 12,158,139, 24,146, 48, 1,218,120,110, 50, -134, 73,111, 69,160, 15,252,237,240,177,169, 36, 45, 99, 56, 24,233,100,110,225, - 7, 0,171, 89, 18, 44,107,195,141,167, 66, 70, 65, 97,195, 96,225, 65, 94, 94, -102,204, 33, 24, 12, 89,113,116,235,179,142, 42,215,255, 43, 60,173,117, 89, 86, -225,107,173,142,142, 15,131, 31, 45,144,162,106, 78,194, 51,202,184,224, 31, 78, -175,102,236,164, 7, 59, 10, 75,140,178,141, 68,235, 10,104, 93, 20,253, 46,245, - 30,224,233,251, 66,205,159,110,200, 6, 2,234,237,247,100, 83,237, 5,204,200, - 9,141, 35,216, 4,225, 60, 0, 28,147, 17,246,190, 55,124,164,104,178,253, 70, -174, 45,187, 34,217,124, 19,213,197, 32,186,177,196,174, 58, 97, 56, 14,145, 72, -126,135,119, 68, 62,158, 77,232,104,190,191, 30,211,155,179, 85,192,109,234,128, -130, 66, 68, 47, 38,245,150,144,222,255,218,187,111,198,106,163, 35,128,233, 43, - 13,210, 98,129, 62,176,229,202, 77, 75,166, 43,105, 45,154,207,166, 52,218,108, - 66, 86, 84, 88,137,170, 5,110,238, 34,101,232,230,131,142, 33,111,228, 20,221, -229,195,106,206, 75,128, 96, 49,216, 0,180, 18,147, 7, 14, 24, 34,180, 99,131, - 77,222,136,163, 34,119,134,152, 20,111,127,124,118,235,168, 55,167, 4,100,119, -173,110,168, 8, 72, 39,183,182,160, 42,141,136,184,251, 16, 18, 83, 34,105,248, -145, 7,164,184,205, 26,219,193, 57,160,179, 93,184, 84,158, 21,190, 48, 22,107, -219, 4,178, 83,226, 8, 5,205,235, 20,142, 21, 44,182, 49,193, 12, 36,130, 1, -184, 15,253, 82, 52,102,129, 98,227,193,123, 14, 95,250,184, 54,195,153, 33,134, -225,173, 82,169,205, 84,182,147,101,184,226, 49,221, 62, 86, 79,181, 19, 5, 42, - 32, 35, 66, 52, 56,149,168,168,119,186,236,125,170,248,249, 52, 37,200,159, 16, - 26, 82,182, 75,234, 34,246,127, 44, 29, 4, 28,137,212,124,149,216, 53, 45,124, - 12,130,195,114, 76,224, 60,162,242,183,101, 92, 66, 0, 93,171,218,116,158,131, - 16,146,132,198, 19,144,220, 67,211,137,136,183,192,204,224, 16,248,102,159,192, - 36,152, 88, 68,208, 35, 50,217, 65,194,227, 1, 52,199,178, 25, 22, 81,207, 21, -128,220,222,195,135, 97, 85,154,132,107,233,218, 95, 72, 73,129,161,212, 66, 41, -213,215,200, 76, 3, 71, 81, 2,189, 44,244,120,244,163, 40,117, 65,162,245,153, -199, 84,114, 29, 51, 66,191, 58,173,102,133,115, 28, 86,236,142,133,173,179,123, -222, 13, 65,231, 32,248,145,242,234, 80,190, 49,148,140,248,142, 44, 35, 92, 68, - 81, 86,218,200,144,242, 53,151, 50,244,105,138,187, 15,141,236,134, 84, 20,159, -225,241,189, 57, 6, 41, 92, 39, 23, 39,204,205, 47,188,130,173, 38,169,233, 4, -133,145,217, 79,251,188,216,142,139, 98,214,186,234, 13,112,184,248,141,228,105, -138,138, 97, 3, 84,150, 9,123, 57,211,144,121,132, 74, 62,209,150,109,102,216, -253,222,177,236, 8,114,251, 67,133,198, 30,177, 44,125, 47, 99,120,209,153,163, - 16, 26,229, 78, 37, 88, 56, 78,114,168,216,114, 59,139, 42,150, 63, 46,133,204, -123, 8,168,237,212,120,210,138,221,217,151, 88, 51,169, 98,116,103,184, 26, 62, -114,159,222, 39, 21, 74,217,150,231, 36,183,184,135, 11, 63,204,177,108,106,199, -124, 63, 85, 28,223,217,129,107,186, 58, 88,136, 22, 34,254,133, 44,211, 93, 74, -102,208, 48,189, 62,219, 95,190,198, 95,242,169, 82,205,245,209, 86, 0,166, 3, -122, 2, 24,136, 19, 21, 82, 98,228,204, 15, 10,187,103,141,253,113,203,129,221, -254,191,132,179,145,247, 1, 15,117, 48,176,181,208, 1,205,133, 70,203, 1, 47, -182, 69,162,125,204, 39,104,172,216,131,115,168, 54, 79,162,122,218,106, 74,208, - 37,102,177, 50,119, 8,173,133, 21,145, 39,253, 0,207,137,119, 85,112,109, 7, -247, 74, 18, 71,211,246,185,192,247,138,142, 18, 52,114, 67, 90, 22, 3, 9, 98, -163, 48, 83,118,124, 73,217, 12,205, 64,244, 0, 60,251,233, 29,157,127, 0,121, -187,250, 0,229,112,159,102,130,155,244,221,134,234,144,192, 70,133,109,135,167, -161, 91, 64, 73, 41, 57, 6,141, 49,230,213,104,221, 47,224,247, 17,167,177, 28, - 18,251,145,147,212,243,254,227, 40,118,147,157, 56, 67,149,231, 71,234, 29,250, -219, 45,158,184,165, 42,197, 1,238,196, 40,228,213,131,108, 40, 46, 60, 66,121, -146, 78, 10,202,183,204, 31, 68,168,130,106,237,169, 62, 0,157, 70,155,172,183, -133,202,117,169,129, 46, 7, 18, 55, 29, 11, 99, 22,209, 60,147,217,201, 89, 13, -182,115, 17,135, 22, 19,210, 11,148, 9,148, 7, 8, 48, 2,236,148,100,118,216, -236,187, 44,222, 45,208, 1, 34, 18,154,254,102,217, 3,226,150, 10,181, 52,115, -230,110,158,201,206,115,149,121, 60,188, 62, 80,197, 94,117,220, 18,149, 39, 23, - 76, 68, 17,215,233,190,139,106,205,240,192, 61, 92,167, 21,174, 6,183,144,182, - 5,124, 21, 56, 91,173,180,152,223,233,130,239,147,149, 50, 87, 24,108, 10,149, - 43,221, 28,200, 38,217, 64,157,141, 97,179,162, 45,205,241,250, 0, 37,210,127, - 51,232, 44, 26,167,221, 71,101,222,175,119,152,120,137,209,139,169,238, 5,187, -207,202,177, 7,113,181,226, 10,119, 34,128,210,179,107,189,182,127,112, 19,132, -170,147,189,225,191,249,206,247,148, 95,113, 82, 77,101,172,116, 82,241,115,242, - 23, 21, 65, 27, 74,160,116,114, 24,241, 37, 98,238, 16,230, 84,111, 77,172, 37, -111,102, 96, 99,217, 55,148,103, 73,118,106, 27,147, 99, 72,127,166, 31,164,110, -180,192,168, 85,231, 76,209, 6,126, 48, 7, 29,170, 55,183, 18,250, 20, 53,242, - 10, 88,226,154,130, 5,136, 5,248,158,170, 64, 20,243,114,153,128,204,139,133, - 20, 57,224, 47,185,188, 78,156, 65, 94,215, 13, 29,128,219, 83,112,109,142,162, - 74, 7, 88,253,134,196,100,114,156,128,193, 94, 67,126, 63, 68, 86, 59,152,111, -170,169, 26,197, 61, 19, 25,171,145,148, 80,232,142,187,118,140,120,106,159,173, -171,125,173, 72,182, 50, 43, 8, 24, 47, 3,159, 11, 65, 10, 22, 51, 19,207, 43, -144,115,147,130, 7, 64,144, 37, 97,101, 99, 73,222,131,230, 90,197, 74, 59,120, - 11,166,252, 78,128,171, 38, 39, 94, 1, 51,159, 48, 42, 86,226,208, 36, 92,114, - 68, 38,188,183, 85, 56,233, 67, 97,146,165,123, 49,206, 44,124,230, 95, 7,253, - 21, 20,129, 72, 27,205,178, 26,254, 7,218,203,235,161,109,132, 90, 36,173, 90, -147, 87, 61,124,157,230,162, 83,194,164, 74, 25,148, 51, 41,231,127,192,176, 90, -108,184,216, 88,196,196, 96,125, 88,240,124,107, 69, 91, 2,244,188,177, 59, 45, - 40,197, 91, 95,171,225,208,206, 84,143,153,233, 64,209, 3,124, 36,209,200,233, -101,229, 48, 35,247, 12, 66,233,236, 17,186,131,222,197,244, 14, 73,235,153,120, - 84,216, 18,171,178, 62,136,168,146, 31, 46,184, 46,129,129,250,209, 62,222, 6, - 30, 52, 16,225, 26, 96,254, 49, 54,245, 65,158,107, 93,243, 80,224,220, 21,207, -147, 67,224,117,236, 22,191,141,205,101, 37,126,225,196,241,249, 32,153,102,109, -127,164, 68,210,236,103, 29, 98, 51,236,145,121,230,197, 17, 65,251,248,197,209, - 79, 60, 74,188, 13, 22,214, 37,205, 63,226, 89,184, 82, 53,150,217,171, 85,188, -108, 84, 41,128,253, 76, 50,184,117,111,139,152,255,122, 96, 25,228,217, 69,140, - 91,192,241,209,114,156, 92,103,166,184, 72, 74,227, 93, 56,207, 71,223, 29, 0, - 92,182,240,232, 85,255, 57, 96, 51,212,225,232, 55, 82,226,106,232,198,232, 36, - 47,182,172, 3,199,137, 43,230, 23, 54, 77,242,130,153,182, 8,198,243, 3, 29, -205, 64,114,242,133,156,206,121,237, 7, +// ../Source/Shared/GB_assign_shared_definitions.h: +uint8_t GB_JITpackage_48 [12576] = { + 40,181, 47,253,160, 78,108, 1, 0,165,136, 1,218,226, 68, 41, 51,112, 12,149, + 85, 29,137,208, 10, 92, 21,227, 81, 35, 68,100,131,132, 30, 41, 81,152, 85,238, +115,159, 40,106, 9,192,154,168,191, 92, 3,199,190,120,237,201,108, 7, 37,107, + 3, 37,235, 8, 74,214,156, 1,148, 2,121, 2,119, 2, 13, 24,216,248,204,190, +189,109,118, 14, 43, 36,138, 71, 12, 26, 68,232, 25,253,156, 49,198, 24, 99,164, + 52,198,216,197, 25, 31,201,243, 55,198,248,125, 31, 36, 33,241,249,124,160, 76, +230,226,226, 2,154,152,184,184,248,190,207,197, 37, 39,174, 79, 70, 30, 70,243, +240,131,254, 69, 46, 17, 59, 91,105, 36,187,245,221, 89, 31,124, 32, 80, 98,101, +185, 92, 44, 18, 16,177,114, 85, 47,187, 69,165, 25,207, 43, 31,235,190,157,253, +181,121,110, 30,231, 93,215,164, 34,164,140, 20, 69, 81, 20, 69, 81, 20,116, 73, + 5, 65, 93,221,169, 20,132,162,184, 79,132,177, 40,213, 52,141,230, 0,138,162, + 40,170,239,244, 52,135,241, 88,157,167, 40,142,146, 62, 53, 32,156,169,252,124, + 40,157,222, 57,104, 72,116, 18, 22,231,182, 4,108,163,158,198,210,240,212,172, +171, 57, 84,209,193,130,144, 92, 36, 28,172,138, 8,138, 20, 6, 40, 30,113,174, +245, 92,144,124,220,129,133, 41,110,170,225,236, 69,173,189,117, 36, 71,177,206, +117,189, 49,123, 89, 24, 7,141,238,190,124,125, 34,232,147, 2,143,160, 15, 70, +109,135, 74, 7, 13,249,200, 45,166,150,252,102,173,230,209, 37, 82,152,201, 3, +171,154, 0, 0, 93,130, 12,201, 56,148,208, 35, 88,172,204, 4, 2, 19, 41, 11, + 3, 33,113,196, 95,123,234, 90,166,158, 99,141, 39,221,230,101,212, 77, 46, 83, +205, 91,243,108,107,157, 23,196, 93,230,182,248, 36, 45,140, 4,194,239,109,108, +182,102, 85,111,239,129,217, 89,138,138,177,170,180, 9,218,151, 34, 37, 12,217, +162, 80, 34, 42, 12,110, 97,108,246,213,164, 71,142,235, 33, 70,243, 51,132,222, +102,117, 98, 61,184, 95,238,184,126,157,239, 59,183, 11, 83, 77, 40, 17,170,136, +177, 36, 48, 23, 74,146,192,193,170, 42,150, 9,102, 82,153, 52, 72, 24, 44, 6, + 9, 68,116,168,172, 10,132, 73, 85,197, 7, 17, 85, 95,213, 62, 99,111,243,174, + 22,155, 80,117,223,204,250,208,155, 39, 69, 81, 49, 86,213, 97,198,178,217,154, +208, 38, 14,181,137,190,160,216, 58,204,152, 82, 56,120, 98, 2,128, 30,101,107, +128, 2,114,165,135, 22,181,171, 64,191, 88, 46, 86, 4, 8,137,132, 67,144,160, +129, 83, 40,209,203, 40, 86, 91, 65, 2,200, 21, 36,144,200,120,169, 34, 64, 88, + 36, 88, 18, 9, 68, 67,205,176,174,199,243, 88, 51, 24,111,204,219,174, 74, 21, + 36,200,236, 47,239,102, 92,237,245,214,178,189,215,228, 18, 72,142,133, 70,107, +215,236,226,167,219, 52,163,185, 54, 54,105, 52,174,125, 81, 74, 35,195,112,113, + 96,221,185,141, 27,226, 56,107, 22, 20,226,219, 22, 15, 5, 88,144, 22, 26, 6, + 60,164,133, 71, 23,116,136,105,103, 50,220, 17,255,105,217,114, 20,115, 88, 69, +202, 3,173,155, 23,194,212,248,206,174,234, 76,189, 42, 1,222,186,222,230, 92, +227,225,107,179,127,210, 28,184, 90,154,105,165, 89, 99, 22,214,119,106,216,170, + 22, 20,227,105, 61,128,240, 6, 13, 18, 52, 26, 52, 8,211,179, 77, 10, 39,206, +244,217, 4, 66,172,175,185,117,125,229,132,103,244,121, 4, 58,231,200,243,211, +109,177,111,171, 54,187,141,235, 5,247,237,108, 99,236, 78,139,190,135,144,161, + 98,145,146,138,131,112,116,235,186,238,106, 43, 31, 8,191,246,185, 54,215,155, +228, 90,172, 49,108, 98,209, 7,230,198, 51, 79,172,243, 50,139,169,150,255,105, +194,189,117,239,206,212,100,111, 24,157,162, 8, 31,185, 3, 42,129, 9,141,134, +164, 14,172, 91,147,177,199,117, 70, 55, 77, 37, 98,194, 27,234,245,178, 4, 35, +161, 64,239,236,197,231, 83, 17,187, 15,250,124, 19,223,225, 5,244,137,195, 15, +244,136,194, 39,193, 68, 74,196,255,125,223, 23,125,146, 20,254,104, 50,136,177, +241,214, 17,198,184,161,115,194, 39, 64, 6,145,236, 32, 72,225,255,186,139,107, + 78, 2,128,245,183, 69,224, 71, 66,150,196,197, 34,231,237,206, 42, 40, 68,153, + 43, 80,240, 14,122,148,129, 48, 25, 73,197,209,213, 62,127,186,218,252,238, 88, + 14, 98,111,247,218,241, 48,182,133, 0,255,166,167,177,112,104, 47,224,161,181, +161,215,117,144, 16, 81, 82, 89, 57,195, 16,123, 54,255,209,192,106, 79, 22,117, + 94, 90, 61,139,227,108,118,165, 13,191,227,122,215,101,235,245,190,230, 61, 62, +236, 78,115,243,214,225,117, 91,111,219,188,179,187, 30,134,245,229, 97,246,182, +230,223,228,238,233, 74,102,175, 93,119, 54,254, 35,145, 74, 4,172, 36, 19,202, +133,170,144, 29, 69, 0, 1, 60, 2,224, 10,207,119,102,108,113, 38,135,145,254, + 25,211,109, 35,169, 42,146, 90,236, 0, 3, 42, 1,222,100, 86,123,237, 57,123, +179,227,230, 36,253,167, 57,154, 27,209, 3,178,252,194, 94,231,189,194,138, 56, + 97, 82, 94, 38,148, 6, 43,186,100,242,128,178, 76, 64, 72, 37,244, 9,173,168, + 58,138,238, 18, 17,193, 98,161, 88,149, 37,171, 55,246,174, 93,116,131,210, 2, + 2, 18, 46, 64, 58, 28, 64,186,205,151, 36,171,229,166, 34, 50,237, 56,186,185, + 48,165,199, 93, 41,215,216, 45,222, 38,204,244,112,170,156,183,217,107, 86,221, +107,119, 40, 4,238, 30,187,109, 54,115, 84,108, 40,254,176,169,160, 20,159, 80, +136, 85,207,102,182,187,125, 91,243, 92,114,174, 74,109,247, 57,163, 13,164, 80, +245,239,230, 26, 85,122,108,107, 13, 98,108,243,162,183, 57,175, 50, 48,191,131, +187,157,243,236,126,209,205,106,184, 47,122,128, 19, 72, 70,170,107, 22,158,189, + 90,126,231,113,172,221, 62,105,231,145,220, 64, 73, 33,121,154,125,146,204, 95, + 20, 79, 77, 85, 85, 85, 85, 85, 85, 85, 85, 84,211,170,106,222,252,233, 87,213, +163, 9, 78,208,195,228,211,154, 99,155,103,175,234,147, 4, 34, 2, 19,209,112, +237,191, 58,111,119,186, 30,211, 87,241,131, 46, 97,221,185,205, 11, 71, 89,205, + 57,161, 24, 39, 68, 16, 6,210, 53, 71,101, 98, 65,168, 76, 24, 42,146,203,167, +177,249,183,235,130,204,190,243,204,152,230,107,175, 74, 53,242,219,250,210,222, + 46,188,209,153, 61,155,228,171, 49,206,147, 76,179, 28, 85,218, 21,146,199,243, +142,248,175,179,151,173,182,218, 10,169,150,226, 58, 97,140,159,156, 0,145, 86, +149, 19, 32,135, 52, 96,144,177, 50,179,218, 73, 55,148,235, 27,121, 32,225,148, +161,160,112,244, 85,251,118,214, 55,119, 95, 8, 70, 97, 5,197, 29,141, 51,248, +109,159,198, 12,172,171, 90,236,181, 22,215,226, 70, 95, 60, 41,196, 29, 65, 24, + 35,121, 65,133,200, 72,122, 2, 25,155,241,181,219,244,188,235,232,150, 77, 91, +175, 72, 99,111, 98,141,221,121,121, 44, 87, 33,182,119, 56,176,183,105,184,254, +182,109,122,151,222,198,174,133,184,111,241,197, 48, 88,103,134, 53, 78, 17,116, + 77,204, 4,185,220, 53,231,195, 88, 42,149, 9, 36, 87,106, 55,152, 98,221, 68, +231,169,121, 52,112,163, 51, 55,118, 45,247,233,123,108,141, 82, 6, 81,156,135, + 31, 49,226,105,187, 3,144,122, 48,182, 89,205, 78,172, 53,119,110,148,163, 56, +162, 20, 50,250,105,194,198,212, 99,153,157, 33, 48,222,249,213,201, 77,217,179, + 56, 54, 86, 59,215, 89,233,228,250, 62, 74, 9, 85, 31,167,119,199,106,166,245, +224,123, 97,174,179,211, 91,223, 75,169, 73,130,163,171,197,179,239, 5, 29, 48, + 19, 9, 56,214,234,144, 58,140,213,145,217,126,198,151,102,159,182,173, 61,199, +119,100,228, 45, 21, 71,246,213,122,172, 47,205,190,107, 79, 27,123,215,135,114, +125,179,205,139,216,118,184,206, 27, 27,111, 51,235, 14,205, 87,103, 89,223,146, +144,188,121, 51,235,232,189,112, 99,143, 72, 36,138,208, 69,173,112,198, 59, 24, +135,108,184,210,153, 31,141, 79,211,120,108, 34, 15,135, 52, 50, 57,148, 86,115, +232,246,233,227,124, 57, 50, 17,124,154, 50, 74,162,110, 63,117,206,169,115,211, +192, 12,212,174,234, 93, 78,120, 65, 52,163,152,229,162,130,244,116,173,157, 51, +189,158,219, 29, 27, 35, 29,186,253,239,108,155, 90,109,206,204,175,109,209, 20, + 73,146, 36, 73,146, 36,139,221,106, 12, 14, 6, 71,230, 17,161,228,244,168,248, +227,241,242, 20, 81, 66,117, 54,119,200,200, 22, 99, 48, 24, 24,220, 87, 25,119, +110,158,100, 52, 28,120, 66,151, 30,212,130,184,160, 53,115,139, 11, 28, 11, 50, + 19,132, 81,180,129, 30,224,195,103,242,156,245,246,140,190, 0, 8,198, 67,105, + 61,123, 93,146, 71,132, 18, 96,194,252,122,182, 97,128, 94,120, 96,207, 17, 65, + 78, 34, 22,176, 26, 38, 86, 69, 2,129,243,164, 87,119,153,222,226, 28,243,251, + 82,239,129,190,159,164,156, 58, 91,181, 2, 30,247,122, 87, 67,228,177, 55,162, + 16,212, 91, 99,156, 59,185,140, 47,166,209,194,215,155,134,230,137,191,145, 72, +169, 70,163,105, 13,166, 41, 66, 90,140, 68, 83,198,101,246, 85,156, 80,226,181, +145,161, 18,173,168,240,195, 3, 14, 41,235,162, 86, 6,138,196,161, 66, 89,212, + 45, 78, 91,212, 41,171,195,224,162,230,185,117, 92,231,235,146,146, 83, 61,237, +242, 44,118,200,202, 31,105, 85,239,115, 24, 35,198, 25,140,137, 98, 64,143, 38, +132, 20,100, 73, 40, 15, 32, 34, 54,205,245,176, 21,129, 60, 26, 10,108, 18,128, + 84,233, 14, 34,133, 4,160, 14,107,206,213,154,199,214,218,237,201,244, 78, 13, +206,180,111,123, 30,125,145,194,194,194, 45,155,107,133, 20, 62,155, 74, 17,209, + 71, 16, 65, 2, 16, 68,239,185,157,179, 57,181, 5,232,218, 71, 27, 58,225, 84, +233, 27,175,120, 40, 68, 94,161,169,118,245,243,217,108, 34,167,143, 28,202,195, + 8, 10, 0,178, 52, 11,207,214,126, 91,220,121,233,235,225,218, 85, 37,145, 50, +162,130,140,195,133,174, 34,114, 79,215,250,224,188,235, 17,136, 47,232, 54, 43, +205, 62, 81, 17, 21, 21, 33, 31, 81, 80,112,237,213,215,179,249,156,135, 31,127, +165,157,215,205,235,249,116,137,184, 68, 8, 9,148, 58,149,193,127,195, 97,170, + 40,169, 10,170,163,184,134,162, 42,101, 61, 76, 40,140,103, 59,162,176,109, 94, + 70, 1,216, 64,184,193,104,106,128,242, 16,186,132, 15,155,171, 82,172,246,102, +170,212,162, 53, 27,198,196, 56,166,215,202, 77, 4, 55,214,191,129, 4, 0, 63, + 84, 34,179,129, 25,248,204,196, 42,109,176, 48, 16, 17,179,240,199, 56,169, 11, + 80,168, 78,122,103,103,187, 0, 3,136,163,101, 52,200,209, 50, 82,194,128,132, + 3,253,226,160,130, 67,241,233,155, 43,144,201,116,112,130, 50,241, 25,206,225, +230,176,203, 52, 61,204,116, 80,174,157, 25, 36,151,203, 67, 82, 69,135,139,149, +205, 87,123,220,143, 6,100,205,109,110,142, 10,138, 63,194,105, 96,193, 92, 38, + 16,178,122,104,192, 0, 1, 3, 8, 16,224,209, 21,212,160,212,120,106,157,133, + 97,115, 34,242, 47, 83, 92,105, 84,193,204,237, 76, 31, 50, 19,136,189,124, 88, +201,136,233, 51, 85,102,226,153, 85,200, 60,242, 9,105, 97,225,113,128,244, 56, + 68,160,128, 3, 30, 22, 86,167,181,128,251,178,158,108,145,128,129, 60,212,195, +135,195, 73, 61,156, 28, 74, 8, 89, 14,207,124,190,250, 82, 44,123,112,139,209, + 60, 39, 10,170,116,195,159, 36,114, 66,169, 44, 73,197, 18, 73, 64, 88, 40, 9, +101, 53, 88, 44, 76,132, 5,234, 11,137, 60, 20, 28,170,136,190,102,247,206,243, +178, 83, 69, 90, 40,148, 56, 61,182,118,215, 77,173, 82,145, 36,169, 58,108,181, +160, 31, 3, 67,102,103,158,125, 85, 90,253, 81,146, 38, 77,254, 14,234, 0, 61, +206,235,171,243,234,108,161,106, 15,105,103,175,211, 71,136, 63, 73, 74,212, 94, + 51,147,179, 27, 31,130, 33, 6,175,199,106,135,209,162,210,214, 60, 30,119, 36, + 73, 2, 2, 83,145, 88, 14, 7,131, 3, 78,105,107,116, 64, 14,134,144, 90,168, +228,149,154, 61,235,156,154, 17, 1, 0,160,160, 0,147,129, 24, 24, 12,135,209, + 68,114,209,100, 19,230,246, 68,130, 71, 69,216, 6,132, 11,195, 0, 41, 92, 10, +131, 67,101, 48, 0, 22, 64, 50, 12, 66, 2, 0,128, 1, 24, 0, 0, 88, 98,176, +129, 94,173, 1, 40, 3, 79, 6,121,164,238, 56,250, 4, 40,240,176, 87, 40, 75, +159, 99,228,141, 40,246,249,127, 52, 5, 94, 10,159,167,195,137, 84, 29, 61,236, +224,133, 25,165,246,103,160,234, 86,209, 56,160, 71,126, 67, 79,255,143,115,160, +104, 82, 45,107, 44, 56, 88,106, 62,191, 81, 75,115,111,235,138, 3,191, 14,186, +159,247, 55,169,175,127,137, 37,134,236, 78,116,236, 96, 5, 21,124, 10,172,121, +200,172,172,121,211, 6,131,178,235, 29,187,220, 58,136,125,112,176,206,115, 47, + 8,208,165, 7,245, 70,230,118,241,126,149,127,227, 18,223,148, 66, 42, 63,134, +150,208, 78,162,126,162,195, 85,198, 67,231,106, 64,162,115,156, 11,193,194,197, + 6,210,221,244,116, 56,171,230,202,166,211,201, 17,243,233,238, 50,148,147,238, +104, 5,245, 71,244,117, 90, 12,106, 86,211,135,133, 38,157, 40, 68, 44,201,213, + 51,249,116, 22,158,219,142,134,232, 70, 38,188, 75,180, 41,104,221,247, 11, 6, +254,165, 68,158,109,185,154,190, 67, 96,228,140,158,134, 58,225,180,158, 83,157, +221, 40, 53, 58,105, 72,156,147,213, 1,106, 70, 18,100, 56,161,187, 21,135,238, + 71, 33,185, 34,212, 7,183, 51,249,103,154, 26,144, 95, 71, 47,197, 74,130, 5, +238,136,252, 53, 48, 56, 41, 60, 41, 10, 49,114, 54,232,164,234, 52, 62,106, 43, +162,255, 7,224,192, 41,246,131,188, 49, 72,116,100, 21, 66, 15, 53, 7,108, 63, + 85,207,232,209,159,232,114, 57,120,205,194,107,191, 52,253,234,245, 30,159,176, + 8,121, 76, 44, 59, 77, 57, 95,216, 97,253,229, 55, 78, 70, 61, 34,242,143,188, +255, 65,169,211,110,108,160,212,190,161, 1, 25, 93, 74, 29,187, 2,115, 13, 18, + 55,237,145,205,175,131,210,221,232,110, 79, 50, 76, 39, 50,151, 21, 87, 73, 1, + 96, 44,218,148,169,177,253, 39, 0,198,145,149,234, 65,123,184, 93, 82,143,154, +144, 14,177,247,230,184,213,154,237,247,217,186,233,194, 77,117, 15,208,208,140, +221, 80,133,142,155, 95,160, 90, 20, 53,189,161, 7, 69, 92,119, 52, 40, 13, 72, + 42,203, 49,149, 91,222, 27,233,237, 99,110, 3,112,164,142,177,231,237,108,164, + 86, 73,130, 39,175,132, 9,249, 57,237, 40,116,168, 78, 18,183,169,194,241,119, + 83,152,129,126, 48, 88,220, 49, 46, 45,252,194, 9, 73,177,217, 22, 72, 52, 82, + 14,135, 72, 86,187, 26,153,147, 0,238,171,215, 11,152,109,195, 35,146, 16,227, + 6,246, 84, 76,107,191,210, 95, 88,209, 84, 8, 9, 59,222, 52,168, 33,205,214, + 4,150,250,212,237,169,224,221,196, 19, 20,245,157,168, 45, 48,161, 40, 52, 75, +105, 16,166,244, 75,105, 80,204,156,136,156,163, 25,137,215, 19,150, 48,239, 22, +169,207,140,223,197, 89,222,225,141, 35,109,167,153,136,118,233, 3,192,126,174, + 75,247, 56,154, 42,189,179,243,163, 0, 36,109, 70,133,111, 41,216, 40, 7, 36, + 38, 71,222, 31, 58,254,252,141, 41,246, 70,104,140, 81,255, 28, 44,192,129,170, + 70,205,165, 8,137, 96,116, 20, 20, 91,252, 89, 19, 52,230,251,129,145,235,119, + 82,179,156, 72,167, 31,250,196, 38,126,214, 62,212,230,218, 38,163,206, 58, 31, + 63, 76,189,124, 73,225,242,255,137, 85,165, 52, 28,123, 38, 11,234, 91, 17,108, +235,191,245,166, 39,141, 34,142,184,175, 98,174,208,250,134, 85, 4,226,219,109, + 60,112,232,172,247,162,221,150, 40,240,236, 19, 44,132,180,197, 79,187, 8,100, +151, 18, 92,154,201,250, 52, 12,201, 92, 11, 39, 33,242,194,171, 10, 89, 90, 24, +144,109,196,255,228,162, 9, 39, 33, 72,228,103,173,123,170,196, 69,156,128,171, + 22,165,136,122,177,234, 47, 9,197, 36, 53,160,152,118, 80,147,248,234, 79,201, + 89,106, 5,130, 9,117,250, 9, 93,236, 52,228,224,199,126,237,123,215, 71, 6, +113,252,137,177,252, 56,138,134, 77,237, 65, 45,153,149, 82,131, 97, 31,210,139, +143, 66,167,218,233, 85,229, 50, 32,108,125, 18, 72, 96,241, 75, 60,100,140, 34, +251,184,141,138,180, 31,203, 74, 88,155,187,167,232,103,212,187,122,177,141, 8, +228,255, 74,255, 75, 30,244, 8, 62,218,218, 16,204,238,120,195, 4,152, 53,157, +158,204,239,196,204,237,210, 70,111,117,167, 71, 35,182, 72, 43, 58,250,123, 35, +188, 68, 26,120,111, 14,225,219,194,255, 3,204,162,249, 42, 80,210,108,227, 46, + 22, 46, 52, 40, 59,103,177, 47, 74,163,159, 52,239,104, 72, 93, 98,107,153, 96, +184,120,178, 32,129,238,130,143, 64,165,232,242, 96,205, 73,156,193, 96, 29,225, + 83,135,203,237, 97, 88,169, 30, 13,180,124,242, 48,182,165,243,244,230,193, 20, +201,191,209, 2,156, 51,104,212,211, 73,144, 77,163, 45,179,248,122, 75, 36, 86, +132,214, 17,173,143,194, 74, 77, 35,128,114,138,152,109, 68, 78, 28,222, 17, 38, + 40,195,177,222, 70, 6,178,208, 52, 65,213,221,168,207,234, 26,189,174,167,146, +174,109,132,121,228,132, 75,182, 10, 42,160,241,245, 90,195, 27, 2,119, 33, 34, + 89,112, 38, 50,185,241,119, 89,181, 6,165, 42,135,172, 75,247, 48,203,229,236, + 66,146,170,239,136, 87, 96, 78,175,229,221,197, 42, 14,121, 16,248, 73, 34, 63, + 38, 22,163, 67, 39,134,186,175, 44, 18,152, 57,182,136,129,216, 16,224,177,203, +188,191,136,147, 23,112,110,156,189,226, 19,111, 26,169,214,253, 43,160,128,166, +143,147, 21,195,179,141,166, 28,190,112, 73,218,167, 57,159,145, 96, 99,121, 65, + 97, 74,160,175,238,139, 91, 78,254, 97, 4, 70,211, 20, 58, 89, 93,236, 70,134, + 78, 4,155,150,202,211,222,208,188, 55,119,112,234,177, 16, 87, 90,228,200,244, +231, 15, 33,193, 89,103,211,186,242, 79, 88,234, 55,156,232, 60, 43,167,111,164, + 40,104, 97, 23, 73,198,241,168, 19,240,133, 75,138,155,120,161,103,111, 89, 30, + 64, 90, 73,232,201,236, 43, 93,141,182,109,100, 39, 36,176, 88,238, 53,105,201, +107,167, 29,156,144,162, 28,163, 56,182, 91, 73,116,201,197, 68, 17,195,109,240, +186, 94, 90,111, 17, 89, 1,197, 90,193, 1,133,226, 8,239, 19, 74, 81, 10,174, + 92,237,144,213,126,159, 60, 98,255, 63,232, 80,200,214, 52,230,237,240, 61, 27, + 35, 38, 24,179, 43,251,151,112, 88,168,241,190,169, 38, 84, 75, 42,218,105, 10, +161,208,240,240, 47,139, 36, 0,195,218, 95,186, 46, 78,116,159, 38, 12,147,213, +156, 8, 74, 71, 77,213,213, 23, 46, 10,232,204, 74,224,104, 90, 50,160,170,251, +166, 46,112, 77, 84, 87,252,170, 93, 93,179,145, 84, 37, 90, 89, 83,108,205,211, +150,237, 60, 83, 25,205,102,135, 10, 51,222, 52,154,206,235, 71,227,174, 36,137, + 15, 28, 86,235,223, 34,151,201, 27, 80, 24,185,239, 75,147,220,226, 93,242,223, +144, 67,226,164,200,219,124, 47, 80,226,180,252, 14,152,163, 18,113, 77, 77, 42, +196,196, 98,137,187, 83,177, 75, 45,103,164,102, 88, 51,161,112, 16, 97,245,217, + 29,236, 26,254, 48,172,222,218, 23,195, 8,180,114,141, 83,112, 4, 6,240,184, +154,101,218,157,227,126, 84, 81,236, 97, 55,199,144, 4, 0, 30,118, 32,187, 93, +248,224, 44,194,227,125,229,108,159, 89, 48, 84, 48, 28, 39,204,121, 12, 20,182, +243,162,252,215,100,131,230, 78, 84,153,109,128,110, 37,163,202, 83,147,209, 48, +255,217,193,141,181,191, 37,151, 82,158, 96, 31, 64,140,178,115,243,170, 0,243, +254, 54,180, 91,207,210, 83,194, 21,196,172, 14, 4, 52,226,252,237,111, 21,125, + 49, 87,137,135,243,130,140,182,219,236, 87, 3,197,152,184,160,225,227, 24,242, +146,148, 38,112,140, 18, 31, 79, 73, 26,138, 73,130, 20,114, 31,153,122,162,168, +141,161,120,209,219,220, 47,152,120,182, 16,165,177, 27, 23,238,126, 60,109,205, + 17,161, 75,204, 48,185,147, 93,177,147, 7, 9, 74, 67,142,156,116,166, 8,104, + 49,253,252, 62,174, 76,152,134, 96,123, 89,247,151,164,199,127, 4,223,215, 88, +139,216,104,210, 15, 92,147,134, 37,205,203,197,104, 97,217, 78, 35, 69,139,238, +140,165,153,252, 68,153,141,209, 99,200,130, 35, 68,135,137,222, 89, 49, 48,114, + 90,237, 77,148,165, 42, 18,190, 79, 52,255,107,250,138, 39, 0, 81,102,225,240, + 4, 69, 71, 92,118,112,241,118,226,238,103,199, 86,181,233, 44,143,142, 28, 47, +101, 77,140,230,140,161,198,178,204, 48,233, 64,199,229,255,234,156, 3,100,161, + 17, 22, 84,236, 25,129, 78, 35,193,174,190, 24, 6, 49, 17,157,164,129,116,245, +193,165, 48,140, 90,141, 70, 23,128, 48,120,164,216, 93,202, 82, 76,201,180,150, +227,113, 41,144, 67,165, 59,132, 9,230, 94,146, 34, 38,233, 53, 69,255, 20,134, +119, 91,145,134,142,142, 24, 6,206,201,169, 29, 7,242,195,213,122, 96,225, 4, +209, 25,132, 8, 87,247, 48,211,101,168,128, 19,139,229,124, 26, 14,118,158, 18, + 54,141,200,189,130, 78,157,255, 84,190, 33, 92,194,136,246, 37,251,158,226,124, + 91, 68,228,250,179,150,253,173,238, 47,228, 52, 81,100,115, 2,166,102, 4,119, +159,254,108, 53, 60,251,214, 9,157,172,219, 59, 65, 68,162, 88,202, 62,215,188, + 0,249,207,117,241,251, 86, 62,103, 93,233, 93,235,160,246,209,242,200, 56,239, + 97,243,160, 72,110, 63, 88,160,183,148,180,212, 7,117,222, 97, 95,169,142,136, + 96, 80, 22,209,131,251,196, 60, 11,131, 40,233,156, 95,152,223, 63, 25, 96,172, +165,198,157, 29, 76,139,139, 47,216,151, 39,112,234,183,108,208, 48,233,150,110, +208,124,251,205,246,129,104, 34,203, 79,151, 32, 21, 34,126,212,102,223, 30, 64, +210,128, 20, 24,226,242, 64,226,169,194,215,175,180, 96,219,183,233,184,100,180, + 36,229, 90, 56,102, 85, 16,161,113,159, 94,172, 95, 36, 13,245,221,155, 20,146, +156,233, 61, 52, 93,187,193, 30, 5, 96,184, 35,194,252,131,104,211,139, 16,102, + 20, 17, 67,231, 89,140,131, 50,153,233, 83, 54, 45, 92, 29,229, 34,109, 88, 48, +158,241,229,128,251, 83,163,204,122,161, 43, 4, 80, 95,186, 20,186, 4,137, 97, +143,203, 8,234,128,133,208, 72,153,186,174,103,107,203,245,154,215,249, 62, 37, + 13,250,212, 25, 33,228, 16, 65,111,106, 52,137,183,230,204, 2,201, 98, 44, 70, +179,251, 99,170,187,148,223,177,101,245,151, 23, 73, 19,184,208,153, 33,195, 20, + 24, 88, 33, 58,170,137, 76,185,232, 95, 56, 87,134,217,215, 10, 43, 20, 28,125, + 33,157, 16,105,229,213,153,109, 16,153,169,136, 76, 26, 67,141,184,147,229, 4, +198, 70,252,197,144, 37, 60,124, 54,161, 6, 48, 36,199,162,187, 88,120, 83, 71, +183,132, 34,202, 96,133,218,112, 38,122,130, 22,187, 44, 44,233,132, 76,187,219, +212,105, 50, 7,239, 68,171,136,173,173,202, 19,223, 13,170,219,117,197,152,213, + 38,227,243,127,125,162, 98,172, 77,140,160,113,182,194, 32,186, 36, 74,102,119, + 30,128,209, 29, 80,246,162,185, 49,141, 26,202,203,240, 35,112, 66, 13,166,102, +125, 27,139,142, 57, 9, 38,147, 82, 91, 88,177, 70,109,232,232,178, 72,146,173, + 3, 63, 48,249,113, 22, 53, 25,112,148, 5,159,155,167,101,132, 95, 82,101,111, + 57, 92, 47, 16,117,242, 50,212,141, 86,224, 3, 28,186,112,140,184, 72, 52,214, +192,158,167,100, 85, 89,220, 70,110,213,176,173,213, 38, 9,147,166,106,195,184, +111, 64,244,174,183, 7,180,208, 71,143,218,110,155, 70,186, 5,143,196,202,234, +236,197,103,121,109,194, 11,114,135, 79, 32, 32,246, 52, 36, 1,238, 49,148,147, +219,117,135, 73, 60,170, 9, 56,243,113,160,139, 89, 44, 13,114,115,158,215,251, +104,165,189,231,227, 59,112,210,255, 73, 59,210, 33, 72,240, 55,124,113, 87, 99, + 21, 66,200,241, 60, 57,122, 4,117, 52,239, 78, 27, 93,150,251,172, 37, 96,219, +227,243, 11, 78,169,155,240, 2,245, 17,192, 40, 21,141,195,235,207,160, 10,248, +253, 79,198, 65,168,168, 49,124,211,182,131,212,159,255,228,228,134,145,219, 50, +167, 7, 34,173,233,110,138, 29,170,180, 60,214,159,127, 66,181,166,202, 39, 23, + 53,108, 96,121,129, 8, 58,166, 33, 96, 67,125, 70,111,183,160, 82, 32,254,248, +113,124,214,136, 6, 36, 61,230,201, 50,129,118,124,226,250,103,103,149, 98,203, + 39, 39, 83,239,237,206,240,247, 34, 34,230,116,226, 50, 48,222,122, 17, 73,107, +231,229, 90, 9,202, 75,161,105, 41, 62,131, 89,141, 37, 22,213,241, 69,215,125, +133,136, 96,218,192,183,201,238,139, 75,172, 53,144,136,144,104,176,217,254,226, +180,147, 16,193, 32, 78,140,176,197, 1,134, 75, 76, 94,244,196,110,166,216, 33, +118,153, 35,119, 56,136,135,157, 23, 84, 48,225, 50,176, 33, 47,250,243,192, 55, + 5, 83,252,118,133, 29, 54,131,176,150,204,131, 13,142,121,101,167,149,197,156, + 91, 86, 39,170,163,224,199, 8, 93,219,151,118, 63,231, 75, 44, 60,230, 29,140, + 13,104,204, 65,194,193,252, 17,208, 26, 97, 88,196, 85, 83,187,157, 93,175, 51, +234,243,222,178,117, 42,103,137, 53,208, 71,186,132, 5,133,220,221,170, 7,251, +104,243,221,244, 23,202,106,253,143, 87, 92,190, 3, 11,194, 53, 79,148,222,140, + 73,202,105,183,205, 49, 17,171,123,208,237,205,194,137,194, 23,194, 29, 26, 88, + 80,250,142,128,209,109,149,149, 57, 36, 85,128,139, 16,230, 57,242,251, 64,164, + 63,161, 82, 82,140,108, 87,251,140,150, 82,212,219, 5,178, 90,224, 48,149,100, +187,243,157,184, 28,243,182, 93,131, 70,255,245, 77,224,191,107,120,193,182, 1, +103,134,213,206, 61, 97,105,238,122,102,198,160, 20, 24,215, 93, 60,195,175, 85, +165,190, 75,185,124,248, 97,253,252, 57, 77,192, 62,238,224,182,164,112,129,147, + 84,145,232, 78,243,198,232,183, 55,103,101,188,101,108,232, 80, 60,172,191,203, +135, 39, 48,134,235,138,212,202,142, 29,103,232,202,220, 42,170, 51,239,239,228, + 23,188,207,221, 14, 6, 20,217,174,144,177, 93,105,138,162,211,189,162,167,107, + 71, 59,145, 29,233,118,159,174, 36,221, 33,128,236,229,251, 54,181,116, 78, 97, +180, 39,128, 13,109,225,127, 40,130,186,192,186,127, 12,156,237, 70,102,133, 56, + 81, 45, 78,101, 45, 8,248, 83, 11,108,222, 50,143, 56,101,204,233,110, 43,179, +243,204,178,174,110,250, 79,160,112,110, 58,247,160,154, 72,238,252, 78,160, 57, + 99, 54,114, 49, 36,141,200,179,250,177,248,155, 24, 39,218, 11,192,109, 27,164, + 65,102, 5, 31, 31,250,221,128,154,228, 84,178, 71,158, 79,152,212,176, 23, 25, +195,231,172, 57,211,189, 67,213, 95,217,156,225, 48, 23,143, 45, 82,234, 93,181, + 79,108,151,189,226, 95, 50,133,240, 36,170,113,202, 34, 46,108, 25, 19, 25,112, + 66, 40,135,135,161, 85,170, 15,163, 4, 59, 18,133,218,217,147,244,245,103, 93, +131,115,253,202, 14, 61,133,197, 12,120, 83, 94, 80,147,224, 0,104,255, 48, 57, +189,198,128, 83,104,110,135, 13,248,150, 19, 95,197, 23,255,217,218, 29, 28, 60, +103,152,188,220, 87, 83,188,195, 99,191,125,112, 51, 26,123,212, 59, 97,127,252, +150, 75,203,255, 0,214,160, 96,229,163,240, 75,125, 66, 60, 47,154,234, 32,218, +206,216, 0,208,195, 43,201, 67,206, 78, 98, 92,187,125, 35,110,149,132,133,110, + 81,227, 78,119, 91,127,203,132, 56,194,172, 33, 85, 64, 13,132, 10,101, 28, 7, + 15, 61,171,120,116, 85, 66,159,196,236, 99, 8,250, 51,190, 13,178,123,139,218, +148,129,159, 37,179,222, 34, 51,213, 3, 97,152, 84, 66, 59,180,204,115,223,220, +142, 36, 14,253,146,120, 68, 88,212,155, 81,190, 31,131, 38,116,227, 76,218, 77, + 81,162,162, 58,168, 22,114, 90, 81, 80,194, 74,148, 34,121,249,205,110, 65,148, +224,244,114, 41,161, 97, 68,172,167, 62, 36,161, 34,155, 20, 80, 74, 21, 48,253, +140, 77,128, 16,182, 22,165, 97,227,152,227,165, 31,188, 90,110,246,143, 97,116, + 16,224,254,230, 4, 52, 41, 31, 56, 84, 4, 52,168,114,231,107, 40, 5,138, 5, +151, 86,201, 9, 46,168, 84, 87, 31, 4, 88,250, 61,219,117, 50,103, 9,165,250, +179, 49, 63,144,108,237,100, 4, 49,149,166, 51,165, 12, 79,125,108, 3,194, 73, +100,122,128,142, 62,126,237, 37, 60, 38, 48,180,228, 78,190,183,140,189, 93,190, + 70, 67, 51, 50, 72, 73, 54, 81,184,198, 52,165, 50, 34,172,188,148, 26,135, 80, +207, 6,138,159,206,221, 30, 33,203, 30,124,152,169, 48, 58,143, 42,182, 69,194, +156,121, 53,252,253,128, 59,147, 95,129, 65,165,241,130,238,144,141,110,179, 18, +213,136, 94,240, 70,161, 73, 22,172, 4, 93,143,163,144,204,225, 42,172, 99,127, + 61,247,211,155, 68,143, 63,150, 64, 58,176, 5,231, 71,141,215, 72,228,137, 58, + 96,115, 4, 98,233, 58, 66,187,132,232,106,159,215,172,213, 13, 88,170,120,224, +116,164,171, 59,133,232, 20,175,231,181,131,214, 4,229,193, 77,198,107, 16,185, + 35,120,230, 95, 20, 9,165,161, 27, 85,175, 23,174,117,144, 11, 37, 38, 59,212, + 8,120,124,114, 23, 2,136,219,169, 4, 43,127, 61, 33,106, 21, 63,226,209, 31, +230,108,220, 14,133,177,142, 10, 17,124,106, 14,160,255,198,251, 74,169, 55,209, +108, 45,213,137, 27,171,237,152,164, 26,191,107, 76,218,137,183,158, 74,129,127, + 60,218, 34,238,183,204,207,146,139,199, 2,142,171,185,206,212, 18,220, 38, 83, + 85,207, 61,124,206, 69, 1, 59, 91,124, 30,195, 51,193,117,169,253,173, 64, 81, +207,125,203,164,143,179,186,147,102,239,128, 3,192, 49,137,242,187, 69,188,182, + 99,110, 30,222,243,128,201,113, 96, 51, 9, 71, 88,232, 12,130,154,137,153, 32, +111,233,160,241, 73,132, 29, 36,108,191, 93,134,210,212, 65,174, 68,234,136,138, + 81, 72, 20,132,119,100,106, 32,125,191, 46,247, 68, 69, 14,133, 83, 44, 16,105, + 62,171, 49, 21,168,203,107, 43, 79,254,113,136,213,156,229,197, 46, 20, 11,166, +115,207, 18,234,227, 28,213,174,182,252, 8,105,215,102, 16,140,187, 83, 83, 76, +156,182, 8,236,180,119, 86,242,150,241,133, 66, 96, 60,221,136,232,246, 96, 85, +113,208, 24,141,110, 49,102,140,246,173,126,105,184,198, 4,221, 28,159,164,113, + 70,195,177,111,219, 83,117,176,190, 35,177, 11, 67,197,255, 68,184, 20,170,181, +146,169,107, 72,111,168, 39, 68,227, 92, 33, 65,204, 29,165,108,161, 69, 36, 41, +197,244, 57, 46, 72,155,164, 2,118,147, 68, 37,160, 72,201, 34,155, 83, 46,196, + 6,245,231,134, 44,153,246,115,200,251,146,130,114,226,158, 53, 72, 7,190,180, + 8,105, 95,219,118, 61,246,209,163,136, 11,148,174,165, 81, 14,207,147,225,235, +202,204, 12, 74,132, 31,204, 31, 95, 3, 3,157, 89, 16,242, 64,188, 10,117, 56, + 8,240, 86,227,223, 33, 51,158,160,181, 67,147, 27,115,161, 50, 69, 1,249,136, +192,113,127,137, 64,117,189,226,181, 14, 66,213,102,115,203,218,214, 53,102,130, + 87,181, 89, 29,255,144,189, 11,209,216,232,168,112,137,194, 97,163,195,111,238, +242,188, 78,148,134,140,115,101, 97,155,107, 96, 26, 74, 89, 88, 34, 59,163,214, + 16, 49,181,160,236,203, 34,235,215, 92,228,101, 20, 46,177, 8, 9,181, 22, 18, +105, 77,120, 68,211,183,226,197,229, 7,122,243, 62, 96,120,219,109,184,140, 81, +232, 38, 32, 62,252,245,217, 35,246,163, 6,211,141,186,187, 1,145,132,171,150, +113, 46,126,178,179, 63,200,230,105,198,191, 97,214, 16,205, 69,133, 44,213,133, + 24,119,248, 90, 91,130,181,182, 86, 33, 24,139, 78, 20, 11,196, 57,210,225,186, + 35,199, 48,217,154,177,181,160,160,209,191, 52, 75,228, 69, 36,179, 80,209, 69, +170,166, 97,252,181,180,119,115,149,138,115,181,111,218,169, 63,240,223, 35, 40, + 6,199,238,132,228,183,195,174,241,231,146, 12, 47,225,145,211, 52,123, 61,182, + 72,204,197, 64, 11,103, 88, 29, 36,179,220,241,136,220,172,162,107,142,112, 5, + 73,138,220, 72, 27,153,239, 0, 41,156, 36, 36, 95, 22,230,227,150,146, 5,216, +135,254, 72,154,165, 26,236, 50,251, 64,189,206,109, 30,105,156,215,168,174, 99, + 59,148, 31,127,104,172, 13,193,232,188, 55,119,212,184, 47, 85,202, 42, 63,202, +194, 0,152,242, 72, 98,208,254, 86,121,253,220,207,101,202, 97, 80,253,174,156, +223,126,208,191, 51, 98,151,234,253,114, 78,243, 71, 51,121,176,125,172,186,134, +127,184, 73, 94,104,235,197, 92, 65,250, 33,170, 28, 73,196,133,236,153, 28,254, + 15,156, 58, 65,198, 2, 86,128, 44,149, 65,135,144,154,120, 89, 88, 42, 98, 13, + 97, 46, 9, 12,234, 85,126,155,150,107, 46, 45, 35,171,234, 62, 34,237,168,111, +196,201,107,160, 5,156, 62, 37,151,133,132, 45, 28,113,190, 0,100, 3,179,228, +187, 37, 89, 56, 30,163, 9,242,241, 60, 27, 40, 50,218, 16,225,193,235,237, 43, + 44, 5, 56,177, 12, 40, 45, 37, 95,252, 89, 49,192, 4,247, 97,161, 64,107,217, + 60,129,118, 37, 53,180, 3,182, 43,180, 14, 73,233, 33,195,185, 79,223,250,218, + 0,228,155,173, 31,173,242, 38,246, 23,252,164,223, 16, 26,184,132, 57,178, 75, + 36,120,202,121,159, 53,238, 96,253,163, 88, 1,162,127, 41,192,178, 57, 82, 90, +148, 32,162, 47, 74,237, 0,248,144,169,213,118, 50, 39, 62,254,143,210,108, 81, +147,144,211,136,161,179, 30,195,121,195, 81,182, 27,124, 30,230,122,192, 27,149, +230,145,168,122, 74,151,217,118,240,198,120,104, 92, 62, 15,126,203,150,204,233, + 50,209, 84,119,136,252,154, 18,156,138, 58,101,168, 0, 8,225,158, 97, 81,244, + 31,152, 65, 67,142, 46,201,152,177,136,203, 23, 35,251,153,195, 48, 71,145,144, +174,192,226,169, 40,240,176,184,183,145, 11,184,112,108,100,248,217, 28,241,167, + 80,175,165,145,192, 91,122,123, 58,125,113, 47,216,252,212,207,105, 80,209,150, +122, 71,218,142, 48, 56,145,107, 54, 36,156,253, 4,143,166,216, 3, 72, 96, 39, + 44, 90, 35,104,126,240, 49,144,110, 85, 56,253,124, 10,161,175,250,170, 43, 5, + 4,167,204,148, 53, 58,191,192,149, 68,170, 85, 24, 91,227,187, 6,139,167, 83, +195, 25,174,216, 92,146,146, 47,246,223,170,173,240, 42, 82, 73,202,204, 76, 2, + 63,163, 66,241,246, 93,150, 96, 19,238,179, 84, 15, 79, 51,146,241,195,122,195, +129,186,188, 48,115,161, 95, 44,142,194, 62, 65, 66,212,140,141, 36, 65, 63,220, + 61,235,136,222, 3,158,254, 71,159, 43, 46,132, 45,213, 30, 83,194,161,212, 86, +138, 95,105,163,215, 63,228, 55, 0,157,174,162, 27,102, 32, 79,227, 77,198,245, +251, 41,108,132,220,189,169, 37,247,181, 11, 65, 20, 99, 91,140,203,118, 42,111, +142,197,134,177,251, 0,122, 48, 24, 76, 79,155,166, 4,159,123,178, 51, 62,224, +239, 58,208, 91,226,251, 18,142,219, 61,157,140, 82,140,234,131,172, 48,202,185, + 85, 37, 98,153, 62, 5,104,160, 6, 85,115, 61,235,139,241, 62, 4,146,106, 43, +254, 17,160, 52,140, 3,217,142,211,178,179,164,130,111,152,244, 18,206, 76,163, +207,188,163,105,184, 88,101,141, 94,217,225,195, 11, 76,202,215, 93,182, 59, 68, +235,130, 15, 2,100,226,180, 9, 17,120,251, 26, 84, 79, 77, 39,131, 62, 58,123, + 71,214,204, 65,231,249, 81, 46,203,197,221,172,197, 26,213, 57, 43,180,152,173, +129,214, 97, 41, 24,149, 56, 8,119,204, 4,116, 78, 11,225, 80,196,183,229,146, +102, 36, 58, 4,151,242,254, 17, 65,168,104,194,116,149,140,236,174, 83, 49,110, +186, 35, 59,228, 59,123,169, 36,106,202,212,237, 5,146,193, 27, 47, 89, 61,246, +230,103,163,156, 74,221, 52,221,227,213,100, 27,179, 76,139,195,186,171,103, 79, +127,115,217,206, 42,241,235,140,102, 25,101,234,233,233,203,221,180,220,118,211, + 97,210, 21,150,236, 59, 34,100,111,180,102, 46,112,118,193,192, 51, 39,245,209, +250,121,192,214,157,140,226,252, 5, 78,199,121, 3,143,166, 21,111,219,144,162, + 20, 92,156,225, 32,147, 60, 92,116,137,154,183, 88,241,112,173,192,154, 83, 83, +236,205, 69, 2,244, 53,177,177,132,240, 60,106,166, 99,203,111,162,116, 46,185, +239,221,254, 50,148, 71, 53,199,106, 57,171, 41, 50,115, 76,222, 67,161, 39,248, + 69,234,199,110,246,190,136,249,133,139,129,218, 78,189, 34,169,157,205, 54,138, +150, 94,189,154, 86,153, 81,195, 43, 16,132, 60,231,238,141, 89, 82,209, 65, 85, +120,202,127,174, 63,166, 46, 72,130, 2,120, 19,135,226, 2, 87,180,249,245,150, + 54,121,232, 75,137, 21, 99,132,236,148,153,212,241, 30, 72,145,227,141, 15, 60, + 24,166,213,242,112,179,108, 99, 90,158, 55,132,168, 50, 65, 75,216,106,247,156, +107,223,180,202,194, 73, 61,209, 18,150,128,242,179,164,115, 65, 5,120,165,237, + 13,103,213,121,201,222, 34, 73,253, 75, 17,136,205,101, 23, 34, 2, 44,146, 36, +224,169, 72,174, 62,201,172, 30, 98,129,190,249,143,247, 38,118, 15,185, 46,189, +134,102,235, 1,215, 86,188,133,253, 30,132,118,184,116,164,173,249,213, 84, 10, +124,248,120,187,127, 10,207,212,141,154,148,123,132,196,105, 60,138, 5, 68, 23, + 78,171, 7,164,198,114,188, 55, 2,130,110,252,236, 99,251,141, 25,114, 5, 8, + 74, 3, 48,176, 34, 54, 73,176,173, 97,248,224,112,167,247, 27, 15,123, 37, 40, +244,131,112, 13, 54,155,209, 79, 50,121,241, 55,193,238,110,187,176,228,153,236, + 13, 59, 57, 38,167, 23, 88, 18, 88, 29,211, 76,133,193,116, 28, 68,137, 57, 71, +245, 88,136,123, 28, 53,119,227, 39,163,240, 97,123,140, 11,224, 32,185,127,172, +185,178,198, 4, 12, 20, 37,150,195, 76,232,176, 64,163,117,129,147,249,164,246, +227,177,101, 7, 36, 7,170, 98,224,180, 77,202, 83,138, 58, 3, 73, 88, 74,102, +156,180,194, 1,157, 94, 20,156, 76,212, 32,246,143, 18,193,129,249,157, 7,140, + 66,127,165,241,233, 82,159, 52, 51,123,204,182,105,158, 97,151, 40,202,125,107, + 9,112,131, 77,251, 33,246,117,137,246, 81,156,213,163,137,234,113,221,185, 37, +111, 32, 31,148,109,250, 33, 75,195,153,255, 75,171,184, 8,100, 1,139,121, 1, + 48,177, 69,207,149, 9, 71,255,163, 76, 27,122,144,111,217,130,221, 97, 18,150, +220,128,105, 0,195, 42, 8, 2, 55,240, 11,164,135, 80, 77, 49,104, 48, 78,198, + 64,202, 29,230, 73,152,162, 95, 11, 35,120,144,230,122,124, 27,253,100,245,195, +239,190,202, 35,168, 8, 58, 86,126,163,208, 17,182,220, 7,205,135,130, 60, 97, +117,115,155,224, 72,181, 21,245,239,160,224,125, 21, 60,110,144, 94, 35, 46,200, +232,244, 80,167, 37, 68,212, 27, 74, 67,198, 45,212,188,199, 71,226,138, 9,178, +108,105, 39,139,185, 4,184,163, 60,230, 63, 91, 83,113, 5,140,132,200,229, 10, +142,134,152, 13,254, 41,180, 34,126, 4, 93,109,150, 68, 23,173,154, 38,101,117, + 52, 88,209,108,152, 50,179,171, 93, 90,144,107, 9, 17,125,153, 14,120, 99, 23, + 61,253,199, 5,218,212,178,173,172,254,255,185, 2, 16, 28,217,162, 72,167,187, + 2,167,213,232, 80,160, 15, 25,192, 88,253, 29, 85,135, 26,116, 46,146,153, 70, + 4, 42, 38, 29,255,117, 19, 19, 0, 18, 53, 99, 51,168, 34, 29,112,143,235,118, + 93,133, 69,161, 70, 21,237, 20, 85,219,251,143,248,127,226,204, 84, 87, 83, 36, +144,170,217,129, 51, 0,250,101,162,178,200, 34,189,204,233,181, 66,132,160,250, + 57,135, 97,143, 36, 34,245, 20,111, 8,164,219,213,106,106, 14, 83,101, 31, 64, +173,100, 89, 52, 79, 2,209, 26,125, 98, 86,144, 86, 57, 31, 32,133,196,146,152, + 79,178, 47, 71,142, 69, 8,157,196, 78, 99,103, 62,254, 99,165,213,197,130, 76, + 68,241,104, 75, 0, 87,139,167, 32,212, 1, 51, 52,101,234,145,227, 41, 29, 41, +133, 73,109,177,127,135,253,189, 41,251,203, 67, 53,162, 6, 89,169,222,245, 64, +173,139,149,206, 85, 52,222,177,219,255, 20, 16, 27, 22, 5,211, 34, 70, 64,229, + 47, 23, 80,185,109, 64, 10, 83, 81,216, 50,232,177,152,191,150, 24, 32,230, 57, +210, 32, 43,158,146,186, 4,139,193,161,240,111,170, 32,236, 51,248,253,237,206, +117, 33,210,110,118,220, 0,187, 38,106, 3, 57,148,250,131, 96,124,247,219, 3, +202, 70, 32,228,192,206, 93,216, 52, 30,238,199, 78,131,188,104, 99, 72,130,140, +149,175,211, 52,118,218,216,129, 53,176,110,239,152,187,140, 29,140,249,189,137, + 36, 89,232,126, 12,160,123,136, 97, 69, 22,143,249, 15, 27,164,242, 66, 27,145, +176,165, 77,120, 24, 36,138, 28,133, 49,252, 97, 0, 26, 42,201, 2,152, 55,188, + 70,238, 48, 29,220,204,196,157, 86, 26, 65, 4, 30,250,137,145, 18, 80,190,111, +170,108, 38,238,102,104, 54,100,143,217,120, 70,199,247,177,221, 39, 2,203,240, +133,232,102, 5, 19,114,247,241, 25,151,156,131,215,231,161, 5,215,246,126, 79, +133,111, 57, 86, 74, 3,134,111,113,132,190, 45,178,242,137, 93,215, 73,176, 42, +237,235,208, 39, 15, 34, 51, 21, 88, 94,160, 14, 29,183, 42,195,184,226, 44, 88, +176,185, 49,156, 4,242,248,231, 58,180, 22,224, 25,236, 18,217,233, 12, 67,141, +172,166,233,181,101, 75,181,208,136,198, 67, 68,253,122, 62,236, 24,109,251, 75, +213, 52, 54,110,223,134, 37,205,237,166,244, 19,147,100,144, 29, 15, 44,221,153, +116, 78,145,253, 32,116, 55, 73, 67, 4,152,220,141, 65,248,123, 12, 52,151,138, +128, 37,138,102,209,194, 96, 81,216,247,136,180,119, 24, 53,237,229,198, 17, 42, +217,190, 34, 70, 95,137,198, 96, 66, 68,200,249,100,142,212, 53, 19,153, 50,171, +191,108,127,131,213,220, 59,195,129,136,201,252,173,219, 78, 69,196,134, 46, 16, +241, 56,146, 61, 51,156, 18, 17,198,205,170,238,229,232,210,239,144, 33,186, 67, +149,230,156, 43,109, 89,135, 91,134,246,181,231,163,176,110,147, 52,128,124, 46, + 61, 28, 95,156, 65,228,198,140,161,218, 78,195, 36,143,177, 20,125,202,226,173, + 17,165, 36,149,245,193, 65, 89, 43,234, 49,197,181,108,130, 91,134,232,159, 41, +183, 91,122,103,186,200,192, 97,236, 35, 85,252, 33,130,148,150,125,248,252, 17, +180, 57,106,146, 25, 71,194, 65,137,120,162,182, 17, 29,226,146, 80,207,104,209, + 38,231, 54,228,107, 86,109, 75,131,242, 31,103,166,169,104,189, 70,244,175, 63, + 83, 43, 7,226,115,246,156,202, 9, 80,175,125,196,185,167,219,103, 38, 66, 9, + 17, 21,219,183, 85, 0, 37,192, 46, 39,237, 11, 69, 29,114, 6, 3,156,208,147, +154, 12,177, 12,169,232,130,233,217, 79,178,141,136,231, 59,158,181, 88, 16,208, +134,211,195, 26,151,176, 4,233,132, 18, 10, 18,133,122,194, 57,215,166, 24, 18, + 16, 38,131,107,214,124,230, 58,157,125, 82, 54, 99,130,192,122,248, 87,174, 42, + 28, 44,234, 66, 92, 68,194,241,146, 32, 83,223, 83,142, 43,173,250, 6, 49,148, +124,155, 25,123, 27, 66,100, 78, 55, 11, 16,207,255,188,147,125, 17, 68,140, 87, +250,143, 76, 8,229,230,187,127,252, 72,169,200, 7,113,187,124,163,143,107,234, +121, 63,214,223,198, 46, 75,195,187, 17,199, 87, 49,152, 11, 75,248, 81,169, 35, +243, 77, 95,150,245,192,105, 82, 76, 52,168,199, 56, 44,226,109,191,143,161,234, + 38,211, 83,164,130,241,102,176, 23,140, 4, 31,215,137,137,210, 19,212,157,142, +207,139, 13, 61, 52, 24, 85,130,181, 9, 6,188,211,171,227,156, 29, 99, 13, 20, +190,167,227, 92,113, 37,200, 45, 39, 31, 65,202, 90, 28, 63,156, 96,153,122,193, +138, 89,200,161,203,128,193, 88,132,187,190, 28, 37, 11,192,192,128, 68,237,204, + 83, 21,166, 27, 92,143, 75,170,124,137,118, 38, 32,149, 32,202,234,175, 17, 83, + 36,230,126,190,115,220,177,232,119,124,162, 5, 97, 75, 42,174, 38,121, 76, 71, +135,153, 41,147,136,194,249,201,246, 10, 22,231, 29,217,243, 19,237, 50, 7, 94, + 43,136,216,161,142,132,112,244, 34,227,110,108,113, 50,180,100,200, 73, 48,247, +204,110, 35, 17,137, 71,191,207, 14,149,191,211, 54,242,208, 9,188,150, 91,198, +152, 2,151,230,103,252,121,197,138,167, 18,233, 27,244, 84,121, 33,218,213,195, + 94, 2,127,166,153, 65,175,134, 32, 12,208, 62, 33, 12, 95,163,103,234, 40, 57, + 29, 86, 26,187, 6,174,233, 8,202, 57,138,113, 80,164,180, 76,187, 87,163, 46, +142,164, 75,116,248,157, 84,146,110, 20,207,159, 15,186,221, 61,123,244,176,111, +200, 81,205, 31, 23, 60,140, 4,167, 51,155, 91,245, 96,149, 46,248,114,200, 36, +114,146, 17,214,164, 32,159, 8, 73,129,158, 70,100, 89,141, 25,201,132,147, 77, + 73,152, 15,201, 86, 41, 35,159,224,144,122,200,148,126,230, 53, 91,237, 95,114, +155, 65,193, 98, 93, 1,133,218, 2,126,213, 97, 75,186, 66,140, 65, 74,180,140, + 52,174,181, 50,155,235, 81, 26, 29, 27,241,192, 66, 98,100, 39, 79, 0,247,159, + 64,107,103,153, 82, 80,166, 47,146, 54,177, 85,109,194,220, 81,119,237,150,145, +219, 8, 56, 21,193,137,239, 16,200,217,136,172, 95,232, 52,196, 60,198,108,186, +182, 46,113,204,122,108, 36, 88, 14, 53,151,191,199,140,128, 61, 41,148,233,255, +179, 31,124,245, 51, 14, 7,150, 55,226,102,202, 59,164,220,202,213,197,249,101, + 68,104, 4, 91,179,112, 84,196, 89,206, 67,228,183, 35,233, 64,198,153,176,151, +250,132,166,149,194,157,151,213, 32,182,204, 8,237, 52,224, 59,216,167, 81, 64, +142, 12, 3, 48,146, 11,153,198,138,242, 79,240, 82,202,195, 71,138, 88,143, 98, +166,120,100,178,223,193, 40, 88, 66,147,169,147,245,222,102,202,164,178,104,218, +184,149, 86,205,227,126,210, 78, 57, 38,127, 61, 6, 90,160, 94,178, 41,215, 50, +213,228,205, 21, 15,247,220, 85,129,253,158,209, 12, 78, 30,174,158, 35, 39, 94, + 57, 65,135, 5,208, 78, 81,186,130,220, 85,161, 50,254, 93,207,155, 2, 94, 54, +116, 16,151,199, 57,123, 74, 2,209, 76, 67,230,221, 72, 8, 95, 68, 24,235, 4, +199, 24,106, 88,109, 42,180,207,221,159,112, 68, 22,254,173, 41,189,241,224,241, +218, 30,129,251,147,121,117,161,127,144,196, 42,128,253,133,198, 59, 83,161,233, + 76, 17,239,212,126,230,128,245, 55, 1, 33,136,194, 94,246, 64, 97,199,193,169, + 44,210,238, 53, 12,200,208, 26,135, 76,206, 52, 11, 16,189,210, 88,113, 40, 87, +171,127, 33,176,116,110, 14,222,146, 26,175,156, 13, 74,145, 15, 22,140,180,252, +186, 23,251, 8,162,232, 81, 64, 72, 97,206,187, 43,178,144,138, 34,191,231,208, + 95,191, 47,131,135,162,102,223,184,245, 59,226,226,103, 58, 4, 72,215, 81, 73, +211,135,222, 18, 93,229,181,127,105, 12, 7,156,212,123, 55, 40, 91, 21,168, 80, + 5,244, 8,209,108, 17, 16,150,140, 7,146,168,237,251, 92, 70, 32,136, 90,140, + 39,118, 93,166,150, 6,196,205, 16,203, 1, 53, 55, 19, 35,170,207, 60, 59, 9, + 15,110,221,196,188, 19, 46,122, 42,157,129,125,186,149,125,252, 48,215,254, 57, + 19, 75,118,153,113,231,195, 15, 28,202, 80, 4, 57,195, 22, 33, 3, 76,168, 92, + 36, 72, 12,184,146, 25, 24,130,117, 83,176,238,209,129,199, 65, 53, 70,215,191, + 61,244, 99, 19, 7,244,175,146, 73, 44, 10,110, 39, 22,120,169,232, 73,201,228, +134,102,247,186, 84, 51, 13, 46,221,155,251,115,179,192,171, 49, 86, 57,211,101, +200,233,195,155,156,135, 66,132,223, 38,251, 90, 0,132, 76, 48, 75,248,124, 9, +211,196, 63,177,173,209, 10,162, 71,112,197,201,223,209, 4,154,139,164, 40,232, +205, 8,252,125,137, 16,164, 49,161, 34,134, 10,232,146,250,185,120, 4,238,242, + 8, 9, 6,220,243,212,189,137, 1,175,207,149,123, 51,162,223,162, 52, 45,102, +113,244,247, 60,103, 55,163,180,126,246, 2,118, 96,245, 33,206,210,247,196, 34, +151, 41, 34, 94, 42, 91, 3, 99,236, 70,231,142,178, 51, 12, 25,137,197,152, 40, +250, 62, 2,203,204, 43, 2,228, 33,199, 67,198,139, 34, 56,156, 24,227, 97,135, +101, 88,253, 24,116,198,239, 10, 43,129,148,225,157,234, 79, 92,229,242, 69,150, + 7,222, 1,161, 29,162,135,165,241,213,239,207,127,242, 79,160, 72, 70,193, 91, + 36,169,172,215, 68, 73,197, 93, 84, 94, 60,145,205,162, 58,155, 75, 81,176,119, + 63, 24,152, 74,115, 23, 41,188,123, 0,146,217, 40, 0, 3, 86,146, 10,160, 43, +178, 5, 46,137, 49, 8,196,229,128, 26,173, 2,153, 98,226,174,203,114,132, 71, +118,119, 95, 96, 45, 11,113, 38,138,132, 48, 28, 59, 53, 49, 9,170,171, 11,169, +245,229,117,152,231, 69,167,237,110, 7,227, 89, 39, 68,196, 41, 21,186,208,139, + 7,235,128,252,109,100,155,135,214, 12, 12,252,110,124, 16,160,204, 74, 49, 35, + 40, 42,145,194,170, 31,209, 15, 93,183,218, 2,255, 42, 63, 63, 68,218,142,129, +248, 45, 5,105,230,207,228,222, 75,245,163, 67,234,116, 98, 19,159,225, 56, 59, + 68,249, 57,136,136, 73,153,117, 34, 18,112,211,146,123,222,112,129, 4,160,211, + 23, 39,232,156,152, 67, 16,198,170,182, 81, 97,255,116, 32,134,133,203, 44,136, + 94, 51,252,202,112,223,190, 16, 41,124, 0, 44,159, 46,228,149,120,154, 41,232, +137,189, 15, 57, 73,101,129,227, 54, 66,197, 50, 46, 68,143,142, 55, 76,127,234, + 91,224, 90,233,219, 62, 56,122,214,240, 67,159,136,110,160,154,152, 97,236, 53, +253,169, 3, 53, 63,223,221,156, 50, 67, 46, 21,103,230, 75, 13,201,171,138, 74, + 68, 1, 41,121,172, 47, 17,149,194,109,162,216, 16, 64,171, 30,128,161,196,201, + 85, 37,175,153, 19,146,138,130, 58,211,137,220,140,191,130, 74,203, 70, 58, 50, +239, 74, 10, 22, 50,179, 53, 47, 75,208, 83, 93,192,105,164,210,142,212,247,172, +166,111,201,182,108,118, 85,184, 92, 77, 77,240,160,206, 64,215,239,228, 10,107, +213,242, 2, 38,215,212, 38,192,101, 75,133, 76,190, 17, 65,190, 77,232, 60,150, + 45, 71, 97, 4, 72, 2,217, 17, 80,238, 11,146, 24, 5,130,205,242, 54,175,118, +142, 30, 20, 82,142,138,107,176, 5, 23,170, 37,116,239, 4,102,144,255,104, 97, +224,203,161,122, 56,169,167,197, 36, 44,128, 31,170,213,180,128,167, 8,234,112, + 77, 13,198, 86, 32,127,149, 89, 36, 15, 80,157, 0,196, 33,198,224, 69, 64, 55, +185, 36, 94,230,228, 84,235,182,205, 89, 73,208,129,168,169,114,203,167,164, 38, + 80,188,197,147, 28,198, 46,148,143,114,189, 41,196, 17,203, 96,178,213, 45, 82, +239,159, 99,154,134, 16,226,100, 97, 84,245,228,105, 38, 93, 7,105,190, 23,176, + 49,240,126,184,237, 65, 90, 26, 29,247, 51,143, 53,243,145,214,143, 15, 98, 81, + 46,131,130,221, 72,218, 25,240, 26,191,225,252,125,177, 65,128, 42,152,241, 39, +123,156, 24,219,143, 41, 97,254,140,124,214,120,203,151, 15,214,101,188, 13,201, +119,168,153,187, 2, 9, 86,222,242,223,113, 29, 40, 65,225,219,121,168,177,229, +239, 8, 12, 68,160, 31, 3, 36,113,222,100,130, 36,158, 47,101,126,145, 15,210, + 65, 35,139, 85,190,230, 77, 32, 19,197,143,130,239,174,240,198,205,195, 88,105, +121, 57, 44,239, 25,226,220, 50,220,195,116,252,150,194, 35,160, 1, 75, 30, 6, +175,163, 38, 11, 91,208, 55,180,241,223, 15, 17,169,205,255,174,111,200,251,250, +149, 53,192,116, 10, 57, 56,211,113,156,153,186, 14, 27,121,136, 30,224, 84,191, +138, 37,121,239,221, 41,233, 36,208, 51, 29, 49,105,193,106,144, 62, 44,199,191, +168,202,126, 99,223,194,125, 43,164,185, 44,209, 33, 2,160,250,102,214,244, 7, + 61, 52, 21,228,195, 78,254,242, 38, 8,208, 67,118,193, 24,205, 83, 35, 98, 73, +207, 51,196, 97,231,137, 5,104,237,247, 3, 85, 38,205,136,253, 49,113, 60,133, +141,130,155, 88,157,165,229, 21,227, 99,186, 58,122,206,136, 70, 52, 95,142, 26, + 68,161,200, 84,164,188,121,242,154,142,224,143, 5,144,184,232, 3, 56, 72,143, +190, 9, 21,148,180,165, 78, 84,118,123,210,201,115, 43,185,253,211, 25, 99, 53, + 47, 32,144, 11, 8,136, 45,193,180,179, 12,175, 46,124, 22, 6, 63,203,119,250, + 79, 95,177,128, 3,184, 33,200, 10, 61, 87, 78,220, 97,133,116,197, 90, 38,184, + 53,242, 91, 92, 95, 67,100, 28,122,179, 25, 35, 83,130,209,187,157,239, 89, 5, + 26,111, 25, 87,239,215,222,238, 49, 25,231,255,111,183,175, 60,161, 30, 31, 57, +182,247, 31, 25, 67,168, 61,216,191,241,148,216,236, 99,119,136,251,119, 19,228, +202, 66, 17,239, 41,185,119,218,199,232, 31,106,171, 81, 9,146, 5, 60, 37,115, +203, 73,226,202,122,212,211, 35, 77,201, 46,178, 34,109, 73,234,207,191,195,138, +252,194,162,170,242, 92,186, 33,165,111,210,180, 61, 81,126,255,184, 71,231,142, +163,220,100,172,208,159, 69, 69, 78, 55, 71,168, 23, 45, 38,110,198,156, 43, 85, +132, 43,103, 52,131, 20, 11,157, 22, 57,179, 69,119,210, 80, 78, 31, 68, 96, 57, + 19, 28, 12, 97,191,196,155, 64, 88,104, 25,186,188, 74, 88,148, 71, 49,205, 76, +191,226,239,146, 9, 17, 11,195, 2, 55, 11,138,101,209,140,174,224, 95, 79, 22, +199,206,233, 54,225,161,155, 18,201,177,136,147, 63, 27,205,151,163,202, 93,118, +217, 48,171, 66,189,194,244,201, 39,114, 47, 25, 61, 56, 42, 0, 65,249,189, 15, + 8, 76, 66,147, 38, 59,102,235,105, 38, 93,113,143, 67,121, 11,194,119, 67, 95, + 27, 16,157, 0,104,186,251,240, 80,212,185,133,135, 35, 43, 49,106, 89,151, 15, + 63,138,108,169,176, 41,188,210,133,158,165, 26, 27, 37, 4,119,201,215, 84,222, +141, 7, 62,230,119,162, 29, 75, 67,228, 76,219,193, 65, 10,218, 79,208,187,143, +230,224,132, 89, 36,219, 14,177, 79,157, 53, 42,136, 49,164,158, 21, 13,159,101, +221, 68, 53, 79,216,224, 53,161, 52,228, 89, 31,174,187,125,123,186,166,242,239, + 14,228, 39,119,149, 64,214,183,179,182,211, 86, 97, 71,129, 35,156,206,124,155, + 20,252, 80, 89,128, 37,132,194,214,229, 32,214, 79, 96, 42,127,107, 72,195,181, + 60, 91,190, 9, 89,191, 88, 54,117,254, 38, 63, 96, 3,248, 57, 18,227, 8,221, + 77,201, 75, 99,252,216, 70, 38,177,254,250, 88, 42,162,246,215, 80,200, 67, 72, +242,192,226, 68,215, 95, 79,145, 42,129,176,212, 92, 25,232,169,239,149,125,200, +230, 54,165,110,182, 17,175, 47,242,211,195, 33, 60,135,136,234, 93, 34,102, 65, + 92,165, 59,130,104,244, 64, 69,121,205,107, 48,224,229, 17, 60,148, 7,255,230, +156,231,132, 20, 87, 56, 65,192, 77,186,236, 8,239,145, 43,218,225, 25,227,103, +222,103, 58, 82,130, 98, 71,168,185, 96,136, 85,244,190,228,182,240,251,140, 15, +165,229,125,222, 79, 14, 98,164,158,247,134, 97,168, 30,123,233,211,156,122,254, + 79,233, 58,153, 6, 86,149,132,181, 84, 58,213,120, 99,234, 59, 76,106,112, 35, +118, 67,163, 62,200,193, 9,216,206, 29, 74,111,130, 58, 61,151, 48,194,146, 58, +210, 38, 49, 17,208, 97,227,119,126, 67, 72, 29, 81, 32, 39, 55,155, 52,129, 62, +122,251, 71,107,155, 14,106,198,136,153,204,222, 21,145,163, 98,253,188,215, 4, + 16, 63, 17,139, 77,184,114, 54, 43,230, 53,108, 71,158, 38,153,211,157,125,253, + 5, 0,144,204, 9, 36, 85, 47, 58,161,163, 95,162,186,112,178,173,221,136, 84, + 15, 4,157, 56,131, 16,196, 23,225, 75,200,184,118, 77,199, 37, 58,129,224, 59, + 70,118,155, 6, 18, 7,239, 56,253,118,107, 97,217,238, 82,224,170,234,140, 64, + 94,129,201, 42, 86, 6, 69, 58,254,226,118,194,106,101,175,117,194,161, 74,130, +201,246,214, 79,125,210,128,179, 68,214, 14, 37,189, 29,153, 47,195, 45,191,197, + 35, 5,225, 75, 76,151,179,229, 27,185, 78, 84, 96,196, 33,226,200,200, 44,240, + 77,166, 59, 93,247,235,138, 36,133, 1, 91,162,248, 47,227, 90, 44, 22, 31,115, +164, 70, 83,168,195,196, 53, 59,245,179, 59,146,237,169,125,154, 46,170,134,186, + 89, 1, 46,247,137, 30,202,244,169,251, 79, 28,105,101,229, 85,228,143,249,180, + 81,124,206,238, 50,252,101,136,122, 11,177, 50, 53,123, 60, 98, 26, 84,174, 64, +251,229,111,112,173,171,211, 57,238, 48, 29, 16, 73,142,205,125, 40, 64, 83, 47, + 80,104,136, 96,202,144, 95, 4,136,155,255, 94, 8, 34, 20,192,128,136,177, 18, + 52, 93,205,215, 63, 77,227,146,157, 84,182,221,120,120, 81, 8,255,254, 52,168, + 79, 52,218,217,232,157,180,189, 23, 85,219,195,200,171,160,191,144,114,229, 10, + 46, 87,123,117,146, 19, 64, 44,210, 74,168,254,245, 76,218,137,242, 81,115,206, +125,186, 65,250,255,120,151,208,242,230,175,200, 10,195, 12,208, 0,252,237,105, +119, 32, 16, 64, 43, 26, 68,208,194,157, 4,113,137,137,173, 6,244, 37,200,173, +114, 64, 71,209,173,246,191,178,244, 1,188, 37,166, 90, 93,202, 11, 50, 0,212, +250, 71,220,170, 11,150,252, 11,141,244,177,105, 42,220,103, 38,140, 14,187,228, +206,113,184,246, 44,159, 36,244,158,226,238,173, 93, 48,138, 4, } ; -// ../Source/Template/GB_binary_search.h: -uint8_t GB_JITpackage_73 [1194] = { - 40,181, 47,253, 96,213, 44, 5, 37, 0,214,168,121, 40,224,208, 56, 7, 58,199, - 12,161, 27,171,226,180,168,133, 78,196,187, 87,189, 99, 21,175,191, 45,253,101, -118, 56,248,103,240,230,140, 23,195, 24,131, 49,132, 16,112, 0,112, 0,106, 0, - 27,199,185,117,192, 52,169,172, 8, 75, 13,118,153, 87, 42,247,214,119,114,188, - 34,108, 39,107,189,137,120, 20, 36,170,200,162,202,150, 57,183, 87,126,154,115, -142,203,252, 17, 88, 19, 43,114, 64,153, 88,167,180,199,159,109, 17, 84,120,149, - 57, 73, 94, 10,234,206, 31,150,217,104,100, 7,107, 67,133,109,133, 29,198,183, - 67,216,116,109,115,143,124, 43,181,135,159,253,191, 34, 43,169, 85,200, 54, 35, - 85, 56, 59, 35,211, 52, 92, 34,153, 34, 18, 73,177, 65,221,111, 86, 96,112,103, - 31,225,113,230, 90,142, 36, 3, 27, 29,144,156, 99,186, 56,245,158,231,245,227, - 66,173,185, 46, 20, 89, 4,229, 73, 16,244,123,253, 85,229, 88,233, 63,179,227, -100,205,218,254,223,177,220, 25, 32,186,113, 58,111,193,168, 93, 85, 85,119, 99, -174,179,184,231, 44,239,103,191, 95,249,195,119,246, 43,221,152,235, 64,109, 95, -121,184, 56,157,137,103,111, 28, 3, 38,135,204, 33,129,147, 89,192, 50, 10, 78, - 6,226,210, 4, 28, 20, 93,222, 30,221,114,215, 59,121,163,231, 73, 79,154,240, - 85, 99, 76, 14,213,123,109,125, 13,141,165,246, 56, 97,201,114,234, 29, 29,151, -199, 59,156, 5, 12,203,144,110, 7,226, 56, 67,116,187,133,178, 82, 16,223, 62, -115,159,217,246,240,244,126,142,104,124,228, 17,173, 21,206,219, 46,177,229,184, -100, 57,229,144, 11, 5, 50,251,182, 66,238, 58,248,219,127, 91, 83,125,132, 99, - 60,190, 89,110, 93, 2,185,156,185, 24,211,180,117,156, 28,208, 37,139,178,176, -203,242,203,173,158, 28,115, 42,179,253,230,179, 80,148,196,181, 97,128,152,192, -188,181,201,150,107, 87, 89,184, 52, 15, 17, 21, 89, 9,242, 83,152, 55, 5,240, -119,121,253,254,165,243,149,178, 28, 61, 58, 61,180,111,223, 10,187,215,185, 54, - 18,152,128,192,197,242,231,249,169, 87, 85,122,132, 87,150,183,249,156, 17, 57, - 42,223,199, 80, 32,148, 72,198,193,217,159,174,244,103,203,193,173,226, 80,129, - 19,168,241,165, 50, 35, 34, 34, 18, 68,146, 36, 73,107, 97, 16, 66, 8,130,210, - 74,120, 7, 34,104, 36, 17, 50, 20,139, 32, 8,141, 24, 66, 4,134, 24, 33, 17, - 42, 34, 32, 2, 67, 4,132, 8,137, 20,156,174,198, 14, 5,242, 77,137,222,169, -181,214,210, 31, 59,255,100,231, 31,146,139,167,122, 49,222,139, 37,249,200,117, -125,239, 88, 19,205, 48,180,135,193,247, 55,192,157,245,155,172, 85,169,127,104, -255, 45,158, 92, 38, 64,243, 34, 7,254,182,111, 93,178, 57,241, 53,200, 89, 61, - 30,225, 12,227,172, 8,246, 30,121,164,107,121,195, 13, 79, 10,222,185, 61, 63, -212, 22,149,203,255,150, 0, 84, 11,176, 7, 19,156,170, 70, 75,172,159, 48, 73, - 8,243,250,186,122, 14,251,161, 27, 34,113,235,171, 63, 17,198, 76, 32,196, 30, -192,158,173,238,123, 5,227, 19,140, 26, 72, 19,202,185,133, 88,161,152,102,204, -130, 30, 64, 80, 81, 93, 61, 4,181,110, 22,238, 51, 23,114,240,176,175,242,232, - 75,223, 61, 68,104, 96, 62,132,225,203, 66,209,132,175,225, 66, 85, 55,216,164, - 9,144,210,106,128,130, 42,223, 58,237, 52, 38, 72, 11, 39,218,145,130,222, 84, -248, 30,191, 53,209, 31, 78, 52,111,191, 37,203,138,161,215,168,123,156, 88,137, - 39, 61,134, 78,254,176,233,160,164,211,131, 37, 92,154,120, 93,159, 3,202,141, - 8,109,255, 38,104, 99,165,100,215, 45,174,173,143,241, 48,196, 74, 41,205, 13, -157,183, 58, 71,200,254,202,196, 51,221, 28, 99, 32, 1, 12,178, 48, 88,140,109, - 73,207, 93,223,124,169,228,157,127,216,105,108, 63, 96,111,216,160,202,224, 96, -149, 84,141,140, 99,219,212, 6, 96, 87,155,232,227,254,205,143, 14,142, 40, 83, -237,110, 83,115,145, 16,136,109, 94,232,172, 83, 91,242,182,223,128, 3,105,247, -140,172,123,168,192, 98, 56,127,214,130,185,156, 25, 81,144, 56,109, 36, 10,254, -228, 2, 89, 99,244, 2,107, 83,136, 47,149,136,147, 73,202, 96, 59, 0, 9,157, -170,202, 14,186, 29, 32,251, 38, 22,174,140, 30, 71, 73,122, 55,253,191, 83, 51, -211,240,194, 54,101,100, 8, 71,135, 92,221,121,107, 83,194,246, 89, 69,123, 46, - 23,133,151,125,198, 79,168, 61,144, 95,135, 4,193,211, 21, 9, 7,169, 18, 55, - 71,237,240, 68, 58,197,100,142, 44,121, 90, 30, 14,255,182, 55,176,145, 11, 3, - 22, 49, 70,199,207, 72,250,133,102,213, 86,210,175,137, 64, 51, 60, 80,132,168, -210, 16,105, 24, 30,184, 76, 50,193, 35, 39,106, 37, 68,234,212,118, 53,212,167, - 89, 63, 35,139, 81,162,182,187, 65, 44,102,224, 62,170,219, 96,142,239,160, 8, - 43,226,243, 97,137,112, 8,177, 94,144, 34, 0, 2,246, 4,232,254,250, 45, 7, -173,248, 73, 63,223,192,190,120, 96, 17, 68,218, 86,129, 7, 64, 90, 6,147, 72, - 24,121,251,172,247,193,122, 50,151,149,150, 34, 3, 69,179,112, 85,118, 16,219, - 15,213,153,152,210,195, 7,248, 65,182,114,115, 30, 99, 37, 76,216, 14,225, 31, -107, 80, 56,191,109, 56, 32,117,215, 66,216, 13,169,214, 13, 26, 52,203, 42, 51, - 81, 23, 45, 24, 87, 52, 7,152,129,220,168,198, 2, 39, +// ../Source/Shared/GB_complex.h: +uint8_t GB_JITpackage_49 [1759] = { + 40,181, 47,253, 96,222, 40,173, 54, 0,230, 53,159, 40,208, 22,113, 14, 84, 6, +228,105,178,113,251,208, 63,149,223,228, 22,177,106,232,169,151, 34, 54, 66,115, +211, 0,254, 96,185, 44,189,200,213, 12,120,225,124, 1,148, 0,151, 0,151, 0, + 19,179, 64, 32, 80,165,146,161, 91,173, 90,134,185,115,107, 22, 20,112,190,215, +106,131,142, 49,108,246, 92,214, 31, 36, 33,220, 83, 57,223,126,206,148,181,141, +200, 98, 97, 42,214,222,110,154,103, 38,119,214, 53, 50, 38, 81, 49,141,252,186, +162,242,104,200,176, 48, 46,153, 76, 89,227,180,106, 33,173,113, 8, 53,167, 12, + 48, 22, 76,149,112,177, 96, 62, 61,233, 20,237,146,109,184,165,121,167, 85,249, +233,141, 83, 29, 77,197, 70,219,118, 66,100,152,206,221, 58, 92,155,235, 68,148, +183,174,254, 83,102,167, 81,118,237,216, 25, 99,207,104, 86,136,225,246,145,239, +218, 64,188, 82,137,170, 74, 37,111, 45,152, 66, 14,216,252, 0,225,127,152, 66, +246,211, 33, 10, 46,207,144,132, 49,152,176, 40, 38,181,202,159, 83,200,113,242, +200, 53, 13, 28,156, 91, 23,123,241, 41,159, 69,137,211,202,109, 89,159, 41,199, +217, 82,158,251,142,181,122, 73, 79, 55, 9,179,203,120,137, 93,179, 98, 31, 35, +216,132, 32,206,116,223,225,190,254,255, 40,234, 96,104,112, 52, 22,151, 7,231, +234,104, 34,166,172,143,155,245, 69, 28, 16, 69, 92, 30, 14, 21, 25, 22, 24,156, +140,177,152,117, 64, 20, 5, 40, 96, 16, 46,150,131, 3,133, 75, 69, 86,143,233, +228, 26,187, 98,173, 86,177,171,215,149, 63,115,171,138, 69, 61, 30,137, 5,153, + 72,148,117,146, 80,234, 89, 9,183, 16, 79, 29, 5,146, 91, 38,131, 77, 33, 41, +123, 18,157, 11,205,244,235,226,112, 58, 46, 80, 80, 62,157,114,112,123,215,117, + 41,114,217, 99, 87, 21, 54,231,201, 26,139, 28,176,217,108, 54,155,129,215,147, + 35,135,108,206,208,195, 73, 76,250, 1, 66,202, 52,153,124, 34,144,164, 19, 72, +143,147,171, 60, 47, 12, 7,177, 44, 28, 4,243,113,147, 71, 39,175, 91, 47,140, + 1,231, 33,163, 56,117,198,154,118,176, 62,158,141,213,184,251,216,243, 1,142, + 13, 99,255,117,221, 74, 7,152, 78,221, 62,108, 72, 76, 72, 20,229, 23,114, 44, +110,173,171,213,211, 41,169, 14, 70,249,183, 88, 56, 78,183,156,250, 39, 18,166, + 29,151,161,228, 72,194, 7, 0,224,248,255,209, 36, 93, 64,224,103, 96, 32,225, +157, 91, 73, 85, 1, 65,157,114,219,184,164,235,198,255,213,169,170,218, 16,142, +175,170,183,179,122, 56,250,255,212,212,189,224, 5,215,167,238,127, 79, 10, 93, +171,210,115,158,172,129,222, 17,152, 60,211,193,173,171, 8,146,167,181,101, 99, + 92,237, 28, 46, 71,187,227, 53,147,205,233, 88, 92, 26, 14, 21, 18, 37,177,247, + 20,229, 98,127, 78, 97,216,158,170,144,251, 60,179,147, 55,249,154,174,231,114, + 89,109,183, 82, 42, 95,108, 58, 55,130, 47,168, 50,117,198,208,204,136, 4,145, + 36, 73, 50,172, 1, 50, 98, 4, 33, 65,146, 6, 61, 91, 30,162,152, 28, 7, 36, + 36,195, 64, 16,134, 8, 33,132, 24,162,140,128, 16,162,144,128, 37, 81,148,130, +236,173,208,226, 88,252, 75,160,227,178,137, 57, 17, 44, 41, 16,165,167, 88, 4, + 83,217, 36,234,240,242, 90, 28,108,236,133,117, 2,240, 94,118, 40,163,197, 99, + 25,187,101,117,113,168,195,112, 30, 97, 21,173,157, 53,119,228,143,127, 72,188, +173,210, 5,104, 46,204,181, 13, 43, 16, 92,210, 30, 2, 44, 82, 0, 13, 74, 16, +208,224,208, 52, 0, 41,105, 64,191, 66, 72, 61, 15,111,180,152,100,116, 27,172, +199, 97,123,232, 96, 24, 49,226,224, 46, 86,225, 53, 58,172, 75,173,179,218,128, +210, 99,222,128,134,233,145, 46,152,161,139,224, 46,110, 52,175,242,121, 21, 76, +146, 9, 8, 22,213,101, 45, 90,154,178, 27,217,138,135, 98,243,182, 44, 71,162, +106,158, 85, 50,247,252,229, 37,253, 16, 86, 93, 43,150,194, 4, 58,106, 33, 31, +197, 28,204, 53,114, 97,117,134, 91, 97,235, 98,221, 5, 48, 90,133,146,158,132, +221, 92,239, 92, 19, 75, 91, 85, 6, 41, 99, 46,122,177,121, 48, 58,145,225,100, +217, 27,177, 44, 4,249, 21, 29, 23,130,196, 50, 6, 2,119,175, 31,190,120,111, +180,182, 10, 58,108,162,225, 85, 7, 75, 35, 31,126,182,169,226,226,112,212, 11, +167,161,137,165,217,220,214,104,126, 58,182, 75,167, 44, 55, 34, 64, 74,203, 30, +223, 21, 15, 10, 87,125,200,147,242,224, 96,104,241,132,180, 5, 1,152,104, 62, +197, 29,134,100,113, 16,166, 42,125, 40,205,161, 9, 35, 85,159,112, 84, 40,194, +211,135, 40,167,151, 26,191,160, 9,161,218,220,161,124, 92, 24, 82, 20,140,207, + 79,160, 24, 71,144,158,213, 82, 24, 66, 24,175,225, 0,184, 35, 2,225, 46,100, + 4,174, 94,189,149,137,211,181,181,230,235, 15, 23,108,203,122,177, 63, 14,178, +172, 53,179,137,253, 89,125,196,180, 40,108, 45, 6,164,182, 8,214, 45, 6, 36, + 92, 4, 78, 46, 6, 2, 93, 4, 95, 23, 3,242, 46, 2,151, 23, 71, 97, 47,134, +205,151, 65,222, 47, 4, 2,152,136, 79, 48,129, 62, 24,195,180, 48, 26, 47, 57, + 76,110, 98,153, 94,156,185,219,120,133,121,156,187, 16,121,199,150,204, 52, 75, + 57, 26,177,108,252,135,153, 64,207,140, 5,221,204, 13,235, 76,224,242,153, 34, + 4, 77, 66, 20,141,171, 43,254, 11,233, 43,212, 79,241, 61,136, 14, 41, 58, 26, +117,252,119, 11, 29, 55, 64,219,161,133,241,140, 5,236, 22,133, 62,174, 49,185, + 92,199, 72, 92,157,194, 9,139, 43,110, 16, 73,209,117,116,137,172,149, 25, 50, +147, 17,146, 2, 97,107, 63,228, 63, 59, 40, 99,155,192, 9, 67,188,185,238, 99, +136,216, 77,161,193,232, 99, 70,178, 15,177, 29,209, 40,136,119,157,163,138,183, + 40, 8,165,193,174, 66, 63,128,246, 71,111,236, 81, 35, 17, 55, 30, 69,255,138, + 15, 68,231,209, 44,137,171,118,160,112,209,165,244, 42, 63, 34,229,114, 30,149, +153, 85, 78, 28, 77,136, 66,146,201, 35,206, 88, 52,190, 25, 3,126, 38,137,177, + 68,172,213, 25,114, 50,116,201, 37, 73,180,168,166,243, 88,203,232,160,149, 96, +154,119, 36, 68,176,197,245,172,207,252, 83,225, 23,231,195, 31,219,185,186,126, +185, 59, 71, 68, 55,119,248, 10, 58, 29,182, 70,154, 64, 81, 50,182,104,250,180, +165, 38, 15,131,208,194,211,143, 30,185,182,151,161,202, 43, 80,243,158, 22, 95, + 38,201,107,155,158,111, 77,249, 89, 23,111,152,168, 42,226,127,221, 92, 21,187, +137, 70,186,234,148, 11,174, 55,177,241,193, 13, 71,195, 96,148,210,101, 16, 70, +249,181,156,170,178,249, 77,103, 82,199,202, 77, 3,243, 17, 84, 82,226,130,255, + 60,123,208,130,161, 19,146, 14, 73,190,118, 68,167,183,161, 43,123,223, 17,130, + 78,104,223,239, 47,112, 79,182,190,189, 1,151, 29,164,230, 57, 94, 16, 61,100, +136,181,248, 35, 73, 99, 96,157, 79,114, 34,120, 96,199, 15, 30,118, 82, 71,136, + 83, 30,160,129,155, 20, 51, 28, 51,155, 97, 20,142, 89, 60, 69, 37,158,101,250, + 24, 59, 69,162, 95,158,165,114,211,250, 96,144,177, 54,102, 59, 6,158,166,144, +250,129, 6,140,254, 47, 37, 64,116,214,208, 45, 27,186,197,113,106, 95,193,180, +158,198,211,148, 0,200,131, 85,205, 28,107, 64, 15,147, 11,171, 20,248, 4, 54, +191,146, 43, 3,173, 16, 1,219, 1, 91,130,254,110,160, 82, 3, 22,105, 33,103, +217, 25,163, 0,100,147, 18,173,182, 66,186,187,244,140,191,148,111,189, 65, 64, +241,132, 58, 19, 79,175,104, 7, 11,159, 11,135,140, 6,129, 97,208, 23,200,185, + 98,172,168, 86,253, 74, 60,106, 88, 49, 76,241, 24,159, 50,177,154, 14,161,253, +180,132, 8, 76,250, 89, 97, 81, 36,155, 48, 38,169, 49,162, 2, 56,216,255,180, +189,127, 33,224, 63,242, 75, 44, 33, 66, 70, 21,208, 75, 65,167,174,253,212, 57, +142, 77,179, 92,203, 76, 84,194,164, 12, 31, 20, 70,114,120,173,232, 58, 46, } ; -// ../Source/Template/GB_bitmap_scatter.h: -uint8_t GB_JITpackage_74 [244] = { - 40,181, 47,253, 96,137, 1, 85, 7, 0, 18, 78, 45, 23, 48,219, 1,180,166,187, -130, 15, 21,106,167, 41,142,162, 60,156,132,113, 54, 88, 56, 26,192, 0, 96,230, -114,125, 70,210, 22,247,166, 78,201, 44, 44,113, 95,194,238,187, 54,236, 3,160, - 10,185,201,243,158,168, 11,183, 7,243, 44,200,252,114, 53,115, 0, 36,199, 98, - 60, 74,138,237,227,142,251,217,204,123,253,210, 50, 94,175, 79,230,203, 0,165, -237, 40, 31,118, 95, 63,231,122,163,103,230, 60, 77, 31, 47,152, 37, 89,140, 70, - 73, 22, 31, 72,193, 11,157, 97, 81,242,227,241, 24,221,172,154, 61, 47,186,231, -130,208, 86,116, 41,231,181, 43,182,221,239,252,118,128, 46, 89,116,191,234,196, -122,102,173, 69,151, 53, 93,175,108,222,121,205,230,151,238,160,135,251,123,139, -164, 14, 91, 81,221,121, 12, 33,202, 17, 4, 48, 16, 36, 18, 0, 28, 3,226, 93, -248, 65,193, 14, 94,199,189, 87, 41, 97, 36,117, 79, 40,237,128, 74,226,231, 47, - 51,234, 16, 68,235, 30, 52,127,158,153,162,237, 98,171,229, 22,131, 22,144,138, -139,162,192, 13, +// ../Source/Shared/GB_ewise_shared_definitions.h: +uint8_t GB_JITpackage_50 [618] = { + 40,181, 47,253, 96, 14, 5, 5, 19, 0, 70, 31, 97, 32,240, 24, 61, 20, 35, 65, +146,186,180,209,252, 88,170, 2, 86, 93, 75, 66,107,138, 22,149,176, 96, 15, 15, +120, 6, 38, 45,194, 11, 87, 0, 83, 0, 91, 0, 30,134,210,163, 34,113, 72, 16, + 22,136, 67,194, 7,221,229, 81,215, 19,133,120, 65,186, 10,220,183, 84, 53, 30, + 55,105,153, 32,166,121,194,120,157, 41,222,126, 87,211,102,233,240,109,126,146, +123,190,159,235,155, 59, 90,114,123, 75,165,219, 57, 3, 44,104,123,235,174,182, +126,239,113,222,103, 10,106,238,117, 69, 61, 55, 39,110, 48, 88, 4,131, 33, 97, +103,107,192,239,246,124,107,198,238, 9, 62,224,246, 63,228,251, 90,255, 19, 5, + 93,191,166,157,135,180,118,143,181, 63,184,253,171, 30,195,144,250, 14, 77,212, +245,123,245,116, 51,118,235, 80, 72, 16, 30,236, 40,150,206,200, 95,191,186,237, +123, 25,225,181,253,174, 90, 8, 29,136, 86,240,254,148, 95,127,198,245, 6, 69, + 53, 19, 26,230,146,205, 24,113, 76, 97,151,134,105,212, 80, 28, 85,122, 57,190, +238,240,193, 40,214,203,162,112,219, 5,147,105,178, 75, 38,137, 64, 56, 72, 36, + 35, 41, 27, 23,217, 50, 78,196,126, 0,128, 91, 86, 65,147, 85, 92, 66, 54,216, + 70,195,220, 82,143,170,124,119, 71, 63,143, 93,205,111, 95,228,170,144,187,198, +189,240, 97,253, 92, 87,112,139,108, 21,188,103, 10,115, 34, 92, 70, 52,143,230, +177,170, 68, 37, 54,231,140,115,206, 57, 65, 3,137, 47,103,248,193, 31,151,196, +174,174,156,140, 82, 70,140,187,155,147,156, 71,195, 96,119, 75, 87,225,219, 29, + 28,114,193, 96,145,141,219, 50, 78,195,120,246,118,159,239,166,249,241, 69, 12, +226,234,194, 52, 27,109,245, 85,207,126,192, 26,140, 60, 86,119,143, 32,252,113, + 15, 95,168, 97, 61, 99, 70, 72, 68,146, 20,149, 22,134, 3, 96, 36,152,162, 51, + 15, 66,249, 56,201, 82, 66, 4, 19, 9,164,162,164, 60,146,162,186, 3, 75,111, +150,136,168,225,145,174,220,237,148, 40, 87,154,234,242,145, 81, 50,104, 82, 19, +223,153,222,179, 52, 24,139,208,142,184, 33, 33, 4,207, 71,248,247,114,192, 52, + 63, 90, 27, 21, 75, 49, 20,145,145,208,171, 24,179,131,197, 68, 11, 17, 70,118, +192,168,221,110,104,208,140, 45, 49,129,232, 11,134, 7, 75,237,125, 25, 37,112, +123, 94,241, 48,254, 6, 80, 31,194,197,188,255, 0, 4,204,125,121,174, 45, 98, + 70,174,228, 76, 14, 35, 67,149,134,225,233,210,226,224,112,157,169, 11,252, 42, + 12, 2,121,121, 31, 35,233,193,144, 25, 94, 68,238,193, 86,174, 71,211,175, 60, +103, 18, 68,185,217,183, 27, 61,156,204, 17,222,118,196,132, 46,213,181,176,185, +120,223,204,127,102,154, 46,215,128, 91,162,103, 69,171, 42,237,142, 1, } ; -// ../Source/Template/GB_bld_template.c: -uint8_t GB_JITpackage_75 [1341] = { - 40,181, 47,253, 96, 78, 18,157, 41, 0,134,119,158, 39,208, 88, 77, 7, 4,234, -105,210, 29,109,119,143, 43, 13, 34,107,139,151,226, 73, 17,160,181, 98,173,100, -194, 7,138,104, 15,109, 7,185, 26,102,145, 87, 2,154, 0,142, 0,145, 0, 17, -162,156,224, 83,192, 78, 95,212,140, 81,132, 77,229,197,213,234,168,111,223,148, -179,159,215,242, 88, 12, 52, 8, 25,181,168,196, 36,222, 16,117,171,237,167,141, -147, 81,126, 74,173, 70, 6,164,162, 67,211,244, 36, 42,171,199,185, 45,146,245, -184,115, 18,159, 18, 16, 12, 16, 50, 12, 7, 6, 8,191, 80,210, 39,222,147,172, -184, 70,226, 35,171,225,181,158, 79, 29, 9,141, 9, 11,203,136,209,160, 28, 19, -235,104,111,214,177,176,246,181,147, 90,135,101,237,163,151, 87, 7,186,148, 57, -223, 94,126,186,136, 58, 82,115,155,129, 54, 34,207, 27, 40,141,118, 58,236,210, -254, 52, 7,250, 76, 96,188,160,192,146, 41, 40, 8,157, 93, 81,177, 55,103, 37, -240,253, 98,240,205,230, 79,122,181, 0,150, 6,224,218, 50, 23,208,175,224, 89, - 47,200, 47,123,232,255, 45, 22, 21,231, 50,151, 39,172, 20,149,239,129,199, 10, -219,123, 71,160, 55,117,237,165,245,134,207,243,107, 52, 52, 62, 54, 62, 25, 77, -223, 86,218, 42, 52, 56, 31, 19, 31,142, 14,103, 82, 78, 42,194,139, 95,147,121, -240, 29,242,170,213,171,215,232, 17,105, 98, 42,134,229, 89,159, 82,107,161,188, - 51, 8, 74,106,155,225, 35, 73, 76,155,251, 74,189,229, 79,172,212,198,206,139, -245,228, 86, 67,208, 35,172,174, 87, 50,175,134,163,134, 2, 43,151,158,250,147, -200, 35, 61,164,131,131,226, 83,161, 49,209,249, 69,177, 81,183, 52, 34,242,252, -225, 7,152,191, 61,117,248, 72,219, 22,185,242,103,243,142,217,220,239,143,194, -130, 10, 6,243, 7,135, 75,212,118, 54, 75,234,178,166, 22,197,191, 60,137,173, -254, 92,217,115,234, 92,198,196,142, 93,240,121,145,100,196, 2, 28,222,182,223, -239, 82,105,123,213, 6,120,154, 98,216,134, 88,212, 34,124,211,197, 32, 53,189, -253,212, 84, 22,155, 31,164, 96,191,169, 62,200,159, 22, 34,195,121,211,126,233, - 48,126, 25,123,212, 82,163,203,115, 90, 83, 63,101,141, 88,197,129,253, 86, 3, - 89, 0, 6,211,241, 81,209,148,179, 57,169, 79, 27,204, 69, 50,248,131,128,192, -249, 64,115,121,202,160,140, 73,222,118, 6, 58,236, 99,153,244, 11, 75, 45,210, -247,118,148, 87,239, 81,160,115,176,122,167,213,187,158, 80, 40,227, 13,239, 71, - 60,180,210, 61, 30, 22,157,142,196, 55,223,252,100,117,134,157,203,191,164,216, - 1,226,156,236, 13,165, 70, 80,191,149,228,161,192,204,100, 95,246,230,184,213, - 86, 41,175, 63,163,107, 84,193, 75,212, 84, 65,135,236,242,154, 8, 59,163, 98, -240,106,245,115, 79,222,244,186, 50, 62, 91,189, 40,159, 64,215, 39,174,182, 61, - 13, 80,118,106,177, 4,129, 36,168,161,161, 67,104,102, 70, 36, 73, 65, 82, 24, -214, 49, 12,129,161, 48, 11, 33,167, 7,194,160, 68, 72, 98, 36, 69, 64, 66, 4, -134, 24, 98, 68,100, 68, 36, 16, 9, 82,144,210,130, 98,214,113,229,215, 5, 49, -172,149, 98,161, 98, 19,177, 51, 81,160,158, 28, 98, 77, 67,109,122,228,144,112, -173, 49,168,157,134,100,132, 32,156, 19,109, 60,142,172,131,250,186,201,236, 79, - 80,236,121, 39,140,172,229, 81, 4,209,184,216, 47,242, 75, 67, 5,135, 60, 82, -100,194,106,195,224,119,234,114,169, 56, 65,200,164,185,176,181,195,234,236, 6, -155,244,193,131,181,111,162, 42,115, 27, 14,162,234,190,209, 69,170,179,184,177, - 62, 52,152,252,135, 35,102,133,176,209,126,112,213, 84,220,246,152, 71,253, 49, -255, 82,135, 31,135,120,147, 32,230,129, 77, 4,254, 33, 20,116, 45, 78, 26,206, -127,134,106,110,222, 20, 5,102, 32,225,168,118, 83, 7,251, 15, 85, 76,156,199, - 87,224, 81,189,147,226,127,189, 31,118, 47, 78, 35, 13,238,254,187,211,128,245, - 71,183, 81,201, 48,130,131, 54, 68, 28,124,231,153,123,154, 21,183, 63,177, 64, - 21, 48, 35,189, 41,204, 65, 15, 7, 1,104, 57,240,200,236, 14, 53, 75, 24, 65, -196, 72, 17, 22,133, 64,160,211,209,226, 69,224, 92,231, 71, 7, 3,208,225,121, -153, 48,193,115,152, 35,237,240, 23, 63,103,169,255, 65,140,151, 12,173,213, 49, - 30,115, 40,221, 4,124,168,205,174,113,226, 50,102, 25, 54,146,187, 84,206, 62, -180,168,153, 16,125,248,130,141,157,188, 22,207,136, 16, 31,169, 31,110, 80,146, - 67, 7, 30,214,245, 42,229, 44,138,102,109, 45,148,152, 22,149,160, 17, 18, 88, - 89, 51, 42,216,131,162,100, 73, 4, 47, 60,240, 24,119,133, 84, 43, 73,142,169, -101, 2,251, 11, 70,201, 5, 4, 54,219,168,176,212,225, 11, 8,192, 18, 68,106, -104,187, 89, 64, 50, 33,127,170,106, 64, 53,169, 18, 45,227, 24,248, 90, 93, 44, -200,110,242,141,182, 12, 79,232, 62,169, 33,210,158, 9, 54, 6, 71, 28,255,204, -133, 43,232,245,176, 54,223,203,243,111,117,165, 84, 77, 47,180,219,218, 2, 8, -242, 67, 51,166, 6,227, 97, 0,141,109,130,126,228, 16, 53,143,109,226,240, 45, -166, 14,106,217,211, 87, 93, 37, 42, 12, 15,166, 61,107, 5, 71,229, 20, 69,122, -236, 9,236, 61,166,232,229, 68,248,201, 23,188,137, 49,184,153,253,230, 16,180, -220,136,104, 66,216, 74,152,234,126,187,142, 73,169,160,126, 8,229, 13, 38, 99, - 22,249,178, 91, 2,207, 92, 83,134, 90,145,248,132,219, 70, 10,199, 87,150,158, - 5,113,196,106,177, 22,236, 45,119, 72, 6,209,102, 37, 24,117,102,217,217, 47, -127, 17,203, 10, 14,218,214,228,220, 6, 19,196,128,199, 93,211,102,172, 93,104, -213,133,110,227,186,153,119, 8,137,219,113, 8, 47,120, 80,101,196, 92,161, 14, - 63,198,162,232, 3, 78, 50, 65,142,217,107, 51, 2,230,180, 25,207,157,217,117, -137, 36,132,184, 83, 13, 67, 89,164,160,124,162,129,215,140,217,111, 5,255,252, - 99,209, 60,155, 38,165, 50,211,114, 51,247,114, 77,122, 19,244, 22,165, 52, 0, - 15, +// ../Source/Shared/GB_hash.h: +uint8_t GB_JITpackage_51 [965] = { + 40,181, 47,253, 96, 95, 7,221, 29, 0,230, 51,154, 51, 80,141,210, 1, 48, 51, + 51, 51, 51, 51,139,200, 20,123, 75, 67, 91,110, 51,178,187,255, 19,210,136, 36, +161,120, 4, 4, 79, 7, 24, 83,124, 34, 18,240,161, 30,131,181, 79,202,212,133, +110, 84, 13,171,135,147, 0,134, 0,132, 0, 26,105,186,211,184, 91, 73,123, 7, +195,197,194,158,126,106, 24,176, 22, 28, 48,168,245,142,174, 73,237,124,181,190, +222,204, 40, 11, 64,233,128,116, 62, 86,231,101, 12, 64,201, 80,213,101,181, 75, + 55,235,156,184,156,113,191,197, 38, 46, 43,223, 94, 92,113,225,120,240, 80,216, +138,196,149,155,113,217, 90,136, 51,238,156,245,169,160,202, 84,151,141, 38, 83, +221,114, 85, 62, 73, 22,209,135, 83,214, 75, 90,195, 17,107,124,250, 88, 21, 13, +218,166, 81,130,179, 50,234,246,217,230,249,161,132, 30, 63,194,236,242, 65,110, +126,156, 45,118,142, 70,105, 82, 53,144, 6,137, 99, 48,148, 11, 6, 19,170,245, + 75, 81,101,220, 44,227,203,109,138, 32,116,239,183, 51,100, 37,104,202,141, 8, + 3, 21, 27, 77,117, 6,134, 10,219,184,221,122,201,111,212, 75,209, 5, 29,232, + 61, 65,231, 72,118, 14, 94,119,250,100, 67,199,177,156,224, 22,132, 43, 40,220, +194,149, 79, 92,137,160, 44,149, 7,220,178, 57,168, 6,184,178,154,198, 79, 85, +207,224,227,146,224, 86, 82,146,211, 46,214, 72,211,146,176, 60,116, 19,131,110, +202,141, 61,183, 17,188, 68, 82, 71,191, 94,242,101, 51, 8,100, 29, 72,251,241, +249,113, 67,219,143,247, 82,183, 29,246, 55,110, 17,102,113, 61, 23, 45,196, 29, + 4,234,154,110, 54,252, 49, 86,178, 48, 37,177,238,102,198,209,130, 83,182, 90, +156, 53, 9, 91, 63,159, 84,164, 82, 67,122,241, 21, 77, 57, 59,254, 81,121,112, +226,110,186, 93,178,214, 31,193,152, 29,139,219, 59,210,168,219, 35, 75,141,202, + 23, 38,136, 12,210, 62,216,239,149, 61,161,194,239,116, 42,242,118,250,169,231, +246,248, 15,227,216,219,109,177,151, 92,191,141,113, 94,111,248, 46, 23, 98,125, + 40,177,149, 51,244, 24, 4,227,246,168,251,184,226,167,176,229,109, 94, 23,124, + 9,211,141, 29, 20, 74,198,216, 91, 42,110, 75,205,174, 36,232,220,181,102,210, +177,141,163,184, 61,109,220,206, 31, 96,217,100, 52,173,153,106,147, 80, 85, 5, +152, 3, 3,141, 6, 19,138,144, 98,136, 97, 48, 28,185,117,107,156, 9,140,135, +140,198,164,228, 68,243,201,160,224,235,172,207,198,167, 14, 81,132, 29, 39,237, +197,167, 82,220,167, 22, 14,202, 23,148,146,178, 32,104, 4,238,241, 56, 76, 84, +164, 92,183,206,105, 84, 15,149, 61,232,112,202,105,189, 49,160,228,198,217,215, + 54,107, 87,180, 54,194,139,219, 77,139,138, 11,138,187,237, 55, 33,251,154, 24, +140,158, 95, 70, 56,126,175,167,163,128,143,168, 33,161, 66, 16, 25,153, 25,146, + 36, 73, 33,173, 1, 48,132, 16,164,174,110, 3, 2, 65,117, 76,140, 50,100, 42, +168,145, 32, 97,168,252, 63, 59,199,134, 10, 42, 62,105,191, 92,115, 60,215, 42, +145,149, 37,203,167,194,242, 29, 61, 78,186,158,178, 69,182, 67,112,225,161, 75, + 36, 10,249,100,195, 86,207,184, 1, 66,136,171, 84, 34,181,244,240, 87, 59,101, + 54,123, 51,115, 71,228,149,120,217,144, 64,168,216,169, 41,162, 60,110,103, 12, +225,176,214,122,135, 94,103,160,139,208,171,232,204, 33,152, 94, 50,219, 52,119, + 90,123, 0, 84,180, 10,170,102, 41, 81, 38, 71, 90,211,128,227, 0, 14,181,210, +177, 73, 20, 84, 37, 15,230,251, 51,177,134,198,169,172, 32,219,230,188, 22,222, + 15, 79,168, 59,243, 20,106, 3, 0, 27,229,115,255, 4, 56, 6, 71, 62,248, 17, + 63,209,202, 29,207,223, 55,219,101,143,206,159,244,175,120, 10, 68,148, 13, 67, + 18, 66,224,143,186,119, 80, 22,214,230,177,213, 62,138, 10,236, 86, 19,110,170, + 38, 10,128, 21, 58, 22, 63, 82, 59, 6,143,163, 57, 33,231, 41,117,137,172,117, +254,160,126,132, 63,144,123,184,162,144, 96, 92, 52,223, 52, 3,131, 13, 50,250, +178, 22, 62, 52,197, 28, 89, 23,101,146, 28,237,160,198, 47,202,103,101,220, 16, +166, 14,229,114, 35, 76,135,219,145,111, 64,104, 30,116,147,225,202,191,216, 85, +173, 43, 60,176, 82,170, 29, 68,102,208, 36,149,153, 98,251, 41, 93, 7,152, 55, +174,175, 52,160, 4, } ; -// ../Source/Template/GB_bytes.h: -uint8_t GB_JITpackage_76 [376] = { - 40,181, 47,253, 96,130, 2,117, 11, 0,134,214, 69, 32, 16,179,115,172, 60, 80, - 44,101,174,250,113,186,189, 36, 12,153, 32, 25, 99,192,236,172,239,255, 98,224, - 35, 2, 0, 64,224, 32, 61, 0, 60, 0, 60, 0, 3,235,130, 44,240,168,178, 39, - 50, 62, 41,254,109,221,113,184,242,136,162,136, 44,182, 78,164, 14,196, 86, 26, - 59,148,109,246, 40,176,110,231,235, 79,150,154, 99, 15,187,236, 94,247,195,245, -136,109,170,219, 31,166, 89, 56, 78, 81, 80,162,168, 28,218,205, 47,141,175,179, -227,230,201,114,181,111,221,173, 2, 7,147, 37,237,150,197,142,226, 8,186, 44, -185,231,106, 16,105,235,220,140, 35,146,133, 33,153,180,245,208,173, 59,121,237, -109,195,147,115,156,226, 17,193, 26, 88,146,161, 10,147,189,192, 95, 45, 0, 62, - 52,148, 70,229,178,144,171, 77,201, 0, 8,167,175,153, 99, 44, 54,237, 58, 95, -234,213,185,239, 90, 48, 77, 83,224,178,219, 76,174,222,219,195, 30, 93,213,181, - 25, 31, 29, 30, 21, 30, 89,143,170,127, 28, 23, 3, 16, 74,214,230, 2, 32,172, -252,195, 16,252,184,206,150,178,118,109,107,221, 44,139,239,110,158,162,158,120, -198,194, 92, 74,175,235,255, 31,130, 96,103, 30,237, 10,175, 10,235,184,171, 42, - 92, 7,139, 80,184, 42, 75, 32,104,205,161, 3, 33, 32,128, 68, 2, 42,229, 6, -176,110,243,216, 3,161,221, 85,100, 24,132,122, 4,243, 45, 65,159,238,136, 57, - 41,184, 3,148, 80, 33,188, 64,109, 97, 17, 60, 97, 35,141,137, 72, 65, 16, 9, - 67,184, 44,157, 28, 58,144, 59, 7, 22, 95,187,250, 60,251, 58, 40, 22,231,187, - 21,224,166,217, 60, 51,209,198,191, 90,248, 62, 90, 20, 45,110, +// ../Source/Shared/GB_hyper_hash_lookup.h: +uint8_t GB_JITpackage_52 [1025] = { + 40,181, 47,253, 96, 63, 11,189, 31, 0,182,171,132, 39,208,176,108, 14,232, 55, + 63, 77, 61,119,108,139,122,165,227, 9,115,184,238, 44,231,218,199,160,189, 57, + 56,138,154, 34, 7,157,252,193, 21,158,116, 16,191,120, 0,123, 0,119, 0,224, +117, 73,229,230,250, 78,222, 40, 19,219,201, 90, 87,166,139, 6, 10,106, 99, 78, +101,203,150,219, 43, 53,109,249,247, 93,151, 6, 34,144,200,116, 80, 65, 34,143, + 52,232,146,109, 78,108, 56,117,189, 35, 47,221,116,197,165,203, 85, 89,144, 96, +172, 16, 18,182, 53,130, 23,190, 29, 94,158, 99, 10,211,117,150,247,154,217, 54, +188,132,241, 48, 46,175, 91,214,187,223, 40,239,169,189,247,109, 54,119, 9, 24, +122,148,126,153,180, 81,102,149,193,142,204, 22, 32,254,120, 60,211,227, 17,221, + 24,102, 43,189,167,247,182,242,157, 77,193, 75, 48, 26,115, 38, 69, 65, 48, 14, + 94, 2,175, 95,173,235, 13,184,118, 82,109,219,232, 70,186, 33, 56,251,127,160, +231, 8,242,178,172,238,191, 25,129,193,157,125, 7, 9, 74, 69,130,146, 49, 80, + 42,174,138,203, 51, 67,202,253,210, 89, 77,150,247, 74, 47,221,201,150, 43,120, +174, 47, 69, 81, 7, 93,234, 32,143, 43, 60, 27,224,153,100, 20, 22, 17, 19, 19, +149,108,114,185, 38,153,197,129, 2,155,112,188, 77,174, 1, 30, 8, 21,153, 88, +106, 49,182,191,143,106,149, 51,155,112, 74, 77,203,119, 42,115, 30, 45,119,189, +147, 95,153, 67, 95,241,112, 68, 6, 5,145, 43, 60,154, 32,232, 92, 53, 89, 8, +183,222, 57, 69, 81,199, 96, 24,111,236,146,174, 82,238, 82,171,145, 45,194,163, +200,131,213,125,118,188,219, 23,210,140,203,158, 22,102, 88,222, 77,229,203,219, +195,241, 68, 15,166, 18, 96,142, 94,186, 53, 94, 11, 86, 83,236,186,106,226,141, +182,231, 47, 19,239,109, 95,106, 45, 51, 46, 85,211,166, 55,142,189,157,209,208, + 8,207,195,245, 54, 25,192,131,170,233,218,254,108, 95, 58,111, 5, 64,151, 53, +144, 91, 10,247,162, 78,146, 64,215, 54, 99, 13, 47,215, 75, 92,119,120,145,107, + 39,243,201,156,214,120,231,202,146,198, 4, 4, 18, 32,222,244,157,106,228,217, + 21,182, 31, 63, 29, 24, 16,227, 26,222, 57, 34, 73, 2, 39, 12,150,203,225,146, + 97,150, 75,130,178, 80, 85,240,163, 52, 67,121, 90,204,124, 95,228, 98,167,198, +217,153,199,211, 6,130,211,251,200,134, 86,238,150, 53, 51,214,200,125,139,244, + 59,213, 1,128,210,168,129,173, 67, 52, 52, 35, 41, 40, 73, 10,195, 26, 48,132, + 16,132,202,202, 54,194, 16, 53,204,144,160,194,134, 8, 77, 32, 37,148,148,209, +146,242,114, 3, 4, 0,201,231, 36,229, 23,229, 28, 7,145,112,149, 74,150,242, +219,185, 37,137, 43,198,209, 8,142, 95,133,181,172,214, 29,145, 6,254,245, 26, +188,122,204, 45, 43, 48, 53,236,208, 31,114,108,225,194, 85, 29,192,138, 25,200, +147,200,100, 57, 23,159,161, 61,194, 29, 52, 92,185,210, 29, 64, 41,227,106, 61, + 56,166,201,164,222,220, 44,249,117,152,172, 28, 98, 94,248,179,196,110, 18,244, +185,107, 30,200,187, 64,123,225, 82,214,155,119, 12, 9,165, 30,108,135,217,193, +233,233,235,138, 96, 30, 22,230,232, 7,121, 23, 61,238, 16,238, 32, 14, 95,104, +167,237,121,128, 48,195, 44,142,114, 35, 1, 24,183,222,116,184,197,159,100, 80, + 13,116, 70, 96,116,233,135,155,100, 94,250, 47, 92,235,241,132, 92,149,177, 34, + 38,111, 50,153,252, 43, 1, 69,200, 35,168, 32, 0, 77, 12,253,241, 76,106,192, +136,168,111,230,180,150, 23, 13, 31,236, 79, 25,225,238, 28,163, 86,188,148,208, + 15, 47,190,208,130, 64,152,118, 31,251, 18, 53, 9,201,111, 12,100, 32, 80, 95, +204,223, 49, 45, 33,246, 16,117, 79,160,176, 20, 97,194,157,159, 40,207,225,148, +102, 2, 18,124,196, 27, 8,180,253, 50,168,103,128, 13,253, 31, 47,108, 10, 67, +204, 61,171, 33, 31,105,200, 30, 68,152, 98, 52, 45, 27, 44, 73, 92,179, 64, 13, + 95, 9,245, 38, 71,237,129,206,196,122, 36,241,187, 86,232,202,244, 54, 36, 96, +217,236, 40,184,248,153,188, 32,133, 86, 66,180,133, 38,100, 19, 68, 0,234, 0, + 71, 55, 5,106, 81,247, 38,161, 9,199,149,181,135,198,163,246,131,118,139,175, +118, 56,210,149,146,233,240,243, 72,146, 47,133, 68,206, 89,212,122,209,145,243, + 87,219,123,170, 94,123,183,166, 44, 64,181,138, 12, 80, 13,194, 47,241,165, 4, +144,234, 22, 41,208,179,155,191, 48, 58,140, 25,161, 82,161, 57, 35,149,119,143, +137,255,248, 39,157,139, 24, 13,154,184,202, 76, 60, 9,233, 62, 66,232,138,128, +196, 82,199,197, 3, +} ; + +// ../Source/Shared/GB_index.h: +uint8_t GB_JITpackage_53 [386] = { + 40,181, 47,253, 96,169, 3,197, 11, 0,118, 20, 66, 32, 32,177, 30,243, 11,206, +174, 21, 33,110,130, 0, 61,253,239, 23,194, 16,222,133, 71,244,255,255,197, 19, +154, 64, 34, 20, 22, 8, 53, 0, 57, 0, 57, 0,243,106, 5,199,119,102,164,231, +215, 72,136,179,117,207, 90, 30,227,217,245,107,236,153, 78,110,106,103,227,140, + 31,211,125,191,218,216,126,159,223,126,117,218,133,110,226, 56,181, 79, 57,104, + 77, 81, 80,162,168,254,245,179,117,186, 73,142,173, 87, 62, 74,147,236, 49, 81, +223, 92,199,206, 53,206,157,229,185,198, 96,176,142, 4, 87,117, 73, 4,171,186, + 26,170, 60, 29,225,223,204,172, 39,172, 59, 93,254,188,135,116, 36,177,120,232, + 50, 1,134,142, 49, 98, 61, 13, 61, 79, 79, 48,198,181,223, 99,235,222,211,190, + 95,174,248,166,239,215,156,191,121,122,237,105,188,231, 76, 15, 58, 0, 42, 40, +147, 68,214,216,170, 83, 91, 31, 0,171,233,146,188,171,204, 12,214,133, 27, 80, + 16, 29,136, 75,226,224, 14, 17,217,208, 54, 41, 5, 13,145, 91,188, 58,145,109, + 28, 68, 90,157,208, 26, 24, 87,117,140,216,252, 59, 55, 29, 45,182,142,234,215, +212,254, 37,208,128,245,169,117, 0,132,172,150, 26,170, 6,109, 8, 41, 32, 48, + 66, 67, 77, 89, 15,184, 20,188, 70, 12,240, 43, 69, 76,181, 4, 26,108, 68,151, +181,179, 92, 46,199, 13,206, 16, 56, 77, 56, 23, 47, 9, 2, 63, 37, 10,162, 12, +216,239, 90, 99,135,180,197,172,129,144,177, 9, 17, 14, 60, 89,151,156, 12, 45, +225, 62, 3, 30, 51,153, 29,219,201, 36,176,247, 77,152,239, 85,206, 55,125,108, + 51,157, 25, 51,180, 68,195,186, 7,205,205, 51,211,109, 25,173, 22,142, 9, 61, +240, 11, 79, 81, 48, 4, +} ; + +// ../Source/Shared/GB_int64_mult.h: +uint8_t GB_JITpackage_54 [638] = { + 40,181, 47,253, 96,160, 9,165, 19, 0,198,223, 95, 32,224, 26,231,160,158, 22, +173,175,165,247,188,116,127,101,136, 68,205,194,119,253,234, 10,200, 79,251,210, +132, 25, 82, 98, 76, 8, 89, 0, 83, 0, 84, 0, 32, 40, 57, 65,145,144,137, 66, + 3, 33, 19,215,104,118,194,173,168, 73,185, 65,242,213,215,161,169,122, 78,232, + 72, 48,147,239, 52, 69,139,131,175, 56, 79, 29,238, 58,118,176,254,173,103,253, +178,248,109, 5,178, 55,239, 47,143,224, 68, 93,228, 17,183,173, 15, 83,253,145, +173, 43,240, 84,239,104,112, 52,137, 22,140,182, 85, 52,177,252,112,192, 10,135, + 67,118, 50, 24,134,220,231,173, 56, 54,139,239,208,254,114,216,117,125,207,175, +223, 39,166, 42, 62, 97,188,243,235,179,105,222,243,215,191,220,227,201, 20,210, +135, 34,157,166,223,250,121, 48,105, 72, 20,248,163,243, 36,185, 67,228,234,213, +182,220, 93, 10,124, 45,211,138, 41,128, 40, 27, 67,199, 40,145, 47,115,126,251, + 27, 85,206, 3, 25,219,234,113, 7,192, 60,152,143,199,157,245, 42, 0,195, 12, +242,144,200,153, 51,125,245,206,206,171,126,109,253,215,225,228, 55, 92,113,164, +212,171, 7, 73, 50, 30,205,133,246, 29, 73,239,122, 66, 55,185,175,189,252,134, +142,155,114,115,151, 10, 65, 79,100, 84, 40,134, 23,249,107,254, 82,231,158,180, +118,253,209, 4,189,151,194, 7, 24,230,213,206, 50, 0,123,109,167,153, 28, 92, +147,138, 63, 30,116, 27, 92,118,162, 53,151,235, 24,185, 80, 33, 56,129, 68,112, + 2,196,108,185, 29, 83, 81,168,228, 3,114,227, 30, 8, 68,184,237, 82,241, 72, +228,243,144, 35,248,130,252,218,174,177,178,115,119,185,158,221,171, 43,110,187, +166,202,174,101,135,124,190,223,194, 66,215, 86, 4, 21,129, 21,111,160,209,173, + 33, 11, 70, 38, 41, 40,104, 74,210,106,160, 72, 68,200, 88, 7,127, 94, 38, 57, +101, 18,102,174,196, 20,190, 58,151,169,113,132,130, 7,204,151,224,122,204,186, + 94,203, 0,201,107, 61,234,155,116, 4, 2,248, 37,130, 37,111,172,230, 61,203, +161,146, 70,179, 12, 69, 47,197, 42, 15,184,196,160, 89, 95,199,118, 30, 8,209, + 58,189,227,172, 89, 94, 95,117,128,176, 85, 57,175,155, 8,138,195, 65,118, 39, +103,183,202,202, 64,115, 31, 3,126,183, 70,129,114,192, 64,100, 44, 92,101, 13, +185,166,220,214,129, 50,150,251,246,243,214, 0,119,189,178,124,239, 55,245,203, +208, 17, 76,183,146, 40,128,114, 96,240, 95,167, 15,178,152,151,102,232,185,163, +247,189,183, 34,243,204,208,144, 79,229, 73,253,165, 99, 81,102,235,121, 1, 73, +188,195, 88, 1,163, 0,156, 16,194,105,223,164, 60, 99,169,109,109, 84,222,199, +156, 47,161, 60, 14,141, 11,152,220, 2,201,153, 56,221, 90,116,211,196,168,204, +180, 46,138, 85,123, 8,168, 9,195,160, 25, 4,117, 14,188,162,193, 9, } ; -// ../Source/Template/GB_callback.h: -uint8_t GB_JITpackage_77 [644] = { - 40,181, 47,253, 96,176, 8,213, 19, 0,198,156, 91, 33, 0,181, 30,214,212, 19, -205,178, 2,124, 60,111,130, 15,197,125, 54,148,140,214,162, 38,169, 85, 24,134, -113,150,254,223,235, 67, 8, 82, 0, 81, 0, 83, 0,175, 63,115,189,189,206,205, -252,251,166, 23, 24,139,196,194,208, 80, 36, 22, 62,176, 2, 47,232, 11,170, 17, - 63, 76, 31,121, 27,131,119,243,130, 54, 43,136, 39,214, 60,113,188,206, 85,212, -126,223, 81,147,218,191, 15,243,123, 60,227,206,117,247,220,139,163,237, 14,239, -224,177,149,243,125,213, 82,200,196, 17, 8,105, 64, 32, 2,174,243,239,240, 98, -209, 67,124,183, 13,199, 78,110, 59,230,173,169, 71,215,205, 24,137,162,170, 1, -222, 1,111,156, 69, 10,240,231,198,207,134, 31,222,128,164, 80,203, 52, 33, 85, - 53,167,238,185,176,187, 1,153, 56, 44, 12,239,217, 42, 78,119,228,191,221,221, -225,115, 21,195,235,240,237,173, 12,154, 8,118,224, 30,148, 3, 10,106,146, 81, -214,219,251,105,234,249,169, 82, 81, 22,127, 95,165,162,233,162,154,255,176, 23, -162,170,139,146,201,191,119,181, 90,172,224,190,156,140,218,182, 57,105,212,162, -216,180,182, 10,228,225,131, 65, 71,193, 81,131,163,165,162, 73, 16, 8,252,218, -174, 12,163, 22, 70,179, 48, 19,101,108, 48,205,212, 56,236,237, 7, 29,239, 82, -118,151, 11, 63,224,213,132, 92,213, 68,150,252,225, 54, 28,221,221,221, 37, 73, -230, 11,190,183,253, 65,183,163,171,232,213, 29,210,211, 35, 69,195,136, 88,164, -158,252, 33,236,194,168, 37,163, 50,116,103,172, 63,116,203, 46,237,178, 95,131, -191, 81, 26,104,141, 50, 6, 63,119,155,236,178,168, 76,162,248, 78,126, 48,113, -160, 17,146, 98,102,136,166, 36, 37,133, 44,107, 80,132, 8,161, 34,221, 79,129, -109,192,160, 57, 7, 52, 0,116,151,209,232,204, 43,134, 40,187,156, 47,146, 93, - 49,148,253, 16, 76, 3,100,191,172, 82, 58, 76, 23,100,127, 25, 87,210,226, 98, -170,248,101,155,146, 99,190, 32,251,203,102,100,152, 47,117, 17, 67,217, 15,160, -137,128,236,151, 89, 74,172,137,221,201, 30, 75, 99,177,216,148,137, 19,195,240, -237, 6,141,253,138,231,128, 47,137,253, 13,250,176,239,245,170, 27, 13,152,218, -183,100,160, 22, 43,241,186, 82,165,207, 42,111,214,208,144,134,103,233,154,208, -201,204,147,228,237,216,181,143,222, 14, 6,234,203,251, 58, 84,164, 55,171,248, - 72,125, 4, 67,165,104,223,176, 16, 15,190,102, 28, 21, 15, 60,121,104,132, 21, -120,143,148,129,150, 91, 4, 0,116,132,161,212, 46, 46, 64, 92,188,117, 68, 81, -183, 96, 6, 32,176, 99,122,164, 73,253,126, 1,113, 55, 16,232,131,140,103, 24, - 12, 4,205, 72,128, 23, 20, 15, 26,123,193, 74, 69,151,104,144, 8,129,165,140, - 60,218,131,161, 66,192, 15,154, 26,149,153,188, 23,182,170, 19, 66,204, 71, 94, - 85,244, 58, 1, +// ../Source/Shared/GB_kernel_shared_definitions.h: +uint8_t GB_JITpackage_55 [1189] = { + 40,181, 47,253, 96, 39, 21,221, 36, 0,198,114,150, 40,208,178, 58, 7,168, 74, +160,216, 63,199,203,122,124,109,237, 99,168,116,141,185, 74, 72,117,138,212,253, + 23,151, 5, 14, 87,198,225, 69,174,102,192, 15,102, 9,138, 0,147, 0,139, 0, +116,106,171,241,174,223,198, 35,193,198,143,203, 36, 11,188,242,233, 70,184,219, + 43,111,160,168, 66, 93,166,221, 50,232, 85, 79,160,203, 26,183,220,120, 77, 91, +229,102, 28, 49, 89,104, 58, 84,220, 14,186,117, 61,175,189,133,216,115,142,171, + 46, 21, 92, 42,151,233,192, 82,185,124,146, 73, 46, 85,238,128,154, 83,213, 65, +182,158, 29,131, 46,125,170, 8,134,205,131,116,147,176,149, 66,239,179,205,223, + 39,170,113,110,189,221, 57, 14,158, 78,237, 79,216,168, 42, 39, 55, 75,214, 54, + 98,113, 41,220, 42,198,173,164,203,129, 49,108, 78,161, 68, 19,133, 18,209,228, +149,134, 34,147,185, 60, 22,199,218, 0,124, 96,224,147,127, 64, 23, 3,150,185, + 36, 38, 64,149,228,241, 26, 71,185, 2, 81,229, 22, 86, 68, 71, 98, 34,131,125, +174,144,107,124,203,122, 32,125,216, 48,222,234, 92,128, 48,140,173, 55, 36,225, +150,125, 44,101, 41,124,198,221,108, 24,173, 64,228,128,125, 56, 19, 23,232,226, + 92, 13,150, 6,211, 88,158,202,225,131, 69, 88, 28,143, 5, 33,181,143,157, 89, +192, 70,197,173,159,252, 2, 30, 69, 84,198, 18,232,122,216,156,206, 83,116, 50, +151, 30,183, 33, 93,185,161,105,169,247, 4, 16,185, 13, 57,175,219, 62,136,132, + 15, 73,174,223, 55,219, 49,228,110,125,105, 63,218,175,124, 11,116,121, 42, 62, +149, 3, 55, 83, 15, 3,140,180,156,198, 55,163, 1,198, 0,179,245, 82, 0, 39, +167, 61, 74,120, 41,184, 20, 96, 44, 24, 11,198,130,128, 61,202,248,119,169, 49, +132,150,140,192,237, 36, 46,229,186,241, 82,220,206,214,251,216, 75,189, 33, 10, + 91, 98,109, 56,149, 67,198,194,194, 38, 33,201,148,187,173,167, 12, 61, 44,238, +202, 41, 43, 95, 88,160, 54,132,235,169, 54, 63,209,238,148,228,169, 57,254, 52, + 46,167, 55,183,126,151,112, 82,183, 65, 52,142, 96,112,233,114,201,114,169, 34, +137,255, 31, 5,209,202, 41,163, 74, 68, 69,116, 74,216,217, 82, 90, 9,154,225, +183, 3,110, 59,227, 35, 65,101,237,170, 45,109, 95, 70, 97, 48,126,153,228,218, +245,235, 90,110,148,235,109,148, 31,125,101,202,217, 27,118,116,123, 35, 87,223, + 83,110, 40, 58, 41,221,111,199, 61, 45,199, 28,148,147, 91,110, 75,150,240,231, + 56,246,152,253,144,228,246,186,237,174,232,148, 72,234,136,194,194, 39, 33,151, + 36,231, 80,116, 46,114, 74, 78,174,116, 59, 94,121,235,215, 89, 57,120,170,165, + 16,137,166,178, 60, 20, 75, 20,225,210, 75, 18,190,194,128,229,160,129, 37, 53, + 68, 35, 34,146, 20, 36,165, 12, 7, 48,132, 16, 50,101, 86,220,162, 17,129, 36, + 73, 87, 46,168,150, 38, 31,225, 19,116,146,179,228,218,223,138,203,212, 36,212, +124,177, 87,136,161, 64,124, 36,130, 34, 23,128,100, 99,232, 51,156, 70, 17,202, +107,102,251,215,159, 86,109,223, 14,121,157,216,190,128, 16,248, 93,156,102,187, +248,242,189,212,142,127,138, 84,112,167, 2, 75, 18, 36, 96, 24, 55,167,208,216, + 27, 76,149,185, 94, 26,250,139, 27,105,145,205,171, 49,164, 19, 73,198,255, 11, + 16, 2, 75,225, 30,158,179,228,185,141, 12, 36,254,154,112,174, 76,140, 12, 63, +139,168,217,197,254, 87, 8,238, 5, 59,221,132, 61, 92,232, 58,156,117, 34,209, +208, 21, 5,146, 99,209,209, 2,201,144,154, 20,173,114,131, 27,133,208,147, 5, + 85, 35,250,128,104, 46, 12,161,159, 38,127,248,188, 62,105,139,128,102,216,150, + 40, 58, 85, 17, 80, 34,250,241, 97,128, 45, 10, 33,178, 34, 2,163, 25,185,126, + 67, 26, 61,183,179,156,110,220,156, 30,100, 61,127,176, 2,177,230,184, 3,142, + 23,252,183, 73, 56,231,146,105, 34, 39, 70,132,118,177,149,234, 87,165,139, 37, +109,145, 34,110,139, 61,221, 40, 23,232,130,103,228,148, 8,189,123,202,221,136, +212,205, 93, 64, 45,180, 91,142,107,148, 63, 13,168, 51,132,196,155, 28, 55,185, + 56, 1,231,204,168, 29,177, 41,127,209,134, 69,169, 5,103,233, 81,137,137, 60, + 22,214,228,162,115,203,217,203,252, 77, 7,174,227, 38,224, 39,197, 9,112, 82, +238, 10,110, 6, 38,196, 73, 48,158,234, 98,150, 13,116, 8,122, 62, 19,146, 75, + 98,113,109, 12,123, 36, 87,168,140, 14, 18,227,241, 55, 62, 39,217,214, 66,152, +178, 61, 3,172,201, 69, 11,254,204,115, 70,116, 17, 3,192,133, 59,240,184,175, +117, 51,131,146,168,122,122,119,129,230,108, 96,136, 67, 21,210, 13,180,117,199, + 94, 97,224, 55,186, 28, 77,207,140,224, 77,253,186, 61,128,162,161,182, 8,107, + 33, 4, 17, 15,124, 18,200,100,170, 10, 66, 94, 2, 81, 99,129, 44,229, 42,242, + 13,164, 39, 84, 5, 32, 17,136,226,115,184,185, 15,109, 34,122,210,138, 1,212, +208,127,245, 98,199, 89, 54,243,138, 52, 69,212,146,206,188,107,101,132, 5,153, +111,142, 47,182,154,166,210,231, 22, 56, 98,197,100,165,184, 11,194, 2,130,203, + 15, 32,158,208, 46,240,141, 1, 81, 39, 19,253,160,210, 70, 81, 56,118,110, 57, + 34, 56,109,121, 24, 0,145, 23,100,107,166,110,154,155,159,153,222, 41,174,111, +159, 80,228, 83, 38,254,138, 94, 60, } ; -// ../Source/Template/GB_callback_proto.h: -uint8_t GB_JITpackage_78 [1746] = { - 40,181, 47,253, 96,226, 37, 69, 54, 0,170, 64,212, 11, 43,208,140,140,115, 91, -213, 38,218,213, 66, 53,231,117,229,247, 50,209, 82,213, 18, 49,120,192,128, 71, - 45, 11,102, 8, 98,229, 47,101,253, 50, 85,252,193, 21,158, 98, 16,191,172, 0, -182, 0,176, 0, 18, 58,205, 70,194,168,147, 90, 56,235,189,242, 75,189,211,206, -234, 47, 31, 82, 86,171,255,237,243,212,150,112,177,107, 36,148,208,181,220,215, - 47,155,205,119,167,148,217, 97,215,233,206,153,201,196,213,202,252, 15, 11,131, -225,225,224, 80,235, 57, 44, 58,196, 84, 88,193,150, 74, 77, 28,202, 82, 31,164, - 56, 30, 36,176, 60, 40,181,152,202,122, 57,183,165,129,151,199, 24, 29,122,112, - 96,112,112, 20,104, 96,112,120,227, 45, 28, 98,104,225, 18,252, 17,189, 99,245, - 94, 48,115, 8, 19, 81, 34, 44,204, 77, 9, 8,229,233, 48,140, 54,204, 48, 12, -126, 84, 57,117, 35, 23,246,147, 89,245,185,213, 89,177, 78, 31,194,122,108,239, -196,218,230,185, 41, 70,247, 90,132,196, 33, 16,134, 3, 2, 9, 28,165,228,164, - 89,238, 99,136,206, 22,210, 25, 38,225, 35, 95,169, 49,181,219, 61,198,220,213, -112,186, 72, 50,153, 40,130,105, 82,179, 68, 82,102, 18,209,248,102,106, 5,196, -148,211,105, 53, 31,218,200,204,122,215, 56,101, 75, 77,157,174, 76,202,183,132, -250, 28,198,155,185, 23,167,164,235, 87,251,102, 24, 33,206, 96,158,183, 13,187, -134, 60,199, 16, 56, 34,215, 10, 48, 58, 9,171, 63, 16, 40,114, 14,156,237,164, - 22, 49, 37, 22,126, 10,174, 5, 67,194, 27, 87,198, 87,246,218, 67, 7,227, 56, -110, 17,156,168, 61,144, 88,144, 40, 48, 18, 69,164, 61, 64,176, 60,136, 48, 42, - 33, 0,198,130, 86,201, 84, 46,150,198, 32, 18, 69, 80, 40, 81,164, 82, 74, 86, - 16, 64,132,216,181, 79,170,117,241,229, 7,187, 56,105, 38, 24,223, 28,202,217, -149,163, 30,130, 94,131, 64,222,216,206, 28,100, 42,214,177, 14, 44, 92, 59, 13, -121,198,152, 85,203,240, 12, 31,189,130,167,116,174,212, 24,160,226, 90,151,238, -177,194,217, 82, 33,142,187, 42,200,185,213,118, 4,121,174,187, 75,120, 14,132, - 38, 4,142,232,218,238, 91, 53,222,198,232, 26, 39, 82,105, 15, 26, 26,215,186, -104, 18, 74,101, 65, 69,131, 0,249, 0,105, 36,124, 48,114,219,104,147, 30,135, - 3, 1, 62,215,113,200,225,128, 0,185,176,221, 84,108, 31, 83,198,135, 46,118, - 54,169,129,204,142,210, 44, 58, 11,142,174, 58, 20,221,204, 46, 29, 66, 33,233, -113,119,218,254,134,221, 37, 77, 76, 76, 76, 76, 64, 19, 30, 34, 92,110,220, 55, -161, 36,220, 76, 62,145,239, 54,128, 0,252,100,242, 60, 12, 70, 5, 41,169,207, -133, 74, 57,179,214,217,176, 56, 91,128,161,184,118, 86,103, 8,191,121,174,185, -201,197, 48,171,159, 6,182, 88,219, 76,189,176, 84, 44,141,193, 69, 82, 33, 25, - 28,157,201,209, 16,189,227,230,116,111, 52,180,158,203, 20, 90,230, 82,193, 56, -224,140,227,174,111, 31,122, 18, 66,205, 74, 61,106,140,110,186,214,140, 4,243, - 88,207,181,106, 15,241,165, 13,229, 35,189, 19,163,203,250,185,179,118,103,162, -186, 65,158,237,106,191,121, 27,167,231,121,103,238,165,179,130,112,169, 72,146, -139,130,200,197, 22, 53, 79, 88, 85, 96,145, 8,183,204,246, 93, 94, 89,163, 65, - 53, 83,175,214, 32,145,184, 72,164,106, 15, 32,122, 63, 56,155,117,106,100, 66, -145,184,255, 45,162, 80, 40, 26,112,224, 12,129,164,168,225,157, 66, 34, 51, 35, - 34,146, 36, 73,134, 53, 97, 20, 98,148,130,208,113,214, 1, 66,168, 32,142,176, - 8,198, 64, 12,197, 16,132, 8, 49,148, 16, 66, 24, 17, 9, 40,146, 64, 36,176, - 48, 84, 29,111,137,106, 12,108, 85,106, 22,139, 74,204, 33,144,151, 18,175, 68, -107, 92,131,229,246,252,226, 92,132,155,152, 38,164, 1,113, 90, 47,198,171,135, -141,237, 34,221,223,229,195,150, 5,107, 31,112,217, 90,241,246, 79,112, 45,100, - 60,206, 59,133,168,139,215,180,149, 27,146, 98,243,250,213,255,166, 36,225,221, -120, 12, 69,186,193,152, 0,182, 37, 98,146,184, 47, 36,124, 24,171,216,157,230, -102,248,164,253,251, 72,119, 37,254,174, 20,214,200, 13, 3,198,202,245,223, 4, - 10,199,175, 38,211,200,106, 70,217, 7,251,122, 43,208,245,198,131,144,213,116, -222, 10, 5,118,120,180, 79,235, 31, 56, 20,240, 28,197, 13, 93, 98,231, 46,152, -151,208, 40, 52, 76, 98,233, 37,104,226, 97,117,223,165,148,165,254, 52, 15,239, -150,157, 21, 98,116,181,105,199,145,130,167,231,168,149,172,147,218, 60,133,198, -179,179,138,192,135,133,108,120,161, 64,172, 48,146, 19,208,217, 47, 97,213, 94, - 19, 24,123, 57,254,227,116, 90,228, 16, 94,188,214,167, 8,255, 60,227, 3, 70, -200,210,207,247,137,199, 86, 41, 31, 8,234,108,200,140,165,120,148,159,168, 5, -145,168,148,105,246, 33,137, 55,245,142, 84, 47, 51,103, 31,129,247, 97, 69,113, - 99, 81, 4, 8,131, 84, 0,217, 86, 65, 68,225, 9, 44, 31,140, 40,114,152, 35, -249, 60,170,121,146,233,120, 17,241,237, 19,242,130,128,241,201,182, 52, 62,141, -213,160,225,248,104, 50,247,104, 47, 36,214,225,158, 1,167, 10,178, 64, 11,194, -144,120,247, 22,171, 61, 28,232, 72,221, 97,169, 68, 61, 44,114,114,127,141,112, -163,116,208,149,141,167,248,106,127,198, 27, 52, 30,209,151,199,142,197,162,147, - 82, 99, 75,115,133,149, 18, 59,152,186,248, 28,176,198, 11,105, 59,238, 10,130, - 9, 5,180,135, 67,145, 34,228,136,247, 43,113,104,128, 99, 54,118, 46,216, 39, -229,118,204,181,250, 64, 63,182, 93,199, 79, 43,153, 15,253,102, 33, 1,229,249, -131, 87,239,247, 42, 28, 39,121,116, 58,201, 25,147,132, 96,184, 21,179,236,117, -114, 22,223, 11,189,210, 63,152,122, 46,209,164,233, 66,116,132,160, 9,188,122, -104,212,239,169, 18,113, 66,243,132, 14,177, 62,119, 16, 99, 34, 74,224, 10,219, -245, 44,208,197,141,134,159,197,184,114, 17,209,215, 66, 83,169, 94, 48,197, 37, - 34, 85,236,228, 77,242,203,125, 74,176,194,236,250, 30, 50,126,105, 90,159, 46, - 24, 87,191,228,218, 14,217,112, 8, 57,116,138,198,203,199, 76, 2,155,116,103, -187,133, 42,107,245, 61,150, 33, 60, 77,146,150,143,180, 76,189,240,254, 31,200, -131,125, 99, 19, 6, 46, 56,215, 33,234,243,255,226, 71,116, 32,158, 35,109,232, -211,215, 37, 74, 37,132,126, 58,158, 38, 69,180,213,253,239, 90,218, 11,127,214, - 50,103, 85, 86, 14,247, 43,229, 20, 16,108,202, 8,166,176,136,104,226, 40, 30, - 70,223, 18,115, 89, 2,204,245, 78,112, 5, 53, 85,164,106,153, 18, 42,209,163, - 15,222,115,235, 65,165,226, 74, 40,101, 89, 30, 66, 19, 14, 16,248, 49,154,166, -160,130,119, 84,155,132,147,248,140, 84,103,209, 73,132,247, 65,236, 80,125,255, -157, 58,128,182, 75,167,162, 71, 20, 87,240, 8,170,173, 64,225,180, 19,156, 29, - 10, 62,251, 98,136,167,163, 53,126,167,189, 26,221,149,241, 98, 73,170,226, 91, -103,194,128, 74,162, 96, 39, 83,244,147, 84,243, 80, 18, 3,215,221,219,202, 12, - 72,148,216,146, 62, 67,167,235,248, 9, 50,120, 21,109,112, 61, 46, 35, 83, 16, -108,204,227,216, 49, 98,139,180,235, 6,128,240,219, 57,228, 36, 30,235,200,164, - 79,113,117,168,239,245, 37,184,142,162, 89,152,146, 37,206, 25,123,227,251, 1, -196, 33,180,199, 82, 17, 45, 48,253, 36,207,174, 38,165, 10, 53, 62,162,217,135, -166, 30,212,158, 31, 88,232, 24,171,140, 48, 35, 2,253,132, 81,102, 66, 57, 3, - 1, 75,241, 41,197, 49,120, 71,243,132, 19, 46, 56,137, 17, 74, 43,184,167, 90, -200,147, 66,143, 78, 12,181, 37,230, 51,171,129,200, 25,149,193, 84,234,140, 66, - 65,135,226,171, 55,205,145,202, 76,252, 13,110,186,134, 48,228,176, 46, 94,250, -209,235,175,149,160, 9, +// ../Source/Shared/GB_matrix.h: +uint8_t GB_JITpackage_56 [7390] = { + 40,181, 47,253, 96,155,109,165,230, 0,250,156,160, 27, 44,160, 82, 81, 55,210, + 1,233,175, 11, 59,249,222,242,121,158,206,210,154, 85,250,103,109,218,179,218, +169,150, 13,160, 84, 91,224, 74,124,255,218,114,188, 28, 47, 57, 29, 94,169,158, + 1,167, 1,183, 1, 42,179,157, 75, 61,203,173, 37, 99,153, 47,199,141, 3, 98, +145,203, 49,174, 78,232, 10,169,151,251,214,109, 64, 83, 93, 87,237, 56,190,247, + 98, 44, 35, 42,215,114, 16,202, 53, 57,248,222, 98, 16, 35,153, 90,182, 30, 66, +241, 71,191,245, 76, 51,222,211,241,100, 42,182,116,207, 15,122,170,229,182, 55, +221,106,172,143,241,108,149, 25,172,116,190,236, 74,114, 38, 3,159, 74, 40, 37, + 43,228, 58,179,152, 90, 22,147,176,242, 86,215,191,147, 21,113,172, 41, 77, 20, + 23,155, 61, 97, 96, 92,168, 48,241,220,114, 58,235,165,169, 90, 59, 46,165,108, +208,247, 94, 40, 34,163,191, 86,100, 32,145, 20,190, 66, 21,231, 23,117, 98, 36, + 16,200,169,191,237,230,173, 78,168,123,135,121, 16, 78, 22,104, 35, 68,143,230, +184,102, 9,106,205,222, 40,197,159, 85, 63, 57,163,146, 95, 71, 12,186,153, 77, +112,234, 75,158,222, 48, 18,152, 14, 41, 59,212,249,153,135,100, 95,126, 78,121, + 82,234,101,112,163,243, 66, 53,250,233, 50, 57,127, 42,195,169, 86,196, 25,135, +141,208, 91, 41, 2, 76,101,207,121, 7,224,215,173, 21, 27, 21,250,146,227,102, + 73, 28,186, 86, 36,219, 36,193,212, 87,127,149,122,108,233,183,164, 26, 77,231, +233,208,253,100,108, 93,167,179,228,170,106, 74, 89,174,254,116,236, 49, 65,101, +139, 3, 66,137, 34, 36,108,185,141,146, 90, 36,119,213,211,153,186,144,240, 59, +187,198,144,104,120,144, 17, 81,172,145,252,172,161, 63,173, 76,107,232,123,146, + 66, 6, 34, 40, 17,146, 4, 21, 74,132, 62,206, 81,232, 91,179, 15, 52,146,116, +179, 38,196,154, 67,161, 13, 9,195,129, 21, 87, 74,176,240,203,141, 27, 60, 59, +219,128, 72, 56, 29, 99,160,124,149, 2,198,129,148,160, 18, 86,250, 14,123,182, +119,197,148, 90,172, 72,107, 57, 23,195, 56,144,160,147, 9, 68, 50,153, 4, 76, + 93,158,201,151,203, 46, 14,157,139, 83,175,179, 9,131,161,216, 27,147, 17, 27, + 24,117, 45,215, 23,229, 55,237,116,107, 45, 39,151,223,123,218,207,116,102,112, + 47, 83,194,200, 18,190, 94, 74,121, 87, 10, 23,102, 32, 77, 75,136,217, 5,127, +171,141,180, 16, 95, 34, 25,111, 75,211,186,123,154, 38,203,178,230, 54, 65,166, + 73, 1,252,150,144,129, 36,162,169, 22, 81,170,161,230,195,183,187, 64,140, 79, + 5,114,180,197, 34, 10,148,130,193,252,126, 27,232, 87,213, 19,145,242,164,219, +123,155, 77,183,186, 89,145,106,196,223, 27, 9,127, 37,132, 64, 16,141,181,201, +197, 90,198,150,152,198,117, 97, 29,215, 6,104,243,117, 21,137,255,123, 18,254, + 53, 97, 89,116, 71,223, 81, 41, 16, 69, 81,135,199, 6,109,199,175, 66,127,249, +109,251, 26,235,215, 77,178, 70, 23,206, 87, 45,162, 84,166,104, 54, 69,237,140, +236, 52, 86,200,245,228, 17, 76, 39, 70,129, 58,112, 15,231,110,217, 64, 13,199, + 52,254,109,213,129, 9,136,173, 26,111,160,140,250, 48,234,220,118, 34, 44,242, + 84, 10, 92, 78, 68, 84, 8,139, 92,149,216, 81,145, 68, 68, 75, 37,110,120, 60, + 32,139, 35,169, 99,217,131, 21,152, 43,133, 90,212,210,207,228,119,148, 98,138, +217, 41,222,131, 88, 30, 9,245,129, 20,114, 84, 45, 21,245, 32,101,249,233,220, + 73,241,204,190, 35,198,152,170,157, 53,225,212,219,108,125, 47,171,222,102, 28, +248,223, 62,146,163,218, 98,152, 15,247,142,111,201,211,219, 9,167,247,179,107, +202, 91,107,138, 5, 26, 65,201, 31, 29,148, 13, 80,165,192,182, 82,174,180, 61, +214,244,132, 38, 75,107,104,123,154,118,146, 44,173, 37,133,162,164, 65,241, 75, +214,176,116, 76,191, 85, 82,150,108,109, 48,135,252,156,189,213, 40,220, 76,229, +135, 80,145, 76,165, 40,103,124, 37, 4,196,228,239,135, 94, 21,104,229,205,147, +250,186,154,197, 55, 21, 46,236,156, 52, 61, 55, 67,177, 62,237,100, 92, 96, 68, +216,214, 16,136,177, 95, 69, 96,159, 13, 59, 43,231,194,118, 93, 85, 12, 49,254, +108, 29,111,252, 40,190,228, 98, 17, 66, 64,168,212, 19, 6, 63, 50, 45,225,111, +212,185,249, 51,140,157,247,198,196,199,203, 62,156,166,109, 27,244,143,179,204, +138,139, 7,170, 80, 10,183,105, 10,125, 56,170,150, 3, 44, 43, 60,122, 55,232, +217, 32,205,161,248, 88,135, 49,245,204,147,132, 88,230,173, 89,158, 50,109,159, + 12, 71, 57, 52,236, 77, 24,203,165, 54,236,214,111,239,255,217, 57, 9,225, 67, + 15,177, 11, 78,165,228, 90,213,227,159,208,219, 85, 11,111,191,236, 27,153,206, + 24, 63, 8,147, 31,131,178, 82, 72, 9,168, 62, 4, 41,136, 41, 4, 68, 6,141, +224, 43,164, 30,201,249,112,119, 44, 92, 59, 29,110, 32, 85,181,245,144,234,215, + 40, 60,211,239,251,252, 98, 70, 57, 95, 42,240,196,114, 2, 2,153, 68, 32, 17, + 9, 20, 80, 16, 72, 24,152, 28,144,168, 84, 34, 74,101,146,145, 48,106, 72, 77, + 38,150,143,115, 90,202,158, 77, 80,168, 66,159,220, 12,141,222, 87,114, 40,133, + 10,200, 2,180, 38, 99,106, 1, 87,213,210, 64,169,229,249,222,238,195,181, 44, + 39,103,158,250,210, 29,158, 2, 5, 22,104,236,136,206,227, 65,113,105,124,153, +150,213, 46, 77,211, 9, 15, 8,136,238,168, 82, 32,198, 75,100, 66, 41, 44,207, +190, 88,198,206, 41,203, 42,229, 25,172, 46,118,110, 97,182,235, 23,181,139,163, +179,119,131,161, 88,118,198,129,165,122, 75,112,102,161,196,244, 94,111, 90, 2, +147, 91,109,160, 5, 99, 61, 29, 11, 20,214, 48,245, 12, 41,141, 30,173, 40,244, +242, 80,207, 42,158,244,169, 72, 32, 15, 39, 34,130,197,134,100,225, 84, 58, 25, + 3, 18,128,146, 72, 32,224,168,112, 17,185, 78,104,244,188,239,117,146,185,193, +178,255,117,244,233, 82, 14,229,131, 57, 63,123,250, 98, 80,117, 34, 89,165, 88, + 6, 16, 72,213,148,115,128,158, 80,206,188,159, 39,170, 2,128,226,115,169, 86, +106,201, 44,120, 36, 30, 3,252,143, 1,232, 19,161, 74,161, 19,177,163,106, 4, + 35,197, 9,165, 64,160,168, 35,138, 40,235, 44, 15,116,238,168,165,131,226,192, +111,140,164, 73,142, 6,203,186, 32, 75,114, 44,174,120, 65, 81,114, 50,166,202, +244, 68,104,146, 28, 7,146, 90,244,113, 84,128, 62,209,113, 28, 93, 40, 66, 45, + 57, 23, 1, 28, 69, 45,214, 26, 12,166, 98,170,234, 0,242,189, 12, 82,222,220, +144,149,201,160,156,148, 92,190,118, 37,132,211,173,140,234, 16,131, 32,223,188, +193, 92,182, 1,221,163,228, 34, 67,210,138, 12, 2,252,214,136,167,137,204, 99, +131, 28,198,253,229,162,105,221,211,100, 89, 91,108,197, 68,150,213,118,185,157, + 54,110, 18, 98,172,217,143,153, 70,151,159,218, 33, 4,196,182,251,109,249,132, + 78,230,194, 87,101,248,161, 63, 17, 58,113, 34, 12, 38,115,169,231,113, 34, 15, +191, 51,133,161,208,119,243,121, 70,152, 55, 16, 84, 38, 20, 25, 95,203,121, 36, + 66,210,103,218,103,157, 76, 42,244, 28,184,112, 92,108,104, 72, 25, 27, 24, 11, + 28, 23, 48, 23, 16,180, 57,152,184,134, 51,179,108,160,196,178, 13, 12, 16, 42, +108, 92,164, 12, 24,210,187,150,240,161,109, 90, 39,161,243,217, 66, 14,141, 40, +158,233, 83, 40, 46, 77,122,215,187, 44,221,123,209, 2, 70,194, 4, 95, 70,219, + 91,174,114, 96, 92,144, 34, 64,120,128,209,128,144,113,177,224,105,190,108,255, +210, 1, 3, 24,240,182, 22, 34, 17,191,212,131, 7,173,192, 57, 91,102,146,231, +220,167,190,239,122,238,204,155,201,211,198,114,179, 55,255,160,156,200,160,205, + 31,138, 50,112, 28,186,203,177,229,120,102,145, 31,116,111,185, 81,203,114,123, +232,234,231, 23,170,217,175, 51, 14,223,148,208,250,143,204, 23,197,110, 95, 92, +139,134,158,185, 66,114, 95,150, 97,249, 68,100,238,173,150,119,248,203, 82,246, +133, 39,137,216,168, 52, 85,234,171, 20, 58, 54, 35,194,128, 68, 0, 5,179, 80, + 0, 12, 14, 16, 79, 70,227, 57,101,153, 62, 84, 2, 14,141, 20,132, 73, 49, 73, + 58,200, 2, 28,203, 16, 4, 20, 32,128, 24, 48, 2, 0, 0, 25, 0,152, 0,234, + 4,210,140,140, 13,102,155,136,211,133, 4,185,152, 90, 28, 69,116, 97, 47, 91, +104, 58, 92, 42,227,237,252,152, 22,107,170,172, 32,234, 30, 74, 12,217, 26, 76, +111, 76, 34, 86, 44, 68, 44, 77, 10,132,220,154, 83, 0, 86,140, 45,121,244,208, +112,130, 29,125,164,218,106, 40, 41,205,244,154, 4, 45,135, 92, 83, 7,207, 29, +111,149, 87, 38, 78,194,189,210,107, 28, 9, 24,206,116,142, 86, 78,209,136,202, +218,123,221,106, 51,197, 23,240,112,249,205,247,138, 59, 93, 83,147,101,138, 74, + 30,111, 92,234, 53,154,103, 91,255, 25, 55,246,136, 11,119,164,196,130,203,191, + 44,220,215,202,187,212,161,166,128, 80,188,192,192,152, 18,140,160,111,247, 51, + 74, 90, 42, 30,185, 98,174, 11,182,206, 14, 78,140, 23,101, 35,105, 53,253, 53, +180, 82,105,216, 65,157, 60,249,201,234,116,121, 14,122, 30, 82,235,146,112, 71, +125,184, 34,219, 73, 53,128,225,147, 18, 7,141,231,166, 96,163,217,187, 57, 45, +139, 51,181,166,230,102,230,132, 99,180, 72,183,212,175,123, 77, 54, 6,130,207, +251,170, 1,196, 68, 35,200,220,122,211,168, 68,196,104,238, 32, 2,110,133,219, +243, 70,207,182,132,117,217, 77,104,227,185,172,255, 16,109, 71,204,133,167, 93, +111, 34, 56, 3, 70, 38,129,238,238, 9, 40,142,142,229,104, 58,110, 45, 19,242, + 16,169,108,213,249,224,140,139, 8,165, 98,182, 77, 48,213,238,139,128, 38,244, +133, 32,216,239,109, 2, 3,133,136,212, 87,116, 18, 43,193, 17,209,131,187, 20, +145,173, 23, 98,203, 39,181,161,149,165,251,139, 25, 35, 30,156,231, 59, 10,247, +112, 73,149,225,221, 50, 17,111,197,122,254,243, 58,218, 3,118, 42,100,188, 46, +250,113,215, 30, 87, 30,141,156, 77, 12, 30, 75,222,166,198, 20, 5,231,150,111, +159, 97, 69,146,115, 2, 55,231,246,146, 25, 0,244,210,186,224,118,131, 67,221, + 23,114,124,139,228,204,118,190, 89,195, 56,103,211, 95,122, 16, 75,191,128, 71, + 41,225, 49, 69,182,149, 16,159, 88, 42, 46,122,146,112,246,232, 75,112, 77,242, +103,162,119, 5,226, 30, 24,102,160, 26,176, 45,200,165,207,183,142, 93, 54, 9, + 79,191, 14, 61,247,184,179,122, 4, 82,226, 11, 25,166,145,138,254,222, 99, 62, + 73,142,120,116,208, 94,123,248, 67,117, 52, 36,147,195,189, 9,114, 54,133,195, + 36, 13, 25,120,224, 81,101,247,142, 75,179, 9,138, 27, 18, 10,205,230,200, 73, + 85,125, 68, 38,210, 35, 25, 93, 97, 36,231, 60,234,252, 98,187,214,123, 52, 22, +130, 98,168,100, 89,128,128,202,149,112,225, 24, 58, 94,253, 37, 96, 76, 21, 8, +112,218,178,214, 62,183, 65,185, 97,121, 61, 82, 53,120,153, 66,137, 89,120, 42, + 62,188, 46,102,134, 85, 23,128,137, 94, 50, 43,201,147,177,106, 27, 69,180,236, + 44,111, 82,157,221,180, 99,165, 64,193, 44, 70, 65, 1,126, 45, 96,175,159,208, +171,167, 87, 84, 1,187, 68,108, 13,253, 42, 80,194,156, 85,203, 9,155, 1, 52, +227,203, 73,108,172,208, 85,248, 69,200,188, 53,106,161, 47, 60,184,102, 69, 36, + 68, 50, 63,101,203,150,210,164, 88,237, 18,217,192,120, 81,237,117,195,191,217, +145, 82, 45,226,174,110,198, 28, 57,128, 61,195,188,139, 37, 88,217,198,249,165, +231, 94, 10,234,237,124,224,106, 34, 99, 57,113, 1, 10,247,179,217, 70, 11,237, + 81,162, 59, 41,222,235,203,100, 4, 55,161,194, 15,169,234, 6,178, 95,138,234, +254, 54,194,147,215,243,162,150, 97,197, 45,224,236, 18,168, 93,133, 26,217,237, + 82,183,101,216,115, 47,243,145,240, 50,175, 50,138,107,184, 47, 23,237, 7,165, + 74,127, 77,165,123,118,200,251,149,214, 64,180, 75,194, 42,167,233,222,104, 25, +116, 32,190,137, 28,169, 80,237, 52, 3,123,248,128,244, 75,199,184,105, 98,125, + 80, 84, 20,116,101,236, 52, 3,137,228, 24, 31, 77, 13,122, 27,154, 45,167, 19, + 61,161,180, 51,147,220,126,215,177,239,128, 64, 91,201,224,208,133,228, 10, 46, +172,124, 12,176,123, 75,226, 13,209, 24,139, 52,178, 48,106, 9, 28, 16, 17, 12, +183, 26,211,152, 84,139, 52, 84,150, 80, 87, 6, 49, 47,204, 29, 63,172, 39,154, +163,112, 52, 49,154,180, 25, 86, 36, 64,197,151,143,199,151,145, 84,103,206,233, +119,114, 65,219,157,215,242, 67,245,113, 71, 32,207,172,170,136,128, 2,215, 41, + 73, 47,250,156, 72,102,209, 37,109,164, 38,123, 66,103, 0, 62, 38, 34,139, 27, + 0,141,154,162, 22,112,126,238,166,244,150,152,138,161,209,134, 15, 76, 35,193, +135,163, 17,140, 79,208,168,195, 39,214,212, 17, 53, 46, 7,242, 34,224, 53, 23, +176,209, 4,129, 17,166,216, 92, 21, 70,128, 72,246,163,214,119,230,209,230,132, +102,236,187, 2,252,213,134,101,126, 4, 65,228,227,146,213,191, 25,164,177,188, +124, 66,180,144,182,155,130,180,187,175, 72,249,254,210,148, 97, 5, 53,244,113, + 93, 67, 12,210,178,252, 6,146, 84,143,104, 8,152,192,187, 74,191,202,250,223, +138, 24, 6,254,112,145, 52,144,204,146,217, 98,231,213,131,186,144,200, 22, 77, +251,196, 21,194, 40,230,143,134,194, 58,207,115,118,171,246, 2, 80, 30,249, 7, +107, 84, 78, 4,145,184,169,162, 75, 86,218, 74,119, 62,128,195,212,251, 94,223, +235,202, 53, 18, 12,149,130, 34, 44, 45,119, 1, 91,154, 15,221, 77, 57,230, 54, +203, 15,182, 92,191,169,244,248, 49, 87,216,183, 47,213,255,119, 77, 20,114, 70, +134,230,187,127, 42,251,201,202,116,226,102,127, 80,210, 34,182, 90,226,158,195, +185,161,125,226,145, 52,206,227,205,177,207, 34, 59,151,190, 69,194,230, 15, 1, +182,121,183, 80,210,175,226,143, 84,132,193, 62, 61,194,204,237, 59,176,163, 36, +140, 87,139, 11, 81,205,224, 34, 23,200,230, 16,243,167,230,158, 34,102,255,191, +122, 23, 46,201, 2, 96,132,223,187,135,136, 35,194,211,150, 37, 3,223,218,198, +225, 19,216,118, 65,100, 17,108, 93, 65,159, 47,130,206, 90, 26,228,238, 78,114, +166, 32,142, 89, 18,163, 69,230, 13,212,235,204, 38,226, 98,237,167, 53,189, 57, +233, 18,103, 48, 77, 30,245, 4,183,175, 86,233, 83,200, 68, 80, 67, 46,201,185, +113,194, 76, 24,152,106, 22,142, 55, 53, 94,120,151, 5,249, 46,249,170,231,209, + 43,186, 37,222,127,132,254, 65,162,252,189,200, 38, 75,214,171,203, 79,125, 14, + 65,243, 2, 6, 93, 74,152, 3, 14,240,184, 42, 57, 11,126, 17,231,104,162, 52, + 15,220, 34,211,237,105, 3, 4, 89, 87,132,188, 10, 57, 98,189, 95,196,113, 87, +205,193,201,185, 6, 15,225,194,127,129,158, 74,139,184, 15, 89, 75, 32,138, 67, +176, 5,188, 82,229,135,167, 29,159, 80,105, 90, 11,253, 90,143,178,207,134, 55, + 17, 29,149,199,197,255,251, 30, 20, 81,173,118,155, 21,117,252,110,153,198,124, +203, 66, 21, 49, 12,134, 8,247, 41, 79,107,120,252, 80,124,249,226, 88,164, 25, +222, 5, 31,182,112, 0,186, 33, 36,148, 51,166, 55,212, 9,174,106,211,178,222, + 1,161, 31, 5,113, 19,232, 58,249,113,124,142,191, 60,248, 60,160,124,123,145, +177,156, 19, 67,102,189, 58, 61, 92, 83,206, 48, 81,231,241,146, 74, 34,248,111, + 31,106,110, 36,196, 92, 56,148,114,246, 81, 42,165,105,221,107,217, 4,142,174, + 88,204, 58,148,170,137, 34, 12,108, 40,151, 5,125,232,173, 60, 71,212,164,102, +164, 20,228,242,231,248,223,144,130,187, 2,161,224,181,216,171, 70,202,132,213, + 80, 80,208, 71,170,228,214,138,146, 4,172, 84,116,205, 63, 99, 96, 13, 89, 90, +182, 12, 89, 22, 30,140,150, 15,167, 96,215, 37, 45,151, 8,120, 82, 75,193,157, + 6, 88,230, 50,150,178,107,160, 39, 31,179,146,149, 62,159, 71,117, 38, 99,188, +178,162,131,191,213,124,106,115, 6, 55,144, 93,112,187, 39,113, 70,128,160,134, +211, 6, 30,192, 82, 49,116,109, 97, 8,121, 8,118,179,251, 97, 58,149,100,169, + 18,172, 85,225, 4,240,214,109,206, 37,202, 62, 2,171,217, 61,177,169,144, 67, +229,210,244, 30, 86, 56,161,251,164, 79, 50, 52, 80,206, 33,164,139, 14, 90,135, +242, 14,103,151, 80, 70, 9, 79, 9, 34, 6,210,178,189, 9, 85, 17, 82, 95, 70, + 47,240, 25,219,157, 26,134,125,205,239,108,252, 22,184,154,220, 24,100,218,146, +250,137, 8, 13, 20,137, 68,159, 96,105, 77,204,180, 41,236, 44, 57, 9,108, 58, +113, 1, 90, 0, 10,143, 18, 32, 65, 79,203, 40,120, 30, 18, 52,187,222, 99,167, +211, 16, 6,235,212, 54,153,158, 39,152, 88,183, 79,224,222,140,220,240, 28, 89, +116,112, 25,157,151, 43, 76,118, 65,125, 79, 61,135,129,196,103,249, 90,124,188, + 44,240, 80,119, 90, 93, 81, 58,139, 27,253,197, 86,248,170,208,127, 37,168,181, +184,142,235, 98, 86, 95, 13,217,151,111,226, 48,175, 76,154,160,224,176,106, 17, +190, 17,214,182,205, 38,191,223,178,171,199,171, 37,167, 68,232, 66,159, 82,108, + 32,210, 31,152,143,100,208, 89,165,232, 19, 67,220,129,180, 35, 8, 18,191,242, + 55, 78,176,136, 63,241, 42, 73,203,185,162, 56, 45,160, 66,124,169,192, 53,187, +241, 51, 36,204,247,145, 88,194,127,158, 81, 67,195, 31, 45,103,205,254,204,163, +115, 61,245,208,162,145, 38,238,201,208,243,165, 0, 5,187,226,135,250,126,244, + 73, 11,200,122, 21, 52, 30,162, 74, 48,114, 61,221,252,116,175,113,185,148, 17, +130,223,104,239,200, 74, 50, 86, 96, 1,107, 10,140,158,209,108,139,113, 37, 36, +196,200,134,105,134, 68, 65,159, 55, 29,119,249, 4,183, 64, 59,186, 0,196, 51, + 14, 39,112,175,106,213, 20,116,143, 49, 0, 3, 46, 24, 22,207,130, 80,109, 93, +174,142, 10,137, 96,234,254, 99, 19, 22, 2, 3, 60,251,152,131,217, 32, 84,172, +210, 53,244,142, 39, 6,244, 83,149,205,232,166, 87,140,110,168,149, 36,181,215, + 75, 40,152, 87, 12,126,172, 44,222,148, 24,188, 45, 10,157, 83,161,159,105, 18, +173,233, 89, 3,142, 83, 27, 64, 95, 57, 6,153, 10, 48,197,236, 3, 23, 34, 66, + 14,232,105, 84, 82, 99,146, 26,101,128, 78, 61,136,209,173,161, 30,158,234,160, + 32,198,200,108,223,171, 28, 59, 42,186,164,234, 48, 44,121,128, 20,216,161,179, +155,153,249,188,125, 10,127,128,174, 4, 1,232,146,171,120, 36,234,206, 61, 14, +110, 66, 41, 89,188,206, 26, 68,114, 98, 60, 83, 81,176,181, 9,205, 0,219,238, +134,233, 41, 34,219,189,242,221,185,244,173,173,103,213,131, 12,100,174,108,210, + 43, 18, 57,253, 39,234,226, 99, 76, 46, 10,222,206, 16,154,208,177, 72,132,240, + 44,226,194,101, 51,247,226,118,208,204,194, 64, 95, 32,105, 51,157,213, 33,131, + 34,198,155, 25, 54, 18,175, 75, 96, 73,122,134,247,144,233, 63, 74,171,210,155, +214, 18,199,110,114,122,123,133, 12,147,114,110, 2,122, 43, 79,254,212,136,221, +139, 67,230, 77,154,133, 83, 86,101,245, 24,108, 66,203,214,192, 89,125, 83,200, +138,250,155,124,102,143,162, 58,241, 98, 19,196,119, 96,161, 37, 34,140,181, 95, + 93,104, 88,171, 97,171, 13,172, 73,166,231,241,117,188, 57,119, 5,177,124, 65, +211, 36, 67,162, 87,183,192,190,254,133,156,198,225,212,117,226,203,141, 11, 91, +148,166, 52,251, 43, 33,223, 18,186,223, 3,142,207, 1, 86,238,142,157,101,244, +119,149, 95,109,210, 85, 85, 40, 54,200, 21,196,213, 67,220,157, 93,172,100, 61, +221, 13, 6,101,118,125, 49, 70, 67,165,184,243, 17, 52, 33, 74,182,103, 57,197, + 73,150,245,224,115, 81,208, 77, 51,254, 26, 2,170,120, 67, 13, 56, 33,102,167, + 79,128,133,121,177, 10, 16,205,108, 60,203,120,130,161, 26,176,121, 45, 42,166, + 72,134,142,117, 48, 40,186,240,229,252,154,200,121, 47, 95, 27, 70,240,143, 52, +176,124,237,179, 5,172,224,135, 47,160, 80,124, 69,136, 0,204, 92,205,143,159, + 75,179,249,107,249, 41,160,222,128, 94,212,242,112,135,210, 93,221,127,210,185, + 0,104, 96,180,126, 45, 90,108, 17,196,239,219, 21,119,129,239, 63,183,244, 19, +116, 70, 22,106, 86,245, 45,127, 53, 4,140, 79,158,170, 55,219,128,187,231,103, +230, 28, 84, 5, 38, 7,227,195,201, 0, 63, 12, 81,152,232, 0, 19,246, 81, 44, +205, 16,212, 4, 9, 55,151, 13, 64, 53, 97,147,215,153,194,144,132, 59,183,193, +131,116,147,164, 44, 84,237,150,175, 7, 51,199,171,200, 9,118, 18, 38,122, 63, +132, 78,138,156,192, 8,219,189,176,129,100,172, 12,110, 10,229,240, 35,112,213, +225,165, 39, 12,217,210,215,106, 93,149,144,222, 76, 1,191, 5, 21,180,103,242, +126, 50,139, 3,163,182,228,226,250,210,186,158, 11,129, 17, 59,164, 86,232,161, + 83, 76,143,248, 99,220,239,173, 74, 88, 56, 70,202, 15, 74, 0, 18, 36, 84, 90, +195,156,148, 58,126, 28, 11, 85,107, 86,221, 83, 59,215,135, 39, 86,239, 21, 89, + 69, 2,170,202,167, 65,224,185,173, 60, 33, 31,105, 77, 76,118, 31, 65,170,119, +159,231, 41,206,250,215,116,226,120,233, 99,114,235,221,219, 83,253, 73, 47, 14, + 24,199, 3, 56,231,193,218,142, 16,176,206,208, 43, 34,203, 54,255, 6,212,208, +244,235, 74,103, 33, 70,228,166, 61,137,119, 5,198, 92,146, 60, 97,131,169,100, + 95,142,219, 55, 96, 65,231,229, 23, 93,215, 4, 72,210, 93,153, 22, 8,200, 52, + 69,138,186,254,223,181, 92, 17, 59,164, 92, 63,174,170, 1,125,123, 49,226, 82, + 94,158,246,155,194, 68,156, 20,161,221,176,194, 53,249,179, 5, 38,137, 35,174, +165, 82,178,122, 97,239,193,155,188,178, 30,253,101,187,181,136,186, 53, 0,111, +247, 96,233,247,165,156,131,101, 36,154,225,209,126,125,169, 47, 43, 59,204,230, +155,155,100,149, 67,167,140, 53,103,158,237,183,166, 75, 34,157,142,173, 53,137, + 53, 75,250,172,129,202, 6,201,236,240,149,122,192,238,142, 5, 1, 72,225,245, +135, 30, 53,235,125,172,122, 21,171, 89, 73, 27, 33,157,207,118,202,128,238,143, +193, 61,174,191,207,239,157,156,115, 89,216, 95, 5,207, 84,194,165, 52, 81,174, + 18,185,203,180, 36,223, 7, 1, 13,108,190,199,209, 47,129,213, 16, 58,169,234, + 87,210,104,115,117,211,218,172, 19,249,134,122,180,125, 94,125, 21,219, 89,199, +162,152,144, 50,218,199, 58,140,241, 8,254, 11,173, 6, 11,138, 42,104,220,107, + 85, 3,121,192,143,168,199, 50,177,223,161,133,239,125, 7,177,218,116,160, 9, +112,243,242, 9,242, 59, 36, 80,162,186, 60, 5,182,226, 21, 72,136, 79, 54, 68, +156, 64, 95,165,231,165, 2, 8,185,204,196, 52,179,186,199, 34, 49, 15, 87,138, + 45,140,195, 34,113,215,177, 31,116, 60, 41, 29,240,210, 15, 49,151, 92, 69,206, + 92,152, 18, 24, 85,130,168,225, 50,103, 86, 44,102,234,117, 98,229,101, 13,241, +178,129,247, 9,119,132,231,128,210,160, 21, 35, 20,240,191, 52,134,130,182, 11, + 67,127,124, 33, 96, 93,200,172, 22,118,221,105, 46,225,255,139,176,145,152,126, + 65, 39,114,214, 41, 84,167,146,133, 65,103,231,197,137, 59, 42,195,169, 63, 60, +149,195,200, 44,249, 71,149, 78,174, 22,207,174, 74,176,183,163,162,189, 10, 15, + 59,168,208, 64, 54,117, 75, 41,190, 61,216,130,178, 83, 4,177,161,163,214, 83, + 5,119, 2,152,201, 14,170,148, 22,172, 98,191,187,159, 28,207,149, 21, 60, 41, +160,170, 57, 50,227, 87, 4,194, 22,164,208, 75,111,222, 20,229,225, 42,199,218, +198,186,186, 36, 94, 11, 38, 90,231,197,247, 2, 14,126,189, 95,205, 21, 50,132, +168,111,129, 57,109,185,175, 95,100, 41,104, 70,171, 14, 0,164,189, 26, 54,213, + 21,156,144, 61, 1,242,253, 40, 56, 96,141, 65,177,128, 25,244, 24,213, 40,235, +163,216,120,179, 28, 5, 2, 77,212,212,159, 77, 98, 72, 44,116, 36,208, 26, 99, +130, 42,127, 87, 55, 9, 60,134,229, 42, 13,236,118, 31,145, 76,217,176, 99,233, + 95, 35, 89,245, 59,136,244, 37,237,160,226, 54, 67,101, 77,151, 33,111,105, 78, +173, 5,155,139,101, 14,168, 46,253, 58, 6,100, 39, 75,172,145, 59,168,157,196, + 65,129,230,149, 96, 47,173, 59, 99,131, 55,255,227,240,127,128, 1,143,195, 90, +198,199,212,197,105,108,252,243,147,214,192,227,109,216, 96,214,179,191,228,149, +137,129,127,157,255, 79, 52,213,119, 14, 85,108, 40, 95, 97, 27,108, 82, 6, 92, +137,138, 53, 11,112,140,103, 39,226, 79,197, 25,122,148,184, 92, 88, 0,206, 42, +252, 29, 86, 29, 58,145,255, 22,124,183, 71, 20, 15,235,193, 10,128,118, 81, 37, + 59, 63,142, 1, 71, 43, 46, 52,140,162, 3,105,143,164, 65, 48,114,248,250,166, + 6,109, 15,249,154,183, 45, 92, 30,116,198,199,175, 41,222,116, 7, 8,228, 25, +221,228, 26,165,153,160,158, 27, 50,235,176,161, 42,161,166,107,154, 67,204,200, + 96,197,210,107, 92, 14,179,251, 66,210,206,186,133, 94,225, 38, 54, 36, 33,222, +240,132,213,193, 36, 24, 15,152, 80,139,110,181, 99,133, 49,249,150,204,220,121, + 86,233, 73,124,196,152,184,220,248, 76, 13, 12, 0, 85,233,237, 80, 36, 74, 4, +227,188, 66,135, 75, 59, 65, 93,239,167,104,228,185, 53,160, 22, 32,112, 14,146, +228, 12,232,152,191,172, 57,232,242, 66, 62,190,157,228,189, 43, 50, 71,125,202, + 41, 68, 66,137,135, 2,208,223,206,202, 69, 31, 31,193,170,150, 25,129,103,154, + 4, 97,243,242,189,103, 22,243,189,133,144,108, 29,224, 32, 69,131,103, 64, 16, + 9,168, 29,242, 54,124,222, 62, 34,253, 17,116,200,130,188,137,103,132,186, 98, + 19, 86,212, 60,121,165, 81, 87,192,164,219, 88,206, 57,213,227, 42,120, 18, 99, + 16,116, 79,132, 90,181, 81,221, 41,144,118,190,141,110, 81,184, 30, 29,143,226, + 91, 52,130,151, 1, 15,169,182,109, 59,239,181,138, 8, 70,182,139, 2, 99,142, + 54, 21, 65,131,133,206,120,175,229, 23,130,183,159,163,173, 37, 27, 35,232,177, +219,124,232,192,171,116,232,226, 79, 34,216, 87, 48,178,137, 11,193, 75, 32,165, +188,205,207,106, 87,230,248, 35, 5, 33,100, 1,122, 66, 7,111,130, 35,150,207, +177,162,250,132,122,174,207,211,192, 35, 51, 40,192,115, 57,194,150,186,113, 8, + 74,244,112, 35, 43, 15, 59,195, 99,112, 55,225, 23, 14, 10, 37, 82, 79,116,117, +176,116,154,233,222,233, 11,172, 58,186,185,255,138, 43, 45, 12, 87,178,168, 34, + 50,152,138,130, 31,103, 41, 69,216, 88, 93,184, 70,219, 10,191, 39, 73, 92,227, +135, 97, 25,153,167,190, 1,175,123,155, 59,202,129,168,245, 22,155,204, 20,195, + 47,175, 83, 27,234,111,189,128, 25, 58,156, 34,130,224, 43,207,105,150, 37, 64, + 25,252,155, 58, 5,168, 6,191,166, 78, 1,202,193,183,169, 83, 0, 68,133, 23, + 98,244, 4,172,106,229,195, 39, 81, 45, 93,151,125,199, 30,139,218, 69, 76, 7, + 76,168,126,128,106, 2,242,156,173, 21,181, 20, 54,150,122, 61,143,242, 29,158, + 28, 53, 51, 32,213,127,137,241,250,163, 19,228,118,133,175,173,251, 61,190,102, + 9, 21,222, 75, 68,225, 36,205,120, 33,251,223,251,145, 58,120,160, 0, 62,137, + 31,151, 37, 39,249,244, 29,166,225, 7, 22, 85, 92, 47, 58, 5, 85, 2, 64,172, + 80,234,130,102, 68,237, 31,190,239,220,230,103,139, 55,250,254,183,125, 84,122, +161, 71,131,251,173,147,219,167, 69,197,121,225,150,169,139, 5,238,158,192, 46, +198,216, 56, 52, 91,120, 10,180,166, 51, 0, 90,192, 62,151,165, 19,178,175,188, +179, 95, 9, 59,228, 50, 69, 68,121,236, 16,101,231, 57,127,151,151, 25,233,246, +212,100, 84,216,220,214,246,218, 39, 97, 52, 80,255,149,138,110,218,127, 0,104, + 52,173,172,137, 8,248, 35,208, 56, 63,201,214,120, 86,183, 59,113, 30, 1,110, +158, 72,115,246, 41, 67,124, 56,135,143, 13, 65, 10, 19,147, 53,217,175, 6,184, + 44,150,202,229, 10, 20,149,247, 75, 4, 93,114, 68,216, 24,195,144,229,226,121, +155,121,212, 8, 79,148,149,243,232, 51, 22,204, 82,145,147,108, 65, 4, 71, 77, + 37,158,172,224,122,126,199,139, 36, 7,211,207, 46,120,108, 70,148,223,153,138, +163, 90, 49, 54,118,117,166, 57, 83, 77,192,221, 48,202,169,208,125,210,237,124, +228, 42,216,207, 16,176, 42, 47, 58, 2, 75,160,209, 82,123,202,170,236, 20, 57, + 14,154,216,157,192, 55,163,179,131,187,234,224,214,218, 33, 32,187,101, 53,253, +170,138,241, 47,135,184,125, 21, 60, 81,182,123,176,130, 51, 1,188,229, 60, 8, +197, 45,111, 63, 17, 78,198,189, 50,179,246,114,110, 43,237,139, 46,150,171,163, + 40, 42,238,246, 6,107, 16,222, 74,218, 88,206, 8,183,115,179,248, 36,216,100, +202, 49,122,195, 86,182,164, 21,252, 74, 34,195, 98,192, 45, 95, 86,215,162, 17, + 98, 97,152, 37,187,190, 11, 54,170, 59,153,199,174, 1,134,199,236,180,255, 80, + 54,178,116,165, 10,234,199,135,243,143, 93,173,139, 61,152,139,238, 69, 25, 20, + 75,144,138,176,178, 41,123, 54, 92, 32, 32,113, 49, 59,177, 97,222, 58, 80,128, +124,210, 93,116,224, 78, 29,177, 5, 11,102, 60, 91,158, 10, 6,104, 78,123, 13, +196, 84,121,184,236, 8,214,209, 76, 31,206,141, 66, 34,150,196,142,116, 30, 82, +130,203, 55,251,143,188, 69,146, 56,197, 99,169,238,190,192,253,205,206,152,117, + 84, 85,217,123,158,119,184,100,100, 2, 9, 17,176,136, 81,132,177, 46,226,161, +114,207,113,251, 37,145, 36,140,121, 76,188, 7,157,158,101,146,169,154, 63,120, + 29, 53,127,238, 20,117,105, 26,106,125, 48,122, 49,164,223, 44,255, 34,208, 40, +193,184, 22,188, 76, 64,113,229, 96,221,233,203, 73, 28,249,156, 77,254, 93,113, +217, 58, 69,188,201,116, 30,126,150, 59,255,250,194,240,226, 92,163, 68,142,156, +243,245,122,179, 11,186, 85,160, 14,248, 91, 76,224,112,212,114,213,122, 9, 64, +210, 88,225, 36, 7,178,113,120, 65,172,223, 25, 10, 97,130,192, 11,240, 26,113, + 25,175, 62, 53,107, 39,203, 4,247,252,173, 24,117, 26,202, 30, 28,246,181, 30, +219,133,181,186, 66,200,120,195,107, 68,182,196,205, 17,209, 27, 52, 96,129, 52, + 8, 58,145,101, 36, 62,144, 55,228, 98, 8, 0, 70, 69,150,157,236, 28,100,121, + 21,203, 41,140,111,253, 66,116, 81, 3,100,160, 43,247, 58,139, 87,158, 56, 13, +132, 6,156,208, 91,212, 82, 88,192, 83,213,154, 80, 59,232, 20,101,157,213,231, + 91, 7,126, 37,210,247,255, 77, 15, 9, 77,187,196,143,125,232,227,137,198,183, +206,153,177,210,128, 89,116,226,134,102,246, 14,174,243, 7, 12, 25,186,150, 32, +102, 2,195, 57, 41, 63, 76, 58, 9,183,144,134,152, 4,105,129,157,217,192, 60, + 95, 57,222,208,232, 64,237, 87,122,123,130, 18,179,240, 8, 14,153,240,132,193, +213, 1,240, 27, 27, 58, 99,188,104,100,214, 32,146,202, 40,253,191,115, 80, 60, +215, 54, 57,126,116,229,207, 95, 57, 81, 10,104,117, 48, 73,133,227,195,149, 82, +190,159, 81,178,192, 10, 3, 22,224,102, 40, 38,233,253,193, 22, 65,178,195,107, +242, 57, 68,113,195,164, 67,178, 3,223,117, 77,243, 5,210,125,203, 95,250, 27, +150, 81,235, 55, 2, 92,199,135,198,105,186, 70, 86,246, 97,166, 34, 0, 1,158, +229,123,194,217, 26, 55, 1,188,137,122,167,124,235,159, 58,133, 84, 48, 18, 75, + 14,222, 82, 75,231, 73,141, 30,254,129,113,100,108, 74,250, 12,101,144, 88, 5, +127,149, 43,125,131,225,135, 33, 83,240, 29,211, 82,195,255,219, 21, 17, 41, 41, +138,162, 18,140,210, 63,244,188, 73,105, 15,253,146, 11, 1,188,201,225,229,150, + 84, 39,109,147,114,165,196, 1, 92,156, 17,212, 85, 54,127,182, 2,111,107, 29, +123,121,185, 73,108,205, 30, 45,233, 69,108,113, 50,202,120,105,249,131,236, 20, + 7, 11,202,192, 92,129,157,187,169,242,202, 47,131,139,247,164, 25, 93, 30, 5, +103,162, 50, 87,189,177,162,234, 0,172, 95,175, 25,238,158,201,159, 44,214,132, +101,156,143,220,175,136, 65, 58,220,144,175, 22,147, 92, 47,116,198,131,198,108, + 70, 94, 40,255, 31,130,181,234,190, 15,240,182,163, 98, 97,114,130, 69,167, 1, +224,197, 79,165,192,177,120,111, 79, 44,100,218, 84, 26, 13, 36,123, 54, 70,180, +163,187, 94,250, 75,121,210, 29,227, 96, 41,224,195,247,205, 50,200, 6, 49,112, +251, 4,141,166,244, 15, 99,174,152,241,195,238,190, 4, 29,167, 82, 85, 30, 92, +234, 13,139, 50, 43,211, 98, 24,124, 28,163, 18, 60, 68, 58,102,130,145,244, 4, +191, 84,125,102,250, 1, 4, 78, 30, 86,163,209,108,107, 27,189,249, 19, 74,107, +250,119, 27, 2, 93,219,130, 88, 49,233, 36,223,126,148, 26,170, 90,188, 85,120, + 66,100, 12, 55, 27, 95,185,234,183, 92,133,224,169,177,248, 73,103,207, 4,166, +152, 64, 12, 71,168,141,161,163, 4,192, 9, 0,126,178, 44,239,141,125,190, 6, +217,227,198, 50,229, 0,118,245,142,157,246,100, 58,231,160, 67,145,248, 84,108, +240, 84,105,185,134,198, 13, 83,125,158, 91,222,139,120,247,129,125,246, 22,177, +195,138,237,201, 33,239, 32, 60, 25,146, 4,223,150, 20,200, 44,224,110, 18,236, + 30,212, 27, 87,152, 81, 18,120,184,239, 35,176,126, 3,110,162, 57,178, 8,214, + 5,235, 17,156, 13,148, 64,200, 77,147,206,207, 76,194, 3,222,126,119, 48,249, +194,185,238, 64, 93, 89, 75,213,133, 12, } ; -// ../Source/Template/GB_colscale_template.c: -uint8_t GB_JITpackage_79 [1052] = { - 40,181, 47,253, 96, 48, 13,149, 32, 0,134, 46,140, 39,208,210, 86, 7,212, 93, - 44,124,187, 19,202,159, 23, 94,234,202,204,165, 47,170,161,137,245,115, 64,190, -170,112, 85, 57,124,196,186,140, 82, 15, 13,176,188,130, 0,121, 0,128, 0, 88, -102, 32,137,101,224, 82,233,236,130,214, 29,115, 91, 98, 50,211,142,156, 74, 99, -218,151,132,168, 92,188,206, 64,108,143,219,184, 61,199, 57,227,144,158,207,233, -222, 12, 46,150, 75, 37,161,192,114,249,228,154,222,176,244,128,239, 3,238, 33, - 89,174, 36, 9,122,251, 56, 8, 77,102,225,221, 96, 26, 95,104, 63,157,101,233, - 35, 1,145, 55, 67,210, 39,164,149, 3,202,248,190,176,212,129, 15,143,229,223, -251,118,246,241, 71,113, 11,212, 49,157,225,180,164,206, 86, 79,120,225, 89, 47, - 75,179, 57, 1,129,164, 66, 64, 16,148,103,235, 0, 33, 83,249,140,105,189, 94, -115,111,212,115,115, 84, 44, 25, 42,212,155, 14,224, 50,159, 76,168,233, 15, 19, -214,171, 32, 52, 17, 20, 14,211, 65,158,234,243,113, 56,151, 44,149, 31, 93,255, -127,137, 68,228,182, 71,211,138, 15,229,115, 41,244,246,254, 25, 34,149, 68,239, -208, 41,188, 34,133,119, 3,142,222,206, 25,218,119,150,143,213,135,216,122, 85, - 62,106, 6, 79,245,189, 94, 31, 59,118,103,152,229,207, 9,223, 23,149,248,173, - 98, 73, 29,227, 60, 54, 46, 61, 87,250,237,146, 36, 72, 67,226,212,179, 20, 59, -187,240, 39, 19,142,176,111,150, 45, 82,137,254, 86,236,179,231,132, 23,218, 91, - 82, 61, 36,113,192,107,163,204,191,156,114, 97,198, 22,143, 48,204, 84, 0,206, - 17, 7,149,214,168,173,190,228,196,206,202,248, 74,108,132,201, 72,223,203,204, - 90, 67,141,103,107,222,196,135, 83,177,180,220,155, 74,136, 74,194, 83, 61, 88, - 32,206,177,142,152, 12,160, 61, 61, 32, 69, 81,212,123, 26,144,201, 4, 82,117, - 48, 64,150,203,178,204, 45, 67,197,125,225,214, 61, 95,242,102,220, 55, 18,201, -136,100,132, 34, 45,212,244,206, 68,245,225, 88, 84,210, 58, 9,175,112,107,171, - 12,142,103, 2, 68, 85, 21,214,139,224,124, 44, 23,177,113,158,206,173, 55,144, -247, 38, 18,197,233,154,202,227, 32,168,234,137, 68,162, 2,129, 54,177,157,214, - 90,164,253,102, 57,219,177, 64,213,102,244,150,185,233,206,106,208,108, 68, 88, -134,132, 78,235, 99,103,120,219,214,119,232, 53, 79,176,250,124, 35,149,216, 21, - 50,159, 30,101,130,105,152, 41,243, 13,141,133,103,248,209,173, 31,239, 26, 79, - 25,142, 73, 1, 1,133,204, 45, 95,152, 38, 5, 1,128,223,168,161, 61,170, 33, - 17, 73, 65, 74,146, 44,107, 80,132, 8,149,149,205, 1, 66,177, 48,145,225,140, - 97,196, 25,130, 68, 2, 17,201,136,130,148, 63, 59, 81, 0,213, 30, 41, 21,157, -242,248,153, 23, 74, 34, 59,173,233,174,124,155,100,210,130,233,217, 4,149,125, - 44, 86,226, 53,140, 97,210, 59, 14, 49,161, 19,106,171,246, 92, 74,242, 40, 25, -188, 72, 60,178,218,217,173,158, 47, 74, 32, 34, 25,196, 92,167,105,175,154, 66, -192,176, 10,137,164,111, 9, 31,102,142, 47,153,171,247,235,130, 75,123, 51,130, -176,145,201,215,248,107, 46,169,227,198,143,124,120,161,242,147,149, 47,150, 1, - 18,204, 84, 34,233,239, 46,164, 93,216, 18,243,187,173, 82,181,118, 67,244, 65, - 95,251,100, 1,195,101,108,107, 16, 85, 74, 95, 26,100, 76,232,134, 53, 97,181, -173,144, 89, 26, 52,176,133,124,167, 84, 30,230, 21,237,161,185, 84,144,249, 56, -196, 48,101,113, 74, 5, 50, 74, 37,245,162,161,128,127, 56,215, 15, 57,205,222, -128, 78, 41, 45,239, 56,162,148,162, 66, 13,190,112,144,152,212, 84,203,206, 0, -228, 18, 89, 37, 80,196, 85,130, 44,152,198,196, 85,117,242,236, 54,162, 72,177, -144, 59, 67, 31,255,155, 49,218, 20,231, 8,169, 53,207, 43,202,101,115,185,109, -156,129,100,189, 82, 79, 80,153, 72, 60,215, 41, 40,217,189,242,112, 46,221,129, - 19,148,149,102,226, 37,201,188,137,232, 34, 18,251,203,208,117, 50,172, 89, 28, -213,252,224, 14,113, 24, 76,177,239,144,145,167,224,166, 87, 39,119,224,137,107, -104,214,241, 43, 61, 0,104,127,171,114, 76,222, 83, 94,181,192, 7, 15, 8,128, - 41,251, 5, 46,118, 32,226,182,165,253,175,131,164,169, 65,159, 60,179, 38,217, -154, 32,217,224,118, 60, 8, 54,131, 59,197, 51, 68,161, 75,107,191, 63, 39,116, - 31,224,234, 10, 7, 60, 58,164,124, 65,129,227,188,105, 8,181, 21,129, 14, 8, - 60,208,219,247,209, 55,141, 97,118, 56, 21, 48,178, 27, 0, 72,156, 96,127,133, - 66,134,166,183,130,217, 3, 96,116,209, 41,245, 76,102,111, 21,219, 55, 77, 94, -101, 38, 49,102,187, 18,126, 25, 42,221,129, 39, +// ../Source/Shared/GB_monoid_shared_definitions.h: +uint8_t GB_JITpackage_57 [1355] = { + 40,181, 47,253, 96,173, 18, 13, 42, 0,230,187,177, 40,208,178,234, 1, 16,219, +136,157,133, 86,245, 41,107,222,152, 45,183, 50,195,200, 22,150,119,116,252, 27, + 76,173,188,203, 79,229,240, 34, 87, 51,224, 7,179, 4,163, 0,170, 0,163, 0, +185, 57,245, 9,124,122, 84,214, 23,104,155,127, 18,184, 64, 87,247,141,206,182, +182,119,226,134,163,108, 26, 95,122,135,219,183,220,218, 75,148,198,206,212,139, +141,125,126,199,222,174,161,200,164,112,224,155,140, 29,213,146,235,175,125,174, + 62,175, 3,199,213,229, 87, 14, 46, 42,204, 52,189,115, 29,123,166,113,222, 56, +159,105, 74,169,150, 22, 20, 34, 10, 7, 14, 9, 17,133,134,200,168, 37,252,157, + 88,245, 68,245,103,203,150,123, 77, 75, 25, 85,137,216,186,120, 37, 36,142,111, +236, 50,207,239,101, 16,238,107,181,198,246,202,200, 53,103,101, 75,182, 9, 87, +251,249,235,107, 62,225,244, 27, 55, 12,231,219,106, 57, 24, 33,209, 8, 8,208, + 1, 2, 66,181,181,199,158,227,236,188,150,207,217, 28, 33, 95, 52,217,192,202, +114,101,144,178, 72, 80, 25, 76,252,254,218, 44,189, 99,107, 75,159,141,105,154, + 52, 10, 32,159,196, 32,234, 56,219,145,227,196,219, 9, 72, 62,185,227,252,218, +150, 56,245, 61,150, 82,171,217,246,106,219,226, 89, 99,215,225,141,127,211, 84, +251, 89,122,211,111, 79,238, 49,133,226,116,195,179, 51, 71, 75,181, 11,234,194, +215, 57,158,235, 87,175,167, 87,206, 99,236,178, 48, 52, 40, 44, 76, 40, 48,219, + 84, 48,218,207,234, 2, 80,164, 97,118, 97, 96, 84,227,239, 4, 8,154,128, 25, +118,185, 52, 23,118, 81,172, 10, 86, 86,134,154,200, 96,117, 93,176,139,165,106, + 1,212,235,117,142,128,134,160,201,233,107,248,183,146,244, 69, 93, 85,148,199, +107,246, 58,206, 74,136, 20, 53,182,169,255,213,239,236,156,182,185,171,215,125, +104,215, 65,184, 71, 99,199, 78,136,158,212, 78,231, 60,140,227, 67,127, 93, 67, +162,134,232,238,134, 60, 32, 72,110, 11,131,161,145,190,174, 32,234,235,216,131, + 48, 78, 79,206,183, 29,168, 62,173, 15, 97, 67,232,242, 59, 62, 33,108,249, 57, +102, 92,177,176,140, 69,145,177,178, 13,118,105, 42,215, 38,130,170, 54, 19,140, +229, 98,105,168, 10,179,129,147,203,114,209, 80, 48,163, 38, 96,134,116,220, 52, +202,207,127,101,199,246,249, 51,122,198,245, 59, 99,143,107,159,174,119,214, 41, +167, 62,238,216,241, 59,237,213,206,174, 81, 74,211, 95,203, 54,211, 87, 80,123, +203,239,233,207, 96,154, 38,131,207, 64, 70, 90,125,243,216, 25,137, 56,126,207, +245, 45,219,158, 84,210,252,242, 41,198, 78,171,119, 99, 59,166, 22,151, 10, 37, + 99, 85, 92, 46,152,196, 53,177,252,235,156, 87,219,214,118,121,109,229, 60, 71, +244,187, 65, 65, 89,153, 8,202, 85, 37, 52,196,171,173, 17, 70, 4,196,208, 92, + 26,204,170,174, 60, 61, 71,239,252,230, 47,210, 76, 96,133,194, 46, 75,198,210, + 64, 43, 67, 85, 38, 86,101,107,227,184,121, 44,213,174,119,108,123,247,201, 95, +115,234,211, 77,154,213,202,158, 53,210, 88,159,187,158,123,160, 63,249, 63, 0, +162,118,250,155,231, 3, 34,117, 81,103,212, 68,242,161, 52,230,239,143,246,211, +114,185, 3,129, 16,168,145, 33, 82, 8,209,136,136, 72, 82,152, 66, 90, 3, 81, + 12, 66, 20,229,165,116, 30,194,120, 44, 77, 1, 13,134, 64, 2, 68,137, 67, 68, + 36,144, 64, 68,130,137,100, 2, 9, 19,164,160,121, 22,238,184,187,180,245,135, + 19,209, 22,234,243,157, 95, 88,106, 97, 30, 85, 56, 78, 5,103,225,154,240,147, +244, 47, 87,196,234,191, 16, 98, 53, 45,201,219,180, 87, 73,211, 50, 80, 86,210, +253,181, 53, 68, 36,132, 39,178, 23, 69,109,246, 99,226,188, 41,251,231,137,239, +128, 16, 27, 72, 10,218,244,136,210, 55,139,240, 9,250, 89, 24, 27,174,143,133, +224,155, 0,229, 21,140, 95, 92, 53,137,161, 20, 32,211,125,135, 46,129, 21, 30, +133, 39,180, 88, 29, 14,109,117,172, 66,188,163, 19,234,154,102,161,151, 93,145, +125,226,172,195, 98,174,157,117, 95,160,160, 98,175, 60, 53, 2, 58,223,170,188, + 84, 17,119,203,154, 92, 93,107,222,164,225,107,134,210, 18,206,128, 1,107,121, + 87, 81, 11,231,220,124, 23, 44, 78,194,142,181,204,177,242, 95, 95,199, 79,194, +237,104,198,100, 42,171,171,220, 93, 73, 11,151,218, 0,116, 98, 5, 22,207, 28, + 85, 21,126,170, 93, 72,182,235, 45,223,203,119,198, 93,187,252,116,166,231, 65, + 15,205, 69,142,155, 96, 23,177,241,166, 92, 53, 50,218,201, 33,219, 34, 59,157, +149,139,166,235,145, 10, 12,184,127,132,116,188, 94, 60, 84,238,132, 19,154,100, + 43,136,102,254,237,153,200,193,137,193,223, 76,138, 3,167,222,208,127, 97, 52, + 42,128, 46,172,184,199, 81, 85, 2,184,254,199,141,158, 8,104, 15, 92,155,226, +101,224,158, 10,251,223, 63,161, 49,199, 52,218, 91,186,162,205,143,139,110,138, + 13, 41, 51, 94,227, 32,148, 43, 29, 34, 47,147,134, 1,201, 71,109,217,156,105, +172,136,217,245,108,243,212, 30, 1,229,200,108, 97, 33,217,193, 99, 36,159,199, + 97, 32,137,187, 76, 77,240, 22, 2,212,120,144,214, 51,209,118,168,240,214, 75, +208, 64, 23,207,202,175,217, 34,142,143,126,172,136,233,234,200, 88, 86, 23,184, + 5,132,171, 1, 12,188,245, 66,142,183,219, 65,159,144,144, 76,208, 82,166, 25, + 98, 39,236, 78,137,155,137,204,116, 67, 90, 22, 75, 56,100,196, 41,147, 97,100, + 33,164, 47,129,107, 39,182, 68,215,151,227,228,101,235,131, 81,117,231,236,129, +143,220,210,232, 0,131,246, 91,172,246, 64,178,216, 10,195, 77, 1,220,177, 65, +231,153, 71, 0, 66,157,221,109,216,226,153,213,162, 60, 13,113,193,223,240,218, + 88,143,189,178,140, 98,161, 43, 42,194, 65, 13,128, 89,194, 84,161, 6,129, 29, +219,118,247,225, 0, 54,183,127, 13,193,215,146, 67,197,152, 83, 56,238,195, 64, +128,225,211,128,110, 0,106, 60, 22,250,185,226,203,213,177, 14,154,146,202, 76, +107,201,197,230,145,123,145,220,243,195, 48, 85, 7, 96, 7, } ; -// ../Source/Template/GB_compiler.h: -uint8_t GB_JITpackage_80 [2493] = { - 40,181, 47,253, 96,109, 39,157, 77, 0, 74, 90,180, 16, 44,176,110,144,115, 8, - 17,189, 44,245,104, 56,100,186,164,109, 29, 78,116,238,161,240, 67, 39,195,189, -220,172, 66, 22, 10,221, 73,181,108,110,120,205,157,210,159,146,246, 99, 28, 2, - 1, 0, 1,242, 0,212, 31, 14, 88,119,176,116,162, 36, 73,210,164,109, 43,139, - 24,151, 44, 98,185,197, 11,185,217,149, 90,128, 33,208,132, 50, 82, 56,215, 36, - 35,241, 48, 44,190,135,137,200, 54,239,241, 32,197,190,228, 59, 51, 11,133,131, -201, 36, 51, 24, 63,229,114, 97, 38,150, 76, 2,226,135,144,216, 96,178,247, 38, -174,137, 4,246,222, 53, 17, 16,174,203, 2,210, 53,196, 40,154,191,178, 73, 54, -129, 89, 44,168,191,247, 62, 93, 59,219,238,179,111,123,139,189,141, 66,149, 47, -107, 11, 75,103,115,169, 84, 48,151, 5,195,222,193,178,199,255, 99,216, 4,134, -103, 55, 44, 30, 60, 13,197,146,101, 46, 17,216,135,181,249,233,134,197,163,178, - 28,188, 69,200, 93,151, 84,238, 79,223,201, 90,230, 96, 59, 57,182,197,209,153, -100, 42,141, 69,149, 45,107,110,239, 6,106,205,165,188,222, 40, 96, 61, 44, 7, - 2,200,195, 58, 21,167, 55,108,139,224,228,213,245,210,118,105,168, 57,111,108, - 46, 11,196,198,193, 90,145,176,173,144,219,240,237,110,179,176,147,246,133, 93, -161,232,103,169, 77,184, 93,178, 85,149,101,115, 33, 26, 31, 68,229, 14, 14, 11, -135,131, 67,204,177,166,149,224,168,243,188,193, 32,189,129,113,203, 33, 26,217, -115,138, 52, 93,151,202,165,201, 84, 88,120,111, 97, 8, 4, 43,247,204,101, 50, - 23,209, 96,193,231,172,117, 50,214,238, 46,112,141, 84, 74, 24,162, 40, 6, 13, - 40, 6, 12,166, 7, 8, 48, 85,180, 70, 24,186,237,237,158,222,107,172,105,240, -236,185, 38, 59,186, 89,207, 57,174,251,132,111,176,133,113, 98, 31, 90,249, 66, -169, 49,169, 63,236,185,148, 61,186,112,187,103,233,105,107, 41,119, 43,224,102, -127, 69, 61,172, 42, 2,185,157,236,136,231, 55, 23, 91,233,133,149, 57,250, 82, -133,179, 61, 19, 76, 4, 70,209, 38,188, 85, 0,115,240, 56, 27, 77,230,224,188, -221, 91,150, 30,104, 91, 59, 8,202,207, 53, 20, 10, 74,196,123, 27, 39, 2,234, - 60,167,159,107,179,163, 21, 86, 84, 74,241,105,109, 98,140, 71,229,237, 82,182, -142,199, 3,114,135,205,133,146,113, 58,109,173,187,155, 75,216,217,158,248,253, - 80, 75,107,236,203,230,242, 5,133, 51, 42,198, 41, 11,101,130, 98,121,128,113, -174, 12, 86,137, 32, 9, 76,133,226,108, 58,140, 95, 32, 50, 6, 53,192, 17,231, -216, 34,250,107,233, 86,145, 32, 91, 56,251,141, 55,168,200,244, 91,216, 76, 77, - 90,183,172,144, 15, 68,102, 59, 38,157,167, 28, 5,175, 64,154,112, 11, 13,175, - 53, 21, 73,224,233, 43,148, 48,218,179, 4,205,182,135, 28, 33,103, 43, 42, 29, -253,118,180,222, 81,154,240, 98, 89, 90,190, 37,207,166,115, 93,222,101,153,160, -247,140,161, 45,223, 14,181,100,174,116, 29,181,161,241,173,212,114,133,255,100, - 37, 88, 43,252,118, 65,147,165,131, 34, 33,211, 68,112, 48,202,196,162,162,182, - 42,118,229,201, 32,182,211,111,255,218, 46,100, 53,186, 93, 14, 53, 4,176,231, - 19, 70,206, 95,217, 59, 57,196, 23, 94,123,134,147,223,184,178,131, 37,207, 41, -202, 74, 56, 74, 77,103, 72, 8, 76,147,246,141,157,198,245, 22, 58, 54, 8, 76, -103, 72,254,233,138,211,209, 61, 95,200, 53, 54, 76,207,188,219, 6, 71, 39, 14, - 38, 49,161,104,222,228,146,109,222,108, 40, 27,138,160, 22,106,251,211,121,201, -123,183,108,187,198,157,176, 37, 4,130, 61,219, 96,174, 95, 58, 37,244, 86,155, - 1,156,139,226, 64, 34,131, 97, 40, 42,179, 47,141,218,119,114,136, 90,144, 21, -192, 18, 68,105,197,178, 44,203,178,172, 71,230,172,140,172,189,199,161, 84, 52, - 23, 71, 98, 71, 84,155, 77, 65, 77, 86, 1, 76, 70, 49,187, 15,169,114, 29,200, -159,215,113,241,175, 74,112, 84,154,240,236,145, 92,209,242,246,199,206,142,100, - 89,236, 97, 65,222,134,163,137,200,100, 34,143,244,102,249,254, 10,152, 44,130, -219, 51, 82,149, 96,210, 71,136, 8,189, 64, 21,177,212, 86, 6,129,186,222,223, -158,110, 81, 20,227, 67, 18, 65,198, 52, 77,127,143,111,231,233,122, 47,124,239, - 81, 29,168, 16,220,129, 5, 57, 96,117, 38,174, 7,100,194,208,173, 45,186,140, -112,114, 26, 11,246, 0, 24,120,120, 15, 9, 72, 47, 67,134, 83, 6, 30, 58,239, -242,144,160, 3,160,118, 55,242,237, 45, 86,248,203,160, 10, 13, 88, 15,136, 61, -101, 53, 30, 77,175, 98, 95, 24,162,183,131, 37,121, 35,215, 74, 35,107, 61, 58, -252,228,137,227,219,237,209, 53,219,175, 72, 64,100,149, 12,101,129, 60, 34,145, - 6,199, 38,156,205,123,211,130,186,237, 36,247,120,101,153,106,144,111,174, 7, -172,209, 24,130, 92,168,194,163,214, 41,167, 74, 72, 36, 41, 40, 72,210, 26,130, - 24, 4,225, 96, 22,168,131,164, 30,114,168, 68, 71,145, 64,101, 8, 81,136, 40, - 66,136, 33,134,144, 8, 73, 48,145,136,210, 20, 36,199,165, 42,136,117,149,222, -188,204,131, 84,149,162,171,205,189, 63,124,191, 50, 41,166, 4,232, 49,107,114, -199, 62,231, 63,168, 67,157, 51,176,209,110, 94, 37,117, 57, 70, 11, 89,115,195, - 53,232, 18, 35,135, 1,106,104,174, 6,129,235, 5,198,178, 8,143,150,150,110, -129, 66,247, 81, 23, 85, 29, 20,100,134,202, 63,190,115,129,250, 79,142,121, 68, - 21,124,234,140,239, 75,212,157,199, 24,198,197,162, 54,240, 96,190, 45,188,107, -223, 91,170,121,241, 2,131, 95,207,146,239, 27, 29,140,104, 96, 90,194,103,199, - 5, 45,209,100,132, 15,214, 55, 9,105, 45,103,138,249, 59, 26,240,165, 34,194, -110, 67, 44,225,111,195, 49,248,210,105,223,190,192,120, 75,242,119, 31,129, 7, - 9, 14, 3,202,176,134, 15,182,224,136, 2,132, 30,118, 92, 51, 72, 54, 26,176, -160, 83, 77,240,154, 34, 46,164,123,235,200,182, 95, 84,170,166, 19,205,161,171, - 92,186,198,129, 48, 97,130,110, 55, 28, 7,182, 72,239, 28, 0, 25,191,152, 22, -118, 26,121,175, 54, 26, 24, 56, 13,106,129, 30, 21, 22, 24, 23,247,197,196, 30, -230, 99, 93,132,206, 34,130, 11,201,212, 99, 37,141, 72, 50,144,119,250, 79, 18, -104, 75,158,226,142, 33,116,192, 57, 11, 28, 77, 43,112, 51,177, 12, 8, 10, 0, - 36,145, 47, 99, 90,238, 37,213,169,234,253,125, 39, 98, 55,206, 48,244, 8,237, -142, 58,149, 75, 85, 93, 92,229, 50,139,149, 81, 78,235, 13,177,185,159,144, 52, -159, 64,142,137, 84, 48, 13,197,120,120,203,178,103, 16,255,237, 19, 21,172, 71, - 34, 83,212,248, 0,244,151, 77, 38,119,226, 26, 19,225, 11, 57, 37, 79,128,104, -215,156,138,223,242,186, 96,104, 8,224,145,185, 84,158,150,224, 61,228,119,239, -117,201, 55, 12, 94, 26,186,190,172,211,210, 67, 18,174,217, 9, 26,103,183,213, -216, 50,112, 57,161,150,251,253, 83,212,255,245,222, 12,110, 67, 60, 21,245,105, - 55,138,232,181,152,185, 78,211,117,129, 65,123,193,195,128,187,186, 70,230, 82, -219,235, 42,215,252, 58,192, 88,105,246,147,214, 42, 21,177, 78,245, 28, 71, 36, -144,246,120,192,217, 0, 4, 20,242,212,134, 29,173, 20, 89,207, 37,136,149,119, -171, 35, 78, 6,129, 77,255, 66, 12,234,181,221,207, 40, 53,135, 18,172,227,162, - 5,207,159, 32,143,146,128,154,238, 70,210,166,205,187,245,183, 64,174, 44, 37, -163,103,146, 58,184, 59, 79,225, 31,119,242, 20, 68,207, 1,246,191,116,215,219, - 91,127,134,171,238, 27,139,235, 47, 96, 97, 94,151, 71, 95,213,239, 9,206, 79, -223,182, 79, 63, 3, 80, 34, 82,130, 60,246, 27, 57,241,237,223,110,204,160,139, -112, 94, 88, 91,136, 51,229, 81,150,151, 31, 92,166,131,222, 66, 61,172,229,189, - 1, 70, 83,238,212,128, 45, 89, 89,142,205, 92,186,235,143,170,186,132, 38, 59, -241,211,121, 6,204,205,108, 11,155, 38, 96,147, 72,227,248, 99,120,214, 19,151, - 63, 88,253,144,216,227, 48,232, 96, 4, 65, 38, 30, 87,231,228,171, 22,147,190, -161, 96,243,203,246,224, 30, 82,219, 78,132, 4,228, 48, 7,241,244,186,178,178, - 15,140, 6, 66,111,245,188, 38,143,171,238,142,196, 82,117,160,180,220, 52,248, -200,138, 22, 64, 96, 83,143,140, 91, 27,244,106,117,119,239,124,137, 36,249, 81, -220, 58, 54,140,188,133,224,133, 86,191, 18,158, 10, 91,130,188, 79,253,253,242, - 73,124,134,198, 12,143, 31, 96, 28, 7, 2,196,182,124,217, 33, 54,126,212, 48, -125,114, 50,110, 16, 13, 24,219,136,204,139,166,226,106,107, 55,211,195,171, 74, -168, 62,113,177, 1, 61,145, 97,184,121,239,152, 52,229,229,233, 86, 51,148,163, -188, 53, 18, 76, 15, 23, 11,218,132,196,113,164, 40,112, 0,182,178,221, 40,153, - 43, 52, 1, 19,246, 23,245, 49,142,143,147, 58, 93,206,204,113,172,138, 80, 44, -136,197, 44, 80,197,142,107,209,185,169,143, 16,194,104,234,233,244,247,158,253, -168,135,176, 60,203, 73,104,136, 15, 80, 78, 1,227,128,179,235,219,213, 0, 96, - 70, 64, 76,142,215, 92, 87, 22, 1, 88, 47, 22, 59, 80,254,215, 10,212,102,242, -116, 81, 50,219, 16,254,222,222,103,233,230, 73,143, 67,240, 68, 37,240,213, 93, -238,116, 2, 99, 84,200, 11, 93, 62,250, 76,239, 50,244, 89,151,209, 69,117,212, -149,134,131,182, 27,236, 75, 36, 63,121, 38,156, 90,147,157,144, 35,236, 16,236, - 17,225,159,186,176,173, 54,178,117,208,173, 53, 91,122,213, 42,244,146,171,149, -134,120,197, 80, 94,231,236,196, 16,156, 79,178,170,145,216,167,116, 53,147, 12, -205, 52, 43,189, 72,246, 75, 49, 58, 21,220, 1, 51, 63, 59,168,195, 34,118,235, - 26,149, 93,119, 22,212,164,105,188, 39, 78, 76, 49,248, 28,141, 35,240, 45, 89, -140,165, 79,248, 91,135, 73, 28, 70,232, 63, 49, 61, 82,127,230,184,163,192, 27, - 66, 42, 88, 5,180,245, 36, 8,227,209,193,241, 66,156,117, 44, 71, 3, 68,205, -202,221,112,167,249, 62,124,244,114,137, 29,167, 8, 39,107,209,105,185,206,249, - 33, 94, 16,167,214,151,206,164, 94, 63,139, 59,240, 86,246,183, 9,234, 15,185, -139, 38, 24,231,206,225,171,125, 47,210,251,231,130,255,224, 51, 94, 73,100,156, -121,187, 65,231, 24, 43,255, 3, 66,197, 23,114,212,178,187, 92, 92,177, 52,143, -208,204, 91,184,221,253,251,251,102,130, 87, 51, 88,219, 11,143,122, 67,212, 31, - 94,247,223,204,189,224, 91, 1,119, 24, 17,161,194, 75,201,243,141,135, 82, 88, -105,223,216, 7,113,224, 86, 27,110,177,172, 92, 24, 29,146,128, 26,237,245, 32, -236, 9, 46, 7,194, 37, 77, 30, 77,238, 18,178, 13, 13, 54, 71,183, 83, 52, 46, -162,132,198,144,199,248, 3, 64,140, 80, 35,109,225,108,240,147, 42, 29, 96,112, -240, 73,160,193,101, 34,242,129,251, 76,141, 96, 91, 67,203,251, 23,158,196,120, -181,239, 3,242,236, 18, 11,232,252, 32, 85, 49, 61, 83, 14,192,221,252,191, 59, - 31,134, 25,199, 94, 18,102,124,227,232,196,215,147, 96,117,245, 47,228,109, 17, - 38, 69, 46, 16,130,161,170, 49, 9,120, 50, 90, 68,105, 92, 7, 77, 92,203, 76, -183, 32,172, 61, 15,164, 11, 53, 16,144, 58,166,219, +// ../Source/Shared/GB_mxm_shared_definitions.h: +uint8_t GB_JITpackage_58 [1360] = { + 40,181, 47,253, 96,100, 23, 53, 42, 0,198, 53,164, 40,176,208,217, 28, 61, 55, +193, 62,251,137,120, 85, 52, 60, 84, 15, 61,166,245,242,176,253,169, 88, 43, 23, +127, 45,145, 39,151, 79,126,208,127,176,244,131,115, 1,148, 0,150, 0,159, 0, + 34,126,131,249,223,164,176, 69,157,119,134,141, 79,169,124,166,163, 60,110,111, +138,236, 21, 47, 25, 64, 34,143, 6, 59, 41, 90,159,220,158,223,204,181, 61,236, +209,184,118, 55, 55,143,144,229, 3,241, 90,116, 27,119,118,156, 65,139,153,157, + 82,235,148, 36, 98, 16,121, 40, 84, 6,145, 59,186,233, 20,158, 34,105, 57,196, +250, 8,204, 54,156,219, 41,205,218, 80, 64, 81, 94,204,164,241,149,162,214,121, +142,154,132,105,215,219, 24,167, 12, 88,191,246, 59,182,183,147,225,171, 13, 67, +219,125, 2, 66,112,181, 51,207, 58,191,246, 56,175,175, 4, 49, 23,106,132, 28, + 5,243,130, 2,233, 81, 80, 16, 87,198, 57, 52,154,138,215,158, 90,203,208,180, + 98,180, 94,150,150,126,167,110, 91,116,174,115, 58,214, 64,155,207, 55,189,218, + 1,146,193, 49, 29, 44,195, 56,151,198,113, 26,150, 97,214,135,131,232, 88,239, + 38,181, 21,225,168,146,164, 12,167,117, 60,216,134,117,176,203,101,225, 44, 87, +102,101, 52,142, 19,226,212, 15,192,155,182, 90,128, 75, 18,100,195, 52,150, 5, + 84, 1,125, 42,175,242,148,215, 89, 62,250,138,167,186,121,187,182,197, 71, 21, + 63,158,223,126, 72,211,249,225, 41,208,222, 72,187, 58, 3,110,243,175,157,158, + 64, 7,188,118, 87, 60,219,250, 22, 73,240,184,177,236, 78,229,236, 58, 88,165, +197, 81,222,144, 29, 62,237,218,235, 43,109,253,228,255,165,106, 49, 49,150, 84, +118,243,118, 56, 86, 10, 37,187,182,205,242, 26,227,238, 58,105,253,179,199, 61, + 82, 41,210,104,182, 75,187, 92, 60,149,198,210,241, 84, 46,237, 84,133,101, 23, +182,249, 96,219, 6,196, 57,158,191, 86,180, 31, 81,113,102, 58,134,214,214,185, + 56,215,230,195,193, 56, 78,179, 50,156,204,181,195,249,200,181,143, 84, 8, 33, + 7,235, 85, 30, 75,240, 33,139,163,217,180, 12,187,112, 29,140,115,144, 16,145, + 84, 46, 24,140,114,144, 16,145,124, 46,160, 83, 7, 9, 83, 68, 18,145, 36, 84, + 9,213, 2,104, 97,235, 96,220,198,227,161,100,158,208,102, 99, 5,213, 29,211, +228,152,254,217,222,152,248, 3,211,116,136, 19,193,165,137,231, 83,211,127,125, + 32, 54, 46, 2,146,241,157, 57,227, 49,204, 35,190,157,235,180, 98, 87,199,143, + 26,137, 93,216,225, 41,236, 89, 48,119,120, 12,196,155, 86,148,109, 61,229, 53, + 30,223, 21,183,249,248,121,118,147,138, 26,253,190,115,204,232,219,184,193,141, + 82,217,152,118, 64,245,142,199, 62,227,190, 20,196,167,194,185, 56,115, 82, 61, +106, 83, 2,113, 66, 96, 89, 62, 32,130, 59, 46,102,118,101, 54, 11,147,169, 57, +133, 50, 51,147, 41,113,218,176,236, 33,191,225, 20,162,196, 53, 42,142,139,217, + 77, 87,102,109, 42,151,133,211, 4,129, 52,168, 1,150, 66, 70, 35,146,148, 20, +150, 10,195, 1, 97, 8, 49, 12,130, 10,235, 28,178, 88, 60, 9,161, 36,130, 33, +136,177,144,128, 24,227, 8, 65,136, 68, 73, 36,146, 36,202,204, 7,111, 26, 70, +192, 95,163,250, 68,216,183,241,159, 75,236,200,186,117,182, 18,123, 98, 25, 84, + 68,107,206,199,162, 63,231, 23,182, 56, 28,105,231, 70, 8,137,112,175, 84, 66, +156, 98,236, 65,146,223,118,224, 38,116,102, 66,157,132, 13,134,128,163,159,226, +134, 68,132,199,132,195,121,130, 14, 52,237,218,233, 29,216, 1,218, 28, 79,163, +111,132,151, 30,183,203,148,239,109, 71, 77,121,100,162, 30, 13,105,160,207,203, +208, 10,190,166, 72, 42, 99,131, 97, 76, 41, 14,147,213, 87, 70,223,169,224,163, +110, 80,225,235, 28, 66,168,140,147,193, 90, 16,255,215, 21, 91,199, 23,120,180, + 37,215, 61, 14,110,196,220, 35,207, 38, 5,204,162, 36,205,136,155,123,202, 75, + 58, 51,128,139,138,119,203,239, 33, 93,187, 55, 2, 73,198,200, 66, 80,156,149, + 32,142,233, 38, 80,208,170, 3, 89,243,202, 8,141, 60, 38,125, 0, 50, 1,141, +193, 46, 10, 24,219,111,190, 43,174, 93,240, 34,103,163,197,134,129,248, 74, 26, + 39,201,137, 86, 83,103,179, 99,172, 2,200,141,188, 57, 37, 30,180, 69,118,140, + 56, 74, 91,109, 89, 6,170,190, 32,217, 83,117,100,125, 94,178,229, 67, 77,108, +218,181,208, 73, 18,132,237,240,190,241, 9, 67,192,215,255,142,201, 55,182,197, +186,124,159, 97, 6,113,151,222, 44,155,204,206,119,217,132, 82, 27, 62,120,134, + 65, 69,201,185, 38, 49,129,188, 44, 14, 72,245,237,153, 44, 58,226,240,245, 22, + 75, 70,254,237,159,247,253,145, 67, 70,185,197, 18,130, 27, 25,151, 40,136,252, + 38,135, 81,160, 43, 4,137,220,244, 9,199,112, 51, 49,218,114, 38, 32,250,102, + 13,140,100, 22,218, 97,227, 58,219,178,195, 72,250, 55, 99, 28,164,251, 94,166, +128, 28,221,239,199,221,109,161,212,157, 86, 57,101,138,189,165, 50, 65, 47,177, +117, 95, 16,212,156, 75, 41,197,119,219,206,186, 12, 50,236,201, 92,118, 99, 89, + 81, 43, 9,156, 58, 47, 82, 88, 89, 38, 83, 66, 22,120,104,204,113,119,132,133, + 74,183,118,204, 13, 51,101, 99,152,200,185, 27, 68, 50,152,150, 72, 69,218, 81, + 6, 19,185,104, 54, 29,181,241, 65, 92,231, 21,240, 18,147,101, 92, 40,174, 43, +200,169, 75, 31, 44, 29,172, 10,168, 6,164, 32, 77, 1,225,245,255, 25,149,246, + 9,210,124,190, 87,134,177, 61, 33,195, 3, 81,103,127, 1,232, 49,250, 14, 5, + 69, 85, 66,137, 34,204, 37, 79, 14,109,217, 96,198, 76,115,227,237,101,120,122, +145,117, 76, 76, 5,101, 35,163,106, 44,240,228, 87,118,123, 32,175,154,230,181, + 74,188, 97,139,155,224,120,122, 16,141,174, 12, 45,250,217, 35,220, 72, 61,240, + 1,129, 22,234,155,190, 96,143,212,233, 47, 16, 11, 90,192, 78, 72,185,202,189, + 35, 61, 89,206,225, 12,162, 91,204, 52,202,134,137,254, 75,194,181, 60, 21,155, +165, 14,235,194, 2,139,102,254,153,105,114,194,193,122,151,176, 82, 90, 97,155, + } ; -// ../Source/Template/GB_concat_bitmap_bitmap.c: -uint8_t GB_JITpackage_81 [432] = { - 40,181, 47,253, 96,254, 2, 53, 13, 0, 38, 90, 80, 32,240, 24,231,240,113,107, -181,191, 37,164,147, 34,164, 20,115,105,245,243, 95,138, 33,166,120,242,191, 58, -197, 97,145,196, 83, 47, 72, 0, 72, 0, 69, 0, 95,188,150, 64, 24, 16, 4,198, -193,128,120, 54,177,107,184, 81,146,242, 66,188,202,203, 33,216,156,107,155,120, -153,120, 86,222,138,131,226, 43,237,134,230, 62,109,174, 84,223, 44,193, 48,215, - 62,253, 58,255,242,149,222, 97, 37,152, 59,212,101, 57,107, 56,187, 73,229,219, -118, 17,182, 45,141,199,179,148, 4,187,107,166,122,242,230,181, 85,149,216,164, -242,200,177, 72,210,235,229,218,197,231,218,207,184,134,243,255, 47,214,101, 40, - 32, 8,212,155,210,198, 59, 46,237, 81,231, 74, 69, 22, 2,197,149,206,190, 16, - 58,148, 76, 65, 68, 81,151, 98,170, 57,206, 30,169, 53,255, 2,172,193, 96, 85, -229, 33,143,246,143, 27, 30,121,180,216,255, 43,155,157,101,198, 24,253, 78, 34, -234, 77,252, 12,235,192, 83,253, 13, 71,255,232,247,201, 43,237, 45, 24, 94,130, - 36,121, 45, 32,218,231, 78,177,200,181, 67, 18, 66,124,228,161,248, 60,251,102, - 76,175,224,185, 11,215,213,186, 90,135, 16,151,133,184,187,120, 45,218,107,156, -197,238,201, 96,184,110, 82, 73, 69, 16,103, 63, 79,113,223,182,121,193, 57,174, -109, 9,213, 31, 60, 95,153,113,207, 71,206,245, 86,122,188,210, 15, 37, 31,120, -180,143,188,207,202, 64,209,126, 30,138,216, 71,253, 43, 41, 32, 96,100,198,208, - 14,249,192,214,176, 68, 68,155,238,196,220,118,190, 22, 27, 64, 60,169, 11, 2, - 11, 24,171,248, 78, 85, 8,158,128,219, 61, 98, 12,250,131,149,112,107, 20,140, - 91, 18,229, 97,110, 48,127, 1,109, 19,154, 64,209, 10,231, 72,135,170,221,118, - 92, 26,185,247, 15, 97, 55,104,106,158,153,210, 6,202,106,253, 3, 50,214, 33, - 50,216, 88, 0,167, 12, 76,207,152,162, 96, 8, +// ../Source/Shared/GB_opaque.h: +uint8_t GB_JITpackage_59 [5059] = { + 40,181, 47,253, 96,150, 94,205,157, 0, 90,148, 52, 28, 45,144, 16,157,109,170, +127,207,100,147,150, 64,106,101,228,132,228,161,187, 11,215,235,241, 15,193,197, + 72,195,171,236,112,236,191,239, 29,139,198,138, 0, 0, 0, 0, 8,145, 8,128, +174, 1,191, 1,193, 1,147, 80, 66, 81, 35,180, 66,104,125,208, 91,183, 99,163, +156,198,222,245,225, 92,174,213,214,150,125, 72,243, 59, 21, 24, 69,195,241,157, + 43,232,137,135,193, 71,242,134,232,218,105,223, 31,181,181,176,109, 72,114,115, +131,196, 2, 32,194,113, 54, 77,139, 24,135,116,245,172,247,164, 54, 33, 44,200, +198,116,208,186, 88, 63,187,182, 17, 58, 84, 31, 31, 75,195,209, 96,203,168,249, +128,203,184, 13,195, 92, 32,241, 45, 59,108,227,128, 18,166,143, 54,147,103,174, +183,116,137,139, 45,190, 29,206,166, 51, 22,197, 74,226, 93,243,123,132,134,161, +129, 65, 57,248,131,195, 56, 38,243, 69,114,196,222,117,121, 49, 84,226,207,154, + 94, 20, 93,171, 11, 72,190, 43, 22, 65,170,178, 58, 25,202,228, 17,145, 68, 46, + 7,228, 17,177, 40, 7,232,154,112, 91,230, 85,208, 19,248,181, 94,192,138,176, + 88,192, 41, 75,227,112, 44, 84,229, 18,238,221,103,252, 53,242,235,210,255, 98, +255,110,117,234,218,198, 22,173,195,242,138,206, 85,172,158,246,135,229, 31,186, +187, 51, 48, 48,198,242, 62,215, 89,178, 70,255,135, 61,143,240, 92, 67,207,191, +191, 34,171,111,249,228,185, 61,187,127, 12,183,205,213,243,239,107, 49,233, 25, +131,254, 89,177, 94,248, 46, 67, 78,249, 91, 88,209, 43,159,197, 23, 12,198, 52, +153, 78,117,157,228,151, 70, 27, 96,146, 79,166,244, 2, 24, 20, 29, 6, 98, 64, + 59,156, 11, 90, 1,140,234,225,106,124,232, 85,146,122, 37,191, 5,237,190,255, +101,141,215,247, 61,171, 53, 42, 48,157,135,239, 47,242,235,247,184,222,161,200, +122, 92, 20,169, 83,142,171,186, 26, 18,171,186,124,242, 36,167,180,189,168, 24, +127,160,126,134, 27,143,150,115,234, 67, 53, 75, 72,214,172,169,188,206,149,252, +252,182,229,135,161,183,247,163, 16,118, 7,177,235,139,237,182,215,130,255,121, + 37,124,248,178, 66, 37,113,103,209, 56, 4, 4,163, 1, 1, 17,156,121, 86, 19, + 79,131,114, 78, 62, 32,173, 99, 86, 73, 5,189,118,140, 88, 16, 79, 70, 59,162, +205, 53,111, 27,202,213,191,223,222,139,175,157, 58,205,199,131,237,116, 96, 54, +206, 5,251, 80,151, 13,117,220,199,147,101,118, 73, 90, 93,127,172, 58,151,251, +179,239, 26,110,159, 78,234,130,219,208, 36,169, 36, 7, 40,218, 4,147, 72, 68, + 24, 96, 0, 32, 27, 6, 26,217,234, 95, 82,143,204,178,225, 64,216,222,134, 70, +124,193,125,227,155, 63,220,142, 10, 53, 89, 13, 45, 98,239, 86, 44, 3, 22,167, +169, 84, 84, 69,114, 90, 69, 48, 13, 4, 49, 0, 74, 38,195,145,152,148, 19, 18, + 16, 69,243,142,104,153,135,123, 77, 53, 44,164,147,105, 25, 3,162,106,191,198, + 67, 67, 51,140,136,189,145, 67,107,184, 5,156,189, 50, 25,176,210, 5, 49, 63, +219, 85, 96,152, 45,115, 80,177,184,101,184, 71, 16,214, 47,118,209,181,223,125, +242,191,140,125,139,165,126,143,254, 92,110, 79,103,175,203,206,252,239,218, 73, +163,211, 1, 39, 64, 64, 98, 66,114,134, 4,159, 36, 12,211,225, 60,240,208, 13, +212,125, 50, 14,200, 58,104,253, 41, 11,251,140, 42,200,104, 68,177, 12, 88, 19, +235, 18, 18, 62, 77, 35,202, 74, 84,178,157, 36,219, 56, 25,151,125, 56,157,143, +122, 68, 50,246,203,177,175,173,136, 85, 99,242, 35, 92,182,101,153, 91, 47,100, +163, 27,104, 31,143, 76,118,222,138,113, 72,148,171,195, 67, 69,117,180,151,134, +110,178,139, 69, 49,207,119,235,231, 15, 45,140, 46,174, 30, 10, 54,206,229, 20, + 47,222,247, 47,126, 10,102, 89, 23,207, 62, 27,117, 16,123,213,218,238, 91, 71, +167,204, 12, 78, 42, 60,153,144, 39,113, 88, 46, 17, 48, 63, 36,227,193, 54, 87, +199,177,138, 68, 7,221,108,168, 70,187, 58, 86,167,178, 42, 71,101, 89, 35,197, +218, 92,147,203,187,101,222,146,203, 6,242,112,223, 45,113,142, 96, 54, 16,199, +147, 49,196,195,225,104, 25,209,254,227,210, 50, 76,228,216,128, 54,205,101,213, +234,162,148, 15, 1,252,191, 82,244,174, 21, 16,225, 26, 10,112,153, 2,234, 65, + 91,170,114,208,134,165, 67,132, 79,216, 48,173,195, 54,116, 51, 53, 17,252,218, +202, 35,194, 45,138,240,251, 98,247, 99,189, 16, 16, 21,101, 81, 96,196, 93,254, +175,126,168, 35,118,231, 32,228, 58,107,206,213,201,137, 6,213,167,184,239,231, + 92, 94,220, 31,244,247,225,112,255,232, 91,227,113,255,185,241,189,213,243,240, +253, 15,133,215, 71, 32, 18, 47,226, 69, 68,209,173,159,227, 77,138, 31,126,198, + 96,120,123, 86, 84, 71,255,144,187, 34, 96,100, 34,113, 72, 30, 18, 72,228,146, +152,149, 63,220,114,255,119, 86, 11,213,169,239, 47, 88,177, 90,191,161, 87,223, +255,179,218,171, 34,153, 63, 52,150,215,207,123,201, 52,251, 98,111,162,225, 21, +127, 45, 86,208, 17,248,164,105,160,109,202, 83,102,145,190,107, 45, 64,236,245, +195,205,153,184, 11,166, 97, 31,202, 68, 18,129, 60, 22,108, 32, 10,206,129, 93, +156,102, 97,149,131,211, 80,168, 9,199,131,225,235, 20, 37,137, 64,168,199,133, +243, 95,112,188, 93,111,177,172, 30,161, 75,252,121, 5,131,113,244,130,121, 58, + 24, 70, 34, 57,166,102,202, 44,214,226,184, 70, 35,235, 82, 96, 85,151,197,118, +223,197,222,107, 74, 54,154,140, 70, 18, 5,150, 1, 43, 98,157,212,214,217,130, +144,236,115,245,211,134, 76,239, 81,161,117, 54, 21,167, 72,243, 63,209, 97,117, +180,147,196,222,245,160,195,185,228, 58,126,182,232, 6,243,124,120, 4, 43,139, +179,201,108, 76,158, 33,133,227,116, 30, 80, 92,147,139,147, 68, 32, 15,135, 70, + 81,215, 68,195, 57,147,147, 64, 27,106, 43,147, 81,124,178,232, 85,149,229,209, + 46,154,242,217, 47,154,112,152,230,110,144,108, 25,155, 20, 34,223,173, 4, 32, + 25, 59,149,225, 97,113, 84, 92,244,148, 60, 67, 6,159, 42,203, 83, 81, 36, 40, +152,230,192, 68,243, 9, 9,167, 1, 16,193, 78, 83,130, 48,192,220, 2, 38, 31, + 14, 76, 15,196,213, 32,195, 56, 88,216, 38, 11, 12, 6,104,191,251, 2, 44, 22, +139,197, 34, 89, 44,148, 82, 74, 41,165, 18,165,155,205,102,179,145, 54,155, 79, +252,176,195,104, 24,197,133,123, 37,252,167,151, 62, 26,109,176,117,110,241,204, +253, 34, 93,186, 90,209,226,223,252, 22,126,134, 62,227,236,105, 70, 37, 69,112, +147, 98,109, 59,106, 82,169, 34,100,133, 72, 42, 68, 37, 11, 25,193,237, 0,159, + 72, 75, 82,150, 74, 89, 24, 82, 33,149, 40, 38, 88, 68,240,138, 79,146, 59,248, +100, 65,222, 23, 47, 42,101, 65,145, 25, 87,173,223,243,232,120,249, 92,252,203, +245,187,117,107,183, 26,103,168, 97,121, 37,196, 62, 30,218,249,120, 48,157,195, +144, 37, 37, 60,204, 76,146,139, 98, 9, 78, 83,104,162, 1, 64,242,137, 74, 29, +186,225, 24,100, 29,183,165,166,195,248, 90, 79, 52,180,105,142,172,209,126, 23, +160, 21,177, 55,178, 14, 25, 95, 75,126,151,236, 30,194,135,107,253,193,100,220, +255,139, 26, 78, 38,229,223,223,173,173,168, 95, 36,203,253,222,120,225,148,174, +116,110,165,170, 30, 1,234, 92, 42,127, 97,119, 21,253,253,108, 87,146,162, 10, +168,163,193,219,195, 91,128, 89,199,238,234, 17,103,210,181,128, 73, 75,185,179, +185, 79,114,204,109, 94,234,174,212, 36, 57, 57,218,209, 28, 63,167,238,206, 88, +119,248,203,175, 59, 83,115,177,213,250,179,248, 58,100, 86,139, 53, 81, 22, 7, + 42,113,161,146, 95, 91, 93,107,161,119, 73,238, 18, 55,232, 62,188,221,179,224, +214, 57,127,126,145, 8,139, 21,253,241,190,129,105,243,174,161,183,235,184,189, +106,190,235,241,183,245,135,147, 54,123,250, 49, 17, 34, 89,142,250,251,170,139, +174,205,118,252,143,158,240,149,124, 91,243, 27,167,152,235,139,227,133,137, 6, +137, 35,206,109, 73,156, 63,139, 47,222, 56, 60,156,162,182, 30,122,150,242,108, +254,251, 34,175,142,183,174, 30,227, 67, 78, 81,231,165,166,181, 4, 8, 3,134, + 48,168,195,199,179,162,101,108,102, 36, 73, 82,200,178, 6, 3, 52, 17, 12, 20, +149,141,198,154,162, 85,123, 19, 1,179,136, 36, 14, 26,133,132, 81,158,163, 48, +152, 98,140, 24, 34, 18,136, 4, 34, 66,193,164, 81,154, 29, 0,140, 61,251, 9, +197, 70,214,171, 73,128, 17,233, 52, 56,135, 2, 90,112,100,163,197,143,114, 27, +147,159, 85,192,136, 16,170,201,240,140,166,177,193, 40, 36, 3, 48,116,110, 99, + 50,203,119, 69, 38, 38,197, 36,192,192,228, 52, 40,131, 17, 88, 75,143,106, 60, +241, 14, 17,193,160,150,226,103, 44, 44,211,193, 35,231, 13, 56, 63, 59,125, 61, + 46,232,233, 98,133,152,250,144,160,118, 71,156, 3,119,209,228,134,147,124,178, + 18,204,141,171,211, 14,150,196, 45, 49, 57, 23, 56, 81, 98, 53, 5, 47,201,179, + 66,202,188, 41,120,168,128, 48, 19,235,187,212, 96,117, 60,235,210,130, 61,232, + 96,207, 63, 64,171, 1,156, 3, 24,113,121,108, 71, 36,244,186, 64, 66,239, 52, +214,228,248,205, 42, 86, 14, 92,166, 24,133, 95,170, 20, 58,154, 76,241,204, 54, +174,105, 41,181, 27,223, 64,179,223,207, 40,218,130,137,111,223,190,211, 65, 57, + 61, 72, 72,186, 23, 53,175, 32,155,152, 45, 23,135,197, 27, 71, 6,236, 72,156, + 74,118,134,170,119,132,219,115, 73,120, 90, 17,167,181,109,138, 4, 75, 48, 3, +124,158, 47,222,193, 37, 35,135, 86,111, 37, 60,189, 22, 16, 56,104,122, 4,254, + 36, 1, 63, 46,100,138, 35,128,147, 88, 10,129,117,111, 10, 41,138,231,128, 97, + 61, 23,183,174,114, 46,130, 98,200,160,116,247,192,191,159,196, 24, 43,171,136, +237, 62,170, 76,158,225, 71, 12,115, 19, 46, 77,220, 3,228, 60,215, 8,241,116, +158,175, 89,142, 34, 50,254,226,189,162, 50,133, 24, 6,171, 64, 26,205, 72,250, +237,233, 2,240,162,200,185,116,160, 90,142,220,237,250,202,229,151,213, 36, 50, +154,122,185, 8,123,224,154,201,238,141, 93, 64,119,225, 8,138,189,187,232,232, +106,200,234, 74, 86,111,240,177,249, 18,173, 12, 47,144, 2, 49, 76,130,140,251, + 95,232,173,157,119,145,217,151,215,182, 69,242,107,119,132,131, 64,202, 22, 95, +111, 90,147, 62, 94,163, 41, 55, 52,191, 28,124, 95, 84, 42, 54, 20,148,142, 61, +181, 16,113,154, 96, 17, 85,133,131, 22,154, 31,105,129, 8,210, 43, 72, 87, 16, + 12,174,120, 16,127, 18,125,209,139, 4, 89, 4,156,162, 56,203, 30,247, 73,106, + 60,137, 3,192, 54,211, 46,191,126,199,100,218, 17,146, 83, 3,198,141,244, 93, +101, 72,120,167, 62,200,101, 83, 87,193, 59,156,179,253, 15, 31,141, 8,129,176, + 63,153, 33, 72,129, 22,197, 2, 93,162,166, 99,239, 49, 37, 20,179,126,123,207, +174,190, 79,105,213, 57, 68, 59,237,214,209,251,232,253, 87, 97,151, 58, 83,201, +114, 48, 62,247, 5,247, 73,250, 44, 93,212,247,229,192,243,244, 89,228,156,253, + 73,186, 28,184,144, 35, 23,124, 13,183,148,176,169, 64,179,189, 65,114,124, 84, +233, 84, 58,122,228,100, 1,194, 10, 84,116,142,220, 64,123, 9,238, 52, 17, 42, +239, 1,164, 0,228,112,214,150, 40,231,137, 29,239,242, 79,208,133,240,170,209, +201,253,120, 98, 64, 31,223,247, 80, 79, 95,153, 61, 66, 0,201,100, 23, 47, 65, + 96, 85,108,124, 72, 20,146,124, 76, 25,146, 78,109, 25, 44,178,170, 24,173, 19, +118, 17,183,130,120, 58, 18,102, 10,126,223,139,241,181, 87, 26,139,228,191,132, +181,118,149,108, 26, 70,254,228,112,207,121, 77,137,182,166,135, 66, 30,110, 84, +237, 70,203, 28,208,166, 0,202, 60,240, 3,155,107, 3,189,174, 17,245, 79,130, +138, 8,142,165,130, 55,118, 94, 43, 71, 90, 41,159,241,231,190,173, 56, 32,162, +236, 38, 24,139, 46, 14, 79,235, 76,169, 63,125, 27, 99,132,118,160,251, 71,203, +246, 57, 86,169,200,165, 64,124, 61,147,205, 14,216,181, 88,180,160,177,106,218, + 9,189,206,229,232,154,251,255,111, 32,110,210,109,243,189, 10,219,224, 1,230, +190,223, 80,120,224,218,118,139, 9,134, 80, 26,122,150,123,215,220,154,157,155, +222,111, 1, 88,252,246, 50, 55, 82, 34,161, 74, 24, 81, 69, 9, 4,192,249,206, +250,141,208,123, 43, 66,108,128, 97,196, 28,253,128, 22,230,136,207, 92, 41,221, + 30,199,105,209,146, 60, 58,174,110,224,180, 63, 62,210,200,229,182,218,133,202, +134,244, 75,215,212, 41,116, 24,134,151, 10,152,245,102,215, 35,214, 93, 18,175, +165,171,171,159,234, 14, 33, 74,115,136,196,185, 79,188,118,100, 87,169,137, 8, + 71,106,215,228, 80,246,109,209,104, 93,239, 40, 64,233,221,248,112,141, 24,155, + 5,165,173,128, 34,135,133,208, 17,104,110, 50,151, 20,221, 25, 1, 52,144, 14, +157,178,119,209, 96, 97,116,115, 68,138,183, 90,171,138,187,199, 49,243,152,156, + 64,153,240,177,129, 31,236, 65, 59,162,232, 7,165, 87,169, 10, 87, 85, 91,149, +167, 72,185,117,134, 81,195,132, 68, 60,149,138,245,139, 69,249, 51, 60,112, 24, +151,125,181,138, 13,130,161, 51,107,208,156,207,129,113,207,116,250,157,140,136, +247,254, 59,143,179,136,150,155, 37,151, 11,169, 69, 76,194,192,136,186,177, 22, +101,131,127,100, 63, 88,199,182, 58, 95,114,110,162,235,220,165, 60,221,150, 81, +253,199,122,251,205, 98, 47,251,168,139, 96, 2,134, 50,218,126,243, 11, 94,230, +128,205, 67,103, 18,120,124,176,179, 97,183, 11, 88,165,126,210, 9,110,196,195, +124, 5,205, 35, 47,144,254,174,133,251,205, 95,230, 9,204, 77,181, 20,121,251, + 1,254, 22,122,234, 26, 30, 44,146,117,250,209,142,224,215,140,137, 28, 7,157, + 4,210, 29,234,230, 50,185,202,208, 93, 21,117,183, 55,181,195, 45,181,251,104, +229,145,187,182,185,186, 70, 94,130,237,128,145, 90, 41, 70,133, 62,146, 21,193, + 48,119,100,121, 61, 89,219, 6, 40, 56, 9,219,141,193, 18,227,197, 67,129, 90, +101,198,192,154, 58,126,183,132,178,230,216,165,102,119,214,236, 47,113,227,163, + 39, 55,138,119, 89,254, 52, 83, 22,204, 75,232,144,225, 57,142,107,162, 57, 86, +178,235,248,105,194, 1,155, 16,153,188, 99, 17,144, 9,180,118,215, 6, 51, 94, +204,255,176,124, 9, 7,217, 35,177,195,181, 68,103, 75, 3, 0,115,247,177,196, + 46, 16,130,221, 64, 68,154, 49,168,150, 96, 82,212,186, 94,239, 28,226,160,159, + 46,245,112,103, 48,120, 55,113, 38, 19,135,136,133, 33,189, 25,145,227,147, 17, + 11, 50,246, 56,233, 66,184, 13,232,200,162,137, 10,184, 25,146,165,165,172, 24, + 52, 76, 75,216, 50,228,182,221,162, 25,163, 77,131,205, 95, 4,245,186,111,250, + 6, 69, 89,214, 32,124,195, 47,215, 8,119,143, 52,190,142,183, 19,120, 80,215, +218, 78, 30, 63, 85,151,151, 61,226,133, 62, 24, 85, 66, 41, 47,240,105,177,165, + 79,202,163, 24,251,238, 19,101, 20, 9, 8, 60, 30, 3,118, 16,227, 34, 23,163, +132, 6, 95,201, 73, 9,235,130, 96, 91,228, 22,187,149,216, 29,133,217,202,191, +255, 41, 25,201,231,132, 80,222,148,157, 30,150,224, 8, 19,156, 48,166,104,255, +229, 59, 35,161, 84, 22, 8, 9, 69, 48,161,142, 15, 83,117,227,160, 95,249,173, +199,231,104, 37,213, 2,243, 7,158, 2, 20,242,230,186,158,193,162, 26, 84, 83, +250,191, 12,108,138,195,195,201, 79,201, 57, 69,121,185,232,174, 82,235,200, 82, + 55, 17,234, 33, 74,157,200,174,110, 74,204,112,255, 58,214,149,246,235,176, 53, +205,101,128,133,101, 72, 59, 25,247,158,195,156, 88,254,154,205,173,180, 16, 94, +108, 63,222,231,124,243, 28, 43, 87,211,152,121, 77,224, 79,166,192, 35,244,228, +161, 69, 62, 30, 54,154,239,201, 7, 51,207, 76,208,125, 70,150, 37,132, 85, 78, +204, 34, 47, 8, 69, 85, 39, 25,254,192,198,137, 13,123, 62,144, 43,149,222,128, +204,196,252,107, 80, 6, 46,244,229,235,199,250,191,141,240, 4,227,191, 70,110, +176, 45,181,115, 4,153,142,248,122,196, 45, 52, 41, 87,128, 13,137,213,213,174, +248,187, 54,227,148,236,191, 95,201,226,184, 37, 27, 13, 65,193,214,173,102, 8, +219, 60, 93,139,225, 9, 88,125, 29,232,144,104, 24, 32,140,204,133,107,115, 82, + 70,254, 14,200, 90,185,109,113, 22, 96, 73,125, 45,176, 40,146,145, 98,232, 16, +175, 96, 52, 71, 98,212, 43,164, 39,157,230, 11, 58,235, 1, 66,118,132,116, 23, +155, 99,219, 58,233, 99,130,244, 57, 9, 50,118,210,240,175,147,142, 30, 37,251, +101, 24, 7, 56, 70,227, 45, 77, 69,247,120,195,238,134,149,210,144,228,215,179, + 51,208,107,160,242,199, 41, 25, 12, 19,226, 6, 73, 14, 42,224, 72,182, 13,232, +240, 33,197, 20, 81, 49,160,203,192,109, 18,230,221,188, 80, 63,118,166, 84, 41, +243,247,222, 58, 42,226, 81,180, 0,114, 55, 77,147, 98, 1,228,140, 51,208,109, +192,207,161, 9,242, 50,146,226,202,138, 73,146,215, 64, 85,245, 45,142, 91,107, + 48, 87, 67,222, 29, 76,200, 53, 27,223, 20,171,177, 70, 97,158, 38, 94,120,232, +224, 79, 70, 77, 12, 66, 95, 96,153, 48,168,133,195, 96, 29, 8, 10,194, 23, 7, +231, 98,167, 54,110,149,160,172, 25,207,107,138,163,100,159,136, 33,120,184,121, +221,222,134,105, 97, 74,225, 12,218, 16,184, 68,117, 30,236, 26, 11,241, 97, 64, +129, 31,160, 12, 81, 37, 8,247, 43,239, 23,175,173,193, 70, 65,118, 65,199, 24, +119, 44, 97, 94,171,135,115,176,254, 5,111, 31,140,118,124,242, 34,176, 96, 56, +178,111, 67, 27, 24, 45,157, 81,207,174, 0, 12,233, 95,107,163,186,178, 30,221, + 59,237,183,200, 35, 67, 76,206,173, 42, 31,142,248,156,188, 44, 87, 40,113, 39, +209,127, 27, 5, 68,159,172,134, 86,157, 48, 21,229,192, 12, 75,126, 28,158, 32, +230, 26, 78, 98,252, 89, 9,154,225, 84,129,114, 50, 63,243,109, 33, 97,212,209, +113,124,207,123,250,130, 73, 51,136,103, 78,190,109, 76, 28, 49, 16,133,197, 55, +110,168,186,232,135,246,237,180, 44, 40, 18,221, 37,239,138,166, 5, 13,188, 27, + 86,206,142, 14,165, 79, 17,227,192,143, 19,189,168,118,119,225,246, 89, 86,104, +194,235,206,251,187,124, 53,243,165, 53, 20,166,169,108,195,137,110, 53,176,188, +152,252,199,127,179,241,219,202,136,249, 70, 18,233,242,130, 68, 82, 96, 9,130, +144, 87,126,253,225, 51, 95,242,105,133,110, 44, 76,203,153,150, 11, 82, 47,159, +153,138,106, 4,234,207,242, 9, 59,199,159, 97,206, 86, 22, 15,100, 35,249,154, +127, 19,221, 91,104,238,164, 43, 1,211,141, 45,113,225,151, 38,241, 15, 13,250, +154,101,235,174, 64, 73,235,164, 0, 69,182,143,241, 97,220, 70, 67,232,212,156, +191, 33,163, 36,185, 13,127,165,220, 19,123, 92, 16,144, 31,228,159, 48, 1,135, + 2, 50,146,146, 53,202,162,119,102,131,118,228, 71,232, 50,219,103,195, 7, 43, +227,251, 13,153,253, 52, 71, 29, 67, 80,187,235,181,240, 6, 17,146, 19,170,102, +182, 85,181,187,132,141, 66,110, 48, 36,144, 90,178,249,124,196,229, 86,105, 31, + 67,249,102, 58,105,158, 4,220,230,107, 61, 53,169,229, 75,116, 72,154,116, 73, + 52, 50, 3, 18,196,113,254,144,151,148,215, 11, 65, 84,152,209, 8, 23,183,116, + 94, 96,216,145,254, 31, 77,179,236, 15, 2,112,179, 7, 15, 88,195, 33,195,172, +209,246, 73,147,109,138, 23,250,187,158,166,103, 35, 99,165,223,189,162, 83, 26, +180, 49,165, 53,148,148, 89,253, 55, 50,235, 30,191, 31, 74,205, 26,208,164,212, + 74,243,223, 95, 18,167,191,162, 30,160, 85,252,193, 88,102, 97,221,212, 40, 66, +182,142, 47,188,204,173,199,207,218, 44, 50,232,209,179,170,196, 57, 6,255,186, + 7, 47,129,184,185,228,229,111, 66,201, 9, 12,241, 34, 44,210,206, 47,251,214, +239,197,125,201,188, 19,195, 44,222,220,108,213, 34, 47,243, 37,165,173,163, 18, + 69, 4,213, 36,188,130,106,200,211, 45, 57,184,197,242,138,179,238,155, 15, 16, +116, 76, 25, 36,102,246, 3,131,227,238, 58,126, 17,181,215, 88,136,199,132,125, + 67,249,144,227,150,172,167,139,236,124, 69, 76,243,182,123,136,244, 62,172, 91, + 61,181, 54,157,178,155, 94, 13,215,186, 0,179, 45, 11, 21,138,155, 81,186,147, +192,164,182, 74, 35,212,106, 50,107, 21, 78,235,205, 84,181,137,151,199,147, 48, +140,126, 45,139, 41, 64,170, 49, 96,108, 22,109, 74,214, 70, 77,144, 16,210,100, +229, 12, 95, 80,116,191,242, 94,163,174, 96,177,154,230,177, 57,215, 42,130, 85, + 97,119, 61,200, 31,182, 96, 11,195,194,209,244,176,184, 77,174, 59,142,194,199, + 88, 29,107,100,235, 81,129,139,176,196,232,165, 97,195,117,121, 53,248,215,198, +104,131,142, 56, 62,190,173,129,213, 93, 58,194,116,118, 14,221,167,252,117, 94, +223,200,103,167,192,170,142,246,217,174,157,164, 64,166,147,167,213,140, 6, 32, + 11, 99, 28,142, 94,119,186,252, 97,147,195,117,183,138,141,163,150, 17,113,236, +140,121,193,104,185,144, 16,152,184,178,209,133,154,242,189,102,129, 6,140, 1, + 36, 14, 52,241, 1,113,216, 64,144,131, 88,146,198,150,144,242,203,113,196, 56, +228, 52, 58,254,185,136,194, 37,251,122, 81,173,208,249,196,233, 55,133, 13, 35, + 94,227, 91, 17, 7, 88,120,205, 61,143,108, 66, 7,138,106,125,197,121, 38,106, +197, 21,168,250,237,202, 49,102,214,228, 69,151, 10, 66,152,199, 0,172, 12,136, + 10,171,154, 76,171, 99,226,166, 71,153, 52, 51,167,150,255, 55,161,167,189,159, +100,242,192, 40, 12,100, 9,191,202,104,136, 48, 2,146,220, 45,152,131,131,249, +213,128,243, 43, 83,252, 67, 4,134,155,102,245, 60, 80,101,126, 40,175,183,112, + 61,240,209, 77,186,120,135, 95,167,189,120, 66, 38,212,234,182,190,118, 81,118, +111, 84,218,109, 99, 6,139,207, 0,187, 17, 23, 1,190,106,229,157, 46, 85,138, + 55,237,221, 13,229, 16, 88,232, 55, 12,233,163, 2, 17, 8, 89,164,240, 55, 51, +238,227,188,131,226, 57, 69,231,213, 65, 4,234,229, 41, 80, 97,214, 7, 87, 57, +135,253,169, 29,116, 47, 65, 0,123, 58,237,102, 12,219, 56,158, 51, 16,186,196, +165, 77, 8, 22,171,192, 42, 97,110,134,188,218,159,112,121,150,234,111,216, 28, +173, 65,193,126,152, 48,149,152, 67,195, 8,229,133, 17,182,244,194,163,191, 2, +142,112, 80,104,224, 25,200,106,125,141,113,220,219,250,157, 83,139, 56, 10, 30, +152,162,172,227,181, 51,155, 63,152, 47, 23, 41,138, 6, 73,161,184, 99, 53,145, + 27,187,195, 99,109,254, 73,247, 65, 9, 81, 73, 20,232,200,214,117,222, 34,210, +231,155,163, 4, 0,138,248,176, 2,242,227, 89, 53,227, 82, 9, 20, 68, 15,116, +208,180,211,101, 38,225, 32, 99,100, 23,116,113,129,181,169, 22,249, 54, 7, } ; -// ../Source/Template/GB_concat_bitmap_full.c: -uint8_t GB_JITpackage_82 [401] = { - 40,181, 47,253, 96,138, 2, 61, 12, 0,246, 87, 74, 33, 0,151,115, 22,190, 38, -235,218,246,129,244,186,203, 44, 29,116, 84, 31, 58,169, 15, 47, 41, 62, 98,237, -179,255,255,123,127, 8, 1, 64, 0, 66, 0, 63, 0, 24,166,164,142,156, 16,111, -234,242,231,209,204, 49, 76,164, 64,186,219,160,132, 49, 49,216, 23, 51, 51, 13, - 49, 85,137,130,185,189,191,255,101, 75, 63, 43,205,127,223,206, 51,106, 13, 65, -220,109, 47, 83, 15,151, 91,218, 79,114, 16,201, 53,173,202, 52, 45,159,158, 96, -151, 45, 23,159, 45,125,198,246,147,255, 95,161,170, 2,225,144,205, 78,246,141, -103,128,147,130,104,182,243, 51,201, 38,182, 83, 82, 74,166,137, 88, 8,159, 73, - 2, 39,158,151,227,220,133,232,229,181,198, 99,136, 67,225,144, 45, 12,133,195, - 47,105, 61, 47,252,241,120,173,255,213, 37,105,238,140,173, 89,195,207,236, 36, -254,101,113, 94,104, 15,126,160,215, 89,107,131,125,127,189,239,237,133, 26,188, -128,120,159,185,132, 34, 91,218,248, 85,106,143, 59, 54,178, 97, 39,143,157,108, - 91, 16,201, 31,199, 1, 85,149,170, 82, 6,207,118,125,152,114,241, 88,188,199, -182,107,125, 99,169,108,157, 24, 59,219,229,188,180, 93,211,228, 5,223, 54,122, - 69, 36,250,193, 51,216, 25, 83,249,199, 55,170,137, 26,183,179,146,250,129,199, -233, 81,131,193,201,246, 29,143,247,141, 38, 32,112, 38, 32,202,243,121, 22,129, - 4, 43,217,120,176, 0,196, 23,187,197, 8,116,184,214, 1, 67, 90,172, 36,211, - 25, 92,193, 1,189, 95,199,192,136, 35,159, 88, 71, 8, 91,217,176, 25, 98,190, - 5, 20, 33,230,111, 17,209,236,168,137,142, 54, 35,251,253, 99,176, 27, 52, 55, -207, 76,109,227,236,106,125, 3,226,222,224, 23,214, 24,128, 63, 14, 67, 81,224, - 6, +// ../Source/Shared/GB_partition.h: +uint8_t GB_JITpackage_60 [404] = { + 40,181, 47,253, 96,228, 2, 85, 12, 0,118,150, 69, 32, 16,179,115, 63, 35,144, + 35, 88,139,216, 18,207,165,216,237,201, 58, 94,130,152,140,247, 61,126, 69, 96, + 68, 0, 0, 8, 24, 4, 61, 0, 63, 0, 57, 0, 30,154,184,132, 61,164,221, 78, +211,147, 79, 9,214, 64,104, 27,234, 41, 46,254, 60,186,145,240,237,142, 4,114, +198, 82,239, 32,174,182,111,233, 51,182,239,117,217, 63,219, 25,215, 95,154,100, +187,190,125, 61,186,177, 32, 20,159, 38, 24, 77, 83,142, 7, 99,194,152, 68, 48, + 72,198,213,102, 13,128,148,100, 69,172, 97,232, 6,251,229,113,103,125, 45, 87, + 70,196,159,101, 76, 55, 34, 74, 2, 34, 85,246,120,252,113,228,223,213, 50, 29, + 57,199, 97,159, 3,139,178, 34, 66, 69, 89,151,152,248,249,117,220,165,211,213, + 24, 31,184,140,241,255, 97,229, 82,237,251,251,121,157,125,125, 57,237,172,125, +227,165,175, 82,246,180,107,167, 9,134, 56,142,118, 56,252, 42,178, 23,117,214, +238,185,182,167,235,127, 85, 75,207, 0,184,176, 4, 16,102, 93, 45, 3, 32,156, +149, 64,218, 88, 69, 86,225,211,254,243, 58, 92, 82,191,193,112,195,171,173,246, +157,118, 90,219,172,182, 40,171,200,218,226, 85,109,182, 59, 95,234,241,166, 59, +199,245,231, 82, 78,151, 82,218,120,201, 1, 46, 32, 64,132, 8, 76, 29, 31,224, +134,155, 33,134,242,193,225,185,200,134,181,223,176,204, 75, 46,137,209, 29,248, +173,127,100,221, 13, 34, 64, 4, 27,227, 18, 78,255,194, 12,192,249,110,203, 2, + 55, 27,238,189, 97,117,172, 23,156, 97,129,213, 39,186, 19,221, 11,168,142,118, +188,132, 71, 76, 34, 66,105,229, 90, 6,195,125,177, 67,150,128,160, 0,244,125, + 93,255,177, 86, 51,104, 50,207, 76,181, 81, 90,109,159, 0, 5, 48,133, 69, 90, +172,168,115, 3, } ; -// ../Source/Template/GB_concat_bitmap_sparse.c: -uint8_t GB_JITpackage_83 [717] = { - 40,181, 47,253, 96, 35, 6, 29, 22, 0,214, 98,107, 32,224, 28, 23, 3, 24,151, - 69,201,197,185, 35, 73,201,157,162,130,246, 0,119,100,178,249, 21,177,195,187, - 19, 49, 70,230, 24,227, 98, 0,100, 0, 97, 0, 3,171,177, 13,175,102, 32,154, -120, 8,162,117,149, 86, 91,240,122,143,168, 11,158, 36,231,187, 4,194,128, 24, - 48, 14, 6,196,185,112,123,167,175,171, 78, 78,152,135,141,155,181,186,160,119, -159,169,145,140,185,150,149,143,221,183,245,209, 94,183,220,117,245,215,179, 54, -190,183,228,221,127, 61,182,111, 88, 93,214,172,105,174,171,125, 77,116,215, 16, -179, 66, 42,169,188, 80,208, 6,133, 66, 31, 78, 36,237, 72, 99, 24, 79, 52,159, -133, 67,167,227, 90,165,107,167,197,106,203,113, 99, 58,127,186, 34,182,158,142, -199,226,171,209, 76,250,125, 32, 5,183, 28,231, 54, 85, 44, 54,190,239, 80,248, -134,151,212, 84,101,233,220,254,129, 83,227,125, 19,154, 1,191,144,230,227,128, - 95,134,130, 46,152,147, 21, 79, 23,240,255,154, 38,211, 12, 4,196,192,142, 97, -205,243,141,210,222,211,221,216,138,151, 91, 87,210,241, 18,233,118, 82,200,183, - 46,239, 73,117, 77, 38, 16, 60, 28, 55, 28,178,113,225,221,117,235,205,146, 45, -209,142,161, 62,183,209, 85, 11,191,100,157, 78, 90,146,172,101,205,207, 43,214, -235, 10, 85,203, 44,222,125,239, 56,102,200,243,252, 14,111,185,181, 45, 3,223, - 26,179,194,119,161,117,225,200, 96, 94,240,119,135,119, 25,176, 19,162,162, 11, - 8,154, 27,250,121, 23, 77,154, 54,155,105,179,131,201, 59,199,210,215,203,219, - 71,158,142,247, 42,121, 47,239,133,194,189, 0,242,153, 73,191,127, 56,126,200, -103,158,108, 46, 31, 58, 55,149, 9,122,184,131,160,227,234,179,167,187,214,189, - 19,177,125, 55,243,246,233,161,160,175,130, 45, 25,184,119,169,151, 83, 23,124, -151,117,107, 87,232, 57,206,169,222,141,115,251,164, 22,200, 83,143,171,238,120, - 37, 31,121,168, 49, 45,132, 2, 27, 25,145,180, 32, 41,181, 6, 64,132,144, 98, -118,117, 2,217, 36, 21,177, 44, 21, 16,145,161, 0,149,164,124,237,103, 3,192, -164, 33, 39,233,202,148,194,233,150, 7,227,145,105,109, 65,232,122,249,185, 60, - 47,238,109,253, 49,158,234,155,208,173,118, 90,237,202, 55,105,154,238, 67, 86, -200,179,177, 76, 98,201,208,163,148, 49,104, 17, 49, 18,214, 86, 55, 36, 82,123, - 17, 93,130, 35,112, 62, 55,191,129, 38,146,232,216,130,233,106,185,131,150,221, -200, 1,104, 38, 44,118,157,217,161,112,227,221, 40, 60, 91,253,150, 83, 32, 93, -227,164, 81,133,216,242,102,169,171, 7, 75, 91,253, 0, 55, 74,192,102,160, 65, -136,114, 69, 75,112, 65, 70,218, 88,149, 12,177,151, 97, 50, 42, 39,190, 6,135, -148,219, 35,101, 86,221,139, 31,204, 28, 93, 10,201,151, 44,204, 6, 33,148,191, -128,232, 71,130, 54,255, 22, 38, 23, 61,182,224,165, 16,121, 0, 58, 90,242,234, -164, 97,241,215,191,101, 49,202,111,249, 99,214,209,179, 82, 29, 68,214,155,169, -221, 44, 83,162,139,149, 96,161, 24,227, 83,183, 32, 58,104,162, 85, 96,218, 74, -201, 0, 45, 10,255,240, 56, 69,167, 64,251,186, 12,243,122,112, 76, +// ../Source/Shared/GB_pun.h: +uint8_t GB_JITpackage_61 [371] = { + 40,181, 47,253, 96, 32, 2, 77, 11, 0, 38, 85, 64, 31, 16,149,115,231, 77,110, +182,132,103, 62, 91,185,179,136,150, 3,254,141,193, 67, 34,235, 55, 62,232,136, + 0, 0, 16, 56, 8, 61, 0, 54, 0, 51, 0, 24,227, 19,226, 80, 56, 80, 9, 67, +225,112,129, 37,125,154, 11,122,142, 87,140,143,174,206, 62,123,249,100, 97, 72, + 26,151,246,228, 67,161, 83, 62,205,162,189,155,197,117,120,249,170,141,250,138, +171,226, 77,219, 52, 30, 39, 16, 28, 69, 32, 4,240,239,243, 29,106, 63,149,253, +185,215, 13,123, 32,236,239,211,213,155,113,133,234, 64,233,101, 61,141,113,133, +212,141,219,172, 48, 66,233,100,181, 86, 66,105, 28,148, 10, 42, 72,234,212,202, +103, 95,157,173, 28, 11,115,251, 64,181, 84, 42,100,200,239,147,212,230,205, 52, +193,224,210,223,179, 62,212,158,114,163, 94,253,152,125, 78,149, 16,190,235,117, +249,171, 14,111,207,103,101, 28,122,111,156, 79,205, 42, 53,198, 13,206,197,133, +172, 82, 64,186, 52,144, 46,152, 54,229,141, 10, 1, 14,178,153, 96, 40, 81, 33, +199, 5, 56, 87, 5, 62,223,167,217,123,245,188, 86,140,179,115,114,122,191,224, +108, 53,145,242,187,114,222, 25,191, 3, 41, 32, 48,132, 24,196,152, 29,135, 0, +128, 2,144, 26,196,141, 52,234,177,183,173, 17,235, 65, 66, 97,123,102, 32, 32, + 92, 31,205,128, 42,141,114, 51,241, 64, 81,145,225, 18,142, 89, 20, 3, 36,232, + 88, 1,249, 27,145,155, 12, 44, 72,124, 0,123, 1, 54, 65, 98, 7,175, 67,105, +141,150,230, 56,128, 67,224,225, 48,164,244,122, 52, 58,200,166,217, 60, 51,105, +123, 91,173,187,131,234, 31, 32, 40,122,221, } ; -// ../Source/Template/GB_concat_bitmap_template.c: -uint8_t GB_JITpackage_84 [586] = { - 40,181, 47,253, 96, 64, 7, 5, 18, 0,182, 89, 81, 32,240, 88, 55,208, 69,138, -162, 47,207,144,131, 73, 49, 47, 49, 84,161, 40,212, 33, 68,125,249, 62, 43, 63, -136,195, 34,193,162, 66, 69, 0, 72, 0, 73, 0, 93,200,246, 68, 41,109,152,173, - 2, 95, 12,237,214,133,208,220, 76,192,145,146,151,135,103,146,142, 33,127, 91, -134,174,148, 37,159,134,221,180,197,199,182,253,218,111,218,254, 20,123, 63,252, -233, 29, 67,127,110,164,225,219,142,123, 90,177, 88,185,201,165,179,236,194,178, - 44, 26,110,195,100, 62,247, 62, 27,152, 14,126,123,152,182,214,239,165,238,238, -190, 46,214,117, 48, 36, 48, 7, 43, 29,103, 63, 72,183,159,125,236, 30, 6,243, -140,189,218, 13, 54,162,124, 12,158,159, 72,207, 14,234,252, 96,201,130,250,222, -217, 5, 69,226,144,192, 26,136, 67,162, 7, 85, 16, 14, 77,211, 82, 3, 65, 71, - 58, 53,251,171, 37, 63, 59, 73,232,202,135,180,109, 83,235,120, 52, 14,127,214, -195, 87, 20, 59,207,215, 3,180, 9,145, 94, 97,170, 85,236, 23, 34,193,102, 71, - 58,180,222,137,246,115, 11,198, 99,219,159, 61, 33, 12, 55,197,108,185,217,142, -237,166,210, 1, 85, 2,215, 44, 3,215,213, 34,125, 84,129, 77,138,253,183,164, -159,123,144, 54, 81, 39,187,206, 89,214,143,158,164, 46,237,153,214,193, 96, 10, - 90,245, 22,172,111, 81,185,149, 61,127, 38,103,195, 76,174, 3,170,225,222,242, - 3,180,123,229,173,120, 35,178,112, 44, 77, 53,138, 21,210, 93,247, 92,107,160, -241,169,161,161,161, 73, 81, 81, 10,173, 1, 80,132,204,212, 25, 55,181, 4, 81, - 6,189,145, 66,146, 57, 73, 14, 25,200, 36,119,176, 33,239,128,225, 59,120, 54, - 57,198,249,209, 28, 52,194, 50,135,194,158,146, 99, 19,151,132,217,214, 97, 33, -163,194,226, 27, 92, 89,250,105, 62,102,142,209, 96,220,194, 93, 69,229, 66, 5, -158,110, 35,200, 87,145,115, 95, 44,208,103,201, 93,140, 96,212, 29,251, 35, 58, - 9,172,144,114,116,157, 26,204, 7,197, 52, 70,188, 0, 28,211,209, 4, 8,175, -160, 56,146,166,211,104,251,166,135, 18, 10, 18,255, 57,100,252,225,225,220,134, - 7,224,201,226,176,102,214,197, 8, 67,127,172,131,128,182, 9,216,104,232,112, -132,160,108, 88, 61,183, 37,182, 96, 6, 11,252, 88, 1, 45,219, 82, 22,232, 24, -229,135,241,117, 83,230, 24,143,158, 21, 1,112,225,193, 54,134, 28,251, 90,163, - 5,161, 69,255,234, 99, 87,250,160,229,159,249,130, 80,245,226,195, 66,161,168, -177,148, 89, 36, 7,244, 28, 52, 25,149,153,210, 55, 92,177,107,134, 36,206,112, -250,126,248,138, 22, 39, +// ../Source/Shared/GB_select_shared_definitions.h: +uint8_t GB_JITpackage_62 [393] = { + 40,181, 47,253, 96,118, 2,253, 11, 0,150, 23, 72, 31, 16,147,117,176,245, 14, +175,180,109, 92,129,187, 33,249,246, 95,123,203, 10, 49,197, 93,131,151,161, 23, + 17, 0, 64,149,222, 63, 0, 64, 0, 57, 0,242, 82, 79, 99, 46, 97,213,132, 33, + 55, 87, 33, 11,182,213,109, 24,223,254, 96,145,213,120, 86,238,252,149,198, 91, + 90,159,243,124, 82,143,135,190, 47, 36,101, 39,237,219,179, 35,195, 12,114,117, +210,102,247,177,198, 54, 99, 64, 94, 40, 68, 83,161, 16,145,225, 45,195, 6,209, +186, 61, 50, 80,136,137,229,115, 91,245, 69,229,142,125, 39,195,107, 98, 59,249, +245,100,210, 88, 22, 10, 50,168,178,229,203,237,149,156,190, 92,211,170, 75, 9, +132, 1, 49, 41, 14, 6,196, 9,111,112,201, 54,200, 89,167,170,135, 2,147, 57, + 15,109,126,219,199,252, 20,107, 29,111, 91, 94,206,108, 1,195,143,246,102, 7, + 78,239, 43,237,186, 29, 10, 56,240,201,188,249,165,243, 12,114,242,150,173,123, +215, 92, 63,222,236, 89,222,199,190,164,105,238, 87,251,184, 81,108, 56, 57, 16, + 25, 94,193, 46,106,187,113,136, 34, 25, 70,169, 92,152,139,114, 61, 28, 86,102, + 57, 46, 85, 4,203, 48, 13,199,196,129, 69,134, 51, 2, 0,143, 34, 10,115, 73, + 94, 89,153, 70,198,210,184,188,116,115, 56,221,165, 80,165,247,185,120,233,117, +229, 35, 32, 48, 66,130, 20,149, 7,115,129,137, 4,169, 7, 0,220, 49,194,211, +148, 29, 73,198,147, 88,166,198, 1,106,221,189,112,213,197,202,248,166, 27,130, + 1, 0,191,146, 65,130,152,113, 4,193,225,189,244, 32, 46,253,164, 99,216,241, + 18, 94,105,209, 54,212, 41, 79, 28, 7, 32,218, 98, 44,199,238,155,161,103, 38, +196, 50, 10,172, 99,134,142,201,192,160,162, 96, 8, } ; -// ../Source/Template/GB_concat_full_template.c: -uint8_t GB_JITpackage_85 [561] = { - 40,181, 47,253, 96,179, 4, 61, 17, 0,134,221, 90, 32,240,218,230,224, 56,132, -148,154,154,216,142,137,118,121,144, 25, 12, 16,180,167, 14, 39, 9,240, 9,167, - 56, 44, 98,161,149, 10, 82, 0, 78, 0, 81, 0,161, 83, 26,111,104, 48, 20,140, - 3,100,161, 96,124,192, 9,110,192,147, 37, 47, 71,196,187,190, 28,130,115,116, -131, 40,118, 44,159,149, 55, 19,105,124,165, 21,117,158, 43, 81,214,154, 55, 75, - 48,204,117,190,233,204,191,124,103, 89,251,145,206,146, 90,176,243, 70,233,202, -219,178,228,106,200,109,150,204, 19,137,236,144, 72, 4,156,109,164,217,120,221, -121, 19, 16,251,203,185, 83,255,255, 44,131,101,120,245, 28,214,227,249, 46,252, -114,131,199,243,203, 55,132,120,190,175,124,124, 87,229,181,123,154, 76,129, 96, - 28,250,227,164,141,143,220,158,222,204,181, 59,205,161,113,109,110,118, 14,164, - 11, 8,209, 53,235, 54,238,208,113,254, 82, 51,222,105, 83, 42,175,180,183, 96, -120, 9,166,228,181,209,106,154,166,181, 6,130, 83,222,138,207,220,188, 25,247, - 37, 28, 3, 42,141, 50,111,118,149,134, 33,170, 49,109,128,198,201, 19, 40,127, - 85,112,118,146,202, 33,158,242,218,148, 37,159, 55,199, 35,215,249,140, 63, 34, -205, 22, 67, 60,183,248,174,179,131,241,132, 48, 1, 89,230,117, 87, 87,128, 44, -139,101,177,129, 33,218, 27, 52, 43,120, 9,244, 57,197,147,102, 77,137, 4,119, - 66,225,218,180, 42,214,124,225,249,202,140, 39,119,202,181,153, 80,201, 7, 40, -159,135, 21, 10, 19,201, 21,167, 60, 90,193,128,155, 89,102, 44,104,186,234,250, -227,240, 7,117,139, 2,220,201,190, 95,222,192, 85,253, 13, 3, 80, 32,112, 68, -134,206,234, 1,226, 28, 64,100,192, 44,219, 11,100,150,207, 65,137,178, 37, 36, -186, 15,235,188, 65,178, 8, 48,172, 30,112,163, 89, 71, 98,146, 24, 95,192, 17, -122, 89,231,192,196,167,101, 2,199,131, 53, 8, 99, 32, 52,108, 14,209,239,144, -218, 94, 48,235,168, 2, 36, 21,194,141, 76, 34, 39,141,124, 25, 63,196,198, 81, -152,132, 16,111,159, 16, 52,224,232, 92,194,192,118,205,129, 63,214,123,127, 3, - 50, 34,132,158, 1,126, 30, 36,106,168, 15,155,207,196,218, 26,209, 25,169,192, - 0, 26,230,192, 95,197,221,117,178,192,187,122,124, 61, 37, 0,216, 12, 10,147, - 80,194, 14,224,240,208,141,150,120, 80, 38,106, 25,200, 6,144,167,213,181,108, -154, 29,194, 76,235,224, 96, 13,190, 41, 50,212, 71,224,139,151,196,156,162, 96, - 8, +// ../Source/Shared/GB_unused.h: +uint8_t GB_JITpackage_63 [449] = { + 40,181, 47,253, 96, 62, 3,189, 13, 0,166, 25, 80, 32, 0,183, 27, 22,161,215, +248,158, 49,194, 70,177,137,253,103,198,194,211, 52,252,242,210, 32,136,178, 94, + 84, 85, 45, 8, 12, 8, 70, 0, 69, 0, 73, 0, 7, 30,100, 2,166,236,139, 58, +194,132, 7,151,184,251,121,207, 97,234,122, 88, 32, 28,216,117,210,112, 91, 27, +188,252,126,120, 69,187,209,167,181, 71, 92,189,123,208,251, 50,246, 46,212,246, + 39,127,151,109,123, 91, 87,144, 27, 28, 97,186, 13,105,136, 65, 38, 92, 85, 81, + 86, 85,108, 61,251,180,185,204, 61,166,223,223,174, 78,125, 99,159,220,101,237, + 99,183, 97,103, 14,137, 5,194, 65, 58,151, 53,248,224, 70,245,215,254, 82,159, + 21,233,150,122,246, 22, 9,138,104, 8,211, 69,213,173,111,216, 94,110,251, 13, +119,221,131, 41,196,161,112,144, 11, 67, 33,167, 19, 91, 86,165,243, 64,140, 3, + 54, 20, 12, 9,110, 8, 56,240,253, 12,239,197, 93,135,246, 61,124, 93,170,138, +153, 57, 70,235,186, 96, 27,137,165,162,185,100, 44,167,175,249, 12, 68, 10, 22, +145, 92, 29, 76, 71,243, 73,181, 15,196, 72,240, 44, 83,243, 63, 81,243,253,168, +215,102, 75, 5, 49, 2,166,155,190,235,191, 79, 95,251, 73, 29,240,181, 69,242, +186,149, 55, 12,201,143, 4,240,244,250,246,163, 91,255,228, 65,130, 29,140, 97, + 86, 7, 51,193, 48, 1,107,159,253,165, 61, 29,236,122, 73,222,117,253,217,172, + 9,130,161,224,197,194,128, 24, 73,206,178, 7, 5, 45, 32, 32, 66,131,152, 85, + 30,115, 3,247,131,214, 20, 40,128,193,205, 70, 5,200,250,105,127, 82, 25,140, +135,235, 5, 12, 26, 8, 29, 30,235,134,142,239, 0,157,129, 68, 6,119,139,135, +107,159, 57, 87, 26, 15,243,181, 93,145,182,127,173,140,200, 36, 70,104,142, 25, +130,252,247,114, 81, 49, 21,192, 48, 0,174, 91,204, 15,231, 10,161,147, 26,145, +199,145, 24,144, 90,243, 80,193,202, 91,224, 67, 14,254,166,217, 60, 51,173, 77, +129,213,154, 39, 16, 10, 21, 5, 67, +} ; + +// ../Source/Shared/GxB_complex.h: +uint8_t GB_JITpackage_64 [712] = { + 40,181, 47,253, 96,179, 6,245, 21, 0,214, 33,105, 33,240, 88, 55,192, 9,121, +240,238, 22, 57, 40,149,243, 14, 39,101,183, 23,119,121,212, 43,181,126, 28,193, + 82,100, 19, 65, 19, 26, 2, 95, 0, 89, 0,100, 0,250, 62,181,152, 44, 52,225, +104,245, 79,249,245,119, 92,239,145,100, 59, 78,146,157, 27, 18,220,129,203, 24, +136, 3,231, 24,189,220,160,237,105, 78, 92,235, 92, 53,110, 92,178, 30, 55, 56, + 94,231, 89,130,191,173, 9,180,244,151,170,237, 14,118, 24,201, 88,206,108,241, + 31,183,103, 44,186,190,216,110,123,173,248,213, 29,163,150,122,178, 44, 97, 26, + 74, 82, 22,223, 54, 43,219,182,186,220,123,116,252,107, 51,245,219,183,225,210, + 79,252, 31,116,215,242,214, 78,186,215,122, 29,124, 53,145,244,218,128,255,200, +239,164,254,164, 21, 93,219,171, 88,212, 59,125,135, 92,194,171, 24,240,118,173, +159,210,233,186,254, 95,207,120,207,252, 37,246,250, 89,126,109,242,233,226,103, + 29, 52, 46,251,145,206,178,115, 71,126, 43,218,125,191,126,217, 7, 26,133,235, +181, 32,223, 34,214, 56, 83,155,193, 28,179,104, 58,140,175, 86,152, 15, 67,241, +104,190, 48,188, 0, 46, 16,120,135,242, 9, 61, 48, 19,250,229,238,238, 86,192, +186,132, 33, 10,134,147,217,120,161, 36,100,113,241,235, 21,109,192,178, 2, 13, +110,129, 56, 40, 20, 13,196,134, 51,250, 58,255,254,113,103,215,102,212,238, 47, +141,219,230,153,109,154, 30,141,112,205, 85, 67,161, 80,219,230, 8,150, 37,218, +122, 63, 96,137,182,222, 15,112, 9,236, 11, 9, 94,112, 12,203, 23,118, 93,216, +117,137, 14,123,112,245,227,234,116,102,176,115,218,194, 41, 37,205,146,191, 54, + 85,176,235,201,145, 9, 87, 47,116,223, 19,147, 34, 2,225,249, 7,106,186,215, +228, 35, 28,220,116,188, 46, 19,130,221, 37,148, 96, 94, 73,107, 26, 93,142, 89, + 67,190, 42,161,212,228, 81, 9, 63, 83, 4,226, 94,119,160,193, 45, 98, 68, 70, +100, 36, 41, 73, 10,105, 12, 48,134, 16,114,138,206, 3,158, 49,158, 76,143,151, +191,176,145,179,183,235,177,133,148,131,250, 11,135, 3,238,167, 12, 57, 99,172, +178,133,120,120, 0,200,110, 64, 86, 26,208,121, 53,111,251,131, 8,167, 69, 96, +177,238,186,213, 78, 42,178,176,222,102,164, 40,223,237,205,240,139,181,165, 53, + 34,139,213,172,172,195,212,172,169,214,122,155,241, 58, 17, 81,176,200,127, 8, +203, 59,145,101, 33,114, 80, 8,178, 71, 80, 10, 88,100,214, 88,210,118,144, 77, + 34,157, 7, 88,142,110, 15,178, 3,125,208, 1,218,182, 78, 66,113, 11,176, 0, + 0, 88, 68,225,135, 59, 22,200,170,246, 90,139,183,232, 92, 50, 5, 88, 83, 74, + 38,183,160,251, 91, 42,127,189, 72,165, 11,190,220,140,144, 63, 43,132,183,138, +183,177,163,127, 90,228, 65,131,251,162,104, 3,102,125,112, 80,140, 50, 67,130, +146, 6, 28, 36, 3,117, 3,185,133,165, 98, 86, 8,154, 28, 42,224,117, 65, 10, +220,161,150,107, 64, 26, 88,142,140, 7, 32,160, 11,142, 1, 34,193, 99, 3, 0, +136, 98, 62,170,136,229,180,152,194,250,235,220, 52, 55,234, 77,111, 21,127,109, + 66,139,112, 73,209, 30, 76,220, 82, 20, 56, 1, } ; -// ../Source/Template/GB_concat_sparse_template.c: -uint8_t GB_JITpackage_86 [1015] = { - 40,181, 47,253, 96, 35, 13,109, 31, 0,166, 44,133, 39,224,178, 86, 7,228,235, -235, 61,178,179, 77,125,124,249,229,130, 91,145, 3,119,239,157,115,174,103, 65, -181,177, 13, 68,249,136,151, 38,204, 16, 37,198,132,123, 0,120, 0,119, 0, 52, -132,221,246, 27, 99,156,168, 66,185, 76, 24,171, 32,109, 63,168,220, 87, 95,201, - 86,102,194, 86,114,213, 18, 19,140, 5, 13,197,226,142,202,150, 45,110, 47,230, -105,139,199,216, 62, 13, 92, 42,151,137,129,165,114,121,164,146, 62,217,238,128, - 11,167,180,135,176, 59, 63,205,249,180,105, 18, 10, 24,133,213,225, 96,195,183, - 65,155,232,163,235,133,159, 31,126, 94,217,231,216,247,240,124,161,228, 31,240, -133,145,126,248, 62,182, 21, 82,251, 46,172,228,172,158,130,195, 5, 4,162,137, -128, 64,153,147, 28, 59, 96, 55,134, 81,234,244, 62,130,130, 43, 91,130,129,194, -130, 33,226,113, 50, 16, 87, 91,146, 1,156,115,238, 17,230, 31, 9,147,246,136, -116,234, 31,237,183,234,122, 45,215,128, 51,104, 50, 56,175, 93,203,105,142,162, -194,189,138, 77,230, 98, 75, 94, 13,224,126,217,243,255,143, 34,144, 40,162,112, -101,236, 22, 55,157, 21, 87,120,203,160, 8, 59,110, 73,248,169, 77, 43, 25,187, -159,166,109,247, 43,243, 83, 40,252,220,222,248,157,242, 83,140,160,235,117,126, -170, 28,183, 36, 79,141,222, 54,118, 35, 28,211,129,212, 94,231,173,184,227,216, -205,174, 73,251, 58,135,198, 47,158,163,145,236, 19,214,164,183,247,160,224,112, -234, 28, 8,207,142,249, 59, 26,212, 65, 36, 18, 4,204, 43,167,164, 72,213, 23, - 94, 43,113, 4, 89,140, 85,246, 17,201, 90,144, 43,118,223, 7, 36, 95,231,245, -200, 49,194, 10,233,233,103, 30,126, 60,176, 82,171,239, 93,232,242,128, 10,175, -165, 54,179,240,202,215, 46,129,209, 35,251,101,252,184,234,104,219,187,182,246, - 21, 81, 3, 1, 76,219,175, 57, 42, 61, 67, 83,209,218,135,235,174, 78,189,227, -220, 68,226, 28,237, 52,170,241,110,157,105,137, 4, 1, 67,189,209,133,137,204, -230,181, 9,135,102,161,153,148, 66, 75, 36,179, 92,251, 74,126, 5, 74,192,200, - 54,114, 72,199, 34,153, 44, 84, 58, 69,102, 34,243, 78,157, 98,177,244,136, 17, -246,198, 67, 81,206,135,224,231,152,134,131, 68,168,103,210,175,182, 72, 44, 19, -213, 84, 58,153,198,105,133, 78, 27,225, 47,104,227, 83,163,239,178, 39,180,113, -150,211,186,133,152,128,203,168, 33, 61,135, 12,205,136,140,164, 36, 73,210, 26, - 64,132, 24, 83,101, 85, 7, 66,240, 52, 16,161, 32, 5, 13, 17, 32, 42, 16, 9, - 68, 36, 16, 9, 38, 16, 17, 81, 80, 78,118, 23,139,112, 6, 97,187,168,196,175, - 87,224, 75,218, 81,175,152, 10,188,202,195, 97,141, 41,202,174,214,234,239, 78, -249, 1,235, 66,227,169,217, 70,224,145, 40,114,186,236, 22, 24, 93, 72, 71,237, - 85,250, 61,145,200, 80,111,235,208,169,131, 92, 28, 25, 4,224,155,183, 65,250, - 71,127,222, 77,254,229,248, 75,219, 98, 67,144,247, 57,244,148, 56, 35,168, 16, -156,235,243, 32,253,181,177, 19,186, 44, 59,227,116,167, 48, 94,190, 87, 56,235, -187,113,124,237,157,205, 65,222,223,193,254, 74,248,159, 24, 81,142, 93,182, 8, - 48,126,191,195, 65,208,195, 40, 91, 20,140,208, 36, 5,115,210,112, 5,140,186, -207,136, 99,223, 67,240,126,226,141, 53,253,114, 89,130, 45,112, 76, 19,154,177, - 77,154, 77,117, 22, 25,191,136, 0,214, 32,107, 74,237, 19,164,122,239,130, 67, - 25, 2, 72,202,129,135,213, 39,145,158, 64,242, 60,134,168,102, 48,111,161,198, -239,121, 88,232, 78, 10, 82,208, 23,181,150, 88,128,133,122, 58,111, 12, 49,175, - 33,178, 83, 49,180,160, 79,167,205, 9,164, 15,208, 55, 84,117,165, 22,255,144, -137, 64, 92, 3, 1, 13,105,116, 59,177,193, 59,144, 82, 32,135, 17, 90, 35,219, - 61, 82, 28, 73,144,138,187,216, 58,253,133,100,185,165,129, 22,153,242,222,232, - 5,232,229, 69, 54, 82,179,207,144,214, 15, 3,208,215, 85,101, 15,101,138,162, - 46,145,229,178,126, 56,240, 95,131, 48,110,226, 91,213, 90,134, 5,238, 89,131, - 81,213,224,217, 20, 23,199,131,140,236,234,245,250, 26,241,118, 45,238, 5, 84, - 70, 93,198,139,208,123,187, 17,186,205, 7, 56, 71,215,185,121, 83, 84,232, 24, - 95,241,169,100, 31, 54, 64,110, 87,226, 73,202,211,206,109,233, 7,128,131,152, - 26,102,162,100,106,219,185,169, 14, 9, 28,232,182,217, 52,169,106, 48,205,117, - 93,111,150,130,107,186,157, 35,250, 47,186,175, 52,208, 4, +// ../Source/Template/GB_AxB_dot2_meta.c: +uint8_t GB_JITpackage_65 [2052] = { + 40,181, 47,253, 96, 55, 47,213, 63, 0,150,252,182, 41,176,146,217, 28,170, 70, + 99,199, 27,154,246,231,168,157,119,146,207,118, 82, 3,243,132, 49, 82, 91, 51, + 80,138,156,226,249, 32,142, 31,244, 31,244, 95,120, 40, 1,170, 0,170, 0,175, + 0,249,222,230,167, 96,177,195,209,119,177, 69,109,223,226,124, 37,173,119,118, +126,146,207,125,241,255,135, 64, 58, 32, 24,148,219, 2, 62, 60,218, 49,224,221, +141,149,179,212,162,121, 52,109,169,215, 93, 4, 66, 81, 44,147,254,184, 25,202, + 95,196,166, 30,205,182,187,205,164,177,109,142,114, 38, 20,154, 15,165,107,145, +216,184, 65,199,249,187,160,160,215, 42, 63, 25, 88, 40,203, 36,161, 66, 89, 46, +225,164, 79,152,138,166,230, 20,249,209,151, 47, 72,181, 79,153,228, 84, 95, 56, +197,135, 75, 99,113,134, 89,103, 58,102, 16,156,185,177,187, 98,248, 79, 42, 2, + 16,239, 51, 24,131,245,169, 34, 24,144, 24,235,151,153, 27,220, 44,249,118, 91, +181, 33,183,234,225, 5, 5,144, 73, 65, 65,159, 10, 8,128,234, 24,207,189, 50, +144,252,100, 21,165,161, 48, 51,169,194, 10,226,209,206,118,142,145,142,169,247, +134, 26,215,182, 54, 76, 55,139,115,117, 64,151,196,166,109, 34,188,238, 60, 26, +177, 93, 69, 25,135, 50, 19,235,152,135,172,103, 14,183, 72,160,176,112, 9,135, + 51,225,112, 15,143, 75, 44,233, 31,137,105,155,106,203, 54,210, 53,208,149,101, +114,225,212, 49,199,117,138, 44,247,188, 29, 32, 80,218,222,238,182, 63,141,207, +223,108,233, 51,184, 25,194,180,214,209, 43, 8, 39,152,105, 72,195,246, 82,108, + 27,164,157,216, 32, 62,158,223, 55,168,152, 39,120,235, 25,139,212, 59, 40, 94, +239, 26,183,214,249,225,237,230,119,157,237,229,166, 60,134,150,222,222,143,250, + 11,154, 43,243,124,178,142, 4,105,155, 38,101,135,164,107,124, 67,108,167,152, +183, 77, 86,238,233,216, 49,146,179,237, 16,252,181,159,142,233,173,183, 56, 89, +127,135, 71, 33, 1, 28,165,243,172, 33,216, 57,224,203,116, 67,168, 32, 84,164, +118,213,105, 41, 40,118,230,144,174,101, 29,142,236,108,176,237, 2, 73,142,117, +105, 36,210, 37,146,132, 97,191,188, 1,147,176, 15,230,177,254, 16,188,156,102, + 77,128,180,108,147,200,228,184, 97, 88, 4,203, 68, 24,172,133,144, 61,193,155, +163, 21, 79,123,204,113, 6,158,217, 94, 90,150,101, 65, 30, 58, 27,208, 6,187, +178, 13,180,169,232,200,170,170,170,106, 67, 34,109,104,154, 38, 63, 0,151, 82, + 74, 41,165,148, 82, 74, 41,165,148, 82,134,114,122, 7, 93, 1,144,138,203, 76, +172,143, 10,149,153,100,240,121,107, 14,138, 1,198, 94, 56,192,229, 82, 73, 23, +217,209,107, 47,248, 47, 83,141, 91, 58,201,149,142,161,215, 58,127,193, 34, 5, + 27, 95,186,122,191,119, 23,150, 94,143,190, 59,166,215, 92, 22, 27,142,220, 88, +215, 39,171,147,114,157,153, 48,201, 53, 27, 79,199,131, 29,195,176,105, 82,232, +122,172, 83, 28, 37,121, 98,131,124, 59,233,185, 67,183,216,193, 47, 18,201, 54, +216, 21,187,116, 93,239,187,134, 40,190,165, 66,141,166, 70,157, 17,134, 14,200, + 72,188,153,155, 30, 69, 85,100,133,170,100,117, 1,129,227,198,147,187,193, 79, +153, 62,170,153,114,148,118,247,203, 13,222,114,204, 79, 85,168,143,234,212, 43, +150, 53, 77, 50,130, 71,168, 98,212, 78, 41, 26, 25, 25, 41, 72, 82, 88,214,146, + 41,132, 1,105, 22,136, 97,106,249,194, 88, 52,201, 16, 9,196, 97, 12, 33,136, + 17, 39, 32, 4, 9,136, 34,129, 72,100, 18,200, 4, 51, 10,212, 28, 52, 39, 74, + 35,200, 92,169, 75,101,112, 96, 77,121,195,185, 12, 80,153, 43,131,212, 61, 45, +176,150,227, 87,105, 77,117,173,227,194,191,186,161, 66,128, 25, 11, 16, 50, 18, + 82, 24,134,243, 17,148, 99, 12,176, 54,249,180,170,164, 9, 10, 40,156, 77,161, + 10, 44, 52,211,236, 11, 91,209, 57,161,202,238,102,255, 38, 27, 74,172,255, 32, + 4, 38,227,145, 46, 4,194, 98, 73,246,176, 45,161,113,195,109, 83, 41,126,168, +251,222,158, 80,143,216, 59,246, 85,228, 81, 20,226, 40,237, 77,163, 81,153,168, + 70, 20, 63,138,238,119,152,133,195, 28,184, 50,241, 92, 50,154,102, 54,145, 75, +177,225, 40, 59,149,188, 9,187,144, 88,174, 87, 4,140, 18, 97,176, 33, 16,129, + 86,224, 75, 54, 5,194,209, 27,144,237,218,188,110, 72,139, 41, 3,229,100, 58, +163, 69, 25,209,171,142,240, 13,201,197, 37, 9,154,146,185, 91, 66, 85,245, 83, +120,101,216, 3,212,187,156,101,115,166,176,138,162,188,151,143,212, 98,216,186, +120, 34, 98, 39,112,197,148,180,247,118,168,198, 54,248,170,193,193,120,147,167, + 96, 69,120,178,252,192,253, 50, 72, 64, 93,190,152,215,170, 5, 57,230, 85,149, +182, 49,120, 84, 69,249, 49,169, 14,181,198, 88,179,172,221, 41,236, 72,198,201, +245,157, 23,112,211,127,171, 59, 93,147,220, 85,112,108,112, 27,217,155, 56, 75, +216, 65,116, 10, 52,118, 38, 61,232, 39, 61, 93, 25, 46,132,115,167, 50,191, 50, +152,214,212, 2, 43,116,223, 83,185,122,139,241,227, 48, 36,213, 83,158,212,174, +171,225,162, 80, 53, 74, 67, 57,128, 89,160, 58,227,213,206,130, 49, 14,138, 95, + 16,202,107,215,241,179, 85, 12, 51,111, 47,203, 93,223,150, 83,248,151,131, 82, +157,165,135, 95, 84, 25,110,248,102,114,146, 54,229, 87, 43, 56, 91, 91,130, 2, + 49,124,202, 93, 56, 18, 56, 45, 86, 36,158,225,231, 79,181,255, 86,110,174,101, +109,218,168,180,247,232,175,149,195, 44, 58,173,190,142,149,184,131, 72,154,248, +216,248, 1,121, 12, 2,153,224,112,120, 48,161, 61,254, 37,226,131, 31,187, 19, + 3,121, 51,220, 68,249, 55, 7,251,199,195, 28, 87,111,104, 19,152, 21,178,148, + 17,102,216,116, 77,108, 92, 71,149,173, 41, 68,162,195,112, 7,105,223,167,179, + 1,196, 20,223, 1,158,205,128, 30, 29, 68, 89,165,216, 27,202, 50, 58,214,128, + 11, 82,206,162, 62,247,133,224,243, 11,189,162, 77,202, 19,213, 59,170,179,164, +119,146,132,216,155, 31,151,129,182, 91, 99, 39,226,102,186, 16,101, 17, 31, 31, +196,229,144, 78,229, 26,125,138,129,170, 53,251, 28,225, 17,156, 84,103,176,244, +208, 36,201,253, 38,172,237, 11,115, 21,130,163,246, 71, 67,231, 33,244, 14, 57, + 53,106,227, 54,173,123,128,119,212, 70, 93,134, 36,165, 80,229,231, 37, 63, 85, + 93, 41,111,130, 81,212,229, 34, 19,172,151,140, 46,191, 83,210,252, 68, 72,218, + 72,188,112,194, 33,105, 14, 9,121, 81,132,169,215, 33,114,222,150, 79, 72, 54, +144, 64,120,158, 12, 42,136,200,122,117,118,123, 66, 61, 48,143,242, 64,155, 79, +141,139,207,187, 44,105, 38,186,143, 66,151,240,253, 53, 23,222,177, 92,220,169, + 35,217,202,229,102, 58, 49,213,245,130, 81,143,184, 53,200, 63,102,136,125,237, +249,145,218,110, 65,165,125,126,218, 75, 20,130,131, 26, 19,207, 11,186, 68, 29, +141,130,205,201,129, 4,102,242,149,168, 55,107,232,129, 39,109,183,135,224,114, + 21,152,124, 79, 46,123, 31,188,198,212,233,181, 65,254,189,217, 81, 79, 34, 37, + 81,212, 46, 46, 23, 20, 5, 64,110,210,174,110,102,213,121,160,148, 79,213,106, + 89,211, 84,137,117,186,137,162,100,131,192, 25,181, 30, 57,200, 68, 63,201,118, + 91,252,228,201,222, 93,252,245, 21, 19, 78,100,237,215,168,132,211, 66, 27, 9, +248, 8,131,182,249,125,140,202,185,223,164, 62,127,134,160,177, 73,202,211,192, +139, 79,123,124,156, 69,130, 26,214,165, 11, 66,144,235, 90,174, 0,212, 83,222, +140,201, 38,143, 64,165,108,204,169, 32, 7,231, 87,106,250,128,244,184, 10,132, +125,193,114,195,103, 43, 29,188, 97, 49,228, 73,227, 10,172, 30,254,248, 77,236, +200, 95, 36, 22, 53,148, 57, 16,231,194,174,127,118, 20,198,237,159,108, 6, 98, +104,132, 3,251,150,216,168,146, 18,131,222,191, 1, 1, 5, 87,213,223, 35, 77, +224, 60,240, 37, 86,230,104,110,183, 28, 45,125,226, 64,204,167, 0,204,174,221, + 66, 99,126,236,193,143, 54,181,115, 67, 22,139, 20, 58, 83, 42,246,184,129,200, + 26,227, 67, 31,152, 11,170,104, 55, 16, 84,211,118,191,135,170,146,151,240, 33, + 10,208, 75, 96,246,168, 69,245, 49,194,235,193, 63, 12, 32, 27,202,144,187,109, + 2,247, 69,151,149,128,152, 73,209,221, 67,100,226,105,112,174,209,149, 66,189, +231,194, 38,247, 59,219, 68,232,108, 50,110, 2,181, 7,229,123,130,223,132, 63, + 8,184, 38,247, 91, 93,183, 5, 20, 43,163,250,175, 99,111,205, 84,252, 53, 30, + 31, 23,136,178,248,170,133,156, 50, 72,133,157, 19,145,198,128, 14,158,190,101, +250, 33,114, 15,229, 94,208, 62,209,229,212, 4, 7,189, 6, 59, 41,122,138,100, +253, 88, 60, 55,100, 80, 98,223,249,253,255, 88,132, 3, 80,137, 41, 83,236,115, +205,208,205, 5,241,107,112,227, 27, 63, 33, 65, 51,152, 90,239, 61,111,167,180, +213,129,202, 49,169, 71, 47, 66, 40,218,134,110,116,223,202, 31,144, 85, 44, 38, +233, 87, 45, 33, 63, 64, 42, 94,207,144,108,250, 20,202, 78, 82, 25,115,148,247, + 90, 46,167,183,133, 26, 7,163, 65,243, 66,203, 76,217,141,248,207, 53, 96, 33, +129, 4,123,130, 25,108,217, 71,171, 35, 95, 14, +} ; + +// ../Source/Template/GB_AxB_dot2_template.c: +uint8_t GB_JITpackage_66 [2026] = { + 40,181, 47,253, 96, 53, 32, 5, 63, 0,170, 69,252, 12, 45,160, 78, 25,235,184, +194, 44, 82,108,249,122,136,121, 98,176,241, 11,253, 82, 96,190,194,181,190, 6, +247,144,161,156,105, 67,140, 81, 0, 68, 30, 94,193,235,240, 58,104, 29,158, 42, +193, 0,202, 0,193, 0,207, 69, 88, 78, 77,242,199,194, 37,243,126,155,213, 99, +251,214,100, 97,198, 8, 63,246,205,171,241,149, 51, 11, 77,117, 74, 44,103, 93, + 47,220, 46,136,202, 62,127,238, 61,215, 31,169, 76, 67,159, 87,214, 96,121, 42, + 70,144,135,194,237,118,231,147, 61, 87,248,234,154,132,119,142, 73, 36, 2,194, +159, 12, 82,119, 74,229,246,244,149,172, 93, 16,182,146,179,190, 64, 32, 84, 52, + 17,141, 53, 42, 91,222,220,222,207, 69,111, 30,163,251, 68, 32, 98, 18, 1, 57, + 0, 49,137,184,148, 69,159,108,107,192,202, 35,238,161,207,157, 91,115, 62, 97, +238, 82,125, 40,172, 9, 40,108, 43,164, 24,223, 6, 97, 14,123, 51,144, 54, 43, +253, 97,107,188,122,168,243, 83,245, 48,192, 77, 80, 96, 28, 36,172,159,194, 23, + 70,186,241,125, 17,119,106,175,218,112,175, 74,112,137,196, 1,145, 72, 2,212, +181,190,191,178,185, 2,144,176, 44, 7, 6,135, 84, 9, 16,240,141, 69, 19, 65, + 1,128, 71,111,216, 26, 94,103,173, 12, 48,135,121, 21,153, 12,148,132,113,176, + 11,130,229, 69,246,218,222,224,223,190,173,243,182,207,160, 67, 57,167,189,133, +150, 53,160,253,164,245,148,115,123,157,158,202, 85,145,169,192,188, 8, 25, 23, +234, 60,164, 65,174, 17,222, 90,142, 18,244,201,211,154,124, 60,108,132, 26, 50, +123, 25, 22, 94,234, 16, 29,139,109,100, 7, 71, 6,234,146, 69, 63, 77,209, 45, + 78, 3,141,228,225, 20, 44,106,241, 13,235, 15,146, 99,152,240,255,142,203,165, + 1,130,135, 93,207,106, 7,135, 4, 57, 56, 48, 58,251,196, 37,140,169, 35,235, +148, 5,151,245, 44, 14, 28,246,176, 8,238,193,197, 85, 44,219,119,103, 11,229, +181, 89,151, 26,203,246,176,230, 80,177, 96, 21, 26, 44,227, 54,156,199,169,200, + 4,152,187,146, 45, 87,154,249, 35, 23,178,219, 78,122,202,194,116,187,118,253, + 41, 41, 48, 14, 18, 16,139,247,235, 52,140,215,214,246, 80,159, 59, 93, 6, 6, +201,190,210, 52,249, 68,225, 33, 32,250,101,187,241,214,177, 94, 33,199,236, 82, +206, 54,248, 83,232,210,141,167,246,121,159, 81,167,133, 79,121, 12,144, 11, 18, +163, 3,241,192,176, 56,141,110,193, 54, 78,131, 85, 21,117,201, 81, 35,187, 69, + 41,145, 37, 65, 77, 28, 67, 2, 80,117,170, 10,226,241, 83,176,184, 21, 94,251, + 92,198,239, 43, 96, 32, 64,135, 58,103, 29,109, 71, 94,242,224,181,117, 94,218, + 53,179,172,253,242,197, 31, 15, 43, 47, 65,125,242,137,136,242,136,228,108,174, + 18,196,148,245, 6,101, 72,139, 56,130, 52,254,100,246,146,140,236,231,190, 13, + 36, 35,199, 8, 43,164,167,219, 60,220, 46, 96,165, 1,142,170,170, 42,141,195, +112,174,106,226,209,144, 69, 94,195, 89, 3,197, 76, 78, 18,100,174,205,133,177, + 96,239,226, 44,155,183,185, 92,131,139, 70,178,108,220,197,178, 84,216, 70,232, +121, 24,157,213,121, 12,221,253, 11,111, 47, 81,174,229, 75, 59, 67,154,156,194, +185,134,109,113,234,156,227,206,231,165,216, 86,128, 56, 69, 84,249, 94,152,217, + 75,230,206, 45,252, 76,137, 47,180,221, 62,113, 48,103, 97, 62,129,209,219,227, +156, 29,137, 22,186, 29,170,176, 86,120, 10, 70,194, 76,248, 84,132, 21,116, 51, + 80,189, 22,115, 74,196, 94, 9,121,235, 11,225,216, 17, 78,217,229,103,251,209, +109, 98,206,153,108,251, 41,194,206,152,218,219, 51,210, 13,214,152,229, 45, 79, +237,145,101,229,140,115,174, 5,210, 43, 22, 9,215,197, 93,150, 69,131, 69,143, +209, 57, 27, 11, 22,130, 5,168, 82,164, 16, 42, 52, 83, 34,133, 5, 73, 74,141, + 1,162, 32,132, 1,105,170,232,129, 78, 31,210,112, 72,136,130, 12, 4, 98, 2, +226, 8, 49,134, 24, 34, 5, 34, 50, 18,136, 4, 20,148,164,196, 57,146,123, 75, +104, 91,149,114, 6,164, 54, 98, 62, 29,138,201,159,188, 30,113, 54, 49,122,148, +249, 45, 93, 81, 99, 96,243,184,160,146,200, 69,129, 42, 24,221,136, 34, 63,241, +207, 83, 77,228,175,179, 55,187,113,149,203, 44,198,171, 55,199, 31,210,170, 6, +137, 9,110,166,201,116,168, 17,152,254, 66,234, 11, 26,221,197,131,123, 5, 37, + 78,227, 33,245,176,222,237,139,131,135,190,114, 6, 28,240,193, 70, 91, 29,194, +211,131,148,190,135, 67, 75,173, 3, 20,208,142,171,207,147,128,195, 89,133, 9, + 96,250,242,189,252,234,251,237, 97,115, 71, 23, 53,116, 70, 43, 17,124, 74,131, + 78, 83,223,159,101, 91,204,158, 97,150,232,115, 15, 16,223,143, 23, 34,156,146, + 32, 82,114,109,183,233,209, 4,213, 25,190, 23,225, 15, 20,229, 9,131,139, 53, +190,246, 45,141,177,243, 14,213,131, 80, 0, 71,140,160, 72, 50,251,127,252,165, + 42,191, 83,242,158,122, 61, 61, 81,117,254, 17,112,210,248,233,116,154,194,176, +225, 75,183, 88,155, 64,224,182, 21,167, 90, 74,181, 41, 16,101,143, 73,122, 66, +100,120, 1,113, 22,145,139, 29, 61, 24, 77, 58,117,131, 17,131, 4, 38, 93, 61, +113,162, 1,144, 35,235,244,212, 70,110, 3,114, 5,101,117, 68,100, 71,204,250, + 1, 34, 57,180, 68, 24, 41,190,140,172, 82,137, 85,166, 73,178,114,118,234,196, + 84,186, 78,185, 95, 12, 12, 61, 5, 79,223, 98,110,182,107, 65,190,167,154,106, + 1,239,206,134,250,180,190, 95, 40, 46,119,107, 76,142,161,223, 0, 8, 65, 84, +112,208,248,133, 70,222, 69, 52,103,142, 82,171,237, 63, 48,244, 76, 91,190,142, +230, 36,140,188, 30, 3,161,255, 42,210,120,179, 36,225, 32,123,158,227,220, 4, +252,185, 62, 32,218,221,122, 0, 71,159, 88, 60, 65, 3, 36, 96,176, 1, 36,176, + 44,114, 41,232, 53,215, 51,194, 85,105,213, 10,240,170,208, 29, 53,192, 33,199, +206,107,157, 57,134, 91,157,199,215,152,171,100,105,113, 90,139, 47, 68,180,223, + 28,140,199,210,206,209,191, 85,131,209, 30, 27, 81,149,165,240, 47,109,137,103, + 46, 3, 60,177,147, 6, 11,253,125, 28, 20,205, 74,133,205,143, 38,251, 90, 61, + 20, 16, 78,225, 94, 58,232,225,115, 54,241,115, 7, 95,162,109,201, 90, 10, 34, +170, 87,138, 23, 68,225,206, 80, 77,190, 83, 62,173, 98, 20,191,104,232,191,118, + 42,195, 67,208,228, 23,152,229,200, 76, 17,118, 39,168,145,170,254,194,233,131, + 42, 51,116, 16,133, 41,230,173, 30, 35,231, 24, 21,236, 21,216,111, 30, 34, 33, + 48, 95, 83,208,220,128,165,231,138,111, 77,138,255, 38, 96,116,205, 95,150, 62, + 21,109,232,193,128,226,198,106,190, 3,127,186,150,244,115,169, 86,124, 65,189, + 97, 37, 20,171,222, 61, 93,143,104,229,184, 56, 91, 18,238,212,126,241,167, 24, + 73,253,135,249,210, 97, 80,114, 39, 80,183,253,246, 51,189,167, 32,105, 20, 4, +114,138,247, 51, 23, 27,172, 31, 39,207,180,154,134,181,229,138,190, 2,127,132, + 68,239, 20,140, 58, 82,118,221,171,225,177,167,144, 31,149,133, 88,160,127,120, + 67,174,154, 40,141,116, 19, 38,209,216,170,244,119, 57,128,102, 34,176,224,204, +169,217,128,107, 42, 86, 76,200,131,167,191,116, 13, 78,103, 26,206,167,216, 96, + 21, 63,166,143, 33, 12, 72,226, 14,179,154,178,160,138,196, 44,172,111, 14, 67, +255,150,124, 36, 18, 48,144,177, 40, 2,181, 12,118,100,165, 89,240,121, 45,241, +207,173,177,239,175,205,185,160,135, 69,157, 1,119,185, 88, 53,240,242, 79,130, +168,206, 15,134, 0,186,106,248,252,125,232, 67,121, 10, 13,165,100,182, 53,210, +183,246, 98,188, 52,152, 16, 30,200, 69,163, 53, 79,118, 17, 31, 92,174, 94, 82, +148,137, 27, 64, 52,134, 17,117,139, 87,205, 21,232,137, 98, 54,238,191,254,120, +252,155,212,211,184, 84,157,222,145,208, 35, 93, 94, 43,140,140,251,187,199, 6, + 59, 68, 60,134,201, 38, 65,112,102, 40,246,170,239,123,180,211,178,218,204,103, +120, 24,116,187, 50,129,222,195,183,213,134, 65,107,200, 86, 94,104,140, 48, 16, +188,224, 38,168, 98, 12, 28,161, 43,196,158, 79, 13, 69,145,242,176, 50,138, 43, +172, 19,195,228,166,137,105,239, 53, 96,155,121,216, 79,129, 88, 87,215, 58,112, + 6, 85,120, 61,161, 58,160,201, 48,106, 47,138,157,154,233, 94,255, 61,209, 62, + 5, 49, 12, 43,204,197, 92,186,151, 8, 79,131,225,171, 5,134,242,128, 84, 53, +129, 81, 73, 61, 35,169,219,117,223, 42,197, 2,150,202,123, 2,118,118,254,153, + 71,203,166, 36,107,193, 16,210,119, 72,117,213,229, 8,207,239,133,213, 92,211, + 91,167,153,119,163, 45, 7, 89, 8,196,174,172, 49,198,161,130, 70, 40,126,212, +117,215,178,252, 78,244,246, 91,240,230,228,207, 37,114, 4,219,228, 28, 35,183, +197,200,227, 25,196, 54, 97,175,219,165,183,166,248, 99, 99,210,241, 34,188, 68, + 34, 34,132,182,210, 73, 94, 85, 40, 3, 11,179,233, 10,218, 25,173,187,103,112, + 92,234, 72,141, 81,217, 52,241,129,153,252, 51, 18, 34,199, 40, 94,136,216,143, + 52,160,234, 40,234, 3, } ; -// ../Source/Template/GB_convert_s2b_nozombies.c: -uint8_t GB_JITpackage_87 [709] = { - 40,181, 47,253, 96,117, 7,221, 21, 0,102, 98,101, 32,240, 24,231,208, 90,236, -139,181, 45, 17,235,197,206, 46, 48,183, 86, 94, 12,189, 95, 68, 14,150, 66,112, -192, 51, 48,105, 17, 94, 97, 0, 87, 0, 92, 0,181, 55,138, 33,120, 38,154, 2, -215,225,109,220,155,227,220,145,232,230,158, 39, 31, 21,137, 67,130,208, 64, 28, - 18, 15,108,216, 35,166,225,156,188, 32,175,234, 50,248,209,206, 35, 71, 98, 34, -157,157,183,226,224,116,166, 39,206,101,231,151,169,232, 96,126,227, 59, 45,254, - 7,222,209,229,239,192, 77, 69, 31,184, 2,171, 38, 74, 96, 45,223, 14, 43,184, -105,145,202, 13,134,139, 96, 48, 4, 94,123,222,188,211,222,126,224,231, 71,154, -215, 2,178,115, 52, 63, 87, 26, 56, 88,177, 27,254,255, 98, 93, 87, 33,207,239, -130,163,207,231,218,184,175,237, 27,229,241,124,126,127, 19,191,187,252, 14,103, -119,145, 60, 87,231, 81, 93, 83,242, 47,220,182,170,238, 23,196,244,242, 58, 20, - 18,132,238,182,105,229, 29,183,233,136,230,218,220,133,208, 56,177,147,216,165, -102,137, 84, 14,121,233,152,118,249, 42,209, 43,120,174,243,188,109,193,119,160, - 20, 29,152,252, 8,124,230, 42, 29,253,113,211,179, 63,227,233,101, 15,129,222, - 27,245,176,212, 32,207,248,210,145,233, 89, 91, 48, 6, 3,108,194,243,143,236, -135, 67, 48, 68,220,232, 55,171,138,195,218, 59,113,221,109,248,129,170, 73, 12, -115,179,111,151,181,239, 84, 31,215,213,186, 90, 8,145, 12,196, 71,236, 31, 77, - 70, 2,121, 8,212,219,244,236,113,166, 29,130, 95, 54, 56,181,217,169,164, 33, - 11,122, 74,190, 79,222, 12, 31,233, 83,205, 85,122, 60, 59,138,201, 63,110,159, -221,102,175,237,133,243,130,151, 14,169, 52,135, 16,131,144, 9,116, 43, 31,227, -175, 24,185,218,143,249,206,140, 53,105, 53, 90,135, 82,201, 30, 48, 61,123,168, -193,161, 82,136, 40, 16,145,130,146, 36, 73,107, 48,132, 24, 83,117,230, 1,162, - 8, 61,204,148, 8, 9,148, 64, 80, 32, 34, 21,148,148,255,187, 3,153, 9,101, -115,212,219, 42, 32,102, 14,118,117,136,254, 19, 36,202,220,150,238,190, 94, 81, - 80,140, 5,171,194, 16,164,208,202,187,152, 80, 54,186, 18,241,100,173, 94, 84, - 59, 23, 65, 54, 29,188,253,249,184,186,144,156, 51, 86,248,223, 29, 84, 55, 80, - 6, 50,226, 98,205,226, 3,121, 64, 8,173,254,173,243,117, 92,133,247, 82,138, - 63,207, 21,232,179, 73, 5, 5, 85,246,139,183, 74,144, 25, 8,232,149,184, 51, - 59,223,140,169,235,209,160, 44, 76,157,117, 47,158, 81,103,237,157, 63, 58,165, -157,209, 25, 78,118,118, 61,123, 33, 86,207,215,244,217, 81,148, 38,208,230,242, -134,146, 72,177, 44,193,168, 76,242, 57,108,224,160, 24, 48, 95,184,227,174, 22, -111,102, 26, 95,249,135, 65, 73,247,136,109, 60,183, 30, 11, 51,237, 92, 23,147, - 34,254,218,114,126,219,223,121, 97, 57,125,166, 40, 8,187, 31, 26,170,133,207, - 40,117,134, 72, 3, 26, 64, 46, 5,192, 36,128,164,188,172, 36,178,232, 31, 98, -238, 38,243, 62,123,249, 37, 8, 28,213,124,211,188,212, 96, 82,148,107, 75,208, - 33,143, 56, 41, 85,233, 53, 12,240, +// ../Source/Template/GB_AxB_dot3_meta.c: +uint8_t GB_JITpackage_67 [1649] = { + 40,181, 47,253, 96,113, 24, 61, 51, 0,214,186,179, 41,176,148,117, 14,116, 1, + 51, 1,125,107, 15,196, 4,187, 55, 64,211,134,110, 39,103,238, 32,235, 43, 44, +178,117, 92,124,131, 34,108,127,208,127,176,191,177, 43, 1,166, 0,166, 0,164, + 0,222,185, 58, 54,216, 30,167,175,220, 26,175, 5, 67,238,225,137,134,220,224, + 96,125, 71,208, 29,233,227,192, 42,240,190,244, 19, 71,125,111,171,167, 77, 10, + 46, 26, 75,123, 28, 21,249,214,216, 85, 84, 47,216, 29,199,210, 22,108,174,118, + 44, 25,155,207,165,235,210,216,182, 65,183,215,243,168,160,127, 31,191, 50,208, + 20,104, 44, 9,153, 2,205, 41,142,242,202,214, 18,221,252,194, 63,121, 55, 28, + 85,237, 85,198, 29,233,137,116,140,176,178,190,149,148, 77,198, 22, 79, 30,166, +237, 72, 69,123, 91, 63,223, 99,123, 33,175,236,229, 72, 93, 56,138, 63,173,165, +203, 10, 1, 55, 56, 96, 12,243, 22,189, 61,218, 12,110,216,109,210,196,155,140, + 56, 6, 51,177, 96, 48, 1, 99,248, 30,233,189, 27,134, 40, 7,199,190,151,138, + 63,221,218, 35,106,187, 68,189, 99,115,190, 3,233, 43,249,138, 95, 97,191, 35, + 84,166,101,156,140,139,242, 91, 95,137,106, 7,118, 73,173,115,225,212, 20, 95, + 85,148, 79,205,226,131,169,188, 99,138, 27, 55,205, 87, 48, 11,111,123,109, 53, +245,246, 17,142,255,255,100, 66, 49, 47,137,185,137,222,112,234,163,170,148,121, +107,130, 51,183,235,130,179, 45,211, 96,140, 14,111, 31,149, 11,240, 44, 9, 36, + 5, 92,115,101, 44,241,217, 12,180,138,205, 27,172,162,238, 4, 38, 19,238,178, +221,250,113,235,196, 45,144,107,156, 9,201,111,239,190,170,216,175,193,177, 41, + 78, 99,120, 57, 10, 65,113,151, 13,163,221,234,194, 82, 74, 41,165,148,214,169, +204, 45, 31,213,174, 68,177,158,165,158,201, 84,107,167, 99,225,185,245,112,138, +162,161,129,109,114,140, 96,102,102,102,102,102,102,166,204,204,204, 44,114, 40, + 27,190, 48, 12, 85,132, 31,198, 52,142, 20,233,232,214,208,102,235, 38,223,181, +169,138,174, 73,118, 46, 15,232,162,216,186,227,186, 4,134,106, 40,164, 32,165, + 20, 37,216, 95,137,171,213,243, 68, 7,203, 20,231, 47,103,123,172,156, 2, 93, + 31, 13,137,147,144, 80,126,101, 32,254,112, 52,208,149,101,188,240, 2,240,119, + 59, 64,184,224,168, 63,241, 55, 4,111,235,177,255, 18, 26,133, 34, 33,215,161, +159,232,232,243,162,240,182,235,120,193,254, 21,155, 51,117, 69, 61, 6, 11, 37, + 34, 7,203, 45, 57, 72,146, 18,162,224,207,124,115,105,158, 11,187, 58, 31, 76, +171,240,108,155, 14,131, 44, 36, 87,149,245,209,202,181,104, 63, 66, 73, 30, 24, +192, 48,172,132,187, 88, 48,172,183,110, 8, 25,132, 12,107, 23,246, 81,176,142, +198,190, 34,148,107,153,167, 98,110, 29,246,112,176,237, 2,113,103, 94,155,145, +139,230, 20,170, 44, 13, 94, 77,230, 99,107, 93,147, 62, 90,250,232, 72,178, 61, +138, 31, 13, 29,196,172,174, 63,111,100, 41,247,254, 66,213,218, 80,252, 1,165, +172, 7, 10,134, 97,216,168, 69,170,197, 42,166, 77, 11,144,150,109, 20, 25, 99, + 27,136,165, 24,213,192,115,206, 25,225,225,128, 56,216,149,109, 32,142,134,135, +165,148, 82,154, 40, 77,211,248, 3,112, 25,129,175,168, 49, 81,100,104, 70, 36, + 16,145, 20, 36, 73, 90, 3, 1, 9, 49,138, 58,198,206, 58, 66, 73,152,133, 49, +148, 65,136, 33,130,136, 33,132, 16, 71, 36,152, 96, 68, 36, 40, 41, 72, 65, 33, + 29,166, 86, 65,216, 46,235,170,103,161,138,155, 73, 21, 4, 9,111,162,120,111, + 76,124, 40,162,189,164, 99, 22,170,211, 12,198,251,209, 52,174, 62,174,198,197, + 27, 73, 8,113,152,179, 21,205, 84,218, 35,103,133,103,149,248,236,166, 25,189, + 90,182,156,153,138,209, 23,241,170,155,251,195,136, 7,106,206, 23, 87, 53, 65, +139,243, 38, 3,188,249,161,166,194, 44,255, 66,179,175, 62,236,192,176, 71, 5, +129,175, 77, 64, 53, 98,231,235,157,241,146,184,211,237,196,215, 63,206, 40, 82, +220,202,245,149,185, 35, 39, 10,160,142,101, 25,161,140, 95, 22,153,136,199,206, +207, 91, 53, 44,175, 37,247, 71, 62,161, 88,132, 84, 5,224, 94,191,244,191, 7, + 81,169, 97,165, 78, 56, 32,220,142,164,151, 75,209, 5,112,109, 98, 65,184,155, +247,145,166,210,172, 84, 44,151,242,218,163, 40, 48, 41,120, 84,209,230, 81,134, +155, 23, 56,131,218,130,140, 37, 41, 1, 50,140,242, 43,249, 91,140, 56,124,230, + 6,155,116,164,144,196, 43, 17,140,167, 55,160, 56,112,161,214,168,197, 24,210, +195, 68, 1, 50, 4,133, 97,195, 3, 20,251,157,139,139, 51,115,212, 85,201, 79, + 12,244,227,103,217, 86, 28, 13, 30, 15,177, 11,117, 26, 15, 53,209,253,108,167, + 62,122,156, 73, 77, 87,251,247,245,115,251, 99,183, 68, 33,226,224, 44, 41, 67, +182,187, 31, 91,250, 14,221,140, 84, 20,113,167,122,138,173,137, 17, 51, 33,247, +166,171,182, 2,208,128, 89, 27,120,106, 73,137,172,247, 89, 2, 51,140,207,146, +134,189,109,204,156, 81, 37, 10,201,221,116,248,212, 60, 48,126,198, 62,156, 27, +157,149,223,136,225,225,133,142,105, 26,177,130, 81, 79,244,131,199, 11,147,163, +125,108, 97,146,156, 83, 83, 43, 9,168,169,137,247,102, 0, 50,231, 10,145, 0, +143, 74,215, 22,191,223,151,253, 78, 46,188,201,201,107, 46,137, 54, 56,134,164, +176,118, 98,176, 51,129,186,124, 34,229,105,175, 22,105,111,166,138, 61,162,174, + 68, 6,191, 94,252,155,137, 97,218,133, 79,179, 91,149,128, 82,179, 1, 1,189, + 49, 19,233, 9, 5,210,200,224,133, 74,195,195, 18, 91,190, 26, 22,118,123, 2, +185,185,123, 85,251,187,106,195,173, 21,213,191,187,232, 55,230,226, 14,207,247, + 30, 51, 21,217,218, 63, 97, 27, 76,114, 75,211,173,200,195,147,245,196,236,159, +246, 26, 52,134, 18,137, 39, 39,135,202, 7,194, 1,156,203,123, 86, 41, 12, 70, +146,238, 91, 93,242,153, 44,102,109,219,152,220,196,222,132,179, 34, 24,113,106, +149, 23, 49,132,229,167, 71, 18, 56, 59, 91,128,156,180,108, 53, 42, 74, 81, 9, + 21,174, 50,147,138, 35, 85,101,155, 54, 95,108, 41,131,150,118,157,221,102,190, +128,231,235,243, 85,221, 35,133,215,193,160,108, 10,202, 88, 29, 60,186,100, 34, + 6,181,201,166, 23,252,230,201,175, 39,160,248,246,221, 31,227, 51, 51,207, 0, + 58,203,242, 18, 98,203,171,108,164,194,250,174,232, 84, 73,166,207,114, 7,235, +236,111,152,166,177,223,195, 5, 61,191,120, 87,210, 18,210,232, 75, 58,236,221, + 32, 12, 45, 80, 86,149, 73, 33,157, 6, 92,227, 1,173, 16,125,236,172, 90, 22, +236, 31, 58,131,110, 28,252,144,111,231, 11,186,165, 70,113, 60,219,198,155, 11, + 1, 25, 40, 54,202, 31,139,118,108,160,217,165,162, 35,111, 42,220,129, 39, 53, +141,216,128, 49, 6, 9,238,132,195, 85, 30, 89, 35,106, 29,209,236,121,159, 37, + 64, 93,195, 19, 2, 33,189,173,102,224,107, 80, 91, 3,107,150,103, 47,200, 15, +252, 14,148,115,140,132,251, 16,188,194, 75, 99, 77, 90, 39, 29, 40,160, 14, 86, +199, 61,180, 83,164,141,156, 93,135,200,254,212, 83,167, 17,248, 53, 57, 4,188, + 38,192,244,252,171,220,154,198,121,148,225,111, 41, 49,200,148,163,110, 31,117, +175,153,160, 79, 55,160,223, 52,231,106, 48, 77, 43, 25, 6,201, 27, 62,194, 36, +235,107,149, 12, 64, 41, 45,195, 3, } ; -// ../Source/Template/GB_convert_s2b_template.c: -uint8_t GB_JITpackage_88 [550] = { - 40,181, 47,253, 96,120, 6,229, 16, 0, 22,155, 83, 32,224, 26,231,148,119,132, -182,223,245,238,121,217,178,100, 28,104,133,255,172,116,101,107,172, 15,195, 57, -131, 25, 6,193,188, 23, 76, 0, 70, 0, 73, 0,243, 6,133,134,208,176, 70, 2, -161,125,192, 9,110,192, 53, 69, 39,207,230, 89, 95, 22,195, 26,186, 1, 52, 53, -146,111,164,183,226, 0,117,174, 40,144, 28,105,152,107,233, 98,126,227, 75, 71, -252, 80,188,222,231,239,232, 76,193, 49,236,188,149, 52,188,229,219, 41, 43,114, -155,164,242,195, 65, 98,135, 67,184,239,216,215, 48,143,233,243, 59,164,248,253, -229,119,138,126, 47,205,119,150, 94,213,118, 53,255,236,246,200,250,126, 69, 92, - 63, 37, 34,211,176,254, 56, 58,206, 59,110, 87,175,102,219,221, 5,107,108,155, -171, 26, 76, 52,241,100, 93,167,110,227,254, 28,231,207, 84, 63, 7,193, 91,232, -130, 57,120,181,179, 29,216, 86, 95, 13, 4,171,193, 41,158, 81,104,155,130,119, -109,171,215,221,189, 26,120,216, 6, 83,180,214,239,123,124,140, 96,243,144,143, -243,153,171, 55,227,190,132,231,109,193,200,182, 62,227,249,220,166,255,191,148, - 46, 41,179, 76,195, 43,122,167,207,182, 3, 82,122,221, 89, 84, 64,202,215,235, - 31, 32, 30,185, 21,220,171,162,109, 12,246, 11,192,101,184,107, 41, 20, 91,128, -119,135, 2, 57, 11,162, 92, 36,155, 14,105, 3, 77,139,118,194,165, 25,143,248, -132,105,182, 5, 10, 62,110,178,117, 59,245,214, 92, 5,241,220, 50,190,213, 59, -185, 52, 20,206,135,146, 9, 83,160, 97,185, 49,166, 42, 24,153, 9, 75,138,218, -106, 80, 70, 32,133,144,232, 1,174,185,105,150,184,218, 72,178, 76,216, 14, 29, - 34,232, 74, 28, 82, 56,122, 8, 3,103, 4, 86, 46,196, 80, 85,148,244, 77,231, - 42,120,108,233,187,222, 4,224, 6,107, 36, 8,214,223,218,232, 27,130, 59,191, -168, 33, 41, 49, 16,196,130, 55, 19,232, 25, 28, 66,217,130,192, 17, 23,157,100, - 55, 27,182,150, 65, 56, 8,255, 7, 58, 95,208, 90, 18,108, 47,238,123,201,224, -222,153, 1,204,211, 7,250,250, 16,182,101,239,101,235,147,119,181,247,141, 2, -134,201, 77, 55, 48,184,112,100, 45, 64,122, 86,119, 73, 7,252,231,161,226, 1, - 67, 88, 20,191,184,171,172,252,161, 8,234, 46, 49,139,129,230, 31,156,233, 70, -162, 85,207, 8,146,124,108,156, 39,196,166,249,252,193,116, 43,151, 66, 68, 3, - 34,135, 12,249, 50,110, 82, 20,220, 1, +// ../Source/Template/GB_AxB_dot3_phase1_template.c: +uint8_t GB_JITpackage_68 [1473] = { + 40,181, 47,253, 96,245, 19,189, 45, 0, 10, 66,252, 11, 39,208, 22,113, 14, 84, + 95,152,188,188, 92, 27,233,115,229, 27,185, 69, 24, 67,202,154, 12, 5, 28,227, +130, 0,113,161, 15,245,118,251,128, 47, 30, 2,185,191,183, 0,180, 0,184, 0, +239,255, 43, 39,149, 10, 6, 84,151,235,201, 88, 9, 95,170,220,193, 29,121, 40, +238,107,101, 12,219,150,241,149,235,219, 60, 63,134, 43,225,174,138, 74, 92,147, +207,228,214,204,157,183, 62,246,160,252,112,161,250, 16,100,218,101, 84, 14, 48, + 8, 23,222,176,157,212, 27, 40, 63,237,117,228,140,226,194, 53, 50,246, 44, 46, + 28, 17, 25,152,140, 71, 40, 87,230,188,246, 6,242, 56,135,144,186,148,128,112, +128,112, 97,200, 28, 32,220,130, 69,151,234, 27,217,136, 99,168,135,182,150,220, +243, 92,234, 80, 22,213, 54,151, 74, 52,112,165, 59, 59,220,175,235, 84, 42,130, + 1,234,211, 33,172, 7,205, 29, 78,165,246,215, 87, 67,112,227,190,129,123,225, +228,184,175, 12,215,221,230,149,208, 50,187,170, 18,234,170, 36,110, 96, 80,185, + 24, 24, 4, 27,139, 12, 11, 67,115,121, 48, 46,174,136, 11,234,178,160, 56, 26, + 30,141, 6,199,211,185, 54, 29, 14,149,209,185, 42, 58,148, 21, 61,227,236,218, + 11,176,158,197,189,102,107,144, 20, 50, 61,212,183,245,227,123,133,112,207,221, + 77, 78, 98, 41,199,120,228, 12, 65,226,211,228, 25,123,176,126, 31,229, 43,247, + 82,158,242,251, 19, 75,116,205,146,185,124,154,162,139,227,211, 14,165,252,188, +235, 66, 7,204,135,199,187, 62, 11, 80, 93,207,167,119,165, 79, 3,189, 47,133, + 5, 42,123, 62,138, 85,206,222, 12,242, 87, 42, 39, 5, 5, 53,254,225, 14, 63, +248, 20, 89, 50, 18,246,184,141,161, 44, 98,216,101,188, 97,245,150, 24,213,108, +153,110,125,113, 93,132, 12,225,210,157,159,156,252,114, 32, 75,103,128,195,179, +215,239, 24, 18,110,230, 5,183,160,160, 92, 66, 65,137, 30, 31,247,250, 8, 6, + 44,239, 69,154, 55,214,101,146,206,119,100,140, 10,209,142,252, 13, 91,150,125, + 16,149, 36,220,203,189,174,124,153,110, 18, 67, 62,150,232, 4, 15,129,176,211, +230,114, 31,153,130,143, 16,143,207,234,211,161,192,127,169,246,251,148,188,142, +171,186, 52,171,232,179, 3, 73, 9,175, 75,106,186, 93,175,106,110,117,183,119, + 64, 92,170,238, 89, 67,125,175, 56,155,140,142,137,171, 67,113, 85,150, 16,169, + 33,170, 34,195, 17,238,210,180, 46,101,145, 47,107, 94,178,102,116, 14,134, 71, +179,217,184, 60, 27, 9,237,101,209, 2,186,180,105,162,107,174,137, 74,130,242, + 12,109,242, 91,203,207, 41,111,253,152, 43,100,135,135,116,141, 18,171,103,106, + 89, 30,177,241, 92,108,172,149, 74, 74, 10,215,143,231,241, 73,125,162,164,232, + 23, 20, 22,197, 84, 64, 81,111, 41,138,162, 40, 74,162, 40,234, 89,159,254, 44, +108,242, 42, 87, 98, 69,247,116, 40, 77,237,119, 16,198, 91,198, 28, 37,184,180, +107,172,163,109, 1,156,100, 62,253,195,154, 30,154,135, 91,243, 14,231,247,225, +164,201,183, 46,200, 66,173, 95,236, 94, 25,180,125, 8, 95,215,247,123,119,159, + 75,178, 33,100,146,215,189,230,178, 94, 10,245,228,248,228,224, 19,230, 96,178, +222, 57, 94,252,152,173,116,235, 27, 97, 42, 53,254,208,229, 57,151,159,246,122, +101,236,119,138,241, 99, 36, 73,131, 80,230,190,146, 38,191, 97,116,185, 62, 68, + 55,190,207,247, 76, 95, 39,194,244, 25,236, 36, 6,183,107,108,207, 89,236, 72, + 2,129, 37,168,129,169, 66,138,144,140,136, 72, 10,146,164,208, 24, 97, 12,130, +144,130, 92, 66, 59,114,152, 88, 18,102, 80, 2,137, 16, 37, 64,144, 8, 4,145, + 64, 68,100, 34, 18,145,160,176, 40,206, 1, 25, 21,151,234, 18,113,135, 37,215, + 56,173, 54,137, 23, 14,232,161,102,111,218, 36,202, 71, 44,110,220, 55, 81,223, + 31,118,106, 69,223,202, 61,104,178, 94, 75,138,114,190,195,119, 73,248,169,249, +239, 92,205,128,144,177, 14, 23, 32,243, 74, 16,243, 89, 3,130, 45,250,167, 32, + 28,206,162, 0, 23,166, 32,243, 17,237,136,195,126,165, 32,116, 39,124,148, 59, + 59, 10, 2,162,219,129,207,207, 38,234, 89,148, 32,130,215, 36, 18,108,120,234, + 61,215, 0,247, 95,190,138,119,189,146,247,189,119,228, 38, 57, 73, 93, 41,161, + 44,232, 42,216,160, 58, 7,173, 40, 58, 48,227,255,147, 46, 26, 12,237, 92,187, +156,106,150,205,112,246,252,210,204, 52,200, 73, 7, 68, 48,148,149,114, 55,185, +120,132,158, 46,228, 23,113,242,197,103, 80,179,159,209, 24, 67, 40,254,115,152, +132,137,141, 1, 49,215, 68,199,204,190,211,114,146, 48, 75,243, 21,186, 31, 98, +250,190, 62,153,188,137, 2, 68,254,143,125,240,233, 59, 83,223, 94,221, 79,102, + 95,181,162,248,139,190,135,149, 35, 79,119,222,152, 16, 71,207,153,161, 97,251, +144,222, 75,105,224,136, 71,117, 33, 8,159,235,223,110,132,130, 20, 21,166, 40, +218,221,112,134,191,225,123,192,251,157, 29,211,212,195, 75,169, 64, 88, 95,169, + 9,198, 13, 44,180,234,188,177,125, 90, 95,164,100, 67,169, 77, 20, 1,182,248, +212,196,179,101,136,191, 23,152,137, 38,141,110,149, 75, 44, 19, 15, 84,167, 51, +150,215, 7,147,164, 75,140,221, 35,131,250,113,186,232,130,107,130, 59,104,237, +153, 29, 9,182, 24,107, 78, 40,220, 83,145, 16, 92,221,147, 25,170,105, 28, 85, + 41,218, 60,133,244, 37,193, 73,120, 20,135, 6, 60,202,171,223,127, 14,142, 37, +150,133,154, 23,141,254, 4, 3, 42,243, 96, 89,109,106,225,229, 87, 20,233,169, + 62, 1,137,200, 2, 65, 14,116,138,232,243,132, 0,101,139,136,207, 8,192, 26, +246, 8, 42,218,167, 88, 90,241, 3, 98, 53,150,154, 26, 16,114,135, 6,173,143, + 50,143, 5,163, 74,114,251,148,192, 46,187,115,214, 69, 73,235, 67,148,111, 40, + 48, 42,202,179, 79,238,245,110, 94,189, 66,149, 50,178,199, 79,176, 88,171,130, + 19,156,132,241,130,145,138, 62,120,247, 12,246, 77, 12,157,121,181,190,219, 27, + 81,241, 35,148,254, 60,191,120,227,129,141,238,159, 61, 89, 83, 99,141, 91,142, + 27,248, 47,248, 8,253,149, 68, 98,122, 8,178,244,228,210, 97, 99, 65,159,189, +230,191, 95,207,211,176,223,202,106,171,134,147, 88, 73,238,102,252,109,211,207, +240, 50,166, 33,254,150,129,155, 22,208, 65,193, 82,101,206, 18, 45, 93, 55,171, +103,236,144,128,224, 92, 79, 21,183, 74,131, 79, 87,226, 23, 14,142,163,240,212, + 83, 17,211,162, 23, 52,154, 82, 63,237, 13,104,171,232,166,105,252,153,201,106, +228, 95,207,148, 61,131,204,213, 36,148, 58, 86, 38, } ; -// ../Source/Template/GB_convert_s2b_zombies.c: -uint8_t GB_JITpackage_89 [738] = { - 40,181, 47,253, 96,213, 7,197, 22, 0,118, 99,105, 32,224, 26,231,148,119,132, - 76,207,234,246, 76,236, 36,105, 59,154, 22, 69,107, 45, 81, 73,139,143,120, 78, -196, 24, 41, 50, 56, 4,100, 0, 90, 0, 96, 0,253, 97, 10,141,107,123, 52, 83, - 0, 81, 56,134,175, 87,183,113,119,142, 51,120,162,157,135,161,252,182, 80, 32, - 20, 5, 71, 2,161,184,192,211,190, 97,186,154,148, 27,228, 93, 96, 30, 69,250, -249,230,145, 25, 9,104,231,181, 60, 60,157,169,202,147,217, 41,102, 90,250,152, -223,248, 78,139, 47,142,215,116,249, 63,112,211,146, 56,190,186,146, 2,119,249, -246,170,142, 94, 39,177,252,112,200, 10,135, 67, 96,238, 68, 85,125,216, 97, 56, -239,180,183,226,248, 41,158,230,181, 1,238, 31,205,207,149, 10, 14,102,202,210, -126,248,255, 44,131,101,153, 33, 79,241,142,166,207,231,218,184,175,237,187,201, -227,249,252, 22, 39,126,131,249,189,154,224, 75,242, 95,157,103,117,109,201,223, -112,219,186,192,223, 17,211,203, 12, 97, 80, 20, 26,244,166,149,127,220,166, 38, -154,107,156,238, 83,177,112, 23,164,190,129, 82,187,236, 46, 18,203, 35, 71, 29, - 83, 48,223, 85,122, 29,255,117,158,183,237,248, 22,160,182,135, 38,111, 26,159, -191, 74, 77,135, 60,117,238,207,120,134,220, 73,163,183, 71, 67, 44,187,200, 51, -190,212,148,122,238, 24, 13, 24,129,128, 83,120, 30,194, 29,241,136,150,216, 60, - 42,206,234,250,180, 14, 85, 95,131, 30,190,160,118, 82,195,223,236, 27, 89, 22, -203, 98,137,146, 20,108,223,180,135, 56,155, 73,228,164, 81,123, 51,180,199,153, -246,106, 20, 9,167, 23, 80,237, 21,140, 68,179, 17,117, 30, 12, 64,187,137, 59, -149,148,100, 71,111,201,183, 42,156,171,111,244,173,254, 42, 61,158, 32,213, 36, -228,246,220, 45,247,218,225,106,126,112,212, 35,149,102, 82,130, 64, 74,141,110, -229,183,237,217,182,125,181,191,229, 59, 51,238,164, 13,128,129,168,177,157, 82, -136, 72, 68, 68, 97, 73,146,164, 53, 32,132, 24,195,212,153, 7,178,216, 60, 9, -134,200, 8, 24, 33, 82, 32, 37, 18,145,242,191,119, 41,180,156,133,174, 59, 25, -191, 51, 64,137,115,251,105, 15, 65,107,129,151,163,111,128,237, 77, 31,206,132, -139,189, 40,176, 42, 45,153,165, 81,232,243,139, 18, 79, 75, 81, 62,160, 60,251, - 60, 50,127, 87, 14, 55, 66,144, 43, 5,136,210, 12,126,195,243,173, 97, 93, 64, -205,197, 42, 64, 71,203, 48, 80, 14,131,225,102,206,198, 18,160,128, 72, 89,253, - 27,246,245,174, 34,190, 90,251,231, 89, 81, 31, 4,165,206, 14,229,248, 39,154, -138, 5, 51,200,211,203,113,191,118, 38,142,160,235,173,157,108,189,206,103, 47, -230,227,177, 45,158,107,157,114,249,120, 21, 39, 78,187,234, 94, 58,246,165,107, - 64,224, 40, 77, 23,232,231,194, 36,165, 75, 17,149, 96,160,153,248,179,216,128, - 96, 47,128,190,144,232,213, 44,144, 58, 19,205, 92, 22,249, 37,142,193,111,100, -245, 0, 50,164,114,111,150,180,243,120, 75,129, 54,249,130, 23,214,205,231, 70, - 77,252,252,152, 86,196,123,199,170,109, 48,250, 0,100, 18, 88, 0,245, 3,164, - 20,195,152,197,131,254,169,230,205,100, 7,205,162,126,145, 25, 28, 6,103,211, -236,213, 96,162,203,101, 66, 38, 68,254,224, 40, 80,197, 87, 7,184, 3, +// ../Source/Template/GB_AxB_dot3_template.c: +uint8_t GB_JITpackage_69 [1626] = { + 40,181, 47,253, 96,129, 25,133, 50, 0, 70,122,176, 40,192, 84,117, 14,228, 92, +191,111,207,197,152, 60,188,110,206, 71,161,139, 8,157,241,134,216, 94, 63,253, +231,100, 42, 39, 77, 77, 20,251,111,138, 66, 71,113, 46,162, 0,158, 0,170, 0, +156,223,227, 91,169,101,240,187,174,115,245,163,175,106,151,183,253,238,193, 82, + 77, 96, 61,232, 12,202, 95,223,168,124, 53, 57,184, 36, 88,184,211,228, 23,143, + 1,185,185,190,148, 55,142,133, 45,101,173, 45, 75, 6, 68,231,178,241, 7,200, +150, 61,183,183,243,104,207,231,140,159, 20, 18, 14, 18, 44, 13, 8, 7, 9,167, +104,210, 39,219, 31, 18,226,151,248, 81,119,171,215,159, 79, 88,180,168,238,147, +160, 4, 6,227,219, 33, 54, 1,249, 27,117, 6,108, 65,249,217,219,126,117, 6, +185, 3,249,100,175, 22,110, 21,252,126,217, 31,167, 10, 8,162,230,225,114,168, +142,225, 43,231,231,241,205, 20,110,221, 50, 42, 36,102,148,196, 13, 12, 38, 22, + 3,131,188,157,107, 1,138, 8, 35, 81, 68, 19, 70,170, 52, 14,180,111,193,122, + 53,254,248,156,242,124, 67,219,221,253, 8,244,141,134,149, 19,200, 54,202,213, +151, 85,159,156,153, 75,199,198,175,109,235,115,205,175, 5,155, 19,253,102, 11, + 12, 96,189, 95,131,154,229,237,231,238,254,178,199, 43, 21, 43,178,242,210, 59, +100,126,112,141, 68,177,220, 32,175,138, 80, 76, 69,162,181, 25,252,132,227, 20, +132, 73,107, 79,210,209, 38,241, 12, 55,238, 52,123, 10,149,236, 38, 25,236,110, +230,133,148,251,228, 41,191, 95,122, 30, 18,252, 4, 50,223,250,254,210,254,255, +201,100,100, 50,185, 76, 9,134,224,181, 27,135, 83,126,156, 65, 31, 73,239, 55, +116,196,162,185, 8, 13,129, 40, 36, 36,151, 40,207,143, 23, 60, 52,103,248, 79, +122, 33,106, 14,124, 10, 77,246, 54, 40,164, 53, 50,234,211, 71, 73,255, 66, 81, +173, 51,203, 38,170,179,178,187,198,131,133,242,160,109,195,111,180,185, 99,108, +159,242,108, 58, 26, 19, 25, 22,162, 46,150,175,180, 74, 38,233, 22,156,139,147, +161, 32,115,202,190,147,214, 76,196, 71, 52, 23, 73,231, 16, 42,207,188, 67,180, +241,175,186,160,188,150,235,141, 82, 68,159,186, 74,122,149, 77,128,220,221,102, +182,147, 51, 15, 93, 75,171,118,253, 16,155,143,197,230,218, 88,157,235,162,202, + 62, 23, 22, 25,132, 69,204,172,232,193,248, 84, 24,158, 15,150,109, 48, 79,236, + 96, 89, 5, 22, 47,233, 27,211,230, 2, 19,138,178, 44,140,136, 78,188, 62, 28, +138, 55, 26, 10, 84, 42,216, 7,227,100,108, 0, 2,180, 75, 22,112,222,194,169, +209,238,248, 16, 99,203, 24, 99,140,113,138, 49,110, 12,178, 32,213,163, 80, 88, +164,173,247, 41,228,146,254,193, 98,101,237,237,139, 52,238,180,141,153, 78, 92, + 3,112,245, 18, 22, 28, 15,231,218, 96,153, 21, 55,158,204,195,137, 24, 86, 71, +250,198, 19,173,106, 3,145, 81,112, 42,182, 83,114,215,220, 94,219, 33,156,133, + 90,251,172, 21, 84, 64, 64,233,248,112, 57, 84, 22, 10,212,180, 51, 84,140,145, + 67,218,183,195,177, 34,170,234,219,120, 95, 45, 91,170, 42, 21,135, 74, 83,185, + 31,107, 33,252,105,116, 63,143,111,187,110,175,247, 34,176,130,188, 6,129,144, +168,241,173,154,145, 17, 81, 80, 80,144, 20,164,208, 24, 97, 12, 98, 20, 99,218, + 65,234, 1,242, 88,166,227, 57, 8, 81, 2,226,136, 49,156,136, 8,137,136, 72, + 32, 18,136,140,130, 50,221,152,181, 1, 89,239, 88,236,232, 58,130,149,194,143, +188, 92,122,242,220,128, 83,169,161,211, 32, 70, 45,254,195,196,243,190,152,209, +111,139, 26, 81,250,203, 68,204,218,159,166,148,176, 50,112, 2,238, 43,109, 51, +142, 85,249, 98,178, 38,127,110, 39,224, 6,194,150,168,132, 89,226, 76, 61, 58, + 66,191,175,246,101,166,242, 9,248, 10, 74,179, 76,190,140, 21, 22, 28, 2,235, + 89, 63,215, 91,246,200, 6, 99,111, 42,150,196, 27, 76,162,185, 57,233,237,134, + 24, 63,139, 64,195, 8, 5,172,228,208, 89, 13,183, 25,219, 8,189,220, 40,226, + 38, 74, 49,148, 38,215,190,109,197, 94, 58, 98,157, 0,194,201, 13,155,212,204, +253,228,148, 91,162, 44,230,228,174,186, 41, 61, 62,197, 78, 59,125, 54, 54,224, + 17,240, 90,125,178,119, 4,162, 65,124, 60, 87,178,130,200,107,168,198,185,164, +168,202,142,109,249,119,203, 89,179, 11,139, 13,170,180, 34, 22,199,199,172, 24, +165,119, 49, 42,248,111,132, 36, 26, 39, 99, 42,226,130, 40, 73, 86,106,238,166, +135,210,232,147,137, 34,124,248, 84,153,134, 57, 70,172,187, 19,243,105,212,242, +183,180,118, 10, 12, 76,159,101,224, 51,172,247, 50,141,163, 59,110, 90,174,133, +155, 77,121,201,211,118,108,129, 36,247,152,120,154,171, 32,175,122, 22,234, 3, +168, 63,230,158, 29,170, 85,168,233,174,119,208,144,116, 48, 64,157, 14, 70, 42, +131, 18, 83,111,240,194,168, 82, 44,167,218,189,184,252, 31,131, 95, 65,249,255, +156,158, 5, 35,208,251, 0, 31,127, 52, 49,125, 39,202,162, 68,245, 29,110, 99, + 47,172,186,172,107,172,155,104, 18,109, 43,134,147,142,190, 8,189, 56, 48, 0, + 40,122,147, 83,205, 58, 81, 43,158,165,240,240, 68,252,128,230,100,108,179,179, +181,132,193, 98, 48,194, 18,151,182,180,117,244,177,132,133, 44, 9,255,112, 65, + 9, 45, 40,162,235,138,116, 37,116, 18, 72, 87, 47, 54,198,111,208,151, 17,148, +106,230,192, 6,121,189,149,115, 47,150,253,112,127, 50,101, 17, 29,221,210, 56, + 60,104, 72,194, 2, 18,156,129,209, 8,149,215, 66,236,172, 59, 47, 93,219, 40, +148, 82, 97, 45,178,166, 78, 57,226, 86,196,244, 20,120,169,148, 75,194,151, 3, +100,156, 7, 79,228, 29, 77, 87,128, 26,180, 99,232,194,182,160, 7, 98, 2, 35, + 10,233,116,203, 77, 81,171,170, 54, 52, 27,207, 13, 44,177, 28,223,109,207,220, + 70,140,139,158,114, 10,193,230, 0,190, 4, 23,164, 83, 52,112,224,102, 91,208, +187, 17, 67, 10, 75,180,128, 17,240, 96, 70, 72, 28,192,249,164,197,241,137, 40, +200,160, 41, 67, 41, 38,179, 34,242,164, 8, 39,231,240,135, 72, 36,184,196, 25, +250, 16,130, 38, 28,128,224, 39, 6,171, 72,216, 76,196, 88,134,127,110,149, 76, + 47, 82,204,146,150, 44, 61,166, 73, 12, 46,161,199, 46,164, 81,130, 63, 80,106, +214,116,129,122,242, 37,111,193,120, 95, 97,178,109,129, 43, 11, 17,111, 0,231, + 18,230,206, 80,101, 60,160, 94,204, 1,108, 29,130, 2, 6, 21,105,167,126, 90, +180,126, 36,104, 87,201,172,167, 28, 27, 28,175,151, 65,214,171,163,171, 10, 24, + 75,115, 29,197,229,218, 57, 62, 7, 15,165, 89,208,180, 86,216,150,191, 11, 79, + 19, 2,129, 12, 19,169,216,149,144, 1,213, 95,179,180,108, 53,155, 39,186, 77, +199,153, 29,107,186, 25,147, 17, 51,169,216,153,247,115, 35,106,113, 57, 72, 11, +183, 56,235,159,187,255, 37, 39,174,248,188,127, 63,164, 62, 96,170, 81, 81,226, +155, 6, 42, 57, 24, 92, 46, 39, 63,200, 32, 23, 85,141, 71,232, 99,140, 71,120, + 52, 83, 68,247,190, 11,217,226,121, 14,252, 96,147,176,156,116,194,170, 45,113, +111,188,116, 82, 48, 67,159,122,101,221,111,152,135, 44, 98,180, 71,194,229,229, + 31, 8, 36,192, 20,253,166, 9,253,193, 36,168,106, 74,100,197,206, 67,242, 15, + 0, 95,169,195, 34, 3, +} ; + +// ../Source/Template/GB_AxB_dot4_cij.c: +uint8_t GB_JITpackage_70 [1108] = { + 40,181, 47,253, 96,196, 19, 85, 34, 0,198,108,139, 33,208, 92, 23, 3,152,106, +251,250,230, 58,198,210,204,165, 70,110, 0,234,204,179,160, 25, 68, 82,166,126, + 25,165, 30,184,224, 2, 2,130, 0,121, 0,134, 0,249,188,190,190,247,180,196, + 97, 97,176,169,177,162,222,187,108,111,121, 55,182,100,104,176, 26,219,241,106, + 12,163,138,231, 64,218, 86,182,218,126,174,119, 10,117, 63, 55, 77,239, 28, 99, +145, 88, 24, 30,138,196,226,131,113, 59,167,111,171, 86,126,240, 14, 75,237,147, +117, 67,231, 64,158,230, 75,161, 53, 99, 58,171,115, 69, 65,118,223, 20,164,145, +103,106, 91,214,159,207,178,219, 62,130, 96,112,185,110,243, 62, 41,124,160,226, +238, 6,190, 27, 15,170, 59,138,141,125,146,226,247,242,196, 15,115, 4, 66, 51, + 32, 16, 1,226,183,189,188,128, 61,166,228,153,209, 91, 19,133,175,126,125,247, + 1,136,158,219, 14, 54, 66, 22,140,197, 67, 10,137,160, 9, 68, 75,127,129,223, + 53,242,157,235,214, 98,225, 32,250, 45, 54, 28, 27,223,111,141,207,241, 96,241, + 73,186, 48, 7,219,247,147,171,238,248,109,245,223,133,194, 12,190,103,165,227, + 88, 15,195,245,101,122,155,218,174,211, 52,235,187,206,230,116,167,229,182,168, +255,191,166,201, 52, 13, 60,137,235, 57,180,178,246, 61,153,102, 90,126,231,178, + 69, 97,169, 7,117,191,203,132, 64,159,240, 34,114,194, 77,195,209,112,160, 42, +235,114,219,246,210,172, 54,143, 11,198, 72,227,217,128, 98, 6,243,178, 38,202, + 58,199,131, 23, 4,162, 96,205, 83,122,110,215,211, 44, 49,225,183, 96, 44, 24, + 14,133, 67,113,185,104,157,158,131, 64, 64, 34,141,199,180,179,129, 70,241, 74, + 60,240,189,125, 16,121, 12,223,250, 59,126,176,109,159,124,167, 40,124,243,101, + 89,253, 1,121, 79,124,178,126, 92,173,121,158,167,237, 50, 12, 39,252,132, 27, + 11, 72,252,132,158, 71,252,116, 70, 26, 12,226, 26,141,232, 34,130,194,154, 54, +211, 34,147,163,240,221,186,142, 22,133,193,114,205,251,158,114,221,110, 90,156, +237,234, 54,219, 20, 73,218, 86,213,147,194,200, 51, 24, 40,213,156,173,170,205, + 39, 83,233,167, 47,223, 82,211,202, 75,226,213,170,240,161,231,208,115,171,237, +161, 78,197, 84, 40, 92,114,244,145,123, 40,186, 85,194, 14,167,179, 17, 57,157, + 48, 4,138, 42,150,143, 88,217,132, 32,209,219, 96,188,143,199,234,145,167, 48, +144,216,138,213, 28,121,171,144, 5,116,185,116, 10, 55,121,104,233,215, 91, 37, + 78,193,247,176,188,177,253,214,138, 85,128,228,168,193,157, 51, 52, 35, 51, 19, + 36, 5, 41,165, 49, 64, 68, 32,198, 20, 86,231, 82,248, 64,198,210, 12, 50,142, + 16, 68,136,128, 8,145,184, 33,113, 50,129, 80, 5, 66,230, 1, 0,145,139, 68, +186, 52, 72, 20, 26,185, 55, 44,252,103,100, 89,207, 86,107, 69, 26, 2,169, 70, +210, 14, 0,178,165, 31, 77,145,145,162,176, 19,101, 79,180,251, 19,179, 91, 54, +231, 87,136,247,178, 48, 6,136,236, 42,121,139, 28,150,193, 21, 11,119,195,161, + 30, 47,161, 67,122,133,138,125, 21,218,223,126,234,130, 95, 30,204, 86,255, 57, + 20,233,109,241, 11,245, 17, 48,148,177,215, 24,129,184, 36,142, 20,245,148, 33, + 45, 28,209, 71, 88,201, 77,106,136, 2, 32,107, 65,210, 48, 43, 9,237,100,192, + 60, 57,164, 88,243,167, 78, 24,129, 23, 51, 33, 5,208,241,170,135,111, 21,238, + 80, 25, 9,132,123,207, 7, 6,163, 98,183,246, 97,181, 27,230,217,246, 46, 65, + 65, 32,112,210,134,120,176,165, 74,202, 10,171,117,164, 82,185, 65,101, 36,171, +248,111, 87, 54,172,103, 98, 88, 21,222, 25,209, 23,249,151, 68,157, 10, 38, 98, + 73,128, 24,126,245,165, 8, 64, 72,218, 87,210, 26, 71,134,171,189,170, 71, 11, +182, 5,195,140, 67,191,147,177, 55, 47,209,198,180,254,141,142, 30,148, 18,111, + 88,179, 93, 41,128, 22, 78, 62,149,176,127,217, 1,215,116,157,150, 11,226,101, +250,184,250,124,174, 2,236,191,119,154,110,157,180,151,198, 79, 72, 27, 23, 12, +173, 39,227, 47,138, 1,150, 64, 58, 44,139,147,120, 61, 66,174,224, 24,111,101, +166,118, 34,102,143, 51, 44, 14,174,185, 86,161,137,213,244, 57, 33, 90, 84,251, +114,249,236,102,211, 59,208,193, 10,213,227,225,123, 28,177, 8,238,181,178,108, +154,202, 30,120,253, 8,188, 55, 56, 64, 59,162,217, 12, 33, 92,198,245,250,165, + 50,241,127,115,124, 66, 7,234, 6,173, 74,180, 79,212,173,204,159, 75, 53,156, + 29, 77, 74,144, 30, 65, 19, 83,185,245, 14,200,206, 30, 27, 27,107, 72,142,130, + 18, 34,103, 1, 28, 79,101, 1,203, 82, 60,112,168,225, 4, 5, 72, 33,234,197, + 72, 23, 78,167,239, 59,178,177, 64,137,188, 69, 23, 3, 66, 36,102,170,154,174, + 10,127,231,140, 72, 30, 32,238,147,254, 55,201,165,158, 69,225,228,252, 56, 35, +158, 80, 15,238,199, 53, 25, 71, 72,185,105,190, 63, 51,105,202,137,251, 4, 54, + 12,233,176, 70, 41, 77, 2, 60, +} ; + +// ../Source/Template/GB_AxB_dot4_meta.c: +uint8_t GB_JITpackage_71 [1390] = { + 40,181, 47,253, 96, 73, 16, 37, 43, 0,102,186,173, 40,208,210, 56, 7,104, 33, +108,194, 55,174, 67, 96,233,196,246,146,228, 40, 58, 88, 83, 81, 40,240,111, 50, +144,140, 88,224,203,162,244,186,140, 82, 15, 13,176,188,161, 0,150, 0,168, 0, + 50,222,122,204,174,221,177,229,237, 62, 68,175, 53,157,116,187,254, 11,203,200, +121,150,217,215,248,126, 94, 71,229,181, 25, 79,234,122, 99,119,237, 81, 82,112, + 57,176,240, 38,163, 7,223, 80,185, 67,125, 39,107,150,133,237,100,217, 28, 75, +134,230,226,162,241,168,178,229,207,237,221, 60,250,115,142,131,159, 16, 14, 10, + 14, 44, 11, 6, 5, 7,167,200, 73,143,162,230, 23,248,210,118,105,215,215, 39, + 16,228, 80,155, 23,171, 68, 3,219, 26, 61, 16,223,254, 64, 18,142,251, 66,183, +253,234, 92,121, 3,249,100,175,252, 52, 90,189, 63,246,232, 84,101, 0,102, 8, +170,191, 33, 94,238,176,132, 75, 53,140, 34, 65,140,146, 56, 6, 35,177, 96, 48, + 1,245, 78,142, 28,249,218,105,209,217, 32,149,183,235,249, 47, 26,135, 52, 23, +251,246,236,251,233,227,226,104,178,149,189,210,118,174,241,212, 43,197,192,135, + 44,147,206,211,235,145,248,147, 57,179,113, 59,233,193, 82,201, 26,185, 40,237, + 38,123,202, 62,221,143,158,218,174,254,203,236, 87,203,241,172, 44,250,101, 81, + 68, 11, 87,175,196, 77,122,173,255, 98, 43,223,217,212,155,180,175,156, 95,200, + 14,148, 60,217,113,119,217,149, 39,123, 84, 26,186,198,246,251,213,232,118,185, +187, 84,223,110,131,156, 39,213,206,217,103,148,215, 70, 73,231,111, 12,169,216, + 43,221,169,210, 27, 43,123,244,221, 39, 3, 24,232, 24,103,211,249,108, 42,176, +203,162, 8,181, 64,215,218, 40,163,186,183, 45,203, 24,188, 7,139, 71,253,202, +174,215,114,173,220, 33,243,201,220, 72,254, 98, 9, 10,119,246,175,157, 84,194, + 95,246,184, 68, 50,242, 73,164,209,192,139,131, 97, 65, 81,159, 62, 68,217,228, + 20,230,212, 54, 6,189, 79, 36,248,169, 69,113,114,200,169, 54, 26, 76,229,153, + 76,168, 47,138, 92,179, 87, 48,119, 56,133,139,179,187,202,175,128,155, 15,133, +113, 96,199,178,248,108, 46, 44,194,250, 47, 34,225, 56,133,242, 38,232,125,126, + 2, 18,202, 7,245,202, 41, 61,137, 38,240, 25,130, 39, 92, 30,205,236, 16,107, + 2, 18, 73,149,177, 59,197,155, 62, 90, 78,170,132,107, 35,209,165,236,165,165, + 74,175,140,161, 0,121,225, 27, 57,175,227,139, 5,108, 23,219,152,130, 65,188, +220, 5,156,181,143,147, 83,193, 0, 94,155,202, 33,155,175,156,101,115, 54, 78, + 43,178,241,206,223,217,111,128, 56, 69,150,110,107, 92,214,213,217,104,172,142, + 53, 27,171,108, 4,233, 79,239, 40,216,224,237, 86, 85, 85,253, 20, 69, 81, 20, +137, 50, 33, 93,157, 11, 94, 0, 76,126,129, 58,158, 42,192,222, 74, 61,239,179, + 1,175,180, 86,141,229,233,120, 44, 48,141, 14,132, 16, 66, 8, 33,132, 16,194, +138, 50,249,245,217,128, 64, 16, 70, 8, 33,132, 16,194, 80,107,211,129, 82,147, +103, 56, 74, 51,182, 28,123,232, 6,244,129, 23,160, 11,104,113, 89,148, 23,187, +219,217,103,115,161, 49, 17,129, 71,168,129,189, 81, 72,102, 38, 72,146,130, 36, +141, 1,209, 12, 49,136, 90,203,138, 7, 50,177, 76, 5,147, 16, 35,202, 40, 66, +200,136,140,140, 72, 48,129,136,164, 32, 5, 37,133, 7,120,172, 69,196,159, 3, +196, 82,223,124,247,191, 34,228,188,182,241, 96, 36,173,127, 71,166,184,217,239, +151,154,180, 89,199, 79, 26,243, 82,165, 29,179,125,169,146,205,138, 41,163, 12, +159, 19,126, 99, 10,247,215, 48, 94, 69, 12, 55,153,142,110,217,181,124, 70,245, +245, 57,184, 34,182,193, 71,115, 16,213, 77, 69, 26,244,133,174,128,218,127, 64, +200,114,182, 69,127,163, 91,221,147, 74,247,172,154,101,175,241,188,168, 49, 93, + 92,135, 14, 10,208,159,113, 14,110,181, 23, 41,144, 63,217, 17,254,157, 38,182, +147,181,136,167,144,141,146,181, 20,214, 41,161, 28, 81, 89, 22,140,191,208,188, +192,159,156,245,211, 99,176, 65,140,133,107,184,122,196,186,128, 82,232,161,130, +240,231, 17, 66,226, 10, 64,157, 55, 16, 94,169,110,100, 46,206,209, 22,151,248, +143,146,137, 68, 21,141,186,179, 9, 9, 1,202, 32,205,160,217,115, 41, 94, 34, + 52,102,208, 8, 50,254,127, 49,255,176,205, 74,200,136,168,155,128, 58, 16,133, + 46,136,209, 47,108,138, 29,176,203, 25, 35, 16,110,157, 78, 6,126,217,213, 41, +204, 41,112,195, 47, 99,236,153,161,159,156,136,150,160,221,136,112, 21,252, 25, +180,157,119,172, 84, 66, 97, 65, 36,177, 11, 19,222,201,242,248, 32, 91, 12,234, +192,177, 63, 9, 22,140,239,198, 45,135, 67, 39, 62,158, 94,150,129,152,117, 14, +149,135, 84,102, 68,235,196,215, 76,249, 71,107, 27,185, 88, 65,232, 90, 49, 78, +144,168,142,254,117, 85, 15, 89, 94, 3, 40,205, 37,136, 17,216,119,161,216, 27, +153,149,215,195,161,191,213,163,142, 44, 98,217, 12,239,193,234,143,252, 35,240, +184, 8,107,183,132,233,110, 80,224,225,102, 58,132, 15, 62, 96, 85,154,126, 36, + 21,253,179, 42, 57,182,183,252,166,188,212,131,207, 95, 27,137, 59,211, 19,163, + 70, 72,120,144,183,190,247,188,162, 69, 35, 73,170,122,244,100, 37,104, 73, 80, + 54, 41,238, 71,199, 3,232, 93,178,247,180, 59,254,222, 38,255,125, 91, 34,130, +220,217,179,142, 66, 16, 93,136,224, 75, 17,115,166,129, 30,253,222, 87, 34,105, + 61,161, 70, 73,132, 96, 5,114,236,250,137,223,103, 29, 70,175,169,153, 39,232, +208,216,124, 82,218,139,205, 94,247,169,227,222,142, 39,252,249, 98,199,248,188, +161,180, 40,216, 11, 43,113, 56,193,161,193,188,225,229, 88,184,247,225, 35, 8, + 28, 7, 4,168,196, 35, 62, 53,181,107, 28,110, 9,214, 96,136,161, 63, 99, 44, + 61,125, 11,200, 3,156,138, 92, 22,251,145, 38, 33,130,156,147,131,118, 56,111, +151, 29,157, 22, 63, 66,151,150,110,115,137, 89, 60,165,193,203,124,153,138,191, +210,254, 74, 85, 80, 77, 34,197, 95,224, 11,170,215, 27,229,237, 27,160, 72,122, +122, 25,187, 22,166,116, 56, 48, 61, 71,108,154,183,218,244, 87,142,140,149,159, +119,167,232,213,173,107,233,225,114, 2, } ; -// ../Source/Template/GB_coverage.h: -uint8_t GB_JITpackage_90 [241] = { - 40,181, 47,253, 96, 36, 1, 61, 7, 0, 66,142, 46, 21, 32,223,161,167,221,197, -173,152,155,244,117,174,169, 93, 51,240, 19, 66, 32, 51, 52, 0,160,250,244,237, - 16, 47, 73,254, 77,166,249,175,231,175,220,191,221, 1, 4, 65,146,133,143, 19, -103, 74,172,241, 95,159,254, 57,226, 61,165, 91,244,237,175, 87,123, 26, 0,153, -121, 97,211,119,137, 93,165,246,244, 85,125, 0, 32,134, 82,116, 22, 61,227,137, - 63,114,247,170,255,111, 79,181,162,207,111, 71,253, 86,140,150,103,164,189,150, -251,220, 63, 62,127,118,245, 31,111,219,137, 19,139,130, 40,133,147, 32, 10, 31, - 80,129, 19,179,175, 79,139, 27, 19,191,217, 15,187, 62,228, 4, 56,109, 20, 27, -159, 50,246,244, 89, 62, 99,176,127, 79,131, 64,200, 95,207,231, 63,247,207,185, - 12,171,252, 97,141,190,158,114,175, 97,212,164, 48,126, 28, 64,113, 28, 1, 15, - 0, 88, 0,131,169,193,205,174,156,183,217, 78,197, 66,197, 2, 57, 18,162,136, -221,131,230,207, 51, 83,180, 9,108, 53, 15, 24,148,217, 4,243, 76, 66, 40, 10, -220, +// ../Source/Template/GB_AxB_dot4_template.c: +uint8_t GB_JITpackage_72 [4767] = { + 40,181, 47,253, 96,160,183,173,148, 0,170,119, 44, 22, 45,160,172,174,115,218, + 2,183,125,243,219,143, 33,195,235,246,190, 99, 56,189,138, 94, 50,174, 94,209, + 64, 84, 37,154,162,112,183,138, 29,208,114,106,194,235,240, 58, 24, 11, 94,169, + 79, 1, 87, 1, 87, 1, 16, 38, 48,141,115,241,186,155, 1, 58,158, 29, 6,120, +165,181,178,128,134, 2,237,210,185, 76, 92, 36, 34, 20,112,180,204,131,140,199, +221,244, 90, 64,163,225,240, 73,198,217, 95,229, 43, 65,122,135, 51,161,161,104, + 24,108,226,146,217, 84, 58, 90,101,131, 97, 40,149,136,107, 89,182,247, 2,220, +133,146,155, 45, 96, 70,206, 86, 79,246, 74, 27,176,123, 18,250,246, 99, 82, 6, + 69,252,201,188,217,232,185, 8,226, 65,225,106,148,145,179, 30,174,169,237,212, + 13,233, 39, 61,181,253, 75,103, 40,234,106,217, 70,238, 50, 54,199,160,253,157, +241, 86, 10,126,125,174,241,150, 67,125, 35,215, 18,236, 43,195,239, 11, 58,156, +205, 69, 98,115,193, 40, 24, 36, 80, 24, 28, 93,170,210, 27, 43,131,244, 95,200, +113,209,222,248, 97,204,174,253,177, 61,123,238, 61,250,174,233,164,223,217,211, +249, 25,152,123,204,126,199, 55, 4, 63,202,189,155,241, 13, 8,131,245, 96, 15, + 23, 65,236,146,202,237,245,157,220, 93, 30,108, 39,115,141,121, 60,136,160, 96, +232, 56, 84,217,242,230,246,122, 48,122,115, 41,177, 83,151, 5,177, 30, 7, 42, +136,245,137,147, 78,217, 14,197,136, 51, 96, 31,121, 46,253,186,115,138,131, 97, + 50, 15, 24,171, 69,194,182, 70,144,195,183, 67, 78, 67,202,208,187,237, 83,206, +149, 61, 25,167,236,229,194,142, 86,240,143, 29,122,182, 80, 0,155, 56, 40,191, +132,111,148,224,199, 87,139, 92,218,105,153, 8,211, 50,203, 27, 26, 26,143,134, +134,119,242,175,173,237,129,226,189, 68,139, 24,128,156,146,164,123, 50,114,229, +172,235, 1,134, 34, 67,209, 22, 88, 68, 44, 41, 18, 21, 28, 44,183,144,118,175, +244,212,141, 84,122,150, 75,102, 93,214,101,160, 50, 80, 73, 72, 88, 27,158, 66, +128,128, 83,129,161,144, 92, 97,194, 84, 34,200, 9,252, 74,159,164, 27, 78,159, +145, 37,165,155,244, 9,150,137,203,230,146,169,112, 52,109,163,121,128,201, 88, + 98,204,182,143,151,252, 21, 10, 8, 29,141,114, 65,185,209,193,241,161, 90,162, + 52, 54, 53,214, 88, 99,157, 57,124,178, 12,113, 95,248,135, 2, 78, 31, 74, 34, +101, 15, 14, 91,150, 85,142,243,133,197,173,241, 90, 13, 3,221,192,128,205,225, +204,181,180,219,124,131, 22,175,157,148,171,244,130, 93, 57,203,221, 47, 99,220, +225,176, 32, 27,239,252,131,195, 33,159, 72, 83, 69,113,253,197, 57,234, 36,150, + 30,206,126,154,146,237, 34, 87,207,213,190,112, 74,150, 50,130, 31,125,252, 48, + 98, 5, 5, 56,188,187,179, 25, 98,189, 31, 85,250, 49, 87,203,178,111, 39, 67, +154, 81,249, 94,108,222,201,205,181,231,241, 71,178, 70, 25,114,125, 59,234,185, +252,221,182,167,115, 73,101, 83,209,169,144,104, 0,227,119,123,251,246,137,227, +148,255,127,163, 49,161, 49,101, 39, 64,224, 19, 6, 83, 33,113, 10, 20, 78,129, +101, 58,151, 76,146, 46, 64,139,139, 40,151, 60,193, 39,106, 91,155,173, 81,164, + 79,254, 9,164, 62,205, 73, 2, 26,148, 72,167, 98,121,165,222,187,136,139,102, + 66,147,209, 2,167, 40,233, 12, 54, 26, 7, 26, 69,131,193, 96, 16, 19, 92,215, +107,185, 46, 88,154, 3,201, 51,210, 83,153, 36,131, 72,168,198, 39, 11,192, 49, + 4,120,129, 71, 71, 16,115,192, 64, 22,247, 52,246,201, 32,149, 94,142, 67, 94, + 55,178,233, 1,147,166,132, 25,165,115, 48, 88,131,137,200, 41,201, 33,213, 39, +147,127,221,133, 54, 9,204,176,208,251, 59, 43,181,209, 50,199, 69,107,111,243, + 86,192, 98, 39,119,103,136,247,112,161,149,178,103, 80, 41,163,101,218, 77,214, + 39,230, 64,149,102,220,193, 89,194,140, 93, 57,131, 61,233, 83, 37,253,146,209, +140,212, 13, 59,227,212,118, 41,251,218, 59, 99,215,218,150,122,112, 88,189,203, + 36, 1,184,132,209,108, 38, 42,248,107,217,159, 25,116,130, 44,157, 84,118,138, + 55,236, 18,219, 73,234,249,164,125, 41,149,191,150,206,236,108, 41,104,103,172, +157,145,156,244, 49,111, 4,255,233, 19, 29, 14,101, 12,253,209, 35,138, 31,109, +246,215,176,112,144,126,180,176,169, 92, 48, 20,151, 14,166, 34,115,185, 20,225, + 27,141, 86,225, 96, 23, 74,133,161, 99, 41,105,157,225,121, 59,189, 29,243,252, +165,115, 70,206, 70,239,163,202, 33,182,146,134,249,141,130, 10,103,131, 81,112, +164, 70,133,201, 57, 20, 45,134, 61, 30, 16, 21, 64,145,235,118, 97,241, 45,155, +253, 12, 3,221,145, 57, 48,240, 20, 72,122, 71,227,112, 60, 28, 4,162, 84,104, + 17,153, 11, 71,195, 50, 22,108, 67,193,214,241,234, 17,229, 3, 12,212,169,112, + 36, 36, 52,147, 67,140,106,141,134,215,221, 28,221,254,226, 13, 67,209,147,101, + 89,150,125, 98, 75, 58,126,182, 10,140, 81,249, 59,189, 87,196, 19, 4,154,128, +113,107, 8,233,157, 77,133,195,193, 38,138,186, 2,202, 6,131,176,193, 38, 46, +153,150,185,108, 58,245,122, 44,171,199,214, 18, 41,227,187, 26, 57,219,221,214, + 82,118,174,212,227,237, 12,130,177, 31,182,152,129, 24, 40,157,101,123, 50,232, +125,183,112, 4,135, 24, 93,240, 3,163,164,191, 5, 46, 46, 30, 48, 6, 43,163, +173, 28,138,245,222,118, 53,102,128,184, 24,121,210,142,251,232, 35, 25,185,222, + 25,210, 73,169,141,163,237, 84,199,183,169, 4, 69,108, 39,142, 63, 30, 16, 25, +120, 81, 61, 28, 89,132,100,159, 13,204, 50, 14,209, 45,182, 60, 53, 35,119,127, +202, 1,129, 74,101, 35,193, 92,175,235,186,174,235,138, 68, 34,215,117, 69,174, + 43,114, 93,145, 72,196,138, 92,215, 21,177, 44,203,178, 44,235,186, 44,203,186, + 44,235,178,172,235,186,190,112, 89,150,117, 85, 19,135,163,186,197, 82, 77, 86, + 37,153,125,235, 49,218, 44,150, 10,213, 29,211,133,197, 45,213, 31, 50, 9,132, +235,235,224,123,100,208, 90, 57, 52, 29,149,117, 49,233,136, 8,140,173,140,222, + 41,208, 41,234, 3,202,192, 83, 34,236, 20,104,241,126,131, 30,192,105,161, 79, + 65,184,238, 8,142,139,178, 79, 7,201, 43,201,175, 12,227,231, 15,233, 30,206, + 82,145, 91,159, 87, 15,235, 35,169, 34, 85, 85, 77, 16, 54,154, 76, 37,163,117, + 42, 52, 90, 86, 45,210,103, 13, 47, 87,143, 18, 8,133,106,168,147,249,130,212, + 41, 52, 51, 50, 34, 73, 82,144, 52, 6,163,113, 8, 80, 72, 68, 50,145,147,134, +218, 34,235, 3,163, 49,226, 65, 80, 16, 24,194, 32, 12,129, 16,144,128, 65, 16, + 20, 65, 24, 4, 65, 17,129, 33,132, 24,129,145,134, 24, 3, 85,154, 7, 3,170, +162,222,231, 73,109,228,120, 48, 25,235,110, 59,190,122,219, 72, 85,250,129,243, + 33,124,230,130,173,216,240,166,155, 44, 38,153,103, 12, 94,138,134,184, 55,100, + 24, 21, 70,107,101,232, 47,223,138,134,140,160, 82,233,177,203,180,149, 14,205, + 72,145, 36, 2, 74,153,175,241, 86,170,124,161,104,122,185,232,137, 19,161,184, + 63, 19, 71,227, 54, 0,146, 87,160,201, 12,202, 96,227,252,218,185,166,105,254, +139,221,214,183,164, 44, 82,196,202,137,194,213,162,157,116,121,127, 90,144, 57, +245, 67,211,159, 55, 60,180,188,124,151, 6,110, 48,192,242,125, 80, 49,132,189, + 29,111, 8, 55,182,203,101, 3, 4,105, 71,101,224,173,234, 43, 90,217,109, 51, +198,196, 3, 52, 65,172,113, 79, 10,156,223, 95,129,254, 18,125, 72, 12,226, 82, + 47,199,171,118,203,152, 59, 85, 98,188, 79,230, 62,137,110,185,162, 77,167,226, + 56, 30, 52,106,156,149,255,145, 46,173,254,172,240,152,100, 81,156, 41, 29, 74, +230, 53,170, 36, 60, 36,178, 55, 0,136,200,211,182, 29,124,195,218,183, 96,170, +142,195, 59,180,166, 47, 85,210, 42,220, 2, 39,169,196, 81, 34, 28, 62, 7, 36, + 22,235,171, 59,169,241,152,214,153, 78,118,210,254,124, 76,215, 33,211,131, 52, + 95, 43, 46, 38, 64,122,237,111, 76,203, 58,194,129,248,152,161, 18,136, 22, 26, +106, 82,225, 71, 19, 27,113,218, 69, 2,234,213,114, 99,122, 56, 63,131, 12, 93, +100, 26,133, 44,240,144, 10, 65, 74,240, 24,137,191,210,116,111, 19,227, 25, 8, +216,146, 94, 38, 30, 46, 96, 72, 19, 79,103,169,210, 46,225, 26,235,233,103,107, + 54,179,109,145,197, 91, 43,133,175,230, 66,193, 84,212,218, 59,247, 37, 9,226, + 69,174,220, 67,127,182, 86,135,137,252, 58,112, 17, 50,242,164,200,231, 86,214, +205,119, 1,108,126, 75,175,171, 30, 17, 98, 91,237, 29,242,102, 65,141, 98,175, +204, 86,140,148, 49, 35,149,138,248,231,231, 70,252, 21,107,216, 38,221, 1,228, +126,246,132, 28,141, 17,185,163, 77,149, 21,146,123, 86, 84,161,152,220,137,156, +156,104, 2, 94,147,244,159,128,123,222, 61,129,162, 95,148,211, 15,209, 28, 65, +187,227,100,242,126,153,142,128, 60,168,216,190,211, 9,233, 78,131, 94, 43,220, + 78,164, 13,204,244,170, 64,148,252,223,108, 40, 73,206,205, 46, 35, 69,120,148, +229,217, 58,170, 73,226,146, 49,218, 39,242,213,159,197, 16, 81, 8,217,179,150, +139, 38,138, 44, 91, 77,160,133,140, 91,208,204,248,194,170,115,212,207, 78, 33, +159,191,182,112,235, 88,232,155,106,171,147,233, 23,176,170, 54,130,244,189, 4, +228,113,121,245, 3,255,239,231,209,167, 99,108,140,181, 39,188,189, 45, 12,214, +100,229, 31,130,192, 47, 85,145, 33, 9,224, 73,123,212, 30,113,252, 71,153,213, +227,100, 50,144,227, 79,178, 65,227, 11,178,219,226, 30, 72, 24, 28,126, 99, 89, + 94, 19,214, 32,158, 20,197,129,139,227, 22, 95,180,243,240,190, 58,110,142, 3, +197, 13, 13, 56, 55,102, 87, 50, 91,172, 96,164,193, 82, 25,101, 43, 67, 34,181, +248,235, 69, 19,252, 93,243,188, 11,112,140,221,224,159,177,239,213,247,155, 36, +176,191,118,114, 29, 14,230,134, 17, 4, 35,219, 48,221, 96, 94, 27,190,176,133, +103,195,171,211,109,216, 41,187, 97, 29,153,173,204,184,243,244,163,148,102,113, + 19,108, 20, 10, 8,250,254,241,226,195,118,105,105, 67,151,205,158,134,209,199, + 47,240, 40,126, 69,201,153,143,145,109, 86, 65,235,159,236, 82, 24,135,249, 45, +198,247,235,147, 80, 78,205,249,201,119,159,231,253,174, 94, 74,217,227, 98, 3, +112,245,166, 11,202, 46, 94, 53,213, 88,227,128,169, 82,183,189,203,204,166, 34, + 13,106,208,155,185, 15, 17,126, 40,190,130, 62, 18,151,146, 23,213, 87,148,115, +107,174,170, 56, 2,142, 69,235,176,134,121,158,220, 72,254,240,127,229,209,210, + 49, 21, 90,239,167,244, 1, 25, 34, 40, 9,251, 28, 33,150, 41, 78,137,148,162, + 28, 65,160,147,128, 11,215,231, 59,133, 53, 36,153, 35,171, 96,212,211,222,186, +242,179,251, 7,178, 71, 62,234,113,239,123,237, 16, 95,249, 76,123, 17,154,138, + 69, 20,181,156,153,226, 37, 46, 6,107,177,122, 88,163, 35,238,119, 82,252,192, +119,169,134, 39, 95,176, 35, 41,245,207,106,136,148,136,137, 8, 98,213,144, 83, +102,183, 0,138, 99, 76,236, 87,146,160,152,245,194, 49,116,218,154,134, 45, 65, + 92, 4,224, 72,250, 66,120,165, 0, 68, 90,123, 67,110, 21, 96,212,144,182,186, +206, 13, 36,156, 69,205, 94,236,250,149,151,197,219, 53,115,173, 20, 57, 20, 42, +117,149, 72, 37,156,122,184,168, 10, 76, 39, 96,148,234,151,183, 70,229,250, 17, + 25, 22, 38, 79,196,240,245,102,151,239,211, 27,133,113, 38,176, 38,197, 54, 73, +161, 56,208,130,202,232,226,196,151,100, 93,160, 66, 97, 19, 29, 88,155, 33, 76, + 90,226, 70,162,128, 9,203, 51, 15,254,160,206,240,157,163,141,135, 54,246,243, +117, 52, 96,230, 7,150,219,228, 91, 63,122,184, 48,143, 45,119,127, 58,149, 77, +200,200, 11, 64, 12, 62,162,238,214,152, 99, 9,189,228,231,127,180,248, 1, 99, +147, 35, 27,103,251,248,218, 5,174,242, 14, 20,219,173,122, 0,245,192,171,254, +126,226,188,181,165, 20, 95, 30,150,154, 65, 84, 23,106, 12,211,135,125,190,143, + 18, 7, 97,201, 13,126, 54,206,199, 27,128,116,253,197,235,112, 93, 74,139, 77, + 8, 73,218,150,129, 58,235, 72, 7,107, 4,160, 6, 38,110, 32,190,126,176,241, + 1, 67,216, 5,203,223, 34, 73, 82, 54, 39,132,107, 86, 36,208, 17,235, 77, 34, +235,231,178,247, 19, 27, 48, 28, 34,129,128,160, 96,149, 83,237,237, 95,181,172, +147,168,215,143,105, 32,217,213, 2,174,154, 82,169,249,253, 15, 37,197, 38,221, + 31,235, 15, 36,135,189, 20, 33,240, 55,131,252,213, 53, 42,105, 96, 18,240,113, +127,209,151,158,170,168, 50,143, 20,218,142,212, 75, 25, 58,160,177,252,148,130, + 13, 65, 99, 35, 0,174,202, 12, 35,192,110,204,193, 51,134,224, 61,121,212, 5, + 56, 45,163, 71, 12, 20,132, 6, 77, 74, 72,105, 64, 51,134,115,171,117,224,216, + 27, 63,188, 67, 48, 83,112,131,240,107,214,253,248, 28,238,191,227, 48,102, 94, + 61,199, 17,207,182,250,145,190,101, 10,163,144,169, 35, 8, 81,129,228,194, 61, + 98, 61,135,201,151,124, 50,126,195, 57,249, 71,150,115,156, 66, 42,187,154,242, +187,220,122,230, 74,148,237, 38, 36, 85,234, 12, 10,210,170, 84,250, 70, 95, 26, +230,185, 84, 62, 44,193,249, 93,142, 81,152,170,162, 90, 42, 76,182,148, 20, 64, + 48,214,214,163, 20,103, 63, 62, 2, 93, 8,132, 41,103, 61,102, 91,143,222,119, + 15,122,126,155,228, 38,219, 38,163, 75, 12,213, 17,180,206,167,138,127, 23,128, +142,184,205,162,223,198, 38, 77, 64,255,199,182, 90,239,196,146,207,122,238, 36, +149,184, 33, 2,237,242,181,208,160, 63,207,174,127,244, 65,176,227,207,213,163, + 33,212, 73,194, 63, 53,194,125,102,253,144,233,133,241,192, 23, 86,188,120, 29, +151,183, 42,234, 9,177, 60, 43,197, 59,233, 62, 3,120,134,160,109, 45,134, 78, +218, 70,102, 42,217,161,174,250, 77, 45,162, 86,252,168, 11, 57,148, 79,200,246, + 45,113,232,240,120,194, 23,106,190, 34,181,150, 79,197, 88,161,220,210,198,182, +221,109, 96, 80, 50, 6,149,212, 95,255, 55,116, 15,134,181, 63,183,139,183,162, + 26,104, 20,113, 55,200,177, 71, 57, 66,210,150,204,254,192,211,220, 70, 71,221, +186,157,133,151, 74, 17, 81,102,124,117, 44,124, 47, 73,172, 71,209,223,221, 98, +202,205,125,232, 96,114, 50, 42, 10,233,139,114,115,105,154, 25, 45,127,177,212, + 42,101, 79,112,255,245, 60, 54,188,187,229,142,201, 50,183,244,110,253,184,252, + 76, 51,104,253,153, 62, 30,204,182,125,119,253, 19,233,115,149,121,231,118,213, +108,109,240, 42,218,170, 22, 20,227, 21,176, 17, 26,123, 75, 7,183, 58,208,145, + 52,101, 78,182, 87,178,156, 76,144,122, 82,156,237,110, 50, 61, 71, 17,154,183, + 57, 34,174, 77, 74,103, 19,100,133, 33,135,132,158,223,237,193,251, 45,160,144, + 97, 23, 70,146, 23,197, 72,144, 62,165,204,238, 39,243,232,145, 91,168, 97, 82, +180,191,162, 65, 64,129, 93, 15,247, 97,185,234, 16,215, 42, 77,214, 66, 94, 43, +155,153,125,190, 39, 52, 99,180,176,220,151,216,226,181,144,193,193,225,114,232, +108,196,105,220,189, 58,209,194,102,201, 87, 12,156,163,181, 48, 73,122, 98,102, + 26,117, 5, 83,204, 96, 44, 35,139, 54,109, 88, 56,193,141, 24, 7,252,119, 28, +108,169,240, 63, 29,174,148, 11,220, 99, 97,217,183, 27,169,244,202, 18, 38,179, + 45, 91, 66,121, 46,187,133,107,107,190,118,176, 97,180,153,233, 80,242,132,191, +169,130,154,134, 56,237,209, 35, 78, 29,108, 18,244, 55, 36,191,150, 60,187,165, +105,118,130,108,202,166,135, 6,132,255,205, 75,142, 22,136,244, 75,123, 64, 31, +154,117, 10, 26,222,229,123,100,172, 63,109,146, 40,137, 89, 16,142,223, 63, 56, + 25,202, 97,112, 73,135, 78,149, 76,159, 39, 68, 75,117, 72, 95,204,113, 45,224, +220, 32, 46,169, 89,135,191, 41,180,252,154,175,104,214,178,157,164,255, 47, 19, +108, 47, 17,168, 98, 7, 91,170, 31,248,219, 79,105, 92,234, 5, 78, 6, 34, 54, + 78,142,234, 32,227,180,132, 3,242,247, 2, 65, 46,101,117, 92,218, 67,104, 85, +243,128, 91,171,120,239,233, 99,250, 41,191,232, 24,153, 47, 41, 64,110,131, 63, +206, 57,138,247,213,142,213,170,140,156,122,156,158,169,254, 3, 63,229,245,122, + 50,123,110, 68,160, 37, 35,134, 67,104,121,109,127,187,109,223,214, 64, 92, 49, +216,133,137,162, 85,180,175, 27,111,196,210,220,225,119,119,218,216,191, 84, 31, +169, 41, 96,136,248,212, 81,132, 90,170,226,158, 16, 35,112, 46, 83, 42,121, 44, +160,119,167, 88,166,127,246, 63,166,171, 92, 53, 52,244,192, 94,230,241, 49,167, + 30,232,194, 94,212,117,129, 60,187,131,173,253,222,250,187, 31,154, 47,112,151, +172, 88,237,228, 84, 73, 0,165,143, 83,198, 58,248, 67, 84,231, 0,167, 67,228, +128,235,130, 60, 25,182,186,147,173,118, 99,173, 57,156,172,200,144, 48, 64, 39, +180,234,113,193,137,166, 34,196,138,196, 33,240, 56,251,131,196,112, 21,192,102, +177,129,120,139,106,147,246,184,186,119,191,112, 46,110, 42,222,164, 11, 87, 32, +237, 61,154, 61,126,238,163, 20,149, 42,164, 98, 6,217,213,252, 59,120,161,239, +221,174,238,139,177, 13,159, 7,219,222, 65,164,192,233,214,203,215,181, 46,198, +182, 50, 27,169,105, 29, 78,182, 26,231,116, 73,196,126,234,178, 8,103, 53,254, +102, 56, 97, 3,173, 72,137, 4, 23,209,208, 31,174, 64,138,255,241,226,144,239, +205,214,110, 63,226,166, 43,123, 91, 18,193,157,120,152, 79,205,204, 9,163, 29, + 49,147,173,201,216, 48,208,164, 1,187,124,201, 97,145,190, 37,112, 89,166,192, +129, 81, 39,118, 42, 77,169,239, 99,158,206, 53, 61,197,100,230,130,221,225,179, + 55, 5,147,180,245,182,231,169,145,220, 83,140,182,154,118,161,133,149, 86,148, +187,140,188,150,138, 17,231,152,170,237, 44,224,250,161, 11,186,233, 70,140, 73, +182,203,178, 89, 98,166,230,104, 12,214, 90, 28, 62,160, 13,240,160,155, 66, 75, +249,214, 68, 24, 17,207, 11,174,176,189, 90, 17, 44, 3, 83,180,134, 35,213,131, +215,225, 98,110,139, 1, 31,150, 53, 29,209,250,178, 79, 37, 43,208, 76,196,182, +133, 24,236, 64,165, 86, 40, 81,132, 47, 69,180,125,107,193,241, 30, 60, 9,248, + 77,142,227,142,172,196,157,116, 39,216,120,122, 0, 2,182, 12,133,209, 51, 13, +251,183, 18,220,204,185,219,111,208,181, 75, 12,187,231,108,123,245, 18,102,127, + 25,243,128, 79,164,153, 39, 79, 98, 8,240,173,190,117,106, 91,220, 58, 54, 1, + 51, 74, 65,168, 50, 32,163, 64,231,123,209,238,249, 78,205, 40, 27, 27,117, 29, + 18, 86, 72, 77,165,158, 10,172,110,148,171, 82, 74, 38,124, 16, 36,150,204,182, +145, 95, 23,145,147, 73,136, 30, 29, 8,161,126,192, 61,112, 69, 90,207, 90, 23, +152,170,140,247,126,128,139,170, 86,196, 15,144,222, 2, 10, 74, 65, 37, 8, 20, + 59,156,244,228,238, 27,206,194,133,123,158, 76, 19, 87, 64,178,114,115,216, 45, +248, 16, 14,148,119, 46, 35, 85, 39,148, 80,108,235,217, 44,190, 59,123, 90,179, + 7,108, 99, 91, 7, 41,242, 73,209,114,149,238,149,177,142, 40, 52,242, 59,168, +112,126, 80, 11,162,177, 46,252, 25,120, 1,152,230, 98, 29,228, 54,251,170, 6, + 35,117,169,180,191,134,240, 52, 85,236, 11, 68,148,241, 97, 83, 62,185,204, 7, + 36,194,199,197, 15,195,116,113,120,170, 40,114, 93,237,209,186, 62, 40, 44,215, +182,223, 71, 46,195, 32,149, 51, 87, 69,192,184, 9, 29, 69,192,173, 64,195,203, + 28,221, 0,242,188,114, 69, 55,120,140,231, 78,195,151, 14, 45,113,208,215, 43, +218,195,202,123, 0,215, 45,111, 39, 64, 94, 14,173, 50,239,132, 17,176, 66,250, +243,122, 30,177,226, 57,235, 25,228,223,252,149,249, 69,196, 21,182,192,151,197, +122,209,122,133,220,176, 37,138,136,189,188,171,145,120, 30, 28, 11, 97,140, 85, + 27, 18, 11,125,246, 32,225, 35,187,240, 10, 57,168,107, 27,166,167,172,167, 9, +167,228,139,108, 4,103,161, 4,222,129,133, 83,225,166,253,221,245, 18, 42, 98, + 27,212, 74,246, 61,253, 69, 61,115,183, 38,236,115,116,159,137, 84, 40,130,114, +253, 94, 51,207,132,255, 43,200,167,103, 36, 71, 17, 49,155, 34, 74, 28,107,181, +200, 60,222,123,213,145, 68, 85, 42,120,229,108,193, 53, 8,118,227, 45, 81,246, +106, 15, 72, 15,183,177,215, 70,203, 73,113, 49, 79, 28,250,136,135, 97,124, 46, + 63, 42, 14,226,242,153,244,217,206,168,166, 84,202, 30, 37,189, 92,162, 29, 1, +161, 11,219,195,167, 56,220, 97, 53,215,150,199,196, 69,141, 65,219, 73, 88, 38, + 2, 9,217,108,180,245,184, 60,224, 78,125, 97, 38, 4,145,122,111,214,105,233, + 77,169, 80, 51,152,140,165,141,113,117,226, 63,102,237,212,191,116,199,118, 40, +133,203,155, 98,228,179, 13, 6, 30, 14, 4,226, 1, 32, 60,152, 48,204, 40,127, +142,156,168, 23, 74,132,100, 81,151,205, 91, 35,221, 64, 2, 48, 0,211,132, 20, +100, 43,197, 83, 27, 61, 98,156,205, 75, 34, 65,226, 31,206, 0,185,111,136,249, + 53,245, 68,254, 16,210,254,234, 6, 13,157,199, 24, 24, 46,223,117,249,244,173, +240,197, 97, 44, 31,122,181,169,190, 36, 20,149,232,138, 34,231, 65,222,155, 31, + 68, 77,166,116, 11, 99,137,251, 76, 47,161, 74,104,125,148, 76,248, 60,226,210, +229,235,165,195,201,244,140,211,164,201, 93, 48, 19,108, 38, 2,200,142,137,137, +254,179,122, 90,241, 82, 30, } ; -// ../Source/Template/GB_defaults.h: -uint8_t GB_JITpackage_91 [400] = { - 40,181, 47,253, 96,224, 2, 53, 12, 0,150,216, 76, 31, 16,183, 14, 75,239,172, - 27, 41,222, 52, 28, 27,165,229, 47,245,255,202, 43,213, 36,189, 35,238,202, 71, - 4, 0, 64, 21,204, 69, 0, 66, 0, 68, 0,216, 18, 14,151,117, 81, 11,131,117, -173,128, 11, 44,193,123, 52, 31, 91, 97,107,162, 15,138, 90,179, 4, 13,171, 52, -104, 56, 69, 9,131, 93,156,161,198,223,163, 38, 29, 84,251,159,125, 69,126, 22, - 77,113,134,187, 12, 90,249,127,227,244,184,219, 26,146, 45, 20, 36, 85, 40, 4, -252, 21,228,150,233,175,179, 51,213, 84,176, 63, 4, 37,215, 6,200,108,211, 52, -149, 13, 22,129, 60, 60,238,170,215, 0,105, 85, 23,197,148,155, 33,182, 12,145, -219,235,175,220, 77, 40,246,202, 92, 87,168,206, 3, 83,117, 60, 18,217, 57,179, -254, 20,212,153,253,190,244,151,114,147,151, 71, 13, 90,130,233, 35, 64, 92,150, - 65,195, 50, 65,226, 82, 88,149, 21,216,204,161,153,112,180, 45, 3,193,120, 50, - 89, 61,251,118, 25,108,141,146,100,193, 95,255, 49,172,189, 62,183, 99, 31,249, -179,117,114,251,147,254, 58,143,223, 28,173, 7,238,215, 82,122,221, 85, 6, 72, -169, 72, 92,171,153, 88, 38,155,196, 50,121, 88, 32, 24,231, 47, 28,127, 65,181, -187,202,161, 7, 46,159,218,247,155,253, 93,123,128, 80, 80, 44,155,204, 1,118, - 11,254,134, 68,144,228,223,117, 92, 10, 66,177,239,147,191,253,185,221,100, 49, - 28, 0, 77,176, 50,177,173,162, 1, 93, 25,240, 83,131,123,133,102,159,199, 18, -182,153,171,149, 50, 6, 83,127,130,150, 72, 52,203, 5,154,245, 8, 16,139,140, -141,107, 30, 4,126, 4,187, 19,118,151, 88,161,188, 38,145,179, 27, 0, 41,106, - 3, 51,104,218, 60, 51, 69,155,192, 86,203, 3, 6,177, 47,110, 80, 20,184, 1, +// ../Source/Template/GB_AxB_dot_cij.c: +uint8_t GB_JITpackage_73 [2904] = { + 40,181, 47,253, 96,149, 87,117, 90, 0,186, 86, 40, 16, 41,192,146,117, 14,106, +166,126,159, 61,135,219,228, 88, 54,247,173, 34,237,169,111,132, 51,228, 6, 14, +151,236, 98,102,232,194, 69,151, 1,211, 36, 8,162, 73, 14, 2,243, 0,242, 0, + 5, 1,111, 18,205,147,163,160, 72, 51, 56,134,199,243,162, 52, 61,192,105,129, +224,232, 93,218,242,249,245,250, 43, 86,129, 0,117,145,231,168, 20,211,174,186, +174,212,235, 78, 32,163,193, 64, 33,236, 35, 69,153,150,129, 62,154,188, 71, 43, + 9,183,197,210,168,239,188, 71,156, 97,166, 27,230,181, 71, 30, 71,168,244, 0, + 93,157, 17,158, 7,204, 43, 9,129,249, 5, 55,158,220,187,239, 40,207, 95,235, +189,107, 60, 98,250,206, 19, 20,195,206,199,116,148,253,149,204,141,157,189,226, +143, 63, 41,233,199, 24,201, 65, 5,129,210, 35,110,138,242,151,219,212,163,185, +118,119, 81, 26,215,230,104,135,130,145, 9, 85,186, 38,221,198, 45, 58,206, 35, + 14, 42, 58, 8,202, 87, 9, 8, 7, 8, 20, 6,203, 1,194, 41,110,122,133, 41, +105,102, 94,145, 47,141,178, 13,105,246, 10,147, 29,107, 36,206,203,185, 52,190, + 83,196, 58,211, 17,147, 80, 29, 86, 1, 1, 69,171,203, 36, 15,113,170,163,162, + 19,230,157, 71, 49,180,220, 47, 29,148,211,178,237, 52,235, 67,106, 22,231, 6, + 6, 18,138,129, 65,147, 4, 67,147,249, 92,154, 28, 61,218,213,128, 58, 6,220, +219, 2, 18, 9,237,202,174,207,181,201, 72, 96,154, 7,195, 83, 61, 42,192, 85, + 56,106,144,189, 27, 79,183,167,192, 9, 50, 61,195, 62, 32,140,214,145,159,203, + 35,210,100,154, 70, 36, 59, 24, 77,166, 65,234, 17,116, 55,130, 92,165, 2,221, + 40, 90,177, 47,189,214,160, 4, 86, 91, 65,104, 72, 51,206,248, 25,143,225, 40, +219,141, 66,152,222,217,112,187, 52,108,252, 14, 8,100,105, 90,198,125,237, 12, + 79,249, 40,120,156,185, 41, 2, 97,220,195,130,158,189,173,225,136,241,124, 69, + 77, 32,181,190, 68,113,133, 85,116, 66,161,189,222, 45,159,111, 16,164, 30,175, +121,138,165, 82,247,198, 86, 20, 71,252,234, 54,169, 61,172, 4, 56,111,215,230, +168,186, 58,246,102, 71,165, 44,134, 77,169,182, 86, 75, 51,215,185, 82,122, 11, + 68,198, 71,118,212, 86,235,125,255,190, 73, 30, 55,189,158,253,165, 83, 28,113, +121,134, 47,213,170,171,125, 30,237,113, 6, 39,229,186, 67,139,143,187,163, 36, +209, 37, 67,191, 54, 79, 27,210,147, 73, 38, 46,140,166,177,144,152,134,101,200, +139,142,252, 50, 25,105,125,223,228,251, 38, 20,214,198,163,255,102,223,201,228, +193,225,150,111,202, 92,160, 15,200,163, 97, 42,180,140,231,194, 52,233,225, 72, + 81,168,224,213, 1,229,166,103,157, 10,143,101,189,234,248,182,233,150,197, 84, +147,226,171, 15,249, 42,211,112,232, 55,167, 75,170,195,122,193,193, 36, 27, 79, +110,161, 76, 16, 67,122, 50, 13,182,217,128, 50,190,212,235,111,230, 95, 38, 50, + 76,116,109, 52,133,133,106,154, 48, 58, 33, 15, 70,155,224,124, 52,136,217, 52, +184,141,182,202,147,115, 89, 8, 9, 8, 9, 11,150, 5,203,102,131,241,248,170, +161,161, 99,249, 56,248,192, 79,141,211,148,105,152,137,170,179, 65,107,183,169, + 3,246,136,197,199,220,193,118,183,185, 62,132,243,185, 68,151, 71,131,113, 66, + 6, 6,222,233, 84,108,232,148, 18,164,118,108,212, 69,154, 80,134,132,136,200, + 53,152, 72,134, 48, 13,187, 52,107, 58,117,240,136, 79,207, 68, 26, 12,147, 14, +207,119,102,172, 65,220,210, 20, 22,254, 75, 66, 64,252,249, 11,213, 24,164,106, +131,164,130,137, 20,167, 83, 95, 18,201, 72, 41,211,112,230,209,110,243, 77,154, + 35,203,178, 44,171, 99,210, 11,157,205,113, 59,252,232,122,231,247,125, 27, 61, +196,100, 66, 68, 80, 85,117, 9,140, 72,102,136, 44,205,115,137, 50,202,136,131, +222, 73,246, 26, 20, 45,148,141, 94, 38, 61,135,105,183,209,110, 81,220, 62,169, + 37, 74,113,122,131,116,228, 97,243,187, 82,193, 27,176, 12,187, 48, 52,154,197, + 1,192, 77, 39,204, 29,196, 9,218,103, 2,109,163, 21,124,109,230,154,116,207, + 30,156,248, 54,105,226,238, 78,143,143,155,219,231, 71,153,122,188,171,237,222, +219, 59,112,180,220, 75,125,123,244, 18, 56,251,230,103, 91, 95,193,165,106, 45, + 62,158,207,165,237, 85,215,153, 90, 80,252,104,220, 88,254,151, 82,126,147, 95, +138, 84, 82,147,248,138, 66,137,184,148, 84, 30, 98,227, 15, 23,197,239,167,190, +107, 39,207,254,163, 59, 15,123, 29, 54, 44,148,174,182, 54,249, 6,181, 40,171, + 64, 30,226,152,201,128,250,166, 83, 40, 17, 35, 95,143, 55,227,140,233, 71,107, + 27, 26,223,172,131, 74, 31, 10,131, 34,168, 66,156,208, 49,101,136, 68, 36, 73, + 82, 41, 52, 6,226, 32, 4,130, 64, 32, 75,114,141,221, 6, 66,137, 32, 8, 52, + 16,131, 17, 48, 66, 8, 49,132, 16, 67, 8, 33,136, 8,132,136,136,200,136,140, +200, 12, 59, 18,161,164,188,225,157,159,153, 54,218,159,114, 93, 57,215, 92,224, + 52,160, 62,241,195,164, 86,133,245, 10,173, 59,121,212,195,190, 76,176,168,203, +104, 90,173, 21,166,110, 12,182,207,128,198, 20,243, 61,110, 90, 77, 3, 76, 82, + 3,169,243,134, 1,107,167, 26,239, 21,130,183, 32, 35, 46, 96,175,237, 80,196, +225, 18,187, 64, 44, 1,147, 42, 76,228, 31,207,249,130, 75, 75, 45, 61, 24,183, +224,242,114,246,195,183, 25,239, 64,148,203,109, 53,251,162, 16, 39, 31,203, 67, +201,179,212,109,234,229, 22,220,217,171, 4,250, 17, 67, 11, 53,125, 74,156,240, +220,206,108,165,155, 92, 96, 76, 53,124, 25,166, 30,136,226, 13, 41,147,105,114, + 2, 12,217,229, 22,143, 33,172, 71, 74, 15,227, 1,235,181, 25,170,198,106, 8, + 41,110, 39,223,149, 90, 3,201, 12,111,248, 21, 44,249, 81,187, 62, 45, 27, 15, +152,188, 55,154,231,140,222, 37, 16,182, 34, 75, 40, 95,138,198, 27, 27,122,246, +211,194,254,168,102,187,212, 22,215,214,116, 5,106,237,189,247, 87, 1, 75,162, +153,182,249, 29,234,196, 93, 49, 51,207, 30,214,184,164,122, 34,156, 95, 11, 74, + 71,102, 61, 22,109,237, 43, 86, 69,155,181,147, 38,245, 95,195, 92,212,216,136, + 64,126,213,235,238, 82,213,167,227,175, 98, 15,227, 36, 74,140, 0,232,242, 28, +165,128, 10, 85, 14,235,201,177, 24, 65, 52,138,146,117,181,146,111,248, 43,126, +236,110, 66, 52,213,148,120,241, 5,225,249, 33,145, 7, 33, 76,194, 65,143, 10, +197,184,219, 67,123,208,167,162, 26,225,165, 64, 97, 14, 22,207, 65, 26,241, 23, +162, 0,163, 29,231,116,194,227, 47, 42, 61, 56, 67, 80,213,225, 42, 18,251,161, +197,204,102, 19,131, 45, 79,248, 84,241,101, 71,229,102, 2,122,192,166,234,237, + 42,149, 17,117,119, 43, 34, 54,180, 29, 91,187,148,186, 58, 43, 0,126, 16,234, + 58,140, 3,137, 89,120,202,210, 24, 53,246, 22, 57,239,189,185,208, 89,187, 88, + 59, 43,221,253,118, 97, 44,188,207, 55,216,255, 97,235,186,188,185,223, 22,118, +254,136, 74, 29,139,124, 23, 58,212,111,119,123,254, 80,199, 38,199,165,185,185, + 24, 8, 54,225,204, 73,158, 91,213, 72,174,185,221, 51,245, 90, 83,199,239, 12, +164,131,217,157,212,178,165,115,212,232,237,156, 57,118, 56, 99,206, 28,142,151, + 83,195,185,242,147,177, 29,103,162,200,117,237,113,225,177, 49,252,187,127,181, +162,225,245, 79,167,184,160, 27, 52,248,182,149,230,207, 62,179,194, 31,177, 10, +109,184,129,174, 10,195,134, 5,106,217, 46,116, 69,237, 84, 42,154, 26,217,152, +118,108,172, 64,223, 75,140,239,187,209,167,146, 30,190,198, 39,205,212,225, 94, + 61,103, 30,253, 16, 35, 1,143,239, 66, 27,126,186, 9, 18, 1, 7,119, 77, 85, + 5, 82, 48,251,253,101,151, 19,158,153,224, 84,125, 88,104,115,201, 73, 82, 58, + 70,117, 48,109,217, 3,254, 14, 13, 72, 7, 41,189,101,225, 69, 67,153,120,119, +182,155, 30,134,112,233,121, 62, 46,117, 48,160,112, 26, 13,133,186,103, 88, 46, +186, 0,132, 3,207,169,130, 82, 77,111,225,222, 36, 52, 78, 22, 60,135,227, 14, +111,132, 16, 65, 78,163,104,112, 29, 57,161,143,153, 48, 92,177,132, 7,182,178, + 31, 17, 98,245,168,106, 90,150, 78,115,185,208,133, 63, 30,160, 61,158, 85,252, +223,131,110,179,236,177,183,184, 64, 61,209,175, 67, 8,149,200,123, 0,197, 18, +227, 49,130, 62, 32,123,213,136, 50, 59, 64,113,145,223,106,216,217,227, 64, 10, +204,224,166,148, 45, 31, 35,166,135,115,182,220,233,140, 53,115, 59, 95,206, 26, +142,149, 7,145,224, 57,127,244, 47,233,165,107,249, 23,114,231,171,120, 64, 19, + 43, 72,115, 7, 30,116,193, 66,135, 34,209,250,141,141, 2,137, 32,218, 6, 23, +132,158,148,160,179, 14,232,235,160, 45, 71, 74, 97, 39,209,160, 2, 92,208,118, +159, 58,213, 91, 86, 5, 61,127,241,127,105,139, 59, 51, 88,180, 69,192,170,245, +113,185, 94,227,120,252,160,224, 20, 9,113,117,229,236,230, 5, 9,175, 39, 5, +186,189,239, 26, 93, 12,113, 93, 44, 18,126, 11, 49,177,168,106,149,230, 33, 70, +234, 8, 22,244, 83,229,127,117,152, 63,110, 61, 91,142,220, 84,158,140, 41,113, +185,146,181, 43,144,223, 48,108,143, 58,126,165,133,207,107, 23, 50, 87,171, 14, + 33,151, 5,152, 29, 24,159,238,245,156, 83, 86, 56,160,152,230, 66, 1, 33,179, +190, 11,194,165,156,127,171,125,216,160,148, 15,205,178,226, 73, 79,243, 66, 47, +177,204,240, 16,161,232,190, 67,200, 37,251,179,193,193,224,216,104, 15, 73,137, +195,180,135,212,132, 9, 46,135, 49,207,224,116,192, 83,119, 24,152,149,253, 45, +166,145, 68,225,126,104, 50, 92, 71,133,144,201,217, 70,217, 13,207,106, 12,215, +145,148, 97,168, 21,107,144,219, 99,151,106,158,171, 15, 90,213, 36,213, 79, 32, + 17,213,117, 14,179, 86,241, 39, 75,172,133, 5,203,254,115, 72, 65,131,165,230, + 0,241,193,226,162, 42,240, 19,234,251,248,119,233,186,214, 18, 65, 90, 86,134, + 17, 35, 11, 17,228, 23, 34,178, 9,220, 51,184, 98,252,139, 46, 59, 52,113, 60, + 75,116, 19,177, 73, 26,243,192,150,103,213,251,243, 11,117,185, 2,182, 10,140, + 53,177,161, 74,106, 5,172, 43, 46, 17, 90, 87,205, 15,191,178,179,102, 43,179, +198,180, 70,189,138, 29, 37,192,211,252, 7, 12, 50,203,204,112,232, 20, 32,212, +254, 4,253, 31,142, 35,100,153,154, 29, 33,157, 11, 57,195,113, 34,223,155, 84, +168,237, 42, 86,115,116, 26,108, 54,243, 20,197, 72, 58, 43,138,203,142,226,209, +234, 44,197, 40, 0,175,194, 45,103, 69, 59, 57,171,255,195, 89,227,209, 93,101, + 22,170,236,152, 61, 7,108,254,170,219,186,105, 14, 44, 27, 46,149, 51, 2,121, + 21, 29,240,245, 31,194, 60,120, 41,213,233,161,221, 25,235,199, 30,220,153,103, +215,254,175,106,239,235,241,214,188, 42,100,150, 54,164, 97, 22,229, 98,137, 89, + 24,128,243, 2,225, 58, 98, 7,162,158,201, 53,249,214, 61, 85, 56,201,214,229, + 14,184,198,193, 20, 85,145,200, 6,245,153,195,171,149, 52,157,143,127,106,177, +111,173,103, 43, 63, 1,234,122, 44, 35, 26,178, 54, 33,192,157,129, 3, 11, 12, + 80, 70, 54, 82,231, 74,227,236,197,242,166, 4, 65,150,188,168, 5,148,121, 5, + 68, 11,250, 52, 70, 84, 7,129,120,236,121, 58,134,129,236,139,125,114,133,253, + 72, 1,194, 73,105,222,212,223,202,169,156, 68, 56, 84, 13,117,132,149,121,152, +235, 60, 77,246, 94,194,159,128,153, 77,109, 95,172, 64, 76, 73,217,210,136,140, +109, 43,189, 1,201, 2,200, 83,196,122,151,222, 40, 95,149,215,199,207, 2,231, +145, 60, 11,118, 25,199, 65, 14,200, 65, 79,239,182,151,198, 31, 77, 79,115,122, + 82,233,199,249, 21, 36,207,234,137, 71, 30, 65, 67,118,136, 13,234,135, 61,126, +232, 31,146,204,106,127,235, 51, 80, 18,104, 67,212,146,225,136,195, 85, 88, 93, +124, 22, 44, 78,134,130,158,166, 97,179,255,142,242,245, 89,226,237,216,136,233, +111,128,189, 17, 65,158, 2,126, 50,165, 84,110,241, 75,142, 68, 40,130,251, 1, +204,235, 49,231, 35,105,165,240, 19, 68, 9, 30, 63,142, 71, 1,214, 48,135, 32, + 92,232,152, 21, 75, 91,232,130,196,197, 33,103,219, 59,239,100,129,127,114, 70, +241,155,152,171,182,105, 19,124,193,164,132,218, 92, 38,230,103, 83,123, 71,100, + 92, 40,224, 74, 7, 96, 8,183,120,187,205, 76, 99,125,207,216,134, 66,164, 9, +129, 82,181,119, 91,219, 93, 23,138,243, 34, 95, 35,100, 72, 27, 13,156, 70, 41, +114, 46,251,121,237,188,173,105,108,157, 28,130, 38, 4, 29, 44,147, 90, 53,216, +198, 48, 60,198, 81,148, 74,238,245,180,122, 58, 4, 60,117, 33, 96, 56,146, 8, + 17,196, 1,148,191,106,244,136,229,119,176,146, 96, 69,178,184, 9,235, 39, 76, +213, 8,197, 64, 93,200,143,202,162,240,121, 51,158,111, 57,242, 40,210, 44,185, +236, 35, 96,194,139,242, 20, 99,133,163, 93,115,150,112,226,193, 72,119, 36, 68, + 37, 24,114, 65,136,107,184,105, 86, 14,204, 4, 68,128, 47, 63,136,204,253,166, + 86, 14, 25, 20, +} ; +// ../Source/Template/GB_AxB_dot_cij.h: +uint8_t GB_JITpackage_74 [1313] = { + 40,181, 47,253, 96,250, 22,189, 40, 0,214,182,163, 40,208,210, 56, 7,168, 73, +177,111,246, 72, 71, 89, 58,113,163,105,119,215,150,230,149,180, 27,232,249, 35, + 65, 52, 25,240,252,162,231, 47,240,197, 3, 89,106, 94,152, 0,149, 0,153, 0, +114,179, 63,119,247,150,171,244, 54,230,174,252,228,128,155,242, 55, 86, 40,124, +165,247,141, 88, 59, 8,232, 32,222,164,231,216,146,110,251, 28,237, 46,143,190, +113,167, 77, 5,147,138,132,187, 77,126,240,150,202, 29,234, 59,153,203, 36,108, + 39,111,189,145, 84, 96, 34, 38, 28,123, 84,182,236,185,189,221, 70,123,238,121, +240,214, 65,165,160, 34, 81, 48, 40,168,188,218,168, 91,182, 61, 36,230, 19,120, +144,238,210, 81,107,183, 62,112,115,117,159,172, 26, 11,219, 42,191, 15,223, 38, +125,166,109,160,210,208,237,164,125,123,118,136,185, 91,186, 9, 71,111,241, 82, + 46, 94, 37, 24, 47,205, 41,148, 73, 66,161, 4, 25,132, 39,163,197,140, 7,110, +176,204,181,164,209,217,235,208, 5,152, 35,121,219,236,128,201,237,115,229,238, +131,126,118,202,122,227,165, 51,194,119,183, 63,110, 85,102,255, 26,128, 23,236, +126,188,149,248,150, 45,105,126, 45, 29,217, 59,155,126,135,159,232, 37,230,102, +211,123, 79,146, 58,248,221,165,160,115,189, 46, 13,248, 97,188,161, 39,103,143, + 42,223,135,250, 34,201, 21,244,105, 85, 28,215, 7, 94, 85, 34,171, 41,248, 74, + 95,181, 37,162, 32,245, 11,129, 69,235, 96,166,201,198,236,218, 35,182,223,192, +140, 39,122, 50, 24, 17, 63, 18,155, 8, 90, 57,228,244,254,246, 45,135,180, 39, +173,150,239,173, 83,205, 82,149,152,110,191,116, 82,103, 15, 68,162,156,117, 37, +245, 66,183,108,229, 13,190, 19, 36, 65, 72,160,232,108, 24, 60,153,137, 78,135, +163,201,226, 5,243,103,194,217,254,237, 79, 6,189,224,151, 43,187,218,238,174, + 39,185,198,218,242,139,150,228,125,255,255,105,210,112, 50, 79, 6,145,249,196, +248,201, 66, 29, 48, 77, 31,237,147, 85,100,152, 84,239, 3,166, 7, 44,211,128, + 69,135, 12,251, 36, 5, 76,111, 10,219,184,219, 40,151,173,237, 18,199, 13,233, +133, 62, 37,123,180,187,219,100,235,202,147, 55, 34,179,165, 14, 34, 63,126,233, +148, 63, 87, 90,133, 80,215, 62,156, 14, 22, 55,144, 19, 15, 23, 67,118,219,199, + 96,224, 9,168,135,218,178,181,158,244,152, 91, 20, 89,121, 13, 64,216,229, 26, +216,135,113, 12,195, 52,137,136, 62,193,111,149,215,198,203,177,239, 55, 34, 36, +220,217,159, 28,221, 6, 85,110,137,180,141, 4,196,172,124,175,252, 56, 78, 86, + 2,144,186,174, 91, 28, 34, 16,245,139,242,203, 63, 64,161,182, 35,252,110,149, +224, 45, 45,163,169, 90, 36,169,195,202, 31, 72,103,177, 91,170, 31, 80,231,184, +187,183,184,166,147,142,142,201, 58,156, 14, 68,180,224,192,105, 10, 53, 55, 71, + 22,126, 17,201,240, 60, 57,178,188,112, 2,130,234,250, 44,248, 89, 79,134, 38, +183,205, 60, 43, 0,234, 55,129, 11,168,177, 37, 98, 72,102, 68, 68,146, 36, 41, + 12,107, 97, 12, 66, 12,163, 80, 75,245,226,136, 76,135,115, 24,134,140,128, 16, + 35,104, 2, 39, 16,137,145, 96, 2,145, 64, 38,146,201,134, 49, 85,170,178, 68, +225,153,248,155, 3,168, 7,245,149, 85,248,162,252,211,225, 44, 80, 28,200,157, +120,242,165, 78, 17,205,244,196,202,255,118,229,184, 57, 40,168,251, 59,158, 90, +127, 86, 22,102, 25,174,250,194, 73,250,138, 64,240,181,230,109, 82,213,132, 27, + 31,140, 66,118,217,175,239, 83,146,137,157, 92, 88,148, 57,118,210,192,170,225, + 31,144, 20, 80, 48,124, 87, 67, 6,254, 98,224, 97,196, 63,240,243, 40, 46, 6, + 79,133,240, 19, 63, 64, 66, 1, 0,241, 27,178,201, 77,165, 42,127,125, 22,156, + 45, 44,143,187, 45, 24,245,242,210,203,106, 37,186, 60,227, 56, 15,128,251, 70, + 14,135,144,178, 90, 77,149,249,141,219,193,243,161,171, 83, 55, 13,126,117,154, + 49,160,245,162,215, 79, 88, 88,190,194,105,134, 62,142,172, 27,136, 13,229,124, + 56,125,199,159, 14, 62,219,167,140, 90, 2,213,204, 6,205,106,190, 91,235, 49, + 86,241,112, 70, 34,137,158,212,163, 94,190, 22,223,175,132, 66,122, 11, 44,190, + 51,184, 37, 24, 26,211,140,233, 30,250,134,132, 71, 80,212, 89,180,116, 35,250, + 92, 39, 51,205, 71, 72,101, 4,137,146,200,114, 50, 58, 95,180, 25,208, 12,143, +162,249,237,173,205,230,228,217,149,199,115,126,187, 71,216,225, 68, 44,133,134, +246, 85,206,139,187, 39,151,112, 3, 8, 21, 18,101,205,155, 97, 92,182,242,105, +144,149,244,106, 38,100,164,233, 60,227,112,142,184, 67, 21,220,159,159,190,167, +100,150, 8,115,139,121, 26, 88,136, 85,175,148, 15,127, 4,153,121, 4, 54,175, + 83, 71, 26,168, 34,238,231,243,172,150,133, 61, 68,215,169, 76, 2,118,115,100, +169,191,131, 52, 21, 91,161,144, 88,162,178,194,153, 56, 46,130,222,246,120,116, + 80, 81, 72, 29,234,150, 43,208,166,214,100,226, 6,136,122,242, 32,226,126,192, + 54, 68, 9,213,233, 11, 85, 34,158,235,242,180, 24,221, 58, 23,162,165,195,232, +197,159,149,132,116, 90, 10,206,165,106,161, 7,207,222,230,192, 36, 44,165,115, +135,233,211,123, 51,235,150, 82,187,113,215, 58,194,121,206, 43,102, 38,148, 74, +133,199, 73,159, 73,180,143,106,206,143, 12,186,145, 85, 84,249, 1,120, 36,248, +236,121, 27,234, 78, 82,110, 41, 48,220, 42, 74, 65,126,241, 33,194,160,207,151, +173,152,205,205,165,170, 83,249,170,102,170, 25,114,246,170, 14,142,201, 55, 91, + 64,163,117, 0,129,144,216, 66,143,105,100,218, 39,117, 66,200,197,238,124, 45, +118,154,161,185,246, 34, 60,168,184,173,145, 81,210,136, 20, 40, 58,106, 24,151, + 53,102,175, 80,110,225,136, 62,183,104,183,106,101,139,155, 38,169, 50, 83,155, + 49,210,190,136,108,126,210, 45, 77,170,149, 85, 12, } ; -// ../Source/Template/GB_dev.h: -uint8_t GB_JITpackage_92 [395] = { - 40,181, 47,253, 96, 84, 3, 13, 12, 0,246,215, 72, 31, 16,147,117,155, 25, 37, - 40,215, 65,196, 21,194,221, 34,211, 96, 88, 66, 12, 89, 66,117, 5,223,153,205, - 8, 0, 40, 0, 84, 65, 0, 66, 0, 59, 0,137, 19,172,193, 11,182,181, 71, 93, -106,124,187, 46,197, 26,243,194,165, 49,113, 92,159, 87, 33, 19,219,250, 62, 23, -190,157, 93,220,157,140,125,168,100,141,225, 25, 82,235,149,198,219, 73,251,246, -236,200,240,211, 37,105, 12, 57, 14,200, 13, 6, 23, 25, 12, 1,240, 91,245,201, -118,102,223,203,246,142, 3, 46,194,209, 60,168,200,112,198, 14,184,131,148,136, -248,178,222,167,241,169,114,199,190,147,161, 36, 98, 59,217,234, 73,180,161, 42, - 18,100,173,178,101,203,237,189, 58,109,185,148,141, 23, 20,137, 67, 34, 90, 32, - 14, 1, 1, 1,223,119,237,249,186,231, 74, 35, 87,191, 54,243, 92, 0,201, 56, - 4,135,240, 61,210,179,236,120,150,157,217,246,175,147, 85, 76,125,210,207,154, -221,211,155,209, 67,198,168,117,174, 14,101, 70, 47,123, 41,223, 11, 87,102, 47, -114,206,197,134,147, 3,206, 85, 40, 25,138,242,160,176,245,234,253, 86, 41,198, -216,217,210,106,171,172,253, 17, 54, 57,105, 51, 64, 84,218,111,144,217, 10,177, -148, 13,250, 96,226,217,242,182,175,251,153, 73, 41, 0, 92,146, 3, 2, 56,195, - 76, 90,179, 3, 33, 32, 64, 66, 98, 16,195, 30, 5, 33,102, 33,171, 58, 32,208, - 44,130,228, 64, 21,233, 98,102,238,181, 24,227, 19,101,230,131,158,138, 9,132, -169,144,172,209,235, 90,223, 0,224, 41,136,129, 12,212,209,249,219,150, 46, 93, -139,196, 57, 26, 86,171,236,139, 57, 13,177, 8,198,201,104, 86,104, 35,181,213, - 12,154,206, 51, 19,109, 3,175,246, 46, 16, 90, 20,117,110, +// ../Source/Template/GB_AxB_macros.h: +uint8_t GB_JITpackage_75 [323] = { + 40,181, 47,253, 96, 1, 2,205, 9, 0,102, 18, 61, 32, 0,181,115,187,239,245, +255,243, 94,189,182, 75,165,157, 6, 77,199, 10,128,130,102, 53, 17, 43, 55,222, +161,255,127,247,135, 23, 50, 0, 52, 0, 51, 0, 49,187,104, 56, 47,100,209,248, +206,112,235, 92, 63,155,132, 59,144,230,254,222,117,158,158,190,239,236,252, 40, + 20, 77,124, 65,239, 95, 80, 10,131,151,155,159,188, 68, 81, 94,144, 87,149, 52, + 85, 85, 53,219,238,176,169,177,109,174,102, 19,166,161, 81, 93,131,110,227,174, + 28,103,202,169,149,123, 60,241, 3,131, 69,176, 38, 69,129, 96, 93,192, 5, 62, +192, 21, 52, 27,167,226, 71, 52,131, 95,181,124,176, 5,205,205, 16,119, 46, 24, +122,211,124, 91,143,237,247,241,128,220, 61,240,183, 55,223,199,182,173, 0, 41, + 34, 55, 74,133, 17, 37,242,194,120,221, 89,175, 2, 36, 2,101, 77, 77,185, 25, +198, 47,110, 87, 47,146,228,213,206,118,226, 89,118,121, 72,202,134, 33,174, 69, +137,225, 6,217,160, 68, 44, 14,137,180, 96, 87,174,155,195, 29, 26,108,147,153, + 99, 18, 53,121,200,104,152,184, 29,110,235, 59,120,230, 83,110,118, 24, 0,100, + 0, 16,209, 69,147, 0,132,159,197,127,140, 4,232,230,139, 14,208, 24, 38, 11, + 0, 52,140, 40,104,193, 66,232,182,175,205,149,247,155, 11,236, 68, 6, 28,248, + 72,116,153, 65,243,231,153, 41,218, 42,182, 90,157, 98,208,248,249,242, 22,140, + 41, 10,134, } ; -// ../Source/Template/GB_ek_slice_kernels.h: -uint8_t GB_JITpackage_93 [1313] = { - 40,181, 47,253, 96,239, 27,189, 40, 0,118, 49,149, 40,192,208,170, 14,184,214, -177,207, 95, 46, 96, 16,145, 13, 74,104,186,118, 29,237, 42, 20,184,140,168, 31, -234,158,146,239, 37, 73, 46,192,178, 8, 2, 0, 83,205,139, 0,130, 0,147, 0, - 18, 67,220,100,216,131, 6,107,136,216, 5,147,109, 98, 3,198,245, 86,185,233, -144, 38, 17, 11,210,157, 38,191,235,148,219,147,155,185,246,134,129, 52,174, 25, -164,147,144,137,108, 29,186,141, 91,115,156,187,139,169, 57,165,215,161,128, 53, -177, 32, 5,213,196, 58,165, 77,135,120,134,100,194, 35,215, 71, 93,182,159,201, - 57,220, 92, 25, 66,247,201,187, 64,105,124,229,183,233, 60, 65, 27, 9, 67,126, - 46,207,217,227,107,179,214,161,111, 85, 30,247,188,185,246,187,203, 63,165,139, - 96,218,245,182, 23, 91,155, 20, 71,175, 35,194,194, 37, 18, 9, 34,145, 4,212, - 52,157,242,234, 7,167, 42,106,106, 76,123,163,242,234,150, 83, 19, 53,185,197, -242,233,156,134, 68, 73, 24,242, 19, 59, 13,244, 57,158, 25,203,166,207,242,157, - 38,251, 29,154, 23,208,171,160, 78,179, 27,149,217,102,239, 90,209,155,122, 64, -118, 59,140,183,191,216,212, 53, 85,184,209,238, 98, 70,149,207,113,128,160,206, -172, 29,214,199,115,157, 25,244,101,144,189, 68,242,255,210, 36,109,211,134,104, -157,215,102,150, 25, 95,203,189, 49,232, 54,127,147,125,187,236,248,220,206,189, -157,130, 61, 44,115,149,186, 78, 71,220, 41,151, 76, 76,120,184,226,149,137, 28, -108,129,130,175, 92,235, 80, 53,128, 88,238, 93, 81,229,214, 35,230, 43, 51,254, - 2, 36,189, 37,102,124, 39,231, 61, 50,174, 86, 59,236,108, 76,104, 32, 28, 48, -135,168, 0, 17, 57, 17, 16, 17,225, 46, 76,175, 23,148,251, 86,158,101, 87,196, - 48,141,130,228,241,209,181,159,254, 60, 36,215, 56,149,101, 17, 15,220,132, 85, -192, 67,224,240, 12,155,136, 76,108,208, 96, 18,135,135,241, 14,199, 59, 19,192, -244, 10, 12,216,153, 26, 52, 16, 18,241,237,249,136,202,103, 12,162, 23,117,226, -203, 14, 70,195,185, 28, 54,168,170,115,193, 7,140, 3,230,241,146,196,205,173, -182, 67,170, 70,158, 87,251, 89,155, 43,220,119,230,218,183,190,137,204, 36,173, -184, 88, 84, 1,191, 5,197,111,185,136, 82, 57, 61, 31,209,106, 63,146,159, 87, -174,160, 65,121,151,239,167,172, 47,126, 23, 8, 33,244,224, 54, 51,188,124,112, -171, 13,227,245, 77,218,101,186, 85, 5, 84,149, 83,181,105, 72, 30,122,135,223, - 53,253,138, 25, 74,135,172, 71,102,143,253,251,202, 91, 31,172,190,195,201,215, -137, 14,237,213,176,140,140, 60,223, 58,203,219,181, 47,222,183, 69,239,142,115, -161, 60, 72,153,174, 43,191,173,206,129, 41,168,177, 41, 67, 51, 51, 34,146,164, - 32, 41, 12,107, 97, 16, 66,144,210, 82, 66, 61,162,104, 84, 20,163, 64, 2,136, - 70, 8, 33,196, 16, 39, 64,134, 16, 9, 68, 34, 17, 17,137,132,100,166,195, 1, -103, 11, 32,186,118,108,137, 30, 64,181,204,162, 55, 2, 23,162, 64,160, 2,101, -121,129,188,135,129, 24, 26, 72,171,184,134, 80,245,240, 44,162,244, 27,192, 28, -236,186, 45, 68, 9,204, 8, 42, 10,117, 28,244, 18, 69, 71,198, 12, 48,130,161, -230,177, 67, 92,125, 61,208,190,130,158,183, 66, 0,243, 35,188,201,168,237,211, - 81, 22, 12,119,101,105,130, 55,234,108, 35, 81,246, 37,180, 70, 41, 14, 85, 17, - 12, 32, 82, 81,194,168,160, 37,170,159,240,162,141,248, 13, 37, 52,122,145, 98, -205,170,213,179,151,153, 59, 6, 18, 87, 85,129,174,229, 70,137,140, 91,151, 83, - 57,210,213,226,231,204, 0, 61, 18,212, 80,137,233, 42,249,199,214,137,138, 96, - 21,102,211, 33,211,239,109, 29, 21,139, 7,173,201, 3, 92,194, 86, 29,208,113, -103, 52, 44,171,172, 40, 64, 73,174, 41,183, 17,184, 43, 94, 0, 61,129,243, 87, - 10, 3, 55,141,242,180,212,234, 32,110,131,164, 40,239,144,160,209, 97, 1,117, - 10, 71,140,189, 64,162,174,248,170, 86, 6, 7,219,243,189,140, 45, 6,170,222, -191, 86,111, 72,187,193, 85,243, 35,145,227, 31, 62,105,231,249,137, 92, 0, 4, - 28, 30, 48,165,152,171,168,135,207, 49, 15,100, 24,214, 77,126, 74, 78,239, 46, - 56,185, 63,175, 43, 8, 32,108,210,182, 35,152,107, 50, 47,164,110,217,118,135, - 26,173,201,101,252, 94, 32, 0,198,240, 79,178,126, 13, 20, 6, 59, 13, 51, 39, -189, 54,129, 27,253,220,194,217,188,240, 89, 3, 25, 81, 62,144, 10,154,186,177, -200, 88,155,118,184, 59,228, 55,220, 91,221,187, 31, 70,253, 35, 4, 51,166, 36, -118,124, 5,178,193, 8,106,149,223, 36,147, 98,112, 15, 90,145,196,158,184,120, - 52,197, 26,161, 70,135, 22,170, 1,218, 16, 65,236, 30,109,238,245, 74,181,144, - 64,127,224, 79,139,102, 88, 41,109, 20,152,121, 51,249, 55, 45, 70,221,155, 72, - 1, 12,140,139, 13,106,192,128,223,202,221,202,190, 88,108, 6,197, 68,143,204, - 65,109,216,102, 49,163,159,213,139, 96, 44, 20,221, 19,222,215,134, 99,150, 68, - 93,198, 73, 54,134, 2, 24,200,108,228,174,197,167,192,213,115,147, 36, 64, 9, -236,249, 29,137,119, 53, 92,143,166, 97,162,243,127,136, 53, 31,178, 40,240, 77, -150,142, 98,148, 25,217,248,138,241,161, 89,246,111, 4, 98,160, 15,234, 2, 64, -119, 44,160, 43,117, 85, 77,209,179, 36,136, 69,158, 17, 21,158, 57, 49,126,157, -132, 91,235,234,133,228,208,126,180,106,188,229, 70,241, 38, 42,107,170,250,151, - 66, 56,213, 62,176, 86,101, 1,229,230, 91,182, 23,149,249, 4,222, 79,150,111, - 18,241,197,136,220,200,163,110, 41, 32, 73,151,185,139, 90, 33, 3, 37,124, 95, - 41, 12,246,180, 32,143,224,130, 12, 55, 15,102,165,207,231, 91,112,155, 21,198, -114, 29,239,180,134,202,145, 7, 20,109, 96, 14, 77,236,183, 98,157,153,252, 51, - 74,219, 49, 43, 12, 56,173, 78,110,124, 21, 6, 78, +// ../Source/Template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c: +uint8_t GB_JITpackage_76 [2034] = { + 40,181, 47,253, 96, 92, 46, 69, 63, 0, 10, 66,108, 12, 40,176,148,117, 14,104, +161,216,247,231,240, 22,185,101, 49,202,214,112,144,109, 18,210,147,255,231,116, +195,169,154,153,193, 58,122, 36, 63,232, 63,216,254,193,185,185, 0,187, 0,186, + 0, 31,166,249,153, 43,141, 25,219,203,253,255,167,105,100,154, 42,217,189,251, + 81,254,205,182,223,213,177,230, 76, 57,124, 91,235,150,251,215, 88,197,144,209, +199,139, 63,247, 52, 76, 71,255,252, 21, 16, 44,121,150, 58,210, 99,239, 36,238, +103, 19, 65,165,128, 82, 71, 28, 21,229, 49, 99,109,175,179,173,157, 70,169,216, + 86,174, 61,148, 11, 7,138, 74, 87, 61,198,138, 43,232, 56,143, 58, 26,116, 16, +148,191, 12, 10, 8, 10, 40, 9, 23,130,130, 87, 28,245, 11,183, 7,117,120, 69, + 62,100,148,111,216,162, 95, 33,233,193, 70, 34, 29, 33, 48, 21,143, 84, 12,213, +220,165,208,148,105, 56, 94,239, 33,150,254,243,235,217, 47,108, 34, 53, 22,195, + 39, 96, 33, 59, 6,155, 34, 13,167,156,185, 55, 16,138, 39, 6, 34, 39, 6,113, +139,101,162, 88, 44, 1, 31,219, 15, 25,179,173, 94,255,227,166,121,145, 56, 36, + 18,137, 99, 93, 18,218, 71,251, 39,154, 95, 40,157,173,141,201, 35,205,184, 53, + 1, 78,198, 50,181,138,115,105,212,179,215, 92,226,126,243,115,237,248,136,101, + 45,100, 78, 85, 24,164, 30,150,195, 88,148,189,157,185,241,211,198,171,203,197, +117, 72,109, 72, 71, 85,176,212,213, 17,135, 95, 81, 51, 44,217,131, 21, 4,233, + 72,197,139,225, 61, 13, 59,232, 40, 6,116,157,183,204,132, 99,121,117,161, 88, +191, 80,199,252,242,134, 87, 4,215,104, 62, 53,251, 60, 15, 16, 64,104, 56,175, +207,150, 70,220, 47, 74,115,220,209, 58,142,178,125,230, 85,216,221, 54,121,101, + 43,232, 65, 95, 81,212, 53,255,198,251,241, 10,110,165,219, 41,116, 14, 16,190, +201,208, 66,115,227,209, 68,213,182, 87,187, 0, 28,199, 76, 56, 76,136, 62,140, +230, 29,250,133, 15, 67, 97, 24,121,141,245,113,199,105,123,147, 19,141,115, 19, + 68, 94, 52, 37,238, 81,174, 29,116,188, 25, 31,164,220, 5, 95, 71, 10,114,181, +203,125,177, 63,252,204, 51,109,175,187, 27,190,110,207,215, 90,202,125,154, 74, +198, 92, 75,182,115,149, 1,168, 62,148,215,157,205, 68,234,164,158,159, 41,218, + 64,120, 13,214,130, 15, 80, 29,102,206,145,137, 26,223,178,107,190,113,207, 83, + 33,243,190,245,201, 51,241, 83,145,174, 30,107,182,125,197,119,119, 55,192, 7, + 6, 22, 78,122,230,213,171, 31, 23, 4,233,172,153,118, 98,105,130,247,110, 30, + 79,197, 3,133,252,136, 52,140,132,228,160, 13, 5, 70,196, 4, 77,204, 77, 8, + 36, 41, 66, 51,164,205, 78, 72,126,188, 14,200,106,135,165, 56,119, 24, 62, 29, +175,118,182, 20,112, 8, 9, 13,164,125, 52, 73, 49, 49, 36,100, 71,235, 8, 82, +233, 64, 81, 97,149, 88,150, 88,107,230, 85,254,181, 17,105, 32,139,201,209,178, +201, 39,154,231,175,167,156, 34, 79, 69,230,164,111, 98, 24, 70, 29,203, 53, 4, +215,219, 77, 92, 95, 54,218, 25, 7,174,221, 83,230, 28, 7,137,137,108, 19,154, +160,137,135, 41, 34, 93,187,149, 96,216, 70,186, 62, 10,219, 72,216,118,108,194, + 25, 55, 72,173, 72, 24,236,157, 78, 9,201, 57, 52, 28, 31,229,163,110, 85,148, +166,164,172, 62,201,209, 4,184,167,244,238, 43,174,157, 85, 42,149,239,251, 40, +179,186, 54, 73,125,163,223,173,203,133, 19, 92, 18,155,244,252,149,220,175,248, +138,216,210, 49, 87,145,198,247,238, 47,220, 97,123,236,176,226,219,166,100,176, + 75,219,199,251, 80,117, 58,122,193,130, 2,168, 2,212, 80, 49, 68, 50, 34, 34, +146, 38,201,176, 6,178, 24,132,193, 80,162,135,177,164,187, 1,162,112, 36, 12, + 50, 20,195,112, 16,130, 48, 40, 66, 8, 97, 2, 98, 8, 35,132, 16,161, 64,100, + 36, 16,145,235, 28, 56,194,179,200, 36,226,118, 14,229,201,129, 35,135,215, 4, +105, 32,173, 0,172, 10,199,240, 34, 76, 37,168,234,210, 95,129,247,229, 64,250, +121,198, 77,237,229,109, 91,172,193, 34, 12,185, 16,225, 44, 38, 71,144, 96,117, + 76,107, 23,154, 13,219,253,223,140,114,112, 43,207,202, 77,141,233,180,197, 12, +186,176,180,123,121, 75,160, 12, 77,202, 99, 10, 77,243,118,223, 63,176,232,110, + 68,166, 62,238, 29, 13, 16,146, 59,201,109,168,176,250, 21,124,235,214, 25, 38, +246,100,217, 43,165,215,192, 72,155, 22,159,234, 69,149,136, 69,120, 66,253,185, + 75,137,124,202,152,254,125,217,211,194,175,152,156, 35,253, 70, 35,199,191, 71, +120,224,160,152,141, 80,220,181, 87, 49,250, 68, 75,176,242,114,202,136,239,196, + 69,245,176,130,232,227, 7,179, 20, 81,174,230,219, 29,181,208,208, 92,236,243, +182,103, 96, 76, 63,107, 31,193,251, 34,230,139, 76,207,254,250,229,208,195, 13, +210,154,158, 81,187, 72, 10,237, 72,227, 34, 71, 71, 31,108, 71,105,105,241,242, +177,236, 70, 5,250,138, 41,143,101,192, 21,192,245,121, 58,247, 81,243,228,233, +135, 53,166,146, 70, 22,237, 22,187,119, 89, 81,182, 95,192,147, 62, 53,206,173, +240, 48,153, 30, 36, 34,129,218, 6,195,102,153, 0,203,159,162,217, 12,249, 75, + 83,221,158,143, 0, 0,196, 53, 5,166,127, 73,188,129,184,187, 35,244,124, 38, +107, 96,182, 2,182,162,170,148, 5,213,128, 52,113,176, 61,198,234, 27, 65, 8, +132, 33,194,160, 74,153,129,169,219,255, 49,131,192,162, 52,236, 59,159,228, 30, +170, 78,212,245, 60, 54, 41,143, 30,142,138, 97, 60,169, 72, 59, 9, 64, 15, 8, + 4, 91,201, 62,129, 28, 70, 8,250,231, 44,135,209,141, 11, 39,200, 77,248,182, +199,175, 10, 4, 55, 25,163,206, 3,156, 70,146,102, 91, 60, 72,150,145,135, 24, +126,118,216,189, 44,251,140,162, 4,254,132, 71, 85,136,204, 97, 96, 26,217,213, +234,136,202,200, 74, 48,115, 42, 1,155,160,204,140, 73,212,161,106,179,140, 94, +141, 51,220,212,225, 7, 99, 4,255,216, 47, 92,200, 13,221, 93,161,135, 48,159, + 89,214, 81,214, 95,196,226,241,253, 94,187,182,188, 73,255, 6,133,155,140, 39, +194, 67, 91,107,192, 60,175, 3,146,108, 32,222,181, 53, 12,209,173, 50,180,230, +146, 53,176, 8, 56,220,124,108,108,131,212,125,190, 91, 32,100,127, 39, 46,236, +211, 63, 95, 3, 2,104, 87, 9,189,117,128, 18,229,175,227,116, 6,125,183,183, + 61, 19,217, 35,230,205,156,156, 81, 58,183, 98,110,167,101, 87,160, 32,205,251, + 6,130, 26,202, 32, 34,125,251, 55,250, 75, 72, 62, 2,219,196, 61,223,131, 39, +181, 17,167, 29,255,105,161,154, 60, 73,181, 38,243,143,199,196, 57,177,245,234, +156,245, 19,161,102,148, 61, 96, 29,154, 15,135,242, 80,250,136,248, 77,121,154, +203, 53,144,248,186,143,113,182,243,140,107,110, 2,143,188,182, 82,172,121, 71, + 76, 20,210,200, 59,240, 47, 78,252,104,250, 65, 77,167, 86, 52,144,159,252,218, +241,145, 65,101,112, 67,155,247, 4, 50, 87,108,203,247,109, 94, 12, 38, 95, 6, + 74, 45,170,212,243, 76,179,234, 46,177,132,176,196, 60,239,224,182, 14,240,198, +178, 49, 56, 86,212,163,162, 15,129,152,164,140,136, 49, 58, 84,127,108, 4,228, +244, 84, 90, 73, 86,193, 8, 84, 37, 40,162,211, 12,156,110, 34, 59, 18,254,152, +102, 57, 44,247,250, 17,229, 73,171, 36,242, 80,101, 68, 77, 50, 17,252, 45,191, + 72,120, 39, 37,122,205, 89, 99,217,168,201,149,218,207, 95,228, 82, 75, 61, 11, +161, 88,192,144,197,219,128,118,225, 47, 74,233,240,165, 65,135, 24,134,216,250, +185,231, 22,125,150,233, 94, 57,122,198, 91,180,118, 68,108,236, 3, 3,152,128, +161, 8, 71,229,132, 12,145,204,161, 3,215, 76, 24,248,161, 0,241, 12, 6,150, +112, 29,133, 24, 69,138, 76, 17, 50, 58,231, 20,245, 94,243, 97, 32, 47, 26,116, +215,166,133,214, 88, 0,247, 17,246, 34, 55,182, 56,193, 16, 57, 52, 63, 90,209, + 34, 78, 90,173,155,139, 24,220, 29, 18, 80, 50, 52,200,154,199, 2,213, 75,201, + 82, 56, 61,131, 47,138,148,137,197,211,111,196, 43,131, 12, 65, 15, 24, 98,133, + 25,207,208,165,201, 18, 77,230,157,245,106,102, 64,196,210,226, 63,174, 36, 69, +199,144, 73,207,243,211,130,252, 87,248, 78, 54, 77, 95,133,243,236, 25,176, 28, +117, 37,154, 75,156, 38, 28,173, 92,193,255,151,147,128,198,130,217, 66, 76, 76, + 33, 74,132,252,139,171,227,220,140, 90, 26,195,168,251,192, 23, 46,241, 27,105, +122,153,216,247, 41, 3, 6, 17,167,103, 72,240,222,139,180, 92,208,224, 18,225, +227, 21, 76,204,156,130, 63,148,169,219, 26,159, 95,145, 59, 18, 43, 20, 93, 50, +246,144,221, 66, 4,194,254, 25,138, 99,133,195,195, 44,183,253,132,176,104, 9, + 24,120,192, 20, 12,241, 37, 66,154, 74, 40,114,211, 61,150,140,195,190, 30,199, +100,178, 37, 51, 8,219, 12, 15, 81, 11,168, 2,126,159,131,107,163, 26,177,126, + 85,166,168,124,137, 38, 87, 81, 2,208,252, 38, 85,192, 51, 58, 5,146,129,190, +102,159, 90, 75,241,125, 77,218,124,158,126,153, 77, 83,171,101, 38, 39, 7,235, +229, 27,196, 74, 14, 96, 83, 57,175, 8,130, 10,215,243, +} ; + +// ../Source/Template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c: +uint8_t GB_JITpackage_77 [4065] = { + 40,181, 47,253, 96,174,115,189,126, 0,138,110,116, 20, 45,160, 14, 93,231,122, +116,135, 4, 1, 73,208, 36,142, 42,115,127,127, 22, 25,112,137,252,151,177,241, +167, 13,244, 52,233, 10, 79,113,181,154,155, 43,120, 29, 94, 71,158, 28,103, 8, + 52, 1, 69, 1, 55, 1, 18, 62, 61,162,214,159,156,163, 77, 98, 47,220,248,163, +217, 79, 83,178,155,228,250,185,217, 23, 78,143, 15,126,244,242,243,200, 10, 54, + 68,190,245,253,111,125,178,157,149,151,106, 89,255, 63, 3, 67, 5, 12,195,184, +222, 38, 55, 48, 76, 19,204,131,141,196, 20,218,158,103, 55, 48, 76, 32, 88, 52, +153,132,227,109,114,221,176,177, 48,248, 54,229,227,180, 53,157,244,123,198,114, + 97,178, 7, 19,215, 22,122,218,108,233, 35, 77, 90,143,103,229,238, 90, 87,158, +236,169, 44, 91,169, 73,238,209, 97,243, 81,231, 12,126,124, 63,155,141,109, 88, +233,149, 94,248,133,154, 38, 79,167, 3, 59, 71,207,159,123,122,103,127,227,202, +247, 74,205,126, 50,203,207,111, 87,122,206,114,199,229,119,120, 94,200, 57, 72, + 30, 29, 42,131,163,207,117,135,237, 99, 12, 15, 14, 72,131, 63,154, 4,175, 87, +149,155,235, 59,121,179, 52,216, 78,214, 90,162,225, 32, 2,227,216,248,162,178, +229,204,237,253,120, 58,115,207,187, 30, 9, 64, 30, 32,141, 3,143, 7,200, 39, + 77,122,180,125, 33, 35,238,184, 62,250, 92,250,245,230, 81,115, 73, 72, 62,160, +172,148, 74,195,183, 67, 13,131,103,246,231,142,166,252,229,241,216,163,132,113, + 89, 9, 46, 13, 16,216, 43, 80,126,153, 36, 99, 91, 37,104,179, 43,187,221, 17, + 73,155, 73, 68, 87, 38,161,220,193,129,161,225,224, 16,147,136,140,129, 69,194, + 4, 2, 69, 80,231,145,172,252, 54,242, 38, 80,236,164, 79, 93,108,233, 58,152, + 72, 96, 46, 20, 24,132, 1, 3,158,153, 88, 36, 48, 22, 74,214,117,118,101, 27, +137,138,203,131,109,231, 83, 71,194, 92,151,205,196, 68, 51,201, 96, 50, 80, 23, + 78, 74,169,176,215, 9,233,230, 61, 78,121,228,215,145,123,146,107,246, 43,169, +199, 69, 88, 40, 38, 40, 46, 25,132, 0,182, 32,211, 84, 72, 96,176,202, 37,210, +171, 63, 92,193,169,237, 76, 66,137, 18, 52,182,166, 23,146,132, 34,153, 24, 29, +137,244, 73,234, 80, 42,111,149,190, 82,144,252, 62,191,208,163,218,103, 63,130, +179, 49,234, 52, 58,143,147,117, 74,164, 1,206,200, 33,143, 6, 4, 84,129,211, +162, 32,172, 63, 36,211,163, 81,197, 74,138, 15,143,220,101,251,241, 87, 37,123, + 26,227,167, 46,210, 56,146, 36,154, 78,153,176,100, 44,151,137, 38,203, 52, 0, +222, 48,217,187,208,206,184, 69,132,179,214,158,205, 42,210,169,115,156,171,117, +189,150, 43,227, 55, 67,112, 67,237,244,138, 42, 92,133, 53, 9,218,174,210,208, +101, 79, 38, 49,153,216, 88, 36, 14, 46, 77,180, 92, 44,214, 61,158, 18,108, 88, +159,125, 31,191,222, 46, 58,143,210, 39, 40, 44, 27,203, 38,115, 97, 38,131, 30, +111,149,215,130,126,179, 2, 6, 46, 38,177,124,193,179,191,202,151,183, 83,212, + 60, 68,228, 15,183,164,201,122,242, 98,106, 21, 37, 77,218, 87,171,103, 8, 24, +197,130,108,211,145,128,210,179,176,181,185, 78,192, 29, 44,199,245,143,214,159, +144,141,143, 70,150,101,243,244,254,225, 31,173,236,153,178, 94, 50,233, 45, 95, + 89, 25,164,231,207, 70,235,143, 94, 57,137,136,184, 38, 17,155,204, 68,163,185, + 88,147, 30,216,152,163,141,155,218,254, 70, 63,151,191,201,159,208,185,134, 55, +228,102,159, 59,247,188, 14, 93,203,239,136,215, 11, 45,215,203,241,137,190, 76, + 82, 41,167,247,134,224,236,207,206,176, 75,231,227,198, 87,106,212,243,228, 71, + 30,118, 81,215, 43,191, 56,242,238,228, 90,195, 11, 20,197,220,221,170,128,143, +153, 73,101,115, 81, 38, 12,148, 14,234,236,146,109, 38, 20, 9,137,138, 5,211, +227,242, 9, 0, 62, 65, 62, 64,146,250,187, 71,105, 39, 83,201, 50, 20,217, 68, +163,105,160,185, 46,151,119, 26,127, 44,176, 14,166,253,145,115, 56,251, 78,170, +125,178, 0,112,198,187,210,125,202,122, 67,188, 27, 59,189,175, 76,193, 12, 3, + 35,159, 64, 7,231, 33, 64, 1, 52, 71, 86, 96, 4, 6, 56, 95, 17,152, 10,139, +154,108,185,130, 23,174, 37,122,148, 62,217, 88, 50,156, 81,189,147, 31,226,249, +202,244,112,203,186, 5, 8, 68, 85,192, 8,231, 42,145,127,154, 58, 30,233, 14, +140, 83, 45,189,114,134,195, 43,116, 60,147, 77,133,131, 74,247,216,127,236, 90, + 62, 70, 62, 93,233,147,204, 37,129, 5, 12, 12, 23, 40, 14,215,215,134,160, 77, +254,134,157,199,141, 57,122, 27, 94,176, 59, 14,199,122,119,119, 40, 52,157, 3, + 17,177, 30,154, 42, 72, 75,183,221,176,242,220,167,141,175,149,218,157, 66,161, + 24,187, 45, 24,147,244,234, 12, 80, 4,203, 58,182,134,132,170, 71,136, 3,233, +234,209,156,137, 35,157, 47,180,196,233,230,112, 64,169,226,112,143, 12,233,164, +255,156, 87, 14,182,216,247,133,150,235,230,119,112,244,182,242,103,235,203,145, + 31,208,222,214, 26,147, 47,218, 51,161,243,159,219,161,199,199,227,113,117,246, + 94,142, 70, 52, 76,190,183,107, 40, 18,169,116,134,140, 71,131,192, 43,125,132, + 60, 62, 30, 31,110, 43,207, 16,101,239,192, 99, 68,176,153,176,100,147, 76,197, + 6,115, 97, 23, 14, 84,168,108,211,237,194,109,233, 16, 0,116,100,125,198,193, +243,116,226,119,240,149, 27, 24,126,122,114,179, 44,238,124, 74,141,107,204,114, +161,216, 92,149, 91,176,240,200,187, 3, 4, 8,240,164,144,233, 2,192,178,164, + 63,104,101, 10,241,210,121, 80,107,213, 67, 53,251, 59, 95,121,109,131,111,207, + 22,241, 54,251,234,134,136,220,234, 80, 89,215, 69, 56,120, 93, 83,148, 80,186, + 83,214, 37,224,187,169,235, 30, 63,151,244, 43,171,116, 20, 69,117, 29,164,171, + 30,221, 37,157,250, 36,194,170,106, 82, 43, 47, 66, 10,227, 65,129, 34,103, 16, + 49, 65, 17,132,106,168,147,137,146,214, 57,166,100, 68,100, 36, 41, 72, 90, 3, +243,160, 16, 16, 20,145, 76,230,147,161,168, 85, 31,163, 97, 17, 57, 16, 29, 67, +129, 72, 20,130, 64, 60,130, 32, 32,131, 64, 32,130, 64, 8, 33, 16,193,132, 16, + 70, 4, 68,236,142, 27, 5,186, 41, 71, 39,255,139, 14, 55,255,247,179,236,238, +207, 3,131,249,124, 91,219, 86, 9, 20, 45, 65, 46, 5,210,177,133, 40,221,200, +203,206,212, 20,252, 81,156, 4,213, 53,143,237, 25,254,144,177, 75,164, 7, 25, +126, 66,169,101,166, 41,190,210,235, 97,239, 58, 39, 60,203,154, 9, 72, 43,185, +152, 66, 65,139,164,202,243, 99,176,244,135,116,226,139,219, 7,212,242, 55,243, + 82,246, 56,219,171,126, 51, 68,116,141, 89,230,161,222,197,168,189, 67, 79,208, +193, 3, 46, 96,197, 24, 25,156,191,139, 38,204,171,130, 96, 14, 58,209, 23,150, + 99,164, 93,242,187, 68,108,128, 20,173,164,188,252, 60,105, 20,181,227, 41, 2, + 4,179, 5,203,157, 90, 26, 6, 80,132, 31,105,219,135,170,252,160,157, 4,135, +160,232,135,191,210,134, 11, 62, 18, 20, 98,142, 55,245,242,121,173,108,255, 7, +100,206, 83, 91, 19,242,244, 41,169,199, 12, 87,190,101,180,156,255, 22,119,196, + 6,148,218, 16, 65,150, 42, 90,189,126,192,249, 29,100, 0, 75, 1,130,209,134, +170,187, 50, 21, 14, 54,249, 8,130,159,181,152,229,143, 97, 13, 99, 50, 69, 73, + 63,188,141,163, 67,129, 34,228, 42, 52,102,182,117,215, 8, 67,122,252, 14,124, + 81,227,163, 55,177,131,210,252,229, 52, 68, 93,163, 50,184,243,138, 99,103,212, +142,189, 46,227, 25, 85, 83,118, 79,224,201,248,111,148,239, 3, 94,108, 1,107, + 71,157, 45, 80,134,122,185, 68, 52,117, 94,243, 3,250, 75, 30,214,157, 66,236, + 81,244, 86, 37,104,225,105, 27,203,129,201,156, 49, 78, 46,213, 20, 85,116,119, + 38,203,228,246,132, 53,135,252,131, 11, 31, 63,183,241,133,176, 23, 36,139,158, +173, 22,164, 42,205,181,139, 39, 99, 47, 2,236, 66,103,200,136, 89,150,153, 85, +153, 48,204,120,224,238, 62,205,190,221,130, 26, 61, 74, 9,152,185,188, 68, 67, +206,244,106, 24,115, 93, 87, 12,122,210,156,205,158,110,222, 71,199,220, 40,154, + 92, 53, 27, 28,109,112,228, 19,137,107, 37,202,240, 39,242,253,183,190,176,136, + 21,182,220,237,161, 26,149,227,150, 38,106,237,123,223, 80,243, 73,113,218,104, +166,160,147,118, 68, 56, 17,148,188,112, 78,172,172, 19, 52,217, 92, 52,115, 54, +202,213,194,236, 72,188,110, 27,211,149,240,196, 13,185, 77,165, 51, 90,194,199, + 52,196,112,140, 42, 74,246,218,116,139,237,243, 65, 39, 80,249,220, 55,218,237, + 40, 29,170,238,202, 18, 49,122, 52,119,150, 10,166,198, 62, 50,194, 43, 24,192, + 46, 16,172, 5,222,180,204, 81,165,204,103,117,127, 74,133, 63,193,180,205,137, + 10,245,222,231,248,226,138,102,130,189, 36,174, 72,212,200,230,140,165,148, 14, +161,207,217, 15,224,176, 0, 13,126,119,246,116,238, 22,127, 38, 44,217,138, 38, +140,103,226,134, 41,140,227,121, 57, 38,130,240, 75,158, 31,244,243,233,203, 17, +183,227,138, 38, 91,224, 32, 93,130, 59, 19,110, 17, 77,200, 47,186,118,168, 24, +233,219,152, 42,209,107,144,156,166, 55,236,162,169,133, 41,235,234, 50,164, 73, + 2,121, 76, 41, 24, 87,219, 65,201,104,138,154,106, 41,223,100,201,131,122,136, +174,242,187,182, 68, 80,181,119, 57, 33,146,158,106,144, 41,101, 47,132,203, 2, + 95, 37, 17, 11,140,182,124, 0,211, 95, 38,198, 30,109, 45, 6,162, 96,210,157, +218, 16, 32,109,130,192,232, 8, 59, 1,218,169, 59,247, 65, 79,171,128,242,194, + 1, 50, 41, 99,157, 69, 23,255,113, 96, 68, 7,252, 49,202, 37,228,220,156, 20, +198, 30, 66,190, 26, 32,133,155,155, 91, 81,130, 69,132,101,150, 83, 26, 35, 58, + 8,210,194, 54,124,165,215,104, 77, 8,203, 57,145,178,140, 14,217, 29,101, 19, +231,139,254, 72, 35, 7, 80,215,186,196,226,184, 83,153, 55, 75,177, 37, 31,146, +183,241, 22, 78, 72,150, 49,208, 45,203,130,110, 16, 78, 70,115, 98,155, 19, 79, +123, 54,183, 70,223,220, 92,231,253,113, 64, 65, 3, 46, 57, 34,159,123, 15, 8, + 25, 77, 6, 73, 11,183,119,104,123,152,237, 96,204, 4,172,233, 37,146, 60,108, +213, 4,242, 73, 65,169,248,248,202,181,119, 45,212,168,105,200,113,209,240,139, + 65,236,156, 96, 83, 66, 7,157,138, 84,135, 86, 97,143,186, 17, 17,208, 87,121, +139,216, 43,138,114,213, 15,144,118,160,220,226, 39,118,169, 79,211,190,239, 46, +213, 74, 66,118,211,104,150,129,253, 61, 15,133,179,178,152, 13,146, 6, 82,204, + 90, 14,158,162,231,118,175,166, 74,246,213, 1,167,112,234,221, 38,121,134,102, + 33,185,147, 94,113, 21, 27, 85,150,128, 56,235, 18, 44,102, 2, 48,151,182,183, +105, 49, 30,128,234,248, 48, 1, 92,146,158, 87, 67, 67,138, 71,205,209,144,158, +209, 73,237, 16,182,180,125,202,158, 53,200, 48, 20,178,119,227,122, 6, 81, 65, +132,136,189, 61,108, 53,213, 52,222,195,199, 90,246,102, 85,222, 6,119,195,125, +141,129,100, 37, 72,150,239,241, 12,218,217,142,130,150,112,154,140,121,252,152, + 18, 18,105, 69, 94,140,132, 0,149, 52,200,117,192,150,238,132, 9, 74, 21, 15, +102, 58,194,232, 39, 67, 30, 9,206,103, 59, 6,207,178,180, 68, 31, 57, 1, 73, +208,224,190, 37,131, 6,214, 36, 74,201,229, 74, 90,100, 20,120, 62, 52,199, 48, +155,231, 27,245, 15,194, 38,238, 26, 85,209,149,233, 98, 48, 37, 37, 71, 86,158, +212,125, 98,113,158,210,223, 14,135, 91,158, 54, 86, 46, 9,237,162,133, 41,209, +184,165, 27,218,216,154, 99,242, 32, 92,166, 4,119,225,101,152,133,125,183,151, +179, 71, 2, 57, 77,235, 20, 47,194, 21,104, 40,178, 90,125,115,184, 88,216, 22, + 97, 51,188, 93,198, 67, 23,176,130,236, 3,206,190,158,199,144,101, 97,102,245, + 34,217,175,184, 40, 39,112,118, 73, 66, 13,185,114,108,243,155, 1, 67,135, 66, + 72,116,168,132, 79,238, 40,210, 39, 48, 48, 67, 29,165, 32,146, 34,120, 88,116, +101,236, 88,175,125,210,235, 16,210, 96, 60,247, 60,163,108, 56,195, 30, 34,131, +179,100,197,238,220,112,121,238,107,207,203, 94,159,127,186, 63,163, 4, 90,222, +183,229,141, 18,225, 13,126,227, 22,133,225,210, 93,119,195,226, 41, 48, 85,162, + 53,182, 7,231, 29,253,233, 53, 76, 86, 54,130,230, 12,201,202,238, 25,212, 56, + 50,154,192,125,113, 71, 73, 25,235, 90,134, 90,108,167, 31,201, 96, 82,164,244, + 21, 57, 55, 97, 59,186,199,213, 76, 92,180, 78,241,141, 38,103, 53, 56, 61,220, +133,191, 60, 80,136,219, 41,199,116,242, 75,252,226,117,135,225, 62,244, 19,214, +143,129, 8,139,233,112, 82, 15,114,208,144, 18,212, 73, 6,246,240,100, 77,209, +139,141, 76,188,157,239,163,221, 4, 74,236, 88,195,142,152,164,129,104,132,244, +150, 29, 61, 87, 70, 16, 36,141,203, 93, 15,138, 96,102, 29,107,181,241,137, 11, + 63, 72,134,240,221,135, 0,134, 17, 57,107,197, 22, 51,221, 98,136,119, 63,120, +106,122,144,123,239,154,111,203, 4,178,140, 35,117, 41,155, 84, 97,248,233,250, +141, 96, 67,179,190, 87,151,240,154, 60,138, 19,166, 55,239,163,183, 89, 91,114, +249,227, 91,102,158,108, 55, 51,216,101,192, 92,167,228,110, 50,176, 15, 41,141, +112,157,113, 32,226,246,221,232,165,119,184,255, 72,192,247, 96, 40,119,227, 44, + 36, 21,112, 67,122,216,227,194,100,210, 50, 12,136, 77, 56, 19, 60,110,202, 88, + 66, 30, 12,228, 24,123,222,199,131, 98,247,253,179,189, 62,224, 24,126,188, 74, +163, 35, 87, 59,246,136,139,215,121, 67,203,241, 85, 66, 70, 11,126, 97, 42,192, + 65,170, 36, 72,155, 82,141,181,131, 8, 51,199, 32, 60,151,108, 45, 19, 39, 91, +158,226, 35, 76, 69,252,170,154, 49,193, 20,237,232, 26,163, 59,205,178,227,107, +178, 34,254,152, 1, 48,104,144, 9, 52, 12,255,159, 64,132,165,148, 12,151, 67, +201, 73,222,242, 86,149, 83,253,242,116,115,244,118,202,129,198,246,190,102,156, +168,149,155,167,204,251,109,147,232,108,116,254, 95,235,216,118,217, 65, 15,237, +178,243, 56,178, 48, 45, 55, 69,236, 30, 97,116,167,112,215, 14,139, 99,180, 79, +192,134,206, 73, 69,175,142, 58,165, 13,201,217,251, 16,179,121, 97,117, 60,196, + 76,195, 66,131,122, 27, 58,189, 84,145,151,114,131,197, 25,198, 85,245,196,193, +203,155,197,188,219,159,229,245, 68,236, 33,139, 71, 10, 1,195,129,186,133,199, +187,115, 43,221, 2,143,231, 13, 19,213, 67,251,192,125,172,191,130, 99,163,108, +135, 17, 89, 93, 66,233,166, 29,192, 22, 65,156, 12, 74, 98,162, 16,121,147, 71, + 77, 80,227, 1,154, 19,134, 62,166,229,217,137,179,116,116, 30,184, 72,190, 94, + 77, 32,133,108,201, 9,121,254,125,106, 84,101, 41, 96, 12, 9,164, 18,255,197, +148,169,240, 52, 91, 45, 16,187,218, 95, 44, 52,152, 29,233,150,237,249,178,151, +158, 89,113,168,225,182, 38,244,249,105, 54, 78, 59, 65,170,193, 17,229,219, 96, + 78, 49, 68,100, 4, 9,161,200, 44,167,163,251, 43, 12,252,101, 33, 46,108,126, +142, 16, 27, 85,214,173,209,242,166,161,197,242,125,209,140,202,249,174,147,181, + 43, 81,222,193,206,180,204,210,181,153,185, 33,188,132, 8, 64,160,158,200,196, +107,208, 41, 36,151,198,249,159, 60,163, 93, 49, 86, 10,113,168, 79,155, 2,138, + 41,249, 27, 82,147,184,224,144,193,121,175,205, 55, 13, 42, 95, 11,219,206,138, +178,192, 33,234,130,139,225,179,138, 92,102,209,218,197,101, 56,148, 4,220,102, + 68,199, 73,254,178,225, 5, 98,231,199, 31, 10,185, 78, 18, 59,146,173, 70, 60, + 22,178, 8,127, 53,165, 80,241, 99,198, 88,210,191, 17,114,140, 80, 77, 25,198, +155, 98,230, 87,208,155,154,112,209,213, 90, 59, 19,219,109,189,251, 40, 83,212, +180,106,173,131, 69, 20,252, 74, 50,255, 81,172,142,179,101, 60,190, 29, 97,149, +204,204,129,147, 4, 38,116,123,239,130, 90,253,225,250,124, 20, 35,185,191, 63, +183, 15,253,158,126,125, 13,174,128, 17,222,110,177, 73,102, 89,191,197, 70,101, +166,111, 9,198,254, 24, 39,177, 41, 41,171, 7,183, 48,134, 69, 90, 62, 58, 37, + 22,187,216,161, 75,196,186, 82,124,178,170,164, 12,170,154, 4, 13, 33,126, 21, + 15, 5, 62,206,167,226, 65,136,179,160, 55,240,135, 24,222,136,108,178, 84,145, +153,145, 7, 16,252,105, 96,184, 35,144,195, 19, 28, 76, 70,196, 11,102,186, 54, +101,185,169, 92,193,191, 48, 65,219,201,144,164,229, 63,100,208, 95, 92,169,123, + 15,134,189,209, 83, 29,180,125,131, 33, 59, 68,130, 40,142,143, 39,178,237, 71, +245, 57,110, 47,112,101,172, 87,216, 99,155, 93,121,255,123,232, 76, 46, 47,232, +243,110,141, 12, 39,118, 16,149,204,243,155,167, 52,201, 61, 64,194, 24,233, 22, + 14,150,217,188, 19,179,163,184,246,240, 52, 32, 24,164,219,160, 36,134, 1,244, + 79,205, 38,175,189,191, 56,221,126,122,216,156, 58, 48, 82,197,161, 49, 7,147, + 59,131,151,100,244, 72, 36,185,132,207, 64,120, 19, 71,130,247,119, 62,180,168, + 62,166,247,243,147, 27, 68,160, 63, 11,202,131, 77, 11,118,223, 22,174, 16,111, +178, 64,188,231,254,234,179,207, 19,114,254, 70, 76,132,128,228, 79, 80, 37,133, + 22,222, 71, 46,123, 88,141, 65,168, 96,204,242, 77,219, 43,182,159,217, 54,218, + 67, 84,210, 52,198, 92,182, 56, 59, 77,183,187,161,175, 69, 82, 64, 24, 68,131, +195, 6, 67, 59,229,142,120, 48,210,232, 25,172,109, 44,211,111, 12,153, 96, 51, + 74,152, 78, 76, 20,152, 6,176, 72, 53,122, 6, 87,152, 20,239,138,244,247, 37, +219, 48, 60,248, 0, 63, 49, 71,249,146,228, 57, 40,244, 20, 21,146, 64, 1, 57, + 89,141,111,153, 62, 15,202,113,104, 94, 5, 2,126,222,179, 9,145,244,153,249, +176, 65, 93,101, 73,168,237,149, 66, 68, 95,178,111, 16,179, 90,175, 73,231,163, + 6,206, 77,227,102, 65, 31, 89,130,166,221,216, 57, 66,129, 70, 42,235,162,221, + 99,154, 9,138,107,233,193,184,179,184, 40, 80, 33, 36,162, 68,127, 84, 34, 18, + 99,112,200,184,171,112,140,103,102,247,204,145,183,214, 44, 60,228, 33, 58, 31, + 40, 54,205,172,110, 48,177,157, 99,158,129, 51,117, 12,217,127, 24,215, 37,153, +112,122,142, 97, 27, } ; -// ../Source/Template/GB_emult_02_template.c: -uint8_t GB_JITpackage_94 [813] = { - 40,181, 47,253, 96,108, 11, 29, 25, 0,118,226,107, 33,240, 88, 55,172, 23,242, -240,156, 43, 19, 73,155,178,241,156,116, 67,186,162, 1, 77,125, 13,140, 94,128, - 82,100, 19, 65, 19, 26, 2, 98, 0, 93, 0,100, 0,123, 44, 93,144,147, 36,117, -140,177, 72, 44,178,135, 34,177,240, 66, 72,112, 76, 95,148,181,184, 70,125, 53, -110,179,188,158, 99, 29,229,212,241,180, 25, 19,233,126,223, 83,119,145,228, 73, - 68,156,182,220, 23,172, 78,194,214,243,159,171, 17,241, 58,219, 83,187,190, 78, - 29,255,152,242,106,208,168, 83,124,243,200,111, 75,158,229,239,111,145,248, 54, -121, 42,255,171, 24, 71, 32,174, 12,129, 8,121,235,207, 6,223, 95,195,177,241, -245,173,177, 25,110,213, 49,234,251, 75,238,238,126, 93,172,235,210, 48,215,184, -108, 58,166, 63,159, 38,109, 75, 55, 59,174,173,127, 62,237,240,148,183,246,213, -190, 95, 90,237, 63,110, 31,247, 77, 57,182, 93, 9,109,145,253, 24,218,147,122, - 36,255, 21,239,198, 79,202,100,175,241,135,151,147,137, 44, 31,141,244,168,252, -250, 65,174, 3,212, 69,211, 31,155,133,193,128, 0, 40,108, 4,247, 64,151,174, -163, 30, 39,196, 93, 62,241,146,112,173, 18,210, 52,193,215,228,215,234,233, 50, - 31, 53,245,125,124, 57,151, 14,232,178,249,188,140, 70,124,146,120, 5, 11, 55, -100,187,245,169, 77,218,110,124,176,164,169,132,239,103,250,239,195, 75,106,250, -109,157,175,104, 2, 43, 89, 5, 43, 68,130,159, 68,221, 59,142, 18, 63, 43,217, - 73,125,135, 55,215,213,114,247, 66, 37, 56,166,192,225,132, 58, 78,161, 56, 71, -112,241,134,159, 45,231, 18,176, 21, 8, 53, 27,240, 39,157,200, 16,127,198, 40, -231,101,234,199,242,116, 42,156, 96,178,121, 54, 41,155,183,133, 64, 94,247,225, - 60,219,183,233, 40,119,150,102,248,153,180,229,238, 61,207,109,219,182, 90,107, -149,184,170, 64, 80, 93, 62, 35,111,220, 38,246,125, 2, 29,243, 7, 29,219,208, -171,103,211, 3,128,162,160, 49, 73,164,148, 76, 48,163, 32, 73, 10, 10,133,225, - 96, 68,132,172,108,117, 27, 9, 71,139, 96, 90,136, 38,223,128,144,205,212,241, - 40,212,128, 54, 91,244,209,248, 5, 6,212, 1,216,241,227, 40,140, 56,248,183, -145,141,215, 48, 78,143, 32,151,156,166,141, 44, 35,130, 0,215,210, 46,198, 65, -109,100,144, 40, 41, 12,176,145,195, 30,136, 21,136, 30, 32,148, 23, 59,228,160, -245, 67, 10, 17,243,141, 97,163, 30, 88,130,228,147, 32,129,229, 15, 97, 42,242, -244,131,192, 12, 80,231, 54, 3,253, 50, 3,187,221,118,104,172,109,120,198,118, - 14, 23, 34, 97,196, 4, 45, 47, 4, 33, 77,225, 8, 4, 40,162,210,224,208, 60, - 15,110, 0,147, 66, 24,100,249,132,205,141, 9, 40,144,113,110, 34,141,160, 50, - 94,128, 37, 19,128,112, 65, 52,102,243, 82, 4, 68,120,147,104,240,172, 54,134, - 1, 70, 68,124, 18,143, 96, 98, 67,111,107,111, 18, 20,145, 12, 82,176, 6,142, - 58, 27,210,159,136,155,145,195,129,195,238, 44,158, 23,215, 45,235,128,160,132, -108, 60,154, 68,230,200, 24, 35, 56,231, 65, 70,135,159, 96,100,115,196,225,158, -142, 6,136, 9, 64, 13, 86,126,115,164, 80,168, 39,136, 17, 44,229,175, 78,222, - 36, 7,244,162,234,217,122,198,110, 64, 56,163,131,112,223,108,128, 0,184,209, - 12,232, 51,218,214,116, 4,219, 31,134,143, 13, 51, 86,139,110, 47, 22, 61, 97, -125, 53,178,191, 49,148, 51, 54,215,140,206,106,159,175,190,183,224, 91, 36, 91, - 41, 35,100,111,236,190, 17,252,180,113,146,183,100,211,196,252,193,132, 86,255, - 10, 35, 4,130,139,134,210,231, 87, 85, 20,140, 1, +// ../Source/Template/GB_AxB_saxbit_template.c: +uint8_t GB_JITpackage_78 [2199] = { + 40,181, 47,253, 96,208, 59,109, 68, 0, 22,253,183, 40,192, 84,117, 14,228, 92, +191,207,158,227, 11, 23,146,239, 51, 9,202, 26,192,226, 60, 48,177,183, 43,166, +238,194, 48, 56, 38,108,241,244,187,138,130, 45, 10,184,171, 0,166, 0,180, 0, +147, 82,233, 57,206,126,239,237,156, 23,218,121,235,154, 13,118,241,185,128,168, +112,141, 67,174,202, 79, 0,191,174, 5,189,111,152,103,120, 51,126,119,249,184, + 43,253,110,231,230, 30,202, 20,107, 33,112,114,169,100, 40,221, 77, 9,198,107, +110, 83, 16,205,181, 57, 14,165,113,237, 73, 43, 40, 24, 15,158, 10,215, 31,183, +113, 99,199,185,227,160,216, 61, 47,126, 50,200, 92, 50,148, 4,204, 37,115,105, + 70,159, 48,253,144, 15,175,196,135,186,108, 63,250,249,148,197,138,170, 3,229, +141,208, 52,190, 18,204, 58,211, 48,155,128,242, 59,166,183, 94,187, 3,121, 69, + 16,169,134, 75,128,193,186,102, 86, 58, 75, 15,252, 58,107,153,110, 33, 18,107, + 85, 72,212,170,136, 91, 44, 19,138,197, 18, 27,137,142, 86, 85, 91, 85,225, 26, +171,143,114, 82, 60, 69,213,246, 62,230, 1, 66,198,213,206,133,111, 13, 20,235, +212, 55,235,121,210,155,113, 95,130,103, 77, 33, 87, 26,146, 32,158,252,194, 37, +201,138,238,137,215,135, 83,105, 85, 68,244, 15,182,201,178, 88,197, 79,215, 39, +235,185, 57,254,255,147,201,200,165, 95,227, 91,100, 28, 13,227, 68,143,150,209, +241,170,125, 14,183, 87,249, 10,197,110, 15,201,239, 85,252,237, 46,211, 77,230, +252, 85, 37, 74,158, 23,130,166, 41,212,125,234,232, 89,126, 19,215,161, 39, 63, + 60,201,245,215,118,126,202,182,230,218,184, 47,120, 13, 71, 13, 85,121,113,212, + 86,251, 97,249,254, 36,253,181, 89,222, 6,237,191,112, 78, 9, 10,147,201,138, + 42,189,212, 49,209,232,122,232,230,218,239,166,236,204,169,130,111, 88,160,198, + 71, 44, 75,127, 59,103, 57,177,197,210, 64,201, 82, 72,116,141, 67,116, 41,132, +210,109,235, 58,240,186, 70, 34,128, 83,215,117, 93,210, 21, 65, 96, 22,218, 47, +151, 44, 58, 31,235, 2,251,100,158,203,194,210, 40,178,120,105, 30, 88, 94,223, +229,123,214, 90,132,226,144,143,118,117, 21, 21, 23,157,139, 58, 21,163, 68, 66, +242,232, 90, 45,198, 24,165,140, 92,123,219, 23,118,104,113,246, 71,149,148,110, + 91,215,129, 7, 35,182,241,100, 72,108, 50, 44,122, 50,128,186,224, 89,187, 53, +246, 90,179,152,106,213,187,210,138, 77, 7,219, 80,104, 31,206, 4,168, 57, 16, + 21,144,170,232,156,215,157, 38, 82, 43,117,145,186, 69,127,168, 8,147, 73, 73, +135,115, 81, 62,123, 65,207,244, 87,182, 55, 63, 45,204, 83, 37,184, 39,189, 89, +126,247, 60,249, 99,226,181,112,131,107,142,185,195, 37,204,165,175,124,188, 38, +151,215,240, 82, 89,226, 39, 91, 79, 81, 63,128,133,161, 82, 17, 68, 42,126,210, +219,181, 57, 66,215,230, 41, 65, 1, 49,224,205,133,222,172, 63,198,224, 96, 15, + 12,220,235,122,219,227, 35,156,237,114,231,217, 94, 99,203,178,172, 73, 68,135, +131,113,174, 77, 86, 85, 85, 85,197, 24, 99,199, 3, 48, 41, 49,192,100, 48,246, +182,200,215, 65, 53, 26, 92,169,157, 7,177,245,214, 65,152,147,125, 59,156,235, +196, 81,233,164, 94,107, 25, 45,187,168,240,104,216,230,243,137, 86,214,137,224, +100,217,116,197,233,242,233, 1,130,163,168,130,212, 12, 25,146, 17, 17, 17, 73, +146, 20, 50, 28,194, 41, 4, 2,113,152,199, 97, 41,111,146,152, 28, 19, 65, 36, +130,192,136, 35,134, 17, 34, 32,132, 32, 66,228, 68, 34,145, 68, 35, 34, 34,109, + 3, 50, 36, 99, 83,106,231,140, 74,109, 26, 80,169, 77,128, 42,181, 21, 43,133, +171,143,157, 43,233,207,133, 59,160,138,125, 75,105,145,204, 34,181,254, 36,181, +105,143,162,180, 45,130,156,160,106,200,251, 68, 75, 77,150,193, 74,153, 58, 24, + 60,253,203, 2,116,159, 97,209,208,198, 82,127,244,129, 5, 30,136,162,115, 34, + 77,100, 94,230,132, 34, 70, 64, 45, 44, 95,104,188,216, 43, 43,210,161,195,246, +183,172,196,147,168,157,158,115, 92,122,104,119, 8, 18, 0, 73,238, 4,176,233, +205,216,107,208,116, 4, 44, 19,203, 4,160,126, 64,111, 6, 82,185,171,204,180, + 14, 49,204,150, 79, 58, 3, 64, 61, 40,222,184,100, 19, 65,104, 35, 40, 54, 78, +221, 27,183,176,165,132,167, 20,117, 68,171, 24, 62,213,142, 82,210, 13, 87,230, + 60, 38,133,119,137, 0, 52, 1, 20,173, 33,152, 61,216,134,174,138,126,168,155, + 24,226, 97,158,181, 27,254, 4, 82, 58,235,153,147,132, 14,208, 37, 43, 77,165, +227,187, 59,204, 97, 15,103,250,195, 13,168,222,204,149,177,247,172,193,122, 4, +124,160, 48,215,125,199,131,213,133,203, 14,163, 11, 25, 26,144,114,213,107, 44, +162,187,102, 48,166,224,208, 28,222,168, 18,192, 3, 33, 49,245,214, 98,202,164, + 78,240,137,224,180, 77, 33, 22,156,197, 10,139,214,214, 45,156,202, 38,116,169, + 61,163, 75, 47, 15, 31,218, 41,225,165,201,203,114,164, 56,226,136,157,165, 4, + 62, 85,202, 28,234,228,200, 61, 14,123, 97,207, 6,143, 93, 31,138,109, 73,162, +218,226,173,254,253,203, 23,168, 0,155,159, 35,213, 91, 89,217,106, 57, 19,223, + 75, 15,100,164,234,149,137, 39, 63, 59,246,143,252,183, 45, 87,106,145,250,132, + 84,104,101, 37, 32, 4, 76,171,204,120, 90, 28, 17,200,158,228, 62,209,212,114, +248, 26, 46,221,180, 38, 34, 92,157, 24, 37, 64, 80,175,139,240, 11,145, 79,216, + 68, 49,113, 11,203, 50,190, 70, 37,148,126,197, 10,193, 51, 59, 1, 6, 67,158, + 82,128,144,222,234,152,229,213,139,143,249,106, 52,243,243,188,134, 56,124, 29, +164,195,187,155,115, 84,161,150,143,147,209,149, 67,137,209, 7,212,224, 17,225, + 9,200,247, 72,118, 24,122,191,128,157,185, 83,127, 87,168,221,247, 9,110,110, +141,232, 31, 48, 50,204,211, 8,191,208,141, 16, 17,245, 83, 58, 1, 55,126,144, +168, 29, 52, 54,105, 18,248, 65, 80, 0, 26, 22, 0, 62,172, 64,170, 94, 85,141, +251,236,241, 79,230,169,163, 13,184, 36, 87,230,173, 74,248,203, 12,109, 57,220, + 25, 66, 35, 47, 79,120, 20,162,229,133,140,221,238,126, 52,154,125,235,113,216, +183, 43,138, 78,169, 46,162,253,181, 11,225,199, 33, 25,198, 65, 59, 87,246,238, +239, 49, 98,207,110,140,148,230,216,115,216,207,217, 82, 70, 61, 3, 98,241, 41, +147,204, 38,101,176,166,171, 60,238,131, 52,118, 39,122, 48, 40, 89,248, 19, 88, +228,234, 85, 32,187,182,244,192, 59, 95,216, 36, 27,155,253, 80,222,168,244, 33, +212,132, 26,247,237,140, 55,127,235,106,224, 53,138,155, 74, 55, 72,164, 9, 79, +174, 96,168, 53,226, 83,154, 17,254, 41, 97, 2, 74,146,175,220, 6,208, 56,118, + 45, 14,215,252,187,246,120,122,166, 10,152,160,132, 37,238,164,150, 31,235,153, + 16,159,110,236,118,177,164, 57, 96,231,155, 20,139, 68,199, 62,172,128,215,108, + 11, 28,144,142, 51, 46, 59,147, 37,129, 87,112,202, 33,190, 3,217,224,130,195, +145,114,142,104, 21, 56,206,226,150,153,228,238,249,193,204,253,219, 50,252, 36, + 9,235,210,153, 59,172,233,149,171, 64,118,107, 43,164, 66, 43, 87, 4, 94,248, +179,153, 29,169,127,252, 81,139, 58, 49,196,240,210, 30,145,202, 64,223,232,230, +108, 38,132,213,148, 79,149, 66, 75, 21, 54, 45, 55,188, 56, 20,249,138,254, 50, + 1, 95,118,228, 36, 48,192,195, 14,179,169,219, 39, 16, 93,135,214,169,169,241, + 66,102,144, 29, 5,130,195,111,158, 65, 41,164, 69, 71, 89, 31, 18,225,158,143, +234,160,214,223,196, 8, 63, 63,107, 1,188, 11,204, 57,234,151,220,158,198,119, +202,240, 94, 43,222, 12,142, 43,168,153, 33,205,189,157, 3, 93,201,141, 27,192, +195,132,194, 20,144,136, 21, 79,249, 89, 95, 43, 66, 88,203,116,252, 66,231,191, +202,105, 24, 75, 99,248, 82,100,190,193, 10,247, 26,136, 62,169,188,165,194,102, +226,217,188,177,220,154, 67,209, 63,254,211, 85,243,130,110,201,195,226, 78,197, + 23, 94,240,131,119,125,172, 71, 44,240,153, 10,113, 80,152,161, 50,103,204,104, +108, 60,201,191,108, 77, 65, 67,230,117, 62,169, 52, 45,113, 76,126,108, 82,232, +246,206, 3,111, 71,141,198,155,187, 55,170,157,133,152,166,160, 32, 19,105,121, +118,164, 50,237,200,249, 58,176,226, 80,167,155, 96, 47, 20, 32, 32,133, 32,145, +174,150, 40, 68, 34,119, 80,174,222,124,237,244, 22,176,146, 84, 2, 26,198,152, + 22, 25,127, 44, 50,139,197, 75,124,172,168, 77,113, 55,176, 72,227, 78, 28,137, +114, 1, 16,238, 21, 45,175,249, 62,189,154,184, 13, 58, 42,116,155, 28,216,131, +203,113,141,206,120, 68,248,103, 91, 74,191, 44,210,159,146,101, 96, 37, 10, 66, +163, 57, 43,153,238, 20,134,168,152, 19,110,237,161,226,138,195,178,212, 5, 47, +132,114,184, 56,219,115,224, 43,214, 86,120, 87, 36, 28, 6, 50,230, 56, 90, 87, +111,116,209, 12,255,189,132,136,161, 62,245, 80,231,163, 7,101,177,120,219,221, +139,248,237,185, 50,207,225,120,160, 59,197, 11,105, 77, 88,149, 78,128,120,122, + 89,156,129, 59, 40, 18, 1, 73,191, 18, 38,128,169,222,221, 21, 33,165, 12, 10, +182, 73, 79,138, 80,136,102, 79,102,176,146,147,199, 7, 93,133, 41, 0,114,113, + 10,203,121,145,211,215,192,222,161, 3,233,152, 48,224,232, 61,215, 95,182, 78, +141,129,157,162, 20,168,190,120, 16,111,127,235,244,239,255, 26,150,186, 66,106, + 94, 13, 51,181, 37,103,152,106,133, 92,250, 12,255,235,137,255,211,106,179, 45, +238, 7, 17, 9,201,223, 41,170, 53,158, 48, 96,181,124,130, 16,198, 21,234, 6, +137, 93,200, 96,116, 8, 18,208,179, 96, 63,165,171,101,238,170,248,138, 54,198, + 19,190, 5,114,209, 50,191, 39, 90, 27, 99,222,206,251,126,247, 42,223,149,237, +126,223, 84,113, 96, 38,181, 33,126,115, 70,212, 66,142, 95, 83,225, 70, 18, } ; -// ../Source/Template/GB_emult_02a.c: -uint8_t GB_JITpackage_95 [723] = { - 40,181, 47,253, 96,167, 6, 77, 22, 0,134, 99,108, 33,224, 26, 29, 3,144,186, - 96,130, 62,240,135, 92, 91,132, 77, 96,109, 15,214,118, 93,117,137,212,134,207, -107, 96,134, 97, 24, 47, 4,100, 0, 95, 0, 97, 0,215, 66, 0, 69, 52,133,207, -170,178,213,118,115,189,193,210,221, 60, 12,231,165, 34,113, 72, 16, 26,136, 67, -226,154,151, 93,234,171,170,145, 23,230, 91,224, 70,137,183,115,201,153, 22, 14, -196, 53, 79, 28, 28,187,111,138,131,225, 42,238, 59,226,254,141,245,217,226, 22, -104,176, 58, 87,172,175,239,231, 71, 11,174,206, 9, 10,243,219,187, 59,106,226, - 64,119,152, 18, 45,229, 38, 55, 24, 48,130,193, 16, 84, 76,141,207, 40,210, 67, - 27,134, 53, 87,124, 44,162, 94,197, 82,205, 56,240,248,119,247,247,120,109,222, -186, 59,180,154, 37, 62, 20,184,237,229,255,143, 97, 46, 12, 43,200, 61, 90,109, - 51, 62,233, 42, 30,133,185,174,183, 57,181,189, 84,222,250,173,125,173, 88,245, - 45,184, 15,238,187,186,236,176, 67, 33, 65,176,160, 87,241,188, 35,219, 75,186, -123,180, 95,133, 96,245,104,189, 82,118,223,104,233,196,151, 19,103,239, 52, 52, -130,153,116,106,104, 71, 50, 25,109,168,186,224,166, 92,183,166, 28,126, 92, 59, - 93,130, 51,251,164, 20,110,242,237, 38,200, 79,127,252, 91,215,240,113, 81,232, -214,187,161,158,116,251,214,249,146, 78,223,116,193,112, 13, 6,250,144,199, 15, -223, 50, 13, 33,189, 43,214,177,245,101, 54, 76,125, 22,244,244,181,145,206, 76, -127,213,102,112, 7, 24,246,194, 94,131, 65,135, 73, 55,112,121, 89, 93,118, 77, - 70,194,169,124, 36, 28, 55, 66,233, 75,231, 37,107, 94,154,110,205, 62, 37,155, -105,233, 36, 17,218,177,120, 46, 18,154,225, 84, 72,246, 27, 73, 55,176, 93,212, -117,220, 5, 5,205, 36,111,102, 83,227,221, 35,202,187, 38,226, 70, 28, 32, 59, -233,126,176,125,226,208,239,252,246,123,200, 39,254,227, 29, 98, 32, 53,172,161, -184,187,196,199,164, 12,117,160, 81, 41, 67, 6, 13,201,136,136, 36, 73, 65, 33, - 29, 32,134, 24,228,216,213, 1, 25,129,210, 0,209,221,169,230,251, 23, 72,244, - 79,112, 83, 65,130,221,164, 33, 41, 20, 92,219,132,128, 72, 52, 54, 48, 25,192, - 3,110, 21,124, 33,164,192, 96,104,244,145, 8,109, 2,147, 17,249,228,132,112, - 7, 90,199, 95,180,229,220, 57, 60,216, 50,233,175,118, 26,181, 4, 99,194, 29, - 0,249,137,178,140,112, 96, 76,152, 48, 13,117,136, 18, 21,186,154,201,234, 10, -180,197,132,155,150,208,255,209,221,112, 26,240, 79,153, 98, 38,236,186,240,160, -109,225,165,181, 33,212, 68,163, 95,254,202,176,181, 77,234, 81,101, 16,118,182, - 12, 56,203, 6, 75,227,208, 14, 5, 70,163,148,230,236,115,237,155, 30,249,100, -191, 25, 1,154, 5,124, 11, 93,186, 22, 75, 92,251, 20,229,227,214, 88,177,220, - 99,152, 0, 68,230, 31,152,101,141,156,240, 73,195,203,192,121, 99,203,222, 54, - 24,215, 30, 50,185,124,152,221,143,228, 42, 87,111, 65,168, 82, 72, 7,162, 16, -137, 66,166, 37,116,168, 35,137, 0,201,156,100,132,244, 70,233,203,128, 38, 70, -137,182,201,155, 38,134, 10,166, 91,213, 45, 44, 4,209, 43,138,207,101, 88,149, -162,128, 9, +// ../Source/Template/GB_AxB_saxpy3_coarseGus_M_phase1.c: +uint8_t GB_JITpackage_79 [838] = { + 40,181, 47,253, 96,214, 9,229, 25, 0,134,100,113, 32,208, 28,231, 12, 34,100, +239,121,205, 27,203,134,128,226, 28, 13, 53, 26, 13,112,206,188, 47,217,127,129, + 47, 30,200, 82,243, 2,107, 0, 99, 0,103, 0, 29, 90, 78,129, 84, 1, 25, 84, + 13, 59, 27,119,232, 56,179, 86, 54,116,146, 4,255, 45, 20, 8, 69,193,145, 64, + 40,238,133,221, 63,108, 97,181,114, 3,248, 25, 43,151, 46, 59,250, 39, 2, 57, + 19,150, 89,207,203,195, 20,117,182, 47, 17,215, 57, 43,219,216,191, 91, 98, 88, +205,127,104,201, 50,229,154,225, 63, 18,141, 43,203,164, 29,138, 95,151,198,103, + 45, 67,186,152,153,178,138,233, 68, 6,210,201,229,135, 3, 87, 56, 28, 2, 4, + 66, 37, 35,144,103,124, 90,113,188,228,227,248, 76, 25,141,124,109,151,122,130, +112,187,241,115,207,158,203,171,186,245, 95, 66, 34, 57,203,187,178,199,246,148, +127, 8,137,215,250,108,215,249,227,191,229, 12, 98,249,159,165,248,241,172,174, + 71,142, 50, 24, 12,166,139,152,127, 51,146,172, 54,219,155,249,127,174,198, 33, + 12,138, 66,179,194,106,130,127,156,109, 69,155,111,171, 50,133,198, 55, 88,113, + 9,193, 99, 52,186, 91, 46, 30, 48, 68, 93,157, 14,171,137,199,179,140, 53, 43, +191,204,215, 62,219,159,157,115, 13,113, 71,180,170,219,144,247,235,218,124,203, +240, 30,130,118, 91,169,135, 44,160, 18,198,102,187, 69, 20, 2, 65, 34, 42,202, +208, 73,119,209, 6,102,217,116,245,109, 86,236,141,107,120,178,218,176, 77,124, + 14,114,196,199,209,116,147,242,232, 38,207,189, 58,228, 45, 58,161, 35,203,197, + 11, 28,119,195,109,207,124,251,118, 95,158,167,106, 50,229,122,181, 40, 8,184, + 64,112, 15, 4,187,174, 11,125, 60,183, 91,172, 47,129,128, 87,149, 20, 33,135, +193, 19,157,127,253, 58,243,224,181,211, 53,155, 76, 95, 43,182,106,172, 35, 56, + 82,112, 20,203,143,144,147, 44, 21, 79,134,182,198,215,110,228, 19,243,144,135, +148, 95,123,159,239,171, 12,191,127,249,172, 25,211,142,217,133, 44,163, 17, 72, + 17, 61,113,132,248, 28,128,159,168,145,169, 66,104,134, 2, 17,145, 36, 41, 40, +164, 49, 64,132,144,161,171,234, 1, 34,145, 72,131, 82, 84,133,136, 49, 2,105, + 2, 9,103, 38,144,236, 68, 37,137, 7,144, 12, 32,129, 60,250,226, 21,152, 70, + 20,247,254,248,195, 19, 58, 24, 12,143, 99,120, 76, 24,226,199,243,196,207, 84, +220,128,148,251, 75,189, 59,118,241,127, 20,250,202, 85,162, 30, 88,135, 86, 39, + 60, 85,129, 4, 47,139,117,137,148,227,194,173,141,181,172,156, 83, 24,202,225, +227,195,226,139, 57,105, 77, 34,199,174, 18,184,192,156, 0,153, 16,153,145, 35, +227, 56, 88, 57, 37,180,137,160,198, 57, 9,189,150, 29,245,216, 6,245, 3,192, +122,255,123,180,120, 77,240,206, 14,147,130,146,178, 30,206, 24,201, 54, 96, 9, +217, 11,157, 6,234,195,224,146,196, 39,232,246,103, 93,170,140, 57,245,135, 52, +238, 59, 89,169, 1,235,114,111, 49,182,234,198,122, 71, 94,143,211,186,242,114, +123,189,186,148, 73, 86, 62,240,186, 65,184, 76,149,166,124, 2,136,107,140, 1, +231, 92,246,213,170, 2,121, 53, 3,206,193, 88,216,101, 27,218,102, 53,164, 53, +152,173,102, 1,202,214,160,201, 42,147, 97, 61,210,193,104,204,158,138,186,199, +169, 2, 51, 31,232,226, 23, 4, 30, 21, 82,162,150,240,152, 53, 38,171,207,248, + 76,239,187,248, 3,197, 69,228,195, 8,209,159, 53,116,234,150, 56, 40,194,148, +131,192, 14, 52,231, 95, 31,218,193,251, 5,208, 61,254,240,186,109, 79,245,177, +161,217, 76,157,135,140,234,170, 21,205,174, 22,239,128, 14,110,158, 65,243,254, +193,196,150,173,205, 57, 53,124,243, 33, 28,254, 14, 48, 41,221,129, 38, } ; -// ../Source/Template/GB_emult_02b.c: -uint8_t GB_JITpackage_96 [679] = { - 40,181, 47,253, 96, 36, 6,237, 20, 0,198, 32,100, 32,224, 88,231,168, 27, 52, - 3,181, 19,212, 42, 51, 3,100, 80,118,234,119, 79,160,117,168,147,149,197,187, - 26, 49, 70,226, 12,227, 92, 0, 88, 0, 88, 0,168,219,184, 53,199, 57, 28, 89, -205, 69,145,126, 38, 16, 6,196,128,113, 48, 32,158,121,216, 39,182,168, 10, 57, -129,126, 21,102,211,104, 57,159, 27, 90,225,194,178, 94, 73, 99,211,217,158, 54, -151, 40,158, 64,238, 31, 89,127,187, 92,133,133,198,183,150,248,216,158,158,236, - 48,117, 46, 64,160,223,254,120, 67,132, 48,116, 89, 60,141,221,113,146, 23, 10, -215,160, 80, 8,166,215,113, 84,111, 9,208,254,217,252, 76,218,190,219,227,141, - 76,132, 33, 62, 83,152,219,242,255,191, 46,214,117, 17,102, 38, 27,247, 45, 75, -184,142, 55, 93,142,235,251,158,178,119,186, 25,127,149,109,143, 21,191,195,252, - 48,219,212,231,227, 50, 16, 16,131, 14,189, 90,210, 55,110, 91,208,102,178, 63, -202,160, 49,217,158,173, 12, 62,144, 12,225,235,168, 7, 78,186, 53,227,142, 43, -181,103,165,207,144, 98,167,221,132,147,124, 59,201,241,210,181, 63,227, 42,106, - 15,129,222,158, 21, 49,237,182,103,124, 45, 88,122,238, 20, 11,150, 64,128,239, -208,110,248,134,101,135,233,217,177,146,171, 15,107,241,244,117,232,225,103,100, - 71, 49,252,213,190, 97,238,198, 19,249,107, 2, 47,182, 40,214, 91,203,151, 99, -215,213,186, 90,160, 5,124,218, 7,246, 12, 38,178,161,120, 34, 28, 39, 50, 97, -219,169,232, 39,201, 86,236, 52,162,161,149, 71, 4,210,113, 42, 29, 75,164,195, -108, 40, 36,104, 1, 95,147, 22,236,239, 43,177,126,211,110, 47,216, 78, 75,208, -173,229, 30, 32,208,111,207, 72,211, 98,119, 92,251, 65, 48,179, 50, 51,231,156, - 31,217, 29, 45, 63,105,153,233, 56, 17, 9,217, 98,113,160,145,169, 51, 67, 34, - 66,162, 32, 73, 82, 74, 7, 32, 68, 96, 16,131,103, 7,169,129,118, 11,221,177, -241, 0,132,242, 5, 55, 16, 68, 60,168, 25, 16,190, 2, 5, 1, 97,224,192,206, - 4, 9, 96,113,161,180,235, 5,128,248,193,248, 24,204, 22,219, 28,233, 80,206, -128, 13,214, 19, 24,244, 77, 4, 37, 46,113, 97,118,181,208,159, 74,221, 20,225, -241,233, 57,242,214, 31, 76,194, 42,118, 53,111,113,126, 86, 8,207, 68,194,174, - 67,161,160,120, 4,217, 6, 5, 61,186,208, 20, 89,149, 25,242,196, 30, 63, 76, - 22, 26, 8, 40, 38, 26,153, 28,161, 69, 8,248,100,180,116,134, 54, 0, 33, 15, - 78, 35, 96, 13, 9,186,150, 64, 77,178,229,213, 39, 61,250,201,190, 25, 13,135, - 1, 72, 54,180,184,168, 22,116,237,115, 52,223, 93,199,250, 36,188,198, 15, 76, -150, 61, 34, 25,183,187,224,211, 6, 38, 11,224, 69, 40,191,111, 51,183,214, 50, -183, 82,184,238,199,178,202,245, 83, 16,170, 18, 18,135, 36,124, 80,113,133,116, - 2,229, 35,242,142,159, 68, 18, 82,250, 2,242,101,152,146, 3, 66,222,190, 77, -243,161,130,233, 86,225,139,148, 6,230,147, 33,121, 57, 87,165, 40,192, 3, +// ../Source/Template/GB_AxB_saxpy3_coarseGus_M_phase5.c: +uint8_t GB_JITpackage_80 [1094] = { + 40,181, 47,253, 96,105, 20,229, 33, 0,182,169,130, 33,208, 90, 61, 64, 7,193, +227,154,212,178,180,100,130, 86, 6, 0, 2, 59,124, 14, 78, 66,137,197,162, 54, + 75, 61, 12, 90,112,240, 2,124, 0,115, 0,122, 0,133,193, 65,112, 75,209,158, +223, 55,246,197, 36,238,250,142, 20,193,229,250,138,248, 34, 8, 69, 54,131,241, +174,246,229,151,243,188,151, 38,204,121, 20,234,123, 14,113, 40, 28, 4, 12, 67, +225,240,154,152, 61,199,241,202, 70,126,240,189,171,236,102, 10,123,158,235,124, + 23, 72,121,218, 45,105,156,157,219,177,170, 67,159,211, 38, 95,217,254,207, 65, + 2,159,247,192, 56,192,111, 40, 46,183,229, 89, 49,149,171, 36,151,111,107,138, + 21,225, 58, 91,150, 87, 72,235,171, 16,201, 19, 8, 84, 64, 32, 4,221, 95,149, +198, 93,155,226,107,133,247,178, 39, 5, 79,122,233,147,216, 61, 41,103,209,159, + 32,120, 62,133,105,219,102, 81,142,238, 59,223,152,204,239,125,206,223,107, 98, +209, 53,206, 74,111,216,244,189,252,251,117,125, 55,245,168,237,115, 6,207, 27, +140,119,155,218,132,159,227, 47,120,218,137,195, 25,230, 27,255,143, 7,164,249, +191, 77,242,243,182,169,119, 60,105, 48, 24,136,158,156, 60,231, 66,161, 44,238, + 88, 83,184,204,109,255,255,255,167, 20, 70, 3,144,243,187,231,239,218,119, 69, + 31,129, 95, 24, 52,238,185,190, 43,230,204, 56,161,199,243,129, 29,122, 69,123, +242,188, 77,150,185,111,239, 86,228,244, 13,135,247, 54,141,187,215, 18,139,236, + 67, 73,230,227, 84, 12,134,146,120,212, 55, 22,248,222, 3,107,216,201,132,145, + 26,122, 62, 27,140, 6,124, 17,239,171,111,217,199,203, 85, 28,151, 30,250,176, + 17,212,244, 69,173, 68,144,194, 9, 51,228, 29, 53,137, 1,180,145, 65,190, 95, +211,169, 66,170, 39,148,152,227,155,253, 77, 26,151, 1,148,198, 34, 25,142,166, +163, 79,188,109,224, 41,122, 12, 62,165,251,150,221,118,217,229, 18, 78, 60, 31, + 85,149,226,182,151, 87,215,182, 26,151,234, 54,201,154,205,250,101, 28, 77,102, +251, 34,155,207,166, 25, 46, 71,221, 88,111, 77,186,215,250,127,232,161,112, 64, + 53, 52, 9,100,108,223,251,158,241,229,131,225,182, 35, 4, 62,240,216, 11,192, +188,206,123,178,124,216,232, 43, 22,202,213,152,188, 35,192, 43,101,155,191, 92, +191, 76,154,159,187, 15,133,145, 12,165,158,242,107,199, 7,128,236,168,161, 49, + 67, 37, 51,146,130, 20, 20, 21, 50, 28, 48,132, 16, 82,140,170,234, 18, 81,168, + 67, 57, 12,225, 4,132, 32,163,136, 17, 16, 1, 97, 36,146, 64, 36, 70, 68, 98, + 90,139, 1, 33,232,190, 97,222,119,142,129, 28, 23,223,119, 20,205,159,247, 30, +180, 95,178,209,222,167, 9, 66,202,186,161,155,162, 58,210,151, 20,232,219, 13, + 82, 33, 12, 91,120, 14, 14,193, 10,254,205, 72, 73,221, 73,213,106,169,210,221, + 51,186,225,176, 42,157,207,133, 78,231, 46, 65, 82,178,204,108, 73,155,249,194, +128,106, 20, 95,149, 34, 0,167,177, 23,187, 30, 16,250, 28, 36, 38,253, 47,130, +172, 45,150,101, 11,230,208,242, 44, 86,108,236,204,142,200,250, 38,133,103,249, +200, 78,225, 96,147, 51,130,137, 58,152,114, 58, 45,238, 35,168,246,185, 64, 41, +242, 67, 37,108, 8,140, 32,242,168,160,112, 38, 68,205, 93,156,136,246,214, 0, +158,104,184, 1,186,150, 34, 49,212,147,213, 74, 81,191,236,145, 80,194,238, 49, +150, 45,188,239, 72,166, 83,201, 9,162,252,212,167, 18, 19, 87, 72, 21,225,137, +137,168,116, 35,180, 80,253, 25,157,238,190,252, 53, 52, 26,226,253, 57,238, 37, + 66, 79,232,244,209,136,163,131,235,248, 33,212,185, 76,240,148,131,103,226,150, +254, 10,152,170, 28, 91,144, 10,122, 68, 36,249,221, 98, 81,230,125,110,206,235, +208, 50,254,211, 24, 27,169, 66,224,183,127,169,198,191, 87, 68,132, 12,194,128, +134, 37, 73,217,216,254, 98,187, 43,228, 23, 35,148,166,122, 75,187,195, 85, 40, +140,102, 89,130,216, 34, 62,226, 25, 10,160, 45, 17,247,170,226,164,226, 3, 77, + 14, 32, 43,194,175, 36, 20, 84,151,157,237, 48, 63, 34, 0,163, 67,241,153,189, + 54, 62,138, 54,102, 2,232, 83,205, 92,150, 67, 73,199, 46, 93,251, 40,210,120, +191,108,217,156,207,123,191,187,203, 8,105, 40,168,147,181, 89,219, 93, 87,100, + 87,165,195,133, 5,243, 50,209,136, 76, 17,241, 76,195, 13,244,129,108, 92,245, + 32,248, 5,253, 93,209,237,152, 28,214,116,207, 13,241,129, 63,185,149,217, 26, + 36,194, 21, 57,125,132, 74,144,237, 16, 74,203, 54,184, 57, 67, 38,127, 98,144, +242, 45,116,131,241,184, 42,138,187,130, 99, 0, 38,242,255,113,187,115,111, 29, + 74,121, 1,237, 56,138, 83, 9,212,160,224, 19,206, 61,136,240,251, 7,240,192, +219,239,102,137,210, 26, 74,196,228, 26,205, 15,154,243, 15,166,110,181,183,157, + 44, 58,231,147,156,236, 34, 68,129, 16, 87,154, 4, 78, } ; -// ../Source/Template/GB_emult_02c.c: -uint8_t GB_JITpackage_97 [862] = { - 40,181, 47,253, 96,252, 7,165, 26, 0,230,103,123, 41,208,208, 58, 7,120,178, - 4, 77, 37, 80,196, 89, 88, 54,203,209, 29,206,141,174,206, 51,178,195,217,134, -176, 82, 51, 67, 38, 95,234,246, 1, 95, 60, 48, 75, 47, 1,113, 0,108, 0,110, - 0, 96,107,149, 35,137,200,116, 38, 91,103,220,198,237,112,156, 59,139,234,112, -207,147,143, 3,150,138, 69, 98, 32, 80,177,156,210,166, 71, 92, 51,104,230, 19, -249, 81,151,195,175,126, 30, 61,146,115,117,150,222,205,197,211,185,134, 60,146, -231,133, 56,138,165, 95,174,160,247,165,191,190,129,244,217,171,219,118,212, 81, - 26, 95,106,241,113,189, 60,216,157,198, 47,200, 68, 90, 8,217, 3,131,253,162, - 89, 42, 51,123,161,175,231,181, 57,133, 34, 73, 40,148,249, 21,130, 36,127,207, -179, 55, 42,166, 68,212, 52,253,114, 14,231,129,225, 9,167, 38, 6,166,217, 36, -210,116, 36, 62, 51,171, 14, 66,144,100,183, 14,202,158,181,122, 51,238, 11,249, -243, 60,200, 96,125,198, 96,168, 69,203, 22,118,185,179,255,191, 36,113, 72, 82, -252, 36,147,199,244,125, 67, 89, 11,221,140, 63,202,181, 63,138,223, 93,126,151, -171,198, 35, 38, 85, 38, 22, 73,119, 26,181,242,151,219,149,171, 25,236,109, 65, -210, 56, 96, 79,105, 31,165,157,142,117,102,134, 65, 78,217,153, 31,205, 6,108, - 47,227,144, 95, 92,154,241,188,108,117, 10,227,177,147,211,229, 84,176,126,129, -169, 78,189,234, 20, 19,111,173,122, 88, 78,235, 25,223,202, 97, 60, 79,130, 2, -142, 72, 4, 31, 83,189,114,107,162, 4,162, 86, 63, 10,142,182,169,189,208,214, -157,134, 79,129, 83, 78,120,163,125,187, 60,191, 16,248, 27,114,247,218,243,232, -165,246,246, 11, 79, 63, 11,122,237, 99,171, 1,146,212, 33,117, 68, 34, 24, 87, - 31,143, 85,132, 77,239, 52,104, 60, 11, 16,154,235, 2,133,184, 78, 41, 31,169, -198, 65,114, 48, 77,102,126, 56, 15,153,102, 54,120, 22,184,222, 64,174, 62,172, - 83, 96,216,117,200, 36,214, 73,123, 5, 21, 69, 31,143,196, 2, 2,158, 77,175, -223,189, 48, 4,117, 8,172,153,162, 34,232,154,126,205,235,218, 0, 76,231,234, - 35,214,165,157,120,149,183, 94,143,121,117, 76, 32, 18, 41,219,153, 22,123,180, -151, 98,140, 17,219, 2,128,156,168, 97, 49,100,102, 68, 70,164, 32, 41, 72,161, -208, 24, 32,134, 24, 83,118,230, 1,162,113, 48, 71, 17,195,140, 50, 2,195, 8, -149,204,132, 37, 73,253,227, 1,153, 66,185, 49, 54,155, 73,201,154,148, 10, 58, - 22,228, 10,189,221, 92, 78,182,226,209,173, 89,232,176, 49, 84,160,111, 54,216, -207,224,156, 71,139, 38,227,195,215,100, 6,106,180,207,204, 17,173, 55, 62,234, - 96, 91, 36,244,233,223,124,103,158, 82,222, 70,230,132,121,182, 32, 98, 20,170, -209,163, 23, 85,233,127, 83,102,108, 44,109,209,230, 42,113,240,193,112,209,170, -204,216, 95,201, 48,254,179,103,131,126,164,139,116, 10,159,214,101,175,128,229, - 14,194,109,235,160,132,244, 93, 94,178,186, 71, 16, 38,242,232,146,150,252,159, -127,236,201,230,191,165,170, 3,177,113, 33,214,140,121,180, 45,126,179,133,234, -253, 59,216,149, 60, 37, 85,115,176, 81,114,202,210,222,109, 65, 92, 11,180, 57, -106,186,217, 87,105,216,176,233,229, 71,226, 55, 39,131, 0,218, 65,128, 80,143, -215,179,212,218,109, 55,200, 5, 22, 77,138, 52, 14,182,228,185,238, 49, 38,147, - 59, 44,164, 55, 5,243, 62,148,184,182,165,123, 11, 25,209, 20, 30,169,141, 2, - 90,152,202,143, 84, 2, 22, 45,100, 27,107,106,246, 36, 87,169, 82, 79,249, 3, -137,110,190,128, 10,240, 22,188, 2,221,123,118,164,161, 42,208, 70, 28,122,233, -117,164, 84,136,156,242,104,127, 42,241,253, 18,132, 26,176,254, 9,154,195, 79, -201,155, 64,208,155,166,250,131, 9,172, 6, 67,136, 12,110, 28,228, 79, 41, 13, - 52, 1, +// ../Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase1.c: +uint8_t GB_JITpackage_81 [764] = { + 40,181, 47,253, 96, 78, 8,149, 23, 0,182, 99,107, 32,224, 90,117,160,231,236, +231,115,156,176, 66,181,246,104,133,192,205,131, 4,183, 68, 37,213,119,164, 94, + 3, 51, 12,193,188, 23,103, 0, 96, 0, 99, 0, 18, 77, 97,196,168,147, 45,111, +110,111,137,212,155,143, 99,247, 77,145, 56, 36, 8, 13,196, 33,113, 13,204,190, +217, 70, 81,201, 11,221, 87,165, 91,146,221,249,198,233, 46, 94,201,164, 39,197, + 97,114,248,246,137,131,137,150,146, 47,235,183, 90, 90, 20,189, 63,216, 99, 41, + 34, 87,246, 14, 4, 91, 90, 50, 63, 76, 89, 63,123,162,176, 61,105, 9,126,138, +149,169,162,246,243, 84,221,231, 81,110, 48, 96, 4,131, 33,191, 76, 58,119,211, +231,125,157, 9,229,191, 54, 24,208,241,193,253,218,179, 67,241,144,139,226,239, +183, 96,220,218,217,127,172,133,213,147,237,107,166,173,179,200, 43,151, 82,229, +253,101,123,219, 15,245,207, 50,188,120, 82,242,143,135, 10,133, 2,232, 97,229, +219,106, 28,105,223,174, 22,236, 80, 72, 16,184, 4, 82,179,187,227,228, 14,251, + 86, 30, 89, 8,108, 43,131,125, 33,120, 2,218, 35, 89,229, 68,170,137,157,248, +117,226, 42, 44, 47, 94,197,163,218,220, 61, 19, 73,198,242,153, 68, 68,247,226, +206,167,218,183,150,224,234,154, 36,223,118,132,251, 67,162, 8,186, 25, 57,246, +214,225, 16,200, 89,213, 36,210,190,153,104, 62, 21,151,235, 19,206,166,211,112, + 62,142,229,243,178,135, 29,176,220,231,173,124,174,229,203,147, 89,191,101, 75, +193,143,180, 65, 54,237, 49, 71,230, 5, 24,246,194, 44, 55,163,168,165,131, 65, +101,182,183,148,123,138,107,127,227,211,121,181,240, 16, 64,183,216, 15,238,247, +164,215,126,157,217,153, 20,172, 60,162,192, 63, 4,130,143, 42,127,143,123,230, +185, 31, 14,106,131, 65,118,200,195, 95,203,182,242,232,150,201, 18,100,209,195, +254,106, 60, 41,159, 84,251,210,218,228,201,247, 91,237, 11,134, 61,170,172,189, +131, 60,128,135,168,129,173, 83, 68,164, 68, 70, 10, 11, 74, 10, 25, 14, 48,134, +144, 82, 85,212, 3,194,105,154, 36, 33,158,114, 2, 34, 48, 88, 64, 51, 50,202, +191,138,117, 12,148, 4, 2,230, 31,202,172,121, 77, 19, 56, 50,123, 80, 65,218, + 14,227,159,117, 23,113,170, 29, 2, 25,232,171,176,225,182, 5, 24, 50, 1, 6, + 66,243,113,232,166,186,197,147,120, 56, 37,128,124, 1,215,222,121,102,203, 92, + 48,163,102,187,173, 56, 43,213, 93,230, 56, 53,235, 17, 23,102, 66,208, 26, 13, +236, 2,124,128, 52,225, 33,155, 37,196, 63, 37, 38, 53,108,131,136, 84,235,180, +200,179,118,232, 23,184,213,168,138,169,243,136,221,165, 4,233,136, 65,250,168, + 36, 28,161,160,195,134, 5, 29,195,114, 61, 20,216, 36,185,244,204,211,245,101, + 21,219, 15, 8,254,200, 10,170,229, 36, 19,159,145,176,251, 84,133, 88, 43,178, + 35,106, 93,235,225, 1, 17, 5,204,171,163, 72, 50,148,158, 4, 15, 26,252,242, + 85,160,226,221, 21,235,169,254,206,251,169,227,220,197, 38,196,211,223,132, 46, + 87,236,190,158,171, 46, 21, 5,145,168,114,133,143, 24, 82,219,190,232,146, 30, + 52,118, 99, 42,169,149,130, 64,175,249,255,150,225, 31, 8, 55,224, 61,175,194, +182,149,145,104, 21, 33,166,197,185,117, 22,215,138, 34, 43, 97, 59,237,108, 46, +238,108,106,211, 28,255, 96, 82,212, 45,246, 25, 16,184,103,240,176,126, 33, 76, +168, 58,192, 24, } ; -// ../Source/Template/GB_emult_03_template.c: -uint8_t GB_JITpackage_98 [813] = { - 40,181, 47,253, 96,114, 11, 29, 25, 0,230,162,108, 33,240, 88, 55,172, 23,242, -240,156, 43, 19, 73,155,178,241,156,116, 67,186,162, 1, 77,125, 13,140, 94,128, - 82,100, 19, 65, 19, 26, 2, 99, 0, 94, 0,101, 0,174,247, 88,186, 32, 39, 73, -234, 24, 99,145, 88,100, 15, 69, 98,225,133,144,224,152,190, 40,107,113,141,250, -106,220,102,121, 61,199, 58,202,169,227,105, 51, 38,210,253,190,167,238,202,127, -174, 70,196,235,108, 79, 93,157,132,173,147,228, 73, 68,156,182,220, 23,116,125, -157, 58,254, 49,229,213,160, 81,167,248,230,145,223,150, 60,203,223, 31, 35,241, -109,242, 84,254, 87, 49,142, 64, 92, 25, 2, 17,121,235,207, 6,223, 95,195,177, -241,245,173,177, 25,110,213, 49,234,251, 75,238,238,126, 93,172,235,210, 48,215, -184,108, 58,166, 63,159, 38,109, 75, 55, 59,238, 90,117,109,253,243,105,135,167, -188,181,175,246,253,210,106,255,113,251,184,111,202,177,237, 74,104,139,236,199, -208,158,212, 35,249,175,120, 55,126, 82, 38,123,141, 63,188,156, 76,100,249,104, -164, 71,229,215, 15, 10,143,205,194, 96, 64, 0, 20, 54,130,123,160, 75,215, 81, -143, 19,226, 46,159,120, 73,184, 86, 9,105,154,224,107,242,107,245,116,153,143, -154,250,126,212, 31, 95,206,165, 3,186,108, 62, 47,163, 17,159, 36, 94,193,194, - 13,217,110,125,106,147,182, 27, 31, 44,105, 42,225,251,153,254,251,240,146,186, -126, 91,231, 43,154,192, 74, 70, 65, 10,145,224, 39, 81,247,142,163,196,207, 74, - 86,157,226,103,245, 29,222,215,213,114,247, 2, 37,120,197, 20, 56,156, 80,199, - 41, 20,231, 8, 46,222,240,179,117,202,129,173, 64,168,217,128, 63,233, 68,134, -248, 51, 70, 57, 47, 83, 63,150,167, 83,225, 4,147,141,178,121, 91, 8,228,117, - 31,206,179,125,155,142,114,103,105,134,159, 73, 91,238,222,243,220,182,109,171, -181, 86, 85,129,160,186,124, 70,222,184, 77,236,251, 4, 58,230, 15, 58,182,161, - 87,207,166, 83, 23, 77, 15,128,162,160,113, 73,154,154, 9, 50, 74,146,146, 74, -134, 3, 96, 68,132,140,110,117, 33, 9,167,151, 96, 42,137, 38,111, 64,206,102, -218,241, 22,112, 64,157, 45,247,104,188, 12,246,168,131,224,195,239, 40,155, 48, - 20, 56, 68, 13, 56, 6,119,108, 60,234, 18, 33, 85,133,230, 12,130,161,149,109, -236, 65,141, 8, 64,136,148, 14,208, 20, 14,147, 17,203, 66,158, 29,148,139, 17, -224,186,209, 67, 22, 34,134,219,135,198, 57,186, 83, 42,214,167,228, 73,144,117, -185, 71,184, 10, 63,217,200,153, 65,212,121,205,160, 95,108, 96,135,219,132,198, -181, 13,102,204,222,225, 35, 16, 47,240,109,184,160,101, 80, 16,210,196,142, 35, -111, 25,149,134,140,246, 50, 88,131,152, 0,231,144,209, 7, 60, 39, 46,208,128, -134,115,137, 16, 50,149, 81, 65,150, 77, 8,226, 5,208,152,221,139, 17, 18,185, -185, 39,102, 52,176,112,107,200,128,240, 32, 46,137,135, 49, 95,188, 71,139,111, - 4,138,216, 12, 34, 64, 3,227,142, 14,171, 39,233,230,224,121,120,220, 51,157, -211,201,117,123, 5,224,168,161, 26,140,145,153, 61, 40,202, 8,142,108,172,241, -160, 83, 76,109,152,248,238,193,209, 1, 53,120,249, 77,151, 66,193, 60, 39,186, - 98, 9, 59, 96, 2, 77, 34,208, 23,173,206, 45,207,214, 9, 15,125,244, 0,252, -155, 8,188,193, 24, 76,128, 63,168,111,205, 70,176,253,101,232,184,176,100,171, -226, 30,176,125, 53, 98, 0, 96,148,179, 55,215,136,198,106, 74, 93,253, 57,204, -111,149,182, 94, 22,120,240, 11, 84,226,144,230, 91,189,105, 98,254, 96,242, 86, -213,229, 40,129,235,162, 33,234,248, 85, 41, 10,242, +// ../Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase5.c: +uint8_t GB_JITpackage_82 [930] = { + 40,181, 47,253, 96,118, 17,197, 28, 0,102,231,120, 32,208, 92, 23, 3, 12, 34, +210, 48,115, 79,189,251,237,101,102, 38,131,210,156,195, 50,233, 64, 81,118, 90, +228,106, 6,188,120,130,115, 0,108, 0,110, 0,120,231, 59,106, 14, 87,231, 43, +226,205,129,116,241, 32,198,235, 74,175,190,159,235, 93,166,240,231,171,149,119, + 67,131,161, 96, 28, 34, 11, 5,227,156, 56,184, 65, 99,151,189, 28,225, 61, 86, +238,147,133, 67, 55,128,188,141,165, 68,109,138,145,160,160,187,113, 11,180,153, +218,178,126,230, 27,242,169, 93,118,255, 34, 78, 47,171,149, 47,121, 92,109, 75, +180,114,206, 92,117, 11,115,117,106, 79,177, 54, 98, 40,204,234,106,129,121,213, +130,121, 34,177, 29, 18,137,175, 95,109,197,175, 44, 22, 47,170,187,171,170,165, +134, 64, 76,108,163,172,123,142, 63,247,205,244,124,253,204,255,187,223, 86,198, + 59,159,226, 57,197, 41,131,147,135,159, 22, 5, 89, 86,137,221, 79,166,105, 58, +250,125,168,229, 99,182,231, 84, 6,201,224,251,190,169,127,219,102, 92,161, 96, + 87,147,238, 91,167,152, 52, 79,185,105,126, 87, 7,100,103, 60,120,122,146,255, +191,205, 54, 5,130,113,184,165,104, 81,239,146,244, 98, 50,132, 67, 22, 87,175, + 46, 24,118, 42, 72, 83, 75, 97, 88, 67, 48, 51,170,177,116,231,251,187, 74,101, +172,111,175,109,105,249, 77, 77,206,228,184,244,162,177,242, 52,218,117,213,184, +122,131, 11, 4, 95,160, 82,203, 34,241,152,111,237, 63,193, 59,229,171, 32, 40, + 4, 47, 21, 12,137, 60,156,206,135,200, 55,245, 91,238,241,234,214,247,153, 53, + 46, 67,255,246,217,199,229,187,114,137,159,230, 3,134,228, 29, 51,137, 3,227, + 53,254,247,124,203,219, 86,251, 37,252,116, 64,221,113,161,240,161,166,227,239, +220, 25, 63,189,229,182,131,205,198,171, 31, 48, 19,242, 10,222,197, 35, 42,212, + 54, 44,211,157,219, 63, 24,210,124, 70,149,148,233, 78, 56,254,140, 2,248, 9, +155, 78,102, 8,148,239,141,136,131,177,137,189, 73,247,157,218,173, 43,229, 30, + 74, 65,105,124, 20,155,166, 53,171,119,242,188,121,216, 29, 51, 38,129,151,208, +156, 61, 91,113,204,183, 78,110, 65,223,253,177,244,186, 42, 1,128,178,168,129, +169, 82, 12,201,200, 40, 72, 65,146,210,112, 64,132,144,161,170, 42, 15, 18,121, + 36, 78, 50, 28,130, 51, 74, 96, 5, 68,128,200, 9,136,226, 36,146, 60, 18,170, + 26, 3, 25, 44, 38,217, 27,147,118,174,134,214,178, 14, 98, 36, 47,253,198, 68, + 98, 50, 55, 37,216,101,181, 69,166,213, 19,176, 66,177, 55, 37, 96, 82, 99,146, +171, 94,109, 94, 0, 22,163, 80,162,194, 41, 77, 89,220, 3,225,133, 58,217,201, + 62, 54,129,177,160, 84, 81, 48, 65, 99,185,247, 84,188, 1,103, 40,166,132,157, +182,240,145, 9,124, 83,105, 89, 83, 48,131,153,202, 8,143,252,158,110, 76, 42, + 77,224, 83,176, 47, 13, 57, 16, 58,173,165,206, 12, 75,240,128, 67,193, 34, 23, + 10,237,209, 56, 64,168, 55,228,164,118, 83, 70, 33, 48,143, 14,130,180, 16, 72, +253, 97,230,228,146,235, 70,162, 91,115,245, 56, 43, 90,187, 92,118,239,227, 72, +194,161, 40,193, 40, 81,108, 0, 88,196,151,212, 18,129,235, 14, 33, 74,117, 78, +155,186,187,162,182, 68, 9,117, 18, 29, 67, 54,154, 81, 37, 48, 84, 29, 38,109, +149,181, 58, 37,182,119,252,106,185,205, 30,214, 40,148,216,115, 82,244, 27,255, +150, 36,231,171, 48,250, 13,198,248,145,198, 4,246,154,108,162,211,131,251,232, +163, 78,110,210,232, 66, 84,168,226,118, 43,183, 53, 38,210,241,165, 78,255, 31, +116, 10, 3, 1, 40, 92, 95,148, 56, 55, 45, 90,229,158,169, 26,244, 73,122, 10, + 85,207, 29,141,189,131,197,222,182,102,176, 64, 16,100,179, 30, 24, 11,145, 55, +139, 61,157,116, 74,123,144, 90,180,252, 99,244, 91,220, 18,134,171,160,208,141, + 43, 15,232, 19,136,157, 59, 41, 96, 51, 42,252,230, 57, 93,120, 81, 77, 69,126, + 28, 2,199,144, 5, 24, 85, 73,251, 90,148,220,171, 20,151,202,100, 1,216,201, + 26, 21,245, 72,184, 67, 36,252,131,230,247, 15, 38,173,222,186,158, 59,129,119, +126,139,239, 12, 1,175,106, 5,136, 1, } ; -// ../Source/Template/GB_emult_03a.c: -uint8_t GB_JITpackage_99 [724] = { - 40,181, 47,253, 96,167, 6, 85, 22, 0, 22,229,112, 40,208,208, 88, 7, 52,156, - 65,253,142, 54,163,159, 33,135, 69, 99,186, 29, 2, 37,103,215,112,170, 39,133, - 38,102,158,108,158, 3,250,131, 43, 60,210, 65,252, 2,104, 0, 97, 0,100, 0, - 10, 15,182,147,173,198, 60, 36, 42,153,233,226,139,202,150, 29,110,111,102,209, - 14,215,180,119, 71, 32,137, 72, 30, 7, 3, 17,201, 37, 43,186,179,125, 33, 43, -159,222, 63,217,237,108,253,112,167,121, 24,152, 81, 89, 47, 19, 13,223,246,104, -160,202,244,147, 65,216, 86, 73, 45,252, 53,229,169,220,110, 87,220,246,223, 39, -103, 24,135, 2,211, 59,245,234, 19, 73, 16,137, 87,243,108, 28,225,229, 16, 8, -244,128, 64, 2, 17, 70,246,146, 92,179, 27, 55,207,124,237, 96,215, 88,211,100, -149,244,116,235, 92,110, 22,178,210, 0,202,175,190,191,179,185, 82,213, 39,146, -140, 8,174, 78,118,121,225,255, 15, 65, 26, 16, 52,185, 59,217,114,165, 28, 43, -183,119, 24,254, 9,222,202,115,245, 92,203, 83,175,253,231, 54,111,210,158,179, -251,236, 54,198, 93, 5, 69, 38,201,131, 51, 75,210,247, 73,229,198,250, 78,190, - 2,180,186,163,135,156,115,174,162,119,215,228, 8,233, 29,164,209,171, 76,172, - 48,188,248, 50,241,193,114,137,240, 50, 89,187,184,192, 55, 85, 94, 27, 31,165, - 92,226,220,101, 48, 58,140, 9,240,114,234, 27,132,115, 78, 57,245, 95, 43, 53, -202, 41, 38,206, 86,107, 22, 70,234,215,214,198, 56,191,177,192, 64,195,225,176, - 71,160, 60,114, 42,146, 6,156,213,155,156,159, 43, 98,205,115,113,102,217, 75, - 51, 16,180, 1,109, 56, 28, 21,214,215,228,128,187,206,168,162,103, 26, 44, 26, -133, 8, 11,132, 21, 29,219,241,221, 61,122,151,241,238, 54, 45,163, 63,139,195, -195, 84,150, 74,124,192, 64, 44, 88, 98,131, 70, 1,227,107, 98, 29, 64,157,162, -170,224, 5,166,119,234,210,198,117,196,158,217,119,118,172, 75, 20,143, 78,188, -226, 1, 68,199,250, 14,234,144, 78,188,225,169,247, 17, 14,233, 41,175, 6, 28, - 78,162,153, 24,109,160,145,169, 82, 68,134,100, 68,130,180, 32, 37, 73, 7, 32, -134, 24,196,236,186, 1, 25, 1,165,177,241,187,214, 74, 30,161,255,130,219, 10, - 10,108,147, 6,228,210,112,101, 19, 4, 2, 97, 80, 0,103, 0, 14,216, 50,120, -193,201,129,134,141, 34,180,101, 76, 70,228,147,211,132, 59,120,244,127,162, 88, -230, 78,217,131, 71,121,158, 70, 90, 35, 51,241, 87,138,101,135, 5,123, 42,132, -111,212,121, 52, 73,217,197,108, 22, 87,216,144, 89,103,154, 5,255, 65,161,225, - 36,224,191, 2,197,204,176,243,194, 75,211,202, 99,195, 86,208,136, 22,253,250, - 55,203,158, 86,169, 87,149, 1,216,153, 50,160,133,229, 1,213,110,104,202,210, -175,127,105, 17, 31,246,141,146,208, 56, 32,183, 16,197,189, 90,234,218,231,184, -122,221,170,212,195,184,193, 78,230, 31,152,101,141,220,176, 9, 3,151, 7,224, -143,165,244,188,197,220,183,150,145,229,195,227,126, 36, 87,185,188, 5,209, 76, - 33,142,161, 24,129, 66, 38, 36,116,104, 34,169, 66, 98,154,204,233,248,217,148, - 24,165,249, 54,111,154, 24, 42,152,108, 85,141, 96, 33, 8,188, 82,120,198,132, - 85, 21, 5,119, +// ../Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase1.c: +uint8_t GB_JITpackage_83 [789] = { + 40,181, 47,253, 96,149, 8, 93, 24, 0, 6,228,109, 34,208,152,205, 1,192,153, + 59,213,232, 77,168,100,135, 83,136, 96,106,211,224, 67, 42, 72, 24,160, 62,212, +252, 5,190,120,144,165,230, 5,103, 0, 96, 0, 99, 0,144, 75,246,105,210,217, +184, 49,199,121, 4, 85,204,203,146, 59,134, 56,104, 7,194,194,160, 29, 46, 8, +175, 99,184,146, 40,228, 25,247,211,152,175,168,102,142,125, 92,165, 27, 77,122, + 74, 24,230,215,185,142, 62,203, 3,124,204,181,116,204, 94, 76,162,249, 15,107, +121, 61,162, 19, 62,195,208,152,142, 38,232,229,107, 65, 60,146, 52, 62,233, 13, + 65,196,201, 52, 81, 12,118, 38, 14,236, 36, 47, 20, 44, 66,161, 16,138,108,235, +101,187, 61,199,116,252, 88,106, 24,124,250,188, 22, 84, 47, 62,102,112, 56, 50, +219,141,159,251,244,124,237,113,253,227,152,230, 16,132,176,122,121,103,252,175, + 86, 38,222,255,188,226,201,147,138,222,120, 39,203, 50,206,197,201,177, 83, 89, +210,154,171,165,188, 80,248,127, 43,101,105,217,129,208, 99, 72, 77,238,140,179, +171, 88,179,237, 15,133,208,216,118, 88, 43, 4, 77, 61,230,223,108,235,115,253, +217, 57,211, 16,123, 98,253,216,222,222, 35, 91,179,189,225, 5, 26,202,134, 60, +130, 99, 34,151,205, 68,165,122,228,195,112,151, 15,252, 40, 96,119, 93,172,129, + 83, 54, 69,109,123, 44,189, 49, 13, 95,210, 26,182,137,111,109,215, 58, 36,201, +185,249, 96, 92,221,115,131,182,135,192, 14,204, 68, 36,255, 5,131, 1, 45, 27, +219, 51, 62,171, 72,222,113,146,124, 6, 19, 1,150,181,194, 93, 87,167, 51,219, +126,169,237,233, 96,128, 65,180, 20,183,167, 52,239, 88,143,206, 92, 47,174,222, +212, 31, 91,201,202, 53,182,115, 38,103,146, 28, 9,114,164,120, 79,110,215, 68, + 32, 22, 10, 24, 34,109,227,157,249,237,225,227,182, 30,101,237,179, 29,221,112, + 19,143, 29,203, 39,205, 24,244,204, 11, 19,201,100,184,199,183,221,112, 77,124, +198,135, 59, 6, 94,135,212,196,228,121, 75, 1,128,144,168,161, 37, 99,102,130, + 18,145,130, 20,164,160,146, 14, 48,132, 16,132,172,140, 7, 2,209, 40,132,114, + 88,196,140, 17, 12, 54,129, 4, 9, 10, 74,202,127, 61,128,208,208, 68, 39, 91, +137, 23, 60,166, 50,236, 18,144,169,202, 20, 25, 37,236, 35,100,229,202,238, 5, +249, 6,134, 21,150, 5,191,127, 16,153,131,150,224,207, 40, 73,225, 13, 44,226, + 67, 38, 24,247,123,108,252,205,177,176,169,163, 65, 57, 30, 29,193,181,206,173, + 23,117, 84, 47,109,147, 81,210, 72,151,184,104,202, 66, 63,194,103,147,228,120, + 36,153,139,100,126, 38, 23, 94,179,127, 16,166, 72, 38,199,167,238, 34, 39,139, +248, 67,200,222, 24, 9, 65, 42, 52, 26, 99, 8,170,138,133, 19,230,123,226,117, +171, 80, 57,212,169,165,227, 81, 98,254, 8,156,132,242, 12, 55,254, 83,163,181, +178,100,228,190, 31, 7,164,246,174,160,168,218,126,217,221,104,145,150,163, 57, + 67,189, 98,146, 7, 85,169, 34, 24,139,255, 96, 67,128,175,230,207, 26,189,166, +179,169,120,107,160, 61,149,244,225, 72,141,154, 40,168, 2,121,100, 86, 99,229, + 3,240, 32,108,243, 64,145, 90, 80,196,243,170, 64,166,102,124, 65,151,187, 28, +185,147, 57,210,169, 17,154, 88,236,194,162,140,138, 8,196,220, 66,255,216,233, +195,107, 54,111,227,117,223, 22,186,190, 11,236,176,127,204,147,242,134, 28,245, + 7, 21, 23, 30, 56,104,253,127,208,196,169, 96, 90,234,150,129, 46, 1,254,121, + 70, 46,123, 50, 48,169, 58,174, 19, } ; -// ../Source/Template/GB_emult_03b.c: -uint8_t GB_JITpackage_100 [679] = { - 40,181, 47,253, 96, 36, 6,237, 20, 0,150, 34,105, 33,240, 88, 23, 3,172, 29, -137,101,120, 11,237, 84,153, 57, 97, 41,208, 20, 2,110,157,229, 84, 90, 15, 58, -128, 5,158,129,148,129,135, 98, 0, 92, 0, 95, 0,148,129,231,129,201, 62,107, -202, 86,219,204,245, 14, 69, 55,115, 81,228, 62, 17,135,194, 97,176, 48, 20, 14, -199,188,235, 83, 95, 83,125, 60,227,158, 10,119,105,188,155, 79, 13, 71,161, 33, -174, 57,194,208,216,125, 75,141,149, 45, 78,133, 4,171,115,197,154,254, 35,235, - 69,177, 4,175,239,185,147, 54, 60,157, 6, 50,238,219, 29,103,132, 16,133,110, -139,229,104, 59, 26, 57,129, 96, 13, 8,132, 23,173, 40,214, 92,241,241, 88,122, - 29, 69, 53, 99,128,246,239,238,111,242,218,188, 57,206,192, 66, 23,226, 43,133, -219, 86,254,255,150,165,178,172,108,110,210,106,155, 49, 73,215,241, 37,203,159, -209,235,122,155,203,237,149,121,235,167,246,181, 99,213,183,225,126,184,239,233, -211, 97, 21,178,195,192,134, 94,197,220, 25,217, 94,240,110,210,126,147,129,213, -164,245,110,159, 20, 95,231, 48,221, 6, 18,233,104,132,180,162,233,129,143,114, -221,186,227,176,118,140,244, 25,210,235,180,147,208,200,183,143, 26, 39, 93,251, -246,111, 93, 69,237,160,207,173,119, 69, 77,187,237, 91,231, 11,146,190,187,132, - 66, 37, 16,232, 55,180, 23,190, 93,152, 97,122,119,172,100,234,187,172, 88,126, - 54,244,244, 49,178,163,151,254,170,205,225,238,198,146,124, 46,129, 1,150,181, -178, 86,224,253, 72, 11,248,188,142,235,152, 11, 68, 51,233, 64, 40, 13, 93,167, - 37,125, 59, 14,127,162,184,207,209,173,215, 57, 72,134,163, 56, 32,143,110, 67, -225, 84, 32,221, 69, 51, 33,193, 11,248, 44,121, 65,251, 61, 37,214,111,218,239, - 5,219, 41,254,252,210,111,191,244,129,140,251,118,108, 52,239,245,198, 41,190, -118,131, 96, 98, 24, 51,231,156, 31,105, 59,138, 3,104,160,145,165, 66, 72,134, -132, 38, 73, 10,146, 66, 26, 3, 48, 68,128, 16,187,243,233,128,206,182,180,131, -160,120,130, 13,132, 34, 66,203, 64,248, 13,224,226,195,216, 0,194,180,176, 44, -119,225, 35, 48, 62, 14,102, 19,108,134,116, 40,101,192, 6,235, 1, 52,125, 99, - 64,133, 73, 92,153,186, 90,225,239, 74,222, 22,213,219,167,112,127, 12, 21,190, -230,105,184,197,253,156, 48, 60,115, 9, 57, 14,133, 2,226, 33,144, 61,104,211, - 2,133, 38, 51,244,140,115,253, 27, 44,111,161,161,152,106,228,211, 8, 45, 49, -192, 71,195, 37, 50, 90, 64, 22,162, 32,109, 55, 52,101,233,215, 95,218,136, 15, -251, 70, 41, 20, 28,128, 92,104,113, 89, 45,227,154,231,104,224,154,213, 82,143, -113, 3,147,101,143, 72,166, 54,174,177,169,129, 73, 67,241, 99, 41,115,222,182, -183,173,101,190,124,120,156,138,100,133,235,167, 12, 84, 74, 36,188,144,232, 65, -197, 21,233, 4,250, 71, 84,199,173, 76,194, 30,188, 45,149, 26,160, 97,155, 55, -205,204, 31, 76,182,170, 66,160, 28, 4, 62, 33, 74, 15, 92,149,162,151, 9, +// ../Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase5.c: +uint8_t GB_JITpackage_84 [979] = { + 40,181, 47,253, 96,232, 16, 77, 30, 0,166,230,119, 33,208,154,233, 64, 7,238, + 70,126, 9,199, 65, 35,252, 58,136, 18,211,129,143,110, 23, 0,144,205,173,250, +131, 43, 60,233, 32,126, 1,114, 0,104, 0,111, 0, 54,223, 46, 47,132,198,183, + 73,139, 33,128, 40,155, 66,217,169,181,113,115,142,243, 73,178,156,155, 76,221, + 55, 69,226,144, 32, 56, 16,135,196, 5,100,246, 13,219,212, 72,121,161, 59,235, +204,233,201,134,223, 58, 29,102,114,170,227, 90,121,168,157,206, 22,213,193,190, +221, 20,167,198,252,111,147, 65,199, 73, 64, 64,196,251,131,209,120, 60, 85, 17, +204,233, 21, 49,170,210,120, 29, 83, 82, 84,176,212,213,136,197,201,170, 19, 39, +149, 27, 12, 24,193, 96, 8,104,232,170,231,169,199, 92, 2, 77, 27, 77, 17,200, + 51, 94,173,137,158, 59,138, 62,139,139, 70,190, 54,251,154,154,183,123,244,242, +142, 8,173,236, 53,189, 36,155,226,111, 8,142, 43,220,110,252,220,172,231,244, +122,223, 14,156,160,180,217, 12,252,227,255,209, 53,114,145, 13,221,180, 60, 64, +192,177,253,233,125,230, 55,121,109,103, 67,241,152,255,255,199, 48, 23,118, 40, + 36, 8,125,146,163,218,253,177,182, 53, 3,106,198,249,194,176,243, 58, 88,147, +163,138,209, 53, 85,165,107,231, 60,146, 24, 59, 34,113, 78, 3, 65,211,150,183, + 95,131,238,156, 39,126,157,204, 71, 17,191,208,179, 1, 53,222, 73,187,246,109, + 82,217, 24,133,237, 25, 98,119,149,143,204, 19,220, 54,165, 72,239,194,249, 50, +102,151,215,180,129, 71, 54,121,110, 82, 73,156,136,225, 87, 73,203,167,249,164, +107, 79,200, 27,117,109,190, 41,121,193,225, 92,118,147,112, 81,235,150, 72,200, + 69,104, 24,246,162,100, 56,154,206, 85, 59,143,189,146, 86,211, 60, 53,116,235, + 97,107,159,121, 36,101, 24, 76,103, 9, 59,173,163,108, 60, 26,215,216,212,175, +252, 21,228,130,252,127,225,133,243, 17, 65,150, 65,198,120, 64, 60,126,112,206, +222,197,221, 60,109,214, 89,212,118, 17,200,185,119, 42, 55, 66, 71,180, 67,197, + 14, 53,211,163,144,131, 62, 74,230, 34,150,208,251,200, 39,234, 33,199,103,173, +157,194, 36,131, 55, 16,130,237, 91, 94, 69, 48,128,211,168,113,177, 98,106,134, + 36, 41, 40, 40,168, 20,134, 3, 64,132,144,169,170,162, 7, 2,113, 36,138,147, + 12,131, 20, 48, 99, 28, 18,140, 80, 80, 49,146, 87, 20,164,202,112,153, 5, 40, +203,128,114,252, 50, 65, 6, 91,194, 80,132,212,128, 82,125,169, 36,106,127, 7, +172, 71,116,234,141, 84,220,186,177,149,244,141, 7,183, 67,171,180,153,168, 28, + 65,138, 96, 41,183, 12,165, 43,133,188,209,123,179, 10,117, 21, 30, 80,222, 45, +148,168,246, 29, 37, 38, 36, 53, 9,136, 90,245,254,255,105,194,153,107, 2,209, +198, 30,114,169,164, 7,178,123, 4,122, 21,181, 3,197, 59,185, 35, 73,145, 20, + 6, 98,231,148, 93,234,103,229, 37, 19,144,160, 32, 24, 16, 74,128,196, 53,164, +109, 70,134,106,133, 54, 23, 90, 74,135, 80, 52, 34, 52,202, 87,213,239,161, 51, +206, 2, 91,199,100,139, 66,150, 1,155, 18,162,108,115, 44,207,113,180, 27,125, + 47,246, 60,164,157, 81,183,145,148, 85,241, 46,245,194,114,213,213, 4, 5,144, + 61, 71, 8, 41,249,212,233,255,189,177,124, 3, 69, 24, 18, 42, 98, 76,191, 12, + 28, 52, 4,159,117, 81, 47, 52, 26, 17, 30, 25, 65, 12,161,141,173, 6,251,126, +104,122, 43,120,231,246,194, 71, 41,100,119,161,193,185, 39,238,132, 95, 12,180, +129,182, 60, 93,194,100, 21,235,224, 16,234, 34,175,169,174,181,225,129,168,139, +223,148,249, 9, 36, 13, 12, 7,231, 19,176,244, 28, 67,182, 6,254,178,231,241, +103, 8, 86, 14, 76, 85,104, 97, 10,137, 81,103, 31,109,177,150, 78, 75, 95,113, +220,199,214, 48,192, 25, 99,120, 57, 15,235,211,209, 55,157,126,229, 39, 59,160, +132, 93,176,234,222,114,109,156,222, 21,119, 10, 89,171,221,230,216, 1, 95,197, +240, 47, 49,220, 15,252,170, 85,155, 69,230, 35, 61, 28,209, 18,160,109,196,208, +196,246,137, 98, 36, 54, 49,178, 4, 21,238,130, 63, 59,243, 6,157, 11,109,247, +140,160,106, 51, 96, 30,243,223,245,241,187,243,244, 37, 7,156, 34,123, 64, 1, +211, 19,234,232,222, 48,155,129, 77, 51, 40,166,149, 28, 29,209,160, 89,250,131, +137, 43,155, 77,168, 99, 7,213, 53,194,223, 20, 9,149,198,170,104, 32, 6, } ; -// ../Source/Template/GB_emult_03c.c: -uint8_t GB_JITpackage_101 [861] = { - 40,181, 47,253, 96,255, 7,157, 26, 0, 38,232,123, 41,208,208, 58, 7,120,178, - 4,205, 2, 45,226, 44, 44,155,229,232, 14,231, 70, 87,231, 25,185,241, 88,158, - 91, 64,159,226, 22,110,154,246, 1, 95, 60, 48, 75, 47, 1,114, 0,109, 0,111, - 0,146,198, 95,103,150, 35,137,200,116, 38, 90,103,220,198,237,112,156, 57, 11, -235,240,174,147,143, 3,150,138, 69, 98, 32, 80,177,156,202,166, 71,108, 51,106, -230, 19,249, 17,151, 65,207,126, 30, 61,146, 51,185,176,222,205,197,211,217,134, - 60,210,237,112,196, 81, 26,223, 26,226, 99,251,217,117,161,141, 18, 86, 47, 91, -208,251,214,203,107, 95, 61,246,175, 57,141, 79,200, 68, 90, 8,216, 3,115,253, -146, 13, 84,104,238, 66, 94,211,185, 57,133, 34, 73, 40,148,249, 21,130, 36,123, -207,180, 55, 44,166, 68,212, 52,253,114, 14,231,129,225, 9,167, 40, 6,174,216, - 36,210,116, 36, 62, 20,171, 14, 66,144, 96,183, 14,194,158, 51,123, 51,238, 11, -249, 51, 61,200,159,125,198, 31,152, 85,213,128, 6,114,185,177,255,191, 36,113, - 72,210, 36,202,127,130,205,227,250,190,161,156,133,110,198, 31,101,219, 94,197, -111, 46,159,203, 86,227,241,146, 42, 19,139,164,185,172,134,242,151,219,118,179, -249,107,109, 33,218,215,116,134,143, 51,156,126,117,104,134, 65, 82,217,161, 31, -205,230,235, 46,227,144, 95,220,154, 49,149, 97,117, 10,227,145,155,211, 39, 85, -176,126,129,169, 94,187,234, 20, 19,239,204,118,120, 82,235, 25, 95,187, 97, 60, - 83,130, 2,142, 72, 4, 31, 83,189,114,107,162, 4, 98,102,189,250,141,180,169, -187,144,214, 92,134, 79,125,116, 78, 88,171,125,185, 76,189,208,247, 11,110,239, -186,235,234,173,225, 67, 15,124,245, 44,234, 13, 31,154, 13,146,212, 33,117, 68, - 34,215,102, 31,143, 86,116, 77,239, 52,104, 60, 11, 16,154, 57, 65, 32,182, 84, -202, 71, 91, 53, 14,146,115,105, 50,244,195,121,192, 52,180,193,179,176,181,246, -109,246, 97,157,226,186,230, 33, 19,121, 43,218, 41,123, 5, 21, 69, 31,143,188, - 2, 2,142, 77,183,222, 59, 16, 4,117,232,179, 57,130,228,116, 73,231,220, 0, - 76,223,236, 35,214,103, 56,113, 59,111,221, 30,243,234,151, 64, 36, 82, 97,135, -134,215, 99,120, 41,198, 24,175,128,156,168, 97,177, 99,102, 68, 70, 68, 65, 82, -144,130, 66, 58, 48,132, 24, 99,236,234, 1,226, 97,170, 71, 17,195,140, 50, 2, - 40, 16, 27,153, 9, 75,146,250,199, 3,153, 66,185, 16,137, 57, 41,139, 38, 21, - 64, 15, 66, 66,133, 10,110,110, 90,146,156, 28,231,251,215,120,220,209, 64,111, -222,214,246, 57,228, 22, 40,195,194,151, 78,230, 20,222, 25,207,190,110,136,162, - 43,161, 5, 72,159,130, 77, 51,243, 80,150,144, 68, 55, 91,206, 49,138, 98,254, -104,136,170,240,223,228,179,108,156, 89,146,230, 74, 27,250, 24,145,104,209,249, -243,117,133,141,159,129,147,254, 17,158, 53, 67,222,218,207, 86,202, 80,131,149, -180,194, 5,116, 26, 71,194, 46,240,179,186,163, 32, 51,221,113,145, 6,248,215, -165,228,147, 93,159,126,170,209, 97,115, 9, 89,187,120, 29,237,203, 86, 1,165, -254,159,179, 16, 67,128,170, 88,216, 46,209,203, 98, 45,141, 71,124, 44,141,101, - 54,103,161, 5, 4,246,153, 30,247,163,128, 13,231, 20, 0, 29,228, 30,202,127, -113, 22,230,229, 54, 95,142,126,197,199, 73, 43,226, 86, 68,186, 7, 35, 25,229, -254,161,168,153, 49,191, 86,233,223,144,239,111,101,228,125,120,240,247, 8,228, -193,196,127, 18,224, 1,250,198,182,108,169,135, 41,243, 92, 25,137,210,238, 63, -210,142, 8,238, 16, 91, 44,213,208,123, 74, 53, 26,241, 13,169,239, 32, 66, 15, - 32, 37, 33,114, 26,141,148,246,186,105, 1, 88,208,226, 67, 43, 76,169, 5,154, - 16,201,166,233, 82,193,180, 42, 85,142,148, 66,240,209,104,202,140,167,170, 5, - 78, +// ../Source/Template/GB_AxB_saxpy3_coarseHash_M_phase1.c: +uint8_t GB_JITpackage_85 [973] = { + 40,181, 47,253, 96,248, 12, 29, 30, 0,214,106,129, 32,208, 92,117, 12, 66,236, +247, 27,111,159,131, 98,141, 5,189,134, 34,104,163, 71,153,181, 89, 13,186, 46, +163,212,195, 11,148, 18,124, 0,116, 0,121, 0,134, 38,195,138,126,135,164,109, + 71,155,111,139, 25, 67,227,219,161,229, 24, 72, 21,208, 65,108, 87,218,184, 67, +199,153, 84,217,208, 77,243,123,199, 88, 36, 22,134,135, 34,177, 56, 23,110,239, +176,117,213,202, 15,223, 99,100, 62, 89,118,244, 78,244,113, 38, 36, 90,211, 11, + 4, 21,117,182, 45, 17,160,115, 50,219,215, 59,241, 36,115,179, 78,254,161, 53, +207, 20, 43,134, 15, 81, 52,174, 36, 10,118, 64, 18, 87, 76,227,180,158, 33,200, +136,161,176,138,193, 9,236, 3, 39,151, 35, 16, 0, 3, 2, 17,215,110,169, 43, + 10,135,219,141,159, 59,246,124,222, 78, 1,249,199,119,246, 18,174,236, 32,219, +119,213,181,247,214, 16,191, 77, 75,190,142,211, 55,174,225,177, 37,243,104, 47, +118,122, 94,149, 61,229, 93, 66,194,173, 58,187,117,222,137,109,209, 86, 24,158, +183,117,200, 8, 56,140,227,197, 91,143, 50,221, 98, 46, 57,249,220,156,195,120, +254,233, 57,190, 76, 43,235,145,163, 14,135,131,233, 35,230, 93,204, 52,171,205, +246,102,142, 64,252, 63, 96, 6, 72, 28, 22, 1, 87, 60, 49, 62,227,197, 37, 5, +174,225,216,110,185,120,190, 16,200,234,116, 88, 81, 92,166,231,171,201,252, 51, + 95,251,108,159,118,206,157,209,138,183,189,119,235,218,124,207,240, 92, 66,118, + 87,169,135, 44,160, 18,134, 70,187, 69, 20,250, 64, 34, 80,148, 1, 39,219, 71, + 43,136,101,148,213,199,246,183,201,151, 89,109,216, 40,246,158,184,228,168,178, + 52, 29,165, 64,182,201,115,171,238,125, 5, 78,192,145,229, 82, 40, 84, 51,226, + 61,227,212,142,229, 37, 47,203,103,176,225,200, 1, 0, 64, 13,183, 77,243,237, + 55,153, 1, 99,115,156,216,102,138,213, 90,129, 95,224,131,193,185,239,219,182, +208,199,243, 81, 68, 53,239,133,194,237,198,199, 85, 85,205, 87,223, 99,219, 58, +199,219,119,221, 74, 51,231,121, 47,107,167,169,115,137,209, 59,130,112,237,237, +197, 19, 56,206,110, 63, 93,179,201,244,181, 99,139,101, 45,193,175, 28,207,151, +222, 73,150,138, 39, 3,174,202,207,196,219, 96,228, 19,244,222, 67,202,175,189, +236,222,231,219, 58, 67,140,232,195, 4,128,191,168,241, 25, 51, 36, 51,129,200, + 72, 10, 74, 82, 72, 7, 80,134,136, 80, 21,149, 7,194,248, 32, 4, 18,141, 69, +144,128, 10,148, 9, 38,144, 72, 40,144, 64, 36,144,236, 4,201, 14,144, 46, 64, +150,117, 96,137,228,232, 1, 81,232, 40, 16, 13, 0, 88,164, 71,233,140, 92, 36, + 86, 18,181,188,243,173, 27, 9, 84, 40,110, 69,189,171,114,187,134,154, 85, 8, +108,162,194,128,201,161,176, 91, 98,195, 10,119,183,161,237,214, 9, 71, 64,134, +161, 24,228, 45, 2, 83, 66,232, 20,116,135,234, 30, 16,187, 27, 36, 3,109, 46, +195, 28,243,200,203, 11,153,143,201,115,249, 70,120,227,133,133, 70, 49, 7, 97, +134,156, 1,151,213, 9, 25,106,134, 49,128,116, 47, 33, 95,197,135,219,239, 37, +140, 78,247, 30,135, 93,177,194,147, 89,216, 96,217,208,138, 75, 54,221, 21,132, +251, 74, 79,134,241,230,140,190, 81,230, 6, 54,153,171,162,221,185,111, 30,122, +173,222,201,166, 56,129,181,220, 30,122,251,112, 77,100, 72, 28,200,157,180,152, + 83,128, 65, 53,197,121, 93, 3, 33,139, 2,159, 32,155, 18, 26, 9,159,195, 82, +215, 39, 12,241, 92, 42,211,137,233,128,127,108, 40,219,144,137, 98,159, 62, 14, +229, 95,139, 59,149, 13, 97,151, 9,133, 22, 14,169,197,143, 53, 12,156,162, 2, + 93, 69,200,131, 32,104,164,132, 5,128,119, 67,218, 20,243,133,117,214,184,228, + 97,118,214,177, 53,252, 83,205, 62,172,145,190,164,193,248,178, 48,212, 99,112, +122, 60,241,115,243,168,228, 18,199,198, 4, 90,108, 11,157, 22, 56, 82,188, 7, +125,210,192, 91, 88,125, 63, 33, 54,202, 82,156, 3,113,156,224,128, 2, 77,155, +185, 80, 34,244,253, 39, 55,124,111,194, 12,123,248,204, 11, 21, 52,145,100, 13, + 88,222,185,174,236,151, 18, 43, 17, 44,239,237,172,185,124,132,193,239,149, 65, +225,123,222, 34,244,129,114,140, 17,141,245, 31, 52,125, 84, 48,197,138, 39, 31, + 79,139,123,220, 35,204, 48, 16, 14, 74,209, 5, 15, } ; -// ../Source/Template/GB_emult_04_template.c: -uint8_t GB_JITpackage_102 [1145] = { - 40,181, 47,253, 96, 64, 13,125, 35, 0,230, 48,149, 40,192,146,213, 49,170,170, - 18, 27, 13, 54,104, 34,139, 59,118,246, 95,163, 8,205, 93,232,226, 81, 78, 70, -141,153, 81,163,192,187,167,223, 85, 20, 4,217, 96, 6,139, 0,135, 0,141, 0, - 86,255,110,251,219,198, 27,135,250, 26,127, 74, 22,202,101,114,183,204,230,120, -204,119, 49, 8,239,238,106, 14,147,171,187,155,225,205,132, 66,211,161,104, 87, -227,187,250,122,174,247,134,129, 61,231, 56,130,139,229, 50, 57, 24,176, 92, 78, -101,211,161,198, 26, 86,243,142,109,123, 34,140, 29, 94,113, 35,183,108, 63, 6, -204,117, 55, 30, 93, 18,199,141, 64,149,108, 69, 27,127, 46,175,117,246,241,240, -187,185, 99,171, 92,253,217,172, 79, 15,101,132, 18,159, 81,160, 9,243,152,187, - 45,151, 69,119,215, 2, 75,221,220, 72,116,171,100,120,165, 34, 77, 42,149,115, - 78, 41,165,172,206, 65, 77, 28, 86,167, 2,219, 94,247, 61,250, 28,254,126,222, -217,236,242,159,247,120,144,231, 81, 2, 2, 19, 64,117,106, 78,199, 60,214,117, - 69,108, 35, 65,173, 10,194, 90, 39,101,197,121,222,231,106,238, 74,201,185, 28, -106,244, 52,174,241,183,195, 27, 43,194, 99, 65, 84,204,225, 1,116, 53, 16, 14, -144,178,250, 71, 97, 18,159,249, 39,126,103,248,219,250,126,145,239,138,176, 59, -252,173, 59, 47,155, 80, 30,198, 67,250,125, 49,254,255,146,244, 33, 73,148,143, -165,215,246,247, 27,237,108,244,109,253,142,141,175, 40, 22,210,135, 68,146, 80, -221,242,204, 68, 13,192, 12,139,108,215,161, 77,151, 27,105,119,203,244,169, 73, -107,246,126,219,174,162, 81,247,207, 3,157,187, 28,103,111, 69, 24,246,203, 26, -222,215,248,244,247,187,219,198, 11, 52,111,219,151, 86,191, 60,242,217,173,179, -222,157,196,114, 33,140, 14,215,208,173, 25,230, 52,173, 91,127, 24, 20,194,120, -230, 74, 97,114,115,199, 22,253,122, 96,221, 93, 78,131,226,192,124,179,145,136, -248,194,169,105,162,148, 98,188,109, 89, 97, 66, 51, 45, 48,160,176, 41,225,193, -174, 14,229,204, 10,113, 69,154, 69, 94, 86, 67,218,210, 25,146, 20, 34,133, 72, - 36, 51, 31, 98,142, 57,189,195,177, 46,135, 9, 75,202, 15,140,135,216, 90,158, -184,153,150,166,118,153, 95,204, 41, 31,161, 68, 42, 3,226,169,122,230,255,160, -228,116,169,217,187,117,135, 15, 2,242,171, 71,135,154,102, 49, 28, 13, 7,163, -240, 37,240, 19,167,199, 42, 41,200,129, 93,113,130,104,182, 56, 78, 56,205,175, - 62, 7, 36,144,130,185, 83,243, 60, 60,132, 16, 78,173,187,149,230, 67,154,167, -207, 78,213, 68,196, 26, 59, 21,179, 24, 30,121, 70,117, 42,116,184,209,233,180, - 54, 72,134,140,132,234,175,126, 17,128,252,168, 49, 69,102,106, 70, 68, 68, 82, -144, 36, 25,214, 96, 68,100,204,170,115, 50, 97,164,168, 48, 14, 98,204, 40, 1, - 22,136, 8, 6,101,164, 48, 5,245,109, 9,106,144,142,115, 34, 11,225,111,124, -133,220,241,206, 10,191, 70,219,142, 93,178, 55,237,127,204,101, 51,103,114, 59, - 64, 53,252, 54,241, 56,219,113, 36, 92, 14, 64,217,180,237,255, 10,223,227,143, - 72, 2,255, 46,133, 12, 82,203,188,107, 8, 14,193,166, 20,233, 47, 43, 56, 80, - 54, 34,193, 28,139,205,208,132,109,204, 90,213, 27,252,147,240,195,160, 83,101, -227,134,215,248,118,199,202,138, 84,112,179,211,196,183,229,138, 71, 50,198, 16, - 90, 68, 65,201, 72,222,254, 69,238,148,254,141,177, 45,175,174, 76, 2,228,101, - 10,159, 93,239,235,197,194, 41,252,155,125,253, 60,240,117, 33, 68,211,173,236, -236, 54, 61, 42,205,116, 28,226, 72, 1, 42, 60, 87,208, 8, 87,197,214,110, 97, -206,150,112,126, 61, 3, 23, 3, 66,134,213, 1, 84,208, 48,252,164,111, 98, 91, -128,135, 1, 78, 88,255,154, 89, 70, 55,217,216,181, 97, 45, 6, 45,231,176,248, -132, 80,190, 81,142,181,108,179,209,109,166,231,113, 29, 47,239,155,219,221, 1, -153,147,156, 99,112, 64, 48,220, 67,104, 18, 27,148, 44, 28, 25,203,125,178,113, -166, 4, 54,165,189,214,203,125,214,235,121,217,238, 51, 78,106,251, 34,172,155, - 4,180,243, 84, 0,250,173,210,165, 52, 44,196,134,199,153,176,136,105, 69,250, - 51, 17,144,115,163,129, 21, 58,106,105,244,207,124, 28,225, 98,179,194,201,152, -221,132,116,106,248,118, 56, 33,240, 59,108, 94,102, 94,130,117, 28,187, 43,209, -106,203, 24,200,107, 69, 78, 86,132,142,205, 80, 10, 80,251,225,144, 24,174,139, -154,200,173,173,124, 7, 42,195, 60, 70, 45, 50,239, 69, 14,234,175,227, 52,103, -143, 50,104, 81,223, 0,240, 18,147,164, 50,147,217,138, 97, 81, 83, 44,214, 80, -250,131, 12, 54, 80,118, 88,214,111,137,156, 65, 44,135,164,225,134,184, 15,235, - 93, 80,207, 38,150,151,232, 65, 43, 19, 68, 95,141,188, 33,200, 98, 53,200,221, -159,103, 8,210,135,192,111, 28, 27,108,181, 59,243, 68,164, 40, 43,232,188,139, - 57, 68,126, 20, 90, 54,107,161,216, 25,238,161, 16,211,182, 75, 67, 83,250,137, - 35,151,229,166,201,170,167,215, 79,154,233,208,242,127, 46,143,210, 75,241,142, -142,170, 7,215, 4, +// ../Source/Template/GB_AxB_saxpy3_coarseHash_M_phase5.c: +uint8_t GB_JITpackage_86 [957] = { + 40,181, 47,253, 96, 51, 13,157, 29, 0,166,103,122, 32,208, 30, 23, 3, 4,229, +206,118,228,234,138,161,151,139, 54, 95, 34, 66,117, 69,176, 0, 60,199, 98, 59, +200,213,112,192, 61, 21,117, 0,107, 0,114, 0,228,170,154,225, 31,167,189,227, +221,217,138, 25,130,213,217,174, 46,135, 96,170,128, 10,162,141,157, 86,219,208, +245, 38, 89, 55,116,151, 43,252,167, 72, 28, 18, 4, 7,226,144,184,183,234,254, +233, 27,171,149, 23,194,211,200, 93,190,238,232,159, 40,228, 76, 72,179,158,151, +135, 41,178,251,194, 68, 28,227,255,254,111, 34, 8, 35,146, 14,132,242, 7,195, +234, 74,154,180, 67, 73, 93, 49, 86,159,181, 92, 81, 5,205,156, 85, 77, 39,179, +144, 78, 46, 55, 24, 56,130,193, 16,223,250,188, 35,126,228, 24,127,211, 69, 99, +231,219,169,142, 24,100,107,245,183,165,125,151,249, 67, 68,190,251, 72,153, 89, +151,242,239, 16,241, 90,223,237, 58,127,140,133,113, 76,157,126, 49,143,156,252, +182,156,194, 88,254,103, 57, 30,159,245,117,200, 83,133, 66,225,244,143,230,114, +213,187,111,206,140,152,151, 59,223,139,246,180,123,215,149,190,152,171,169,175, +239, 59, 31,214,117,159,252,255,115,156,141, 59, 20, 18, 4, 27,183,251,109,168, +107, 54, 25,155,239,104, 69, 64, 68,133, 43, 14, 49, 13,241, 88, 30,127,102,197, +124,193,155, 44, 21, 79,134,182,240,109, 89,204,150, 66, 62, 49, 39, 19,140, 40, +196,128, 71, 36, 30, 25,228,251,192,183, 70,128,247, 22,141,238,150,139, 39, 12, +209, 71,215,249,182,172, 22,237,208,145,229, 82,138, 47,247, 89,249,146,224, 45, + 44,223,157,203,213,189, 67,247,145,240, 84, 45,183, 86,224, 83, 24,159,110, 82, + 40, 38,103,243, 6,131,234,130,128, 1, 28,119,235,222,162, 20, 90,177,132, 44, +152, 81,120,161, 21, 79,232,195,141, 86,204, 48,240, 30,185, 58,171,213,148,118, +214,124, 85,244, 44, 71,138, 75, 26,118,161,143, 39,164,136,194, 10,136,100,119, + 21, 77,216, 65,171, 93,246,118, 7, 3,138,121,250,165,236, 25, 6,188,183,255, +117,183,140, 50,161, 18, 53, 33,100, 54, 95,223,223,127, 22,118,110, 1,190,245, +145,111,124, 57,164,142, 7, 30, 87,123,170,238,129, 55, 8,158,239,239,197, 11, + 60, 47,128,201,168,177,165, 67, 37, 50, 34, 10,146,146, 36,133,225, 80,132,200, +208, 25,231, 1,194,232, 60, 2,178, 52, 1, 34,136, 8, 16, 17, 40, 66, 4, 39, + 16,161, 80, 2,145, 80,196, 82, 29,217,184,192,134,121,115,228, 44,151,255, 17, +118, 70, 9,135,158,206, 27, 42,221,153,102,231,146,118,143,140,230,188, 60, 18, + 44, 73,253, 15, 38,116,216,148,137, 20,166,117,104, 1,240,187,250, 69,106,186, + 95, 47, 66,130,170, 4,181,154, 39,121,172, 14, 87,133,125,174, 37,179,179, 34, +131,118,159,176, 59,135,172, 27,156,157, 55,177,240,106,169,120, 65,227, 5,247, +232,121,159, 52,215,184, 18,244,171,122, 85,123, 64,161,235,178, 95,216,117,186, +241,210, 44,192, 3,196,137, 46,195, 52,217,184,106,109,178,207,188,215,169,185, +244, 58, 93,170,185,111, 47,209,141,158, 35,170,242,144, 38,166,194,141, 35,235, +121,136, 37, 35,185,142,201,104,180,188,141, 28,231,215, 58,132,162,214,147,255, +198,171, 57, 93, 60, 22,194,183, 25,135,121,142, 4,209,210,246,230,254,139, 53, +205,169,189, 12, 50, 56,219, 69, 83,197, 53, 75, 96, 65,147, 7, 12, 80, 68, 77, +166,148,167,136,184, 2,188,103,230,140,186, 67,140, 53, 84,119, 56, 90,200, 6, +181,145, 17, 24, 15, 77,216,135,140,182, 61,116,253,141, 55, 76,219,211, 86, 27, +143, 79, 68,248,121,204, 48,151, 5,101,228,192,132,117, 94,160,138,234,167,232, + 39,252,178, 25,196,242,100, 16,152,177,215, 59,115,185, 84, 36,234,244,184, 76, +172, 79,162, 93,201,219,164,168,242,249,237, 82,118,187,214,164,113, 36,168, 79, + 64,253,171,194, 65,172,252,123, 59, 49,171, 28, 14,160,192,137, 15,238,237,140, +155, 28,108, 74,234,172, 71, 27, 76,139,168,226, 98,239,227, 39,156,169, 80, 21, +145,155,114,221, 68,255,214, 3,163,142,157, 50, 62,183,225,249,224,255,192,251, + 64,100, 22,135,250,203, 24,132,130, 40,186,151,156,180,125,208,148,254, 96, 26, + 85, 70, 52, 20,211, 51,195,198,106,120,246,133,248, 83,234, 40, 78, +} ; + +// ../Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase1.c: +uint8_t GB_JITpackage_87 [829] = { + 40,181, 47,253, 96, 94, 9,157, 25, 0, 70,230,114, 32,224, 90,117,160,231,236, +231, 27,109,180,176,116,159, 33, 3, 19,181,169, 24,191, 37, 75, 83, 30, 52, 94, + 3, 51, 12,193,188, 23,110, 0,102, 0,104, 0, 76,251, 66,240, 72, 52,219,199, +168,146, 45,111,110,111, 56,234,205, 75,165,238, 90, 2, 97, 64, 16, 24, 7, 3, +226, 25, 21, 92,179,141,154,146,111,221, 87,225, 29, 77,221,185,198,233, 46,144, +144,156, 37,165, 65,114,248,246,137,131, 97, 0, 15,111,167,174,125, 99,120,217, +244,240,167, 93, 26, 69,166,149,125,227,192,118,134,164,135,185, 99,245, 66, 59, + 43,108,203, 57, 82, 47,177, 34, 85,211,122, 16, 85,231, 65, 40, 47, 20, 48, 66, +161, 16,162, 31, 6, 31,151, 99, 29,245,118,104,252,224,181,254,163, 50,219, 95, + 94,253,142,245, 17,205,240,200, 72, 90, 11, 48,215, 62,110,242, 68,233, 88, 79, +111,128,216, 6,130,255,234,124, 8,244,174,252,241,240,151, 47, 27, 56,254,229, + 8, 94, 44,167,233,142,135,182,109, 3, 29,172, 92, 91,149, 74,179,111, 87,203, + 11,133,255,199, 90,152, 97, 67, 16, 56,164,147,236,222, 40,185,193,190,149, 63, + 11,129,109, 13,247,227,173,253,219, 47,249,222, 73, 45, 6,236,175, 50,119, 62, +213,190,117,164,207, 12,172, 74, 18,125, 51,209,124, 42, 46,215, 39,156, 77,167, +225,120, 28,139, 7, 17, 28,236,192,234,146, 38,190,237, 87, 14, 83,103, 59,233, + 75,179, 41,147,246, 24,119,195, 31, 15,137, 34,232,100,164, 33,128,252,242,136, + 59,201,131,120,157, 9, 37, 27, 12,102,201,193,253,218,178, 65,241,143,139,226, +175,167, 88,220,218,130,202, 28, 24,246,178,220,175,236, 37, 78, 46, 69,171,242, + 86,254,188,109,238,131, 1,247,110,238,113,236,173, 20,215, 91,141, 79,229,205, +106,191, 15,102, 89, 11,186, 22,187,115,112,191,229,188,214,235,200,142, 20, 59, +209,235, 68,112,188,120, 21,127,181,185,123, 38,146,140,197, 35,137,117,210,175, +178,231, 56,132, 60,119, 26,121,237,250, 91, 79, 35,173,112,186, 10,247, 3,226, +143, 1, 6,195,116,146, 86, 44,199, 20,135, 1,128,156,168,193, 45, 82, 68, 50, + 65, 10,146,146,130, 74, 58, 64,132, 16, 50,104,236,226,240, 52,130,242,160, 52, + 70, 64, 4,154, 4, 19, 72, 48, 97, 40,255,227, 1,144, 18,152, 15, 56,157, 67, + 9,173,119,198, 36,156,179,101,109,128,192, 20,146, 38,147,145,139,168,170, 58, +160,148,196,134,136,220,244, 90,177, 39,165,129,145,122,155,101, 86,228, 64, 50, + 82,236, 73,121,158, 90, 41,164,104,219, 66, 4, 38, 9,225,112,253, 93,124,130, + 84, 86,104,162,146,116,144, 18,194,221, 61, 12,196, 52, 88,172,113,224,200,230, +179, 48,233,212,131,120,169, 94,200,182, 81,189,193,220,120, 19,126,111,182,204, +224, 4,106,110, 66,142,216,167, 0, 94,130, 58, 92,119, 1, 98,249, 10,157, 46, +137, 23,169,129,140, 9, 4, 27,189,142,212, 66,249,133, 5, 38,193, 8, 5, 8, + 65, 32, 94, 96, 67,112, 22, 81,249,221,232,157,236,255,132,210, 33, 81,199, 78, + 57, 59, 49,100,182, 65,198,205,207, 72,227,228, 51,185, 44,141, 59,230,216, 98, +105, 94,255, 88,231,123,100,107,208, 24,102, 63,147,173, 65,203, 10, 64,195,232, +210,147,105, 68,152,149,198, 35,184,138, 26, 62, 80,159, 30,236, 82,164, 21, 61, +232, 80,212,241,220, 58,163,134,210, 14, 38,182, 49,184, 83,184,178,134, 92, 47, +145, 22, 1,231,183, 69, 35,118,159, 38, 65, 87,194,165,208,134,252,219, 30, 54, +152, 81,182,197,230, 98, 88, 69,232,153,222,201,179,101,232,147,187, 10,143,244, +176,165, 38,184,136,163,145,255,131,102, 74, 5, 83,169,185, 29,233,106, 92, 84, +183,198, 7, 28, 98, 81,221, 57, 60, } ; -// ../Source/Template/GB_emult_08_meta.c: -uint8_t GB_JITpackage_103 [1227] = { - 40,181, 47,253, 96, 76, 17, 13, 38, 0, 22, 48,146, 40,192, 84,177, 14,228,188, -192,235, 47, 55, 9, 10, 19,224, 5,136,246,246,124,231,130, 65,122, 44,194, 36, -131, 16, 68,100, 55, 93, 56,184,174,162, 96,139, 2, 46,136, 0,124, 0,138, 0, -241,151,110,115,161,137,143,233, 47, 93,139, 59,119,220,102,167,201, 69,194, 88, -122, 94,146,123,207,220,166, 25,205,181, 49,142,165,113,237,139,118, 44, 26, 17, - 30, 9,235,143,219,184, 63,199,121,114,208,207, 53,237,189,130,128,185, 96, 44, - 11, 7, 23,204, 41, 87,244, 10,166, 31, 50,226,210,123,104,102,187, 81,208, 43, -212,235,192,201,201, 59,145,105,124, 37, 71,117,166, 29, 53, 1,120,136, 14,211, - 43,176, 64,122,154,233,215,102,199, 96, 85,254,160,177,156,220,159,145,185,183, -138,225, 82,101,173,219,186,130, 19, 55, 48,152, 88, 12, 12, 2, 88,135, 51, 24, -140, 96,235,240,214, 93, 56,107, 29,238,219, 26, 71,165, 88,246, 69, 53,252, 75, -177, 7,150,249, 93,169,196, 47, 77,215,230,171, 63,230, 37,251,149, 30, 55,189, -185,246, 51,123,129, 92, 59,220,117, 60,119,214, 43,153,214, 56, 95,207,182, 30, -183,197,158,145, 40,214,244,190, 61, 65, 26,203,235, 33,173,218, 99,122, 76,103, -142,142,201,206,184, 54,238, 48, 76,214,158,249, 21, 77,235,178,247,149,239, 51, - 91,235, 25,167,111,151,175,238,230, 76, 67,253, 33,231,171,188, 14, 43,239,149, - 49, 4, 84, 69, 26,227, 69,132, 16, 66, 8, 33,132, 16, 66, 8, 33,132, 16,194, -140, 98,181,225,148, 23, 93,163, 89,107, 53,214,186,147, 33,113,207,139, 32, 14, -228,228,150,169,181,161, 62,207, 67,125, 54,158, 13,138,138,226, 84,239, 21,166, -213,235,108, 46, 54, 22, 21,136, 83,145, 53,150,213,214, 62, 40,181, 44,134, 57, - 27,206, 61, 88,222, 53,231,222,243, 69,111,198,125, 11,158,171, 4,133, 92,171, -189,166,248, 10,204,205, 17, 48,165,128, 55,214,105, 87,165, 2, 31,206,243,128, -168, 15, 71, 66,102, 53,227, 75,179, 10,210,255,159, 76, 70, 66,214, 3,147, 73, -137, 38, 47,122,123,235,234, 51,152,128, 75,234, 44, 53,110,235,124, 81,205, 90, - 91, 8, 31,100, 40,157,115,226,166,105,154, 32,132,240,189,247,178,173,240, 85, - 59, 48, 16, 1, 76,209, 65,159, 13, 69, 61,104, 33,134,253, 80,142,185, 70, 19, - 29,243, 71,225, 1,117, 50,226,166,150, 60, 88, 50,133, 18, 18, 61, 3, 17,157, - 18,133, 80,106, 89,115,198,143, 68,207,232,101,123,174, 90,132, 98,128,107, 52, - 49, 70, 10,198, 5, 64,244, 92, 27,247,229, 64, 83,198, 7, 68,121, 34,198, 84, - 89, 80,175,242,192,146, 66, 66,242,232,218, 42,198, 24, 99,140, 1,129, 53,168, - 33, 93, 68, 35, 35, 35, 73, 65, 10, 82,105, 13, 17, 9, 49,136, 66,201,108, 30, -162,160, 32,151, 81, 28,130,160, 64, 10,144, 0, 33,100,196, 34,145,136, 68,154, -130,130, 74, 27,214, 16, 0, 57, 67, 49,141,123,136, 84, 60,225,163,214,162, 92, -229, 38, 22,167,144,252,213,251,111, 87, 28, 15, 1,241, 5,142, 33, 45, 10, 87, - 40, 15, 87,161,186,163,154, 4,242,119,101, 12,114, 22,243, 95,169, 34, 87, 48, - 24,201, 73, 77, 97, 73, 50,104, 37,128,230,218,191,210,110,106,199,210,156,150, - 64,161,165, 20, 78,228,108,107,124, 5, 52,231, 27, 37,198, 37,152,204, 26,154, -162,100,159,130,124,165,182, 26,192,194,205,241, 86, 89, 19, 25, 7,108,131, 63, -109,165,237,121,222,203,179, 76, 69, 58,209,151,124,163, 67,101,250,154,153,182, -246,160,110, 6, 50,189, 46,175,253,252, 44,128,215,243,225,255, 38, 0, 99,104, - 51,154,125,155,153, 43,140, 74, 83, 12,169, 84, 69, 85,190,147,242,115, 52,221, - 8, 80, 81, 82,121,127,201,146, 31, 18,254, 69, 86, 96,166, 16, 34,172, 62,163, -203, 99, 2, 64,136, 28, 71,112,163, 51,107,201, 36,119, 58,215, 93, 60,154,223, - 80,121,205,138,188,124, 39, 10,153, 94, 54,167,246,194, 77,233, 92,132, 37,232, -137,134,214,190, 34,147,238, 41, 39,246, 36, 27, 41,199,133,234, 8,227,177, 65, -150, 18,129,121,129,176, 64, 20,205, 10,236,228,118,208, 88, 49,206, 21,192,149, - 77, 14,217, 80, 72,107,145, 80, 14, 91, 89, 64,184, 10,254,169,205, 45,184, 0, -202, 59,150,241,196, 44,196, 46, 94,152,229, 22,191,185,130, 69,208, 92, 78,198, - 88,206,144,211,210,219, 97,139,194, 37, 11, 8,173,192,251,145, 5,145,130, 16, - 1, 32,194, 9,135, 77,213,155, 60,134,226, 46,153,109,187,147, 4, 56,207,179, - 66,172,186,153, 0, 23,229, 96, 20,101, 97, 49, 44,229,254,196,142,207,241,145, - 27,144,227,125, 72, 67, 51,168,106,168,216, 73,192,105,128, 94,235,219, 82,168, -196, 73,201, 98,255,225,201, 92,208,122,166,219,106, 25,245, 18,157, 40,211, 55, -102, 67,105,158,243, 33,171,242, 35, 10,129, 20,184,107,127,143,226, 99,121, 98, - 69, 26, 89,234,151,102,194, 31, 48, 81,128,244,233, 97,223,174,143, 72,106, 90, - 47,172,138,146, 69, 29, 49, 76,116,228, 5, 12,176, 64,233,160, 53, 28,179,187, - 29, 77,238,136,177,102,139, 82, 68, 25,185, 67,132,161, 64,153, 66,140, 45, 13, -199, 29, 17, 96,106, 26, 50, 65, 5,145, 36,133,118,185, 31, 79,251,176, 55,233, -209, 74,157, 14,103,194,253,200,156,108, 9,125,244,179,157,166,100,129,174,233, -206,143, 62, 3,103,152,126, 39, 3,144,162,165, 72, 86,163,135,245,163, 50, 39, - 53, 83, 69, 35, 41, 18,126,211,124,171,204,132,245,225,198, 61,228,120, 20,193, - 72,227, 36,165, 90,214, 9, +// ../Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase5.c: +uint8_t GB_JITpackage_88 [887] = { + 40,181, 47,253, 96,105, 10,109, 27, 0,230,163,111, 33,224, 90, 23, 3,148,119, +226,218, 99,201, 62, 75,187,166,136,204,116, 68,142, 45,253,186, 48,237, 26,132, + 57, 17, 99, 36,196,240, 11,106, 0, 97, 0,100, 0, 58,219,240, 90, 4, 32,137, +166, 19,109,234,180,218,110,174, 55, 73,186,155,155, 76,223,185,131,129, 96, 16, + 44, 10, 4,195,181, 48, 59,167,111,170, 74,222,125,103,145,187, 60,221,206, 57, +206,103,129,144,102, 61, 41, 12,147, 99,247, 69,113,176,196,207,253, 28, 36,240, +121,143, 11,192, 17, 57, 35, 97,117, 37, 77,122,217,101,166,164,174,160,213,103, + 45, 67,122, 96,153,171,170, 41,100,245, 81, 8,229,131, 1, 38, 24, 12, 2,249, + 17,142,224,105, 37,238,102,151,115,162,189, 38, 42, 12,203,140, 58, 99,236,198, + 81, 20,250, 5,239,157,252,182,150,110, 44,255,179, 28,143,207,122,186,227,162, +174,235, 66,231, 88, 38, 83,189,251,230,202, 8,190,220,249, 94,180,167,221,187, +134,250, 98,174,166,190,190,191,156,195,186,238,147,255,127, 12,115, 97,132,206, + 32,176,100, 88,205,239,140,211,222,241,238,108,197,138,192, 6, 37,156,197,108, +169,227, 16, 19, 2, 1, 57, 31,216,120,193,112,111, 99,100,151,111, 75, 42,209, + 11,237, 76, 40,165,248,114,159,148, 47,217,184, 69,229,187,115, 25, 94, 35,220, +203, 62, 10, 46,106,229, 82,216,184, 8,227,208,205, 72,196, 60,230,210,182,173, +154, 28,141,111,125,222, 17,223, 59,198,223, 20,161,216,249,102,163, 23,182, 50, +147,110, 87, 96,252, 30,119,239,101,107,245,183,101,125,151, 1, 24,246,202, 94, +162, 17, 42,153,108, 38, 96,231,163, 80, 9,102,147,225,188,182, 79,162,241,116, +251,222,238, 42,154,168, 55, 94,184,218,115,180,109, 17, 51,178, 87,160,182,207, +101,159,116, 42,155, 15, 5,129, 1,239,219,226,185,220,123,151,202,230,107,206, +162,206,173,221,143,154,118, 47,190,159,163,241,125,214,173,233,103,126,166, 55, +194, 21,127,152,126,120, 44,143,191,178, 98,190,141,131, 38, 18, 76,133, 6,128, +195,168,161, 49, 83, 36,193,136, 76,144,130,130,164, 50, 28, 64,132, 16, 82,103, +182, 1, 66,113, 32, 34,145,208, 40, 66, 12, 34,134,146, 96, 68, 2, 42, 41, 74, + 25, 53, 30, 89,155, 33, 14, 78,180, 8,134,128,255,175, 89,253, 78,138,132, 18, +144, 84,161, 1,247,163,105,147,247,223,221,214,186, 37, 62, 96,120, 73,132, 33, +143, 69, 25, 60,144,127, 5,153, 64,102,106,196, 21,187,114, 34, 33, 5, 68, 99, + 31,125, 37, 39,116, 25,238,131,167,224,248,204,160,108, 38,197, 65,229, 23,224, +129, 60,229, 50, 72,215,204,237,153,101,225,178, 53,177,172,128,171, 10,172,103, + 49, 32,165, 40, 67,147,140,219, 91,211, 80, 9, 16, 35, 77, 3, 84, 59, 36,237, + 22, 80,253, 56,159,208,238, 98,129,247,194, 65,130,133, 8, 74,235, 83,228, 72, +199,147,106, 32,108,253,105,134,140, 67, 16,204,122,227,193,169, 34, 99,230, 36, +162, 82,143,114,192,168, 32,116, 20,208, 95, 31,194,191, 36, 77, 56, 39,126, 50, +113,160,151, 8,239,219,111,120,225,161,192, 40,149, 16,180,126, 59, 2, 51,228, +119,102,118, 76,132, 43, 26,156, 13,206,155,117,135,209,230,154, 60,219, 84,110, +235, 90, 12,156,130, 49,164, 35, 66,251, 30, 83,239, 84, 86,231, 78,130,104,235, +222,213, 32, 17,149, 30, 35, 77,201, 43,240,122, 57,253, 60, 54, 51,172, 93,125, +210, 16, 2,252, 22, 3,187,178,202,156,142,171, 34,181, 36, 74,138,176, 45, 5, +141, 65,219,128, 64,167,237,155,106,137,162, 8, 8, 63,114, 97,223,247,118,236, +205, 74,119, 26, 62,237, 21,172,234,111,100, 88, 18,163, 81,113,198, 66, 0, 44, + 33,180,165, 31,120,204, 14,127,246, 86,216,200,233, 97,245,210,198,123, 62,106, +225, 19,118,110,189,212,239, 0,249,255,255, 44,237,211,236,210, 20, 81, 54,149, + 29, 39,247,193, 28, 52,213, 63,152,102,149, 81,122,184,193, 59,163,135,135, 99, +254, 43, 99,168, 74,115,100, } ; -// ../Source/Template/GB_emult_08_template.c: -uint8_t GB_JITpackage_104 [2007] = { - 40,181, 47,253, 96,211, 38,109, 62, 0,218, 66, 84, 12, 40,160, 86, 85, 29,212, -135,191, 16,232,230,237, 70,186,205, 81,153, 46,218, 99, 61,183,227,127,108,161, -150,166,253,193,178,209,186, 28, 47,199,139,242, 58,120, 6,183, 0,178, 0,191, - 0, 19,143, 96,153,223,117, 74,252,213,117,109,214, 90,212,175,243,184,231,205, -181, 31,178, 23,120,115,249, 56,215, 15,127, 34,207, 95,118, 42, 68, 27,103,237, -217,214,227,182,219,173, 76, 99,201,121,214,181, 15,184,243,231,117,246,170, 96, - 42,141,165, 57, 77,122,240,214,237, 25,154,185,246, 86, 97,105, 92, 91,155, 29, - 75, 71,132, 70,181,181,232, 54,238,141,227,204,133,204,141, 83, 10, 79, 29,104, - 48, 26,139, 66, 6,163,249,164, 73,167,240, 20,201,136, 87,240, 35, 46,219,110, -130, 78,125, 96, 39,114,158,188, 19,214,167,243,252, 62,149,219,222,136,187, 52, -190,210,195,199,243,215,107,115, 36,127,240, 0,252,218,123, 28,174, 83,177,160, -130,155,235, 86,103, 73,189,174, 51,182,128,193, 50,253,186,198,226,196, 47,151, -138,229,114, 9,248, 83,197, 46, 9,111,178, 47,151,177,238,171,180, 41,149,191, -236, 66,228,245, 4, 26,190,205, 92,231, 73, 87,123, 16,232,180,161,111,115, 93, -103, 89, 86,217,221, 3, 2,170,106, 39,158, 90,111,191, 54,244, 81,158,221,159, -191,218,100,103, 92,231, 23,142, 39,151, 71,244,222, 92,187,107,234,117,243,185, - 71, 12,199,158,123,207,173, 3, 76, 70,195,240, 83,250,133,184,144,144, 39,187, - 60,179,169,167, 77,203, 22,110,109,150,203,221, 73,213, 99, 65,117,248,205,101, - 57,167,145, 88, 74,109, 8, 84,191, 99,169,125, 55,227,186, 53,205,186,206, 94, -165,246,146,121,179,236, 94,231, 45,198, 40,251,246, 97, 75, 83,109, 4,221,135, -187, 79,123, 95,121,156,233,135,251,110, 85,158,106, 26, 82, 39,150,173, 77,138, -127, 3,159, 56,248, 11, 2,225,115,110,156,125,120,158,211, 38, 5,146,177, 84, - 85, 5,189,143,151, 64,106, 66,234,208,131,161,185,213,254,234,204,147,165,218, - 90,212, 28,104, 96, 0,100,228,227, 30,104,131,243,249,192,140,193,229, 85, 32, -255,229,137, 80,150,116,193,218, 24,117,121, 38, 85, 68,155,158,225,124, 32,133, - 6,168,195,225,225, 8,140,156,226, 46,233, 23, 70, 17, 39,190,185, 8,151, 71, - 40,145,141, 3,158, 34,108, 57,146,247,181,221,175,197, 87, 90,173, 49,237,148, -203, 87, 43,111,123,246,242, 39,210, 67,181,233,148,177,124,179,145,176,174, 51, -116,106,109,246,140, 37,109,168, 64, 62,158,241,236,128,190,121,198,119,134, 70, -158, 49,132,132,107,179, 55,175,134,123,203, 29, 98, 96,112,135,134, 99,190,145, - 50,148, 54, 59, 89, 71,155,212,244,219,154,211, 2,149, 74,202,230,215,116, 73, - 84, 98,215, 98, 24,158,152,199,115,193,179, 1,158,186,222, 32,208,184,155,203, -179, 61,215,180,193,209,240,160,224,124, 54,160,198, 7,251, 84, 96, 30, 26,160, - 85, 1,239,237,163, 90,109,141, 82,121,241,129, 30, 44, 3,163,195,193,216,224, - 92, 96,160, 10, 11, 41,186,196, 83, 68,117,103,199,221, 89,109,132,231,181,198, -183, 97,156, 14,163,236,117,125,177, 38, 41, 45, 92, 27, 55,127, 56,149,213,206, -236, 89,135, 24, 99, 22, 99,150,197, 24, 99,204, 98,140, 49,198, 24, 99,140, 49, -198, 24, 99,164,102,140, 49, 74, 58,125,130, 35,114, 34,182,222,142,130,242, 20, -239,212,172,192,252, 1,131, 19,111,178,113,237, 77,230, 43, 51,198,234,172, 80, -102, 12, 40,232, 65, 73,227,225,214, 69, 58, 29, 14, 12,136,217, 44,189, 98,125, -228, 16, 1,130, 28,168,242,211,146, 41,166, 68, 2, 17, 73,146, 20, 10,141, 1, - 18, 41,132,225, 88,162, 75, 73,183, 30,194,208, 32,141, 82, 24, 69, 40, 33, 68, - 64, 8, 35, 70, 48, 68, 68, 2, 17, 17,145, 72, 70, 68,226, 54, 17,130,164,197, -182,136, 32,101, 25,125,169,170,105,114,197,117, 82,179, 78,253,201,110,179,160, -129, 43, 1,193,139, 46,163,195, 24, 76,221,104,216,149,111,255, 9,245, 96,122, - 91, 26,106,237,230,108,129, 67,183, 89, 26,163, 42,181, 32, 41,236,255, 44,210, -184, 47,185, 56,171, 21,250, 8, 50,224,201,183, 83,237, 65, 87,191,232,199,170, - 37,193,221,118,211,116,220, 38,240,175, 29, 0,102,249, 75, 72,179,253, 6,122, - 53, 40,233,206, 74, 52,204,127, 9, 72,252,144,222, 86,179,192,133,202,159,202, -224,218,243,178, 70, 66,248,202, 67, 50, 85,132, 46,174, 60, 55,156, 68, 22, 52, -132,134,107, 54,218,223,216,123, 83,126,176,112,103,130,221,224,213,175,107,161, - 48,249, 93,193, 86,255,224, 74, 97,228,220, 96,134,104,202,212, 78,151,169, 78, - 89,144,130, 72,250, 15,185, 7,127, 81, 54, 77, 40, 12,160,209, 68,115, 71,175, -243,167,228,212, 77,185, 11,173,102,243, 42, 3,146, 25,152, 54, 45,135, 82,255, -140, 78, 89,111,166, 43, 4,229,116,204,213,120,161,197,159,159,142,141, 38,152, - 22,166,174, 27, 88, 14,223,229,210,238,137, 99, 19,214, 37,126,227,138, 64, 97, - 67,132,203,162, 73, 77,141,200, 79,120, 6,148,238, 75,108,245, 67, 90,131,140, - 72,189,121,218, 8, 38, 24,233,247, 19,143,118,236, 56,121, 45, 50,163,158,218, -167,237,247,212,182,171,237,242, 45, 87, 57, 20,112, 50,145,167,119, 40,231,245, -172,241,154,222,168,189,134,165,189, 56, 59,191,248,251, 51,245,246,150,162,215, -217, 9,213,163,141,207,199, 88, 61, 58,140,210,181, 48,129, 72,217, 33,166,164, -147, 20, 35,160,251, 32,175, 9, 3, 54, 51,196,120,148, 9,131,217, 78, 61, 16, -186,221,176,101,162,198,182, 3, 79,153, 29,127, 37,235, 10, 65, 57, 26, 43, 75, - 80, 77,105,181,249,133, 88,155,176,182,207,140,134,132, 7,179, 49, 87, 89, 39, -115,175,100,124, 71,137, 31, 41, 24,154, 87,121,255, 31,226,212,251,211, 94,107, - 13, 10, 10,127, 50, 3,200,213, 53,216,225,188,243, 5,212,221, 6, 58,237,125, - 26,254,236,121,255, 7,144, 43, 18,189,139,234,249, 6, 20,219, 82,190,100,255, -158,127,213, 76,167,221, 20, 14,247,138, 17,213, 0,236,217,109,220,220,174,163, -221,173, 91,222,244,193, 81, 91, 25, 34,198,136,220,112, 34,230, 57, 2,192, 10, -180,179,125,240, 39, 92,125,215, 32,193,165,146, 93,190, 78, 28, 54, 57, 41,203, -190, 66,230,145, 46,127, 65,105, 73,106,249, 86,187,229,119,106,198, 77,166,168, -145,187,180, 82,230, 13,208,107, 91,252,145, 36, 6,250,225, 5,192,182, 70,109, - 94, 1, 92,191,141, 32,114,227, 94, 49,110, 22, 32,147, 14, 18,207,140, 49,168, -145,225, 94, 11,196,119, 71,213, 10,177, 39,244,145, 51, 48,217,181,175,183,121, -101,227, 54,169,247,103,206,135,138, 0, 30, 8,172,102, 12,242,213, 3, 25, 66, -118, 25,142, 68,139,133,237, 50,204, 64,240, 23, 7, 58, 9,226,190,167, 28, 86, - 4, 40,239,144, 64, 77,181, 57, 79,168, 84,205,252, 77,193, 45,170, 93,174,101, -252, 82,139,237,168, 4, 71, 64,163,203,130, 63,168,229, 44, 63,147,142,253,218, -217, 62, 54,224, 22,175, 13,139,220, 24,183,216,127, 90,123,172,233, 53, 7,104, -114,202,171,143, 37, 54, 84,142, 85, 1,148,239,253, 21,125,129,224,133,101, 96, - 52,237, 40,195, 7,186,145,132,115,159, 36, 36, 9, 88, 3, 17,214, 27, 12,174, -144,239,199, 50, 9, 35,196, 30,142, 33, 74,145,181,153,113, 68,224,140,255, 11, -197,132,120, 52, 43,209, 29,231,167,139, 79, 70, 96, 53,217, 4,190,216, 96,153, - 34,101,184,173,170,169,202,124, 65,196, 39,215,255,161, 62, 15,177, 69, 85,187, -255,219,200,165,168,218,179, 72, 95, 27,169, 44, 8, 76, 38,220, 78, 23,164,223, -134, 16,136,107, 18, 47,120, 37,235,154,135,132,253,141,172,186,234,215,124,112, -179,196,101,128, 3,181,229,139,232, 71, 16,213,147, 66, 83,220, 46, 47,202,216, -226, 4, 17, 79, 31,188,233, 63,162, 67, 60,200, 20, 75, 69, 87, 95,223, 39, 43, - 8,245, 76, 27, 51, 46, 41,201,167,175, 25, 12,161, 51,137,251, 27,225, 81,164, - 17,178,165,217, 0, 55,183, 88,160,172,198,138,115, 27,110,176, 96,201,100,233, -200,122,101,204,208,169,226, 89,235, 92,241, 21,177,221,163,213,135, 57,220,212, -218,165, 93, 12,159, 12,105,239,205,113,242,104, 34,195,152,106, 36,114, 78,126, -138,132,183, 48,204,207,174, 5, 82, 76, 47,135, 42,221, 9,206, 20,244,152,148, - 85,192,148, 80,223, 63, 83,188,236,171,227,144, 63,228,128,238,228,136,164, 61, -138, 97, 65,167,179,156, 8,241,116,227,241, 13,255, 72, 88,245,114, 35,185,193, -178,213, 55,106,119,151,219,170, 42,146, 48, 33, 57, 8,130,149,177,115, 5,155, -224,175, 91, 77, 3,128,143,192, 29, 0, 56,196,217,166,142, 38, 39, 96, 76, 64, - 29,101,132,193, 31,167, 11, 12,140,113,118, 1, 3,109, 2,205,168,160,147, 2, -152,121, 39,205,233,252,222, 24,247, 74, 99,203, 74,179, 71,128,245,152,170, 10, -202,104, 9,134,150,150,125,211,132, 31,130,137,213, 84, 78,135, 97,197, 57,116, -105,164, 73, 90, 43, 24, 80, +// ../Source/Template/GB_AxB_saxpy3_coarseHash_phase1.c: +uint8_t GB_JITpackage_89 [1341] = { + 40,181, 47,253, 96,148, 16,157, 41, 0, 38,245,156, 40,192,146,117, 14,106, 70, +158,166, 33, 20,254, 4,173,116, 91, 27, 42, 31, 50, 32,140,179,150, 21,116, 1, +112,132,243, 76,127, 33,119,112, 93, 69, 97,186, 10, 64,151, 0,142, 0,149, 0, + 93, 23,251,246,236,216,254,117,173,223,112, 5, 96, 52,175,244, 83,102,192,170, + 52,159,238,183,255,191, 68, 18, 34, 41,160, 14, 42,188,201,232, 89,183, 84,110, +173,111,167, 34,219, 83,185,120,160,160, 50,238,168,108,249,115,123, 55,142,254, +188,235,172, 79, 8, 7, 5, 7,149, 5,131,130,131, 79,164,244,201,118, 71,124, + 56,101,125,180, 93, 42,234,138, 79, 32,203,147,217,188, 88, 35, 44, 30,136,111, +127, 32, 9,103,163,104,114,246, 46, 78,218,215,163,159,126,217, 29,197, 68, 35, +123,139, 1,219,184,121,112,179,145,195,182, 70, 42, 33,194,200,251,136, 22,102, + 62, 44,152,137, 56, 1,129,164, 66, 64, 16, 81,190,139, 45,249,242,130, 87,223, +224, 56,141,123, 26,139,148,249,101,142,203, 67, 48, 3, 43, 54, 17,146,144, 9, +133, 18, 59,204,229,215,214,214,184, 87,231,184, 95,152,160,112,103, 75,148,189, +147, 45, 87, 47, 99,251,253,210,153,209,237,178,232, 20,203,216,121,159,253,174, +251,180,138,214, 21, 27,189, 40,186,141,221,158, 50,230, 36,111,242,140,125, 70, +249,235, 91,197, 36, 52,181,164,249,118,219,227,183, 84, 83,191,202,184,189, 79, + 74, 58,191, 91,180,222,158,205,248,141,234,218, 47,123, 40,141,254,149,106,231, +106, 20, 29,243, 13,138,162, 52,174,113, 62,141, 2, 31,156,205,190,252, 98,243, + 48,209,129, 33,238, 33, 6,150,117,177,237,248, 98,161, 96,151, 4,109, 67,236, + 66,134,201,173,241,242,158,209, 1,157,242,201,199,245,137, 36, 93, 98,185,199, + 99, 49,113,135, 15,114, 54, 94,175,126,101,215,107,185, 14,188, 2,218,171,210, + 43,185,227,244, 3, 11, 93,183,149,239,108,234,253,114,196, 79,133, 26, 74,128, +172, 11, 74,104, 54, 28,141,198, 89,189,147,207,147,158,183,123,238,182, 75,235, +108,242,229,252,205,190,147,202, 79,170,131,204, 16,246,207,134, 2,131, 35, 34, +242, 13,232, 99, 81,128, 32,168, 3, 51,210,181, 14, 24, 93, 79,196,147, 55,143, +179, 13, 18,201,136,229, 30,233,223,202,118, 54, 23,185, 98, 0,151,118,246, 19, +233, 51, 86,106,251,253,218,108,249,198,217,162,202,178, 70,182,103, 15,158,143, +147,237,206, 79,113,135,197,219, 61, 77,243,235, 22, 16,168,110,179,142,110, 83, +166, 73, 84,173,223,244,160,245, 44,162,118,106,159, 54, 31,123, 8, 14,200,226, + 84, 60,105,198,182,139,218,171,142, 82,236,142,176,103,124, 37, 95,170,245,189, +230, 38,237,219, 89, 75, 86,115,109, 97, 46,183, 60,203,131,152,103,188, 95, 46, + 53,159, 61,127,231, 71, 37,133, 50,114,225, 34,103,113,208,226, 52,122,238, 1, +129, 53,168,129,173, 51, 51, 67, 34, 34, 73,146, 66, 97, 24, 3, 97, 12, 66, 24, +147,150, 74, 62, 34,177, 40, 75,194, 36, 66,134, 24, 70, 12, 21,136, 4, 50, 65, + 74, 75,202, 40,211, 1, 16, 0,243, 53, 74,127,226, 23,242,130,212, 37, 86, 70, +232, 44, 63,198, 69,128, 69,189,237,151,185,187, 94,186,165, 48,197, 70,143,237, + 72, 64,196,194,150, 69, 17,136,235, 38, 11, 5,130, 1,163,147,171,237,207,173, +211,138, 67,167,182,161,232, 53, 29,110,150,125,146,232, 78,124, 68,205, 93, 6, +238,231,138, 44,159,216, 91, 34,170, 74,101,129,249, 85,196,243,111,247, 90,129, +167, 39,115,182, 52,165,147, 84,226,253,199, 26, 4,112,181, 69,227,230,237, 3, + 66,173, 77,254,113,128, 82,170,214, 48, 82, 55,144, 44,143, 90, 71,103,150, 78, +176,215, 82,134,152,137,105,223, 85,200, 26, 82, 0, 70, 36,244,121,151,170,235, +172,166,202,157, 1,152, 9, 16,219,227, 37,125, 82,207, 80, 36, 52,147,156, 74, +197,233, 35, 37, 42,202,167,113,172, 39, 68,236, 66, 96, 7,137, 55,208,134,231, +200, 13, 53,174, 26, 84, 33, 72,213, 18, 43,111,208,245,210,136, 66,237, 35,217, +127, 37, 83,158,194, 83,220,187, 7, 22, 79, 98, 23,133, 48, 26, 39, 23, 9,148, + 58, 39, 58,255,219,216, 9,245,116,113, 55,173,136, 49, 29,103,135, 1, 36,124, +180,208, 40,120, 42, 56,169, 49, 48,148, 8, 40,124,170,100,228, 83,208,242,160, + 98,176,234,233,141, 22,223,237,177,246,242, 14, 99,193,176, 75, 11, 21,148, 73, + 15,224,175, 79, 88,102,103, 85, 12,170, 82,224,102,167,112, 31,193,147,157,251, + 77,255, 37,210, 64,137,200,235,192, 45,103,110, 40,190, 81,230,142, 82,210,135, +188,171,183,219,231,202,249,213, 19,177,135,196, 49, 44,191,225, 30, 75,147,173, + 21, 23,145,236,146,150,133,122,241, 13,224, 85,241,152, 24,206,233, 72,149,194, + 39, 32,141, 17,203, 58,187, 79,123, 58,172, 7, 62,121,144,140, 70, 18,179, 91, + 1, 26,145,237,107,167,109, 98,200, 43, 16, 14,187, 24, 44, 12, 20,153, 23,209, +202,141, 33,116, 49,142,147,109, 65,108, 22,218,204,191,178,166,154,179, 57,135, +146,218,175,164,152,105,168, 62,193,254,167, 12,113,215,191, 47,237, 6, 29,124, +104,177,161, 73,251, 27,180, 68,236,173,152,200,190,147, 6,103,166, 55,206,125, + 59, 58, 98,177,156, 15, 43, 22,179, 22,195,214,180,145, 21, 36, 57,186, 18,130, +105,144,232, 5,144, 71,180,106,195,249,192,199,225, 23, 30,118,243,189, 84, 55, +185,194,207, 2,235,242,153,194,254,211,252,184, 19,189,178, 67,174,151,213, 82, +170,196,171, 8, 34, 39,187, 8,221,124,175, 4,144,151,154,202, 24, 94,121,121, +152,159,237,198,212, 48,157,152,143, 85,106,212, 49, 69,121,233,111,213,205,211, +140, 96,111, 83, 33,125,207,194,107, 31,112,100,173,131, 81,219, 9, 6, 74, 98, + 4,181, 24,163, 45, 26, 65, 87,200,231,230, 54,198,240,249,139, 15,239, 82,205, + 65,125, 50,193,210,168, 69,214,222, 20,156, 74,142,163, 12,205, 54,131,127,117, +170, 50,152,160,242,217,163,154,227,162, 39,137, 19, 96,191,243,207, 42, 13,175, +120, } ; -// ../Source/Template/GB_emult_08bcd.c: -uint8_t GB_JITpackage_105 [880] = { - 40,181, 47,253, 96,167, 17, 53, 27, 0, 70,165,113, 40,208,178, 76, 7,170, 74, - 60, 27,241,138, 66, 80,142,246, 52,176,161,226,149, 76,119, 83,164,160,213,152, -138,113, 25,152, 81,162,242, 5,190,120,144,165,230, 5,106, 0,100, 0,102, 0, - 91,102,154, 33,157, 90,107,166, 9, 5, 8,201, 54, 53,192, 25,206,205,195,202, - 93,244,230, 93,183,143, 4, 21, 74,101, 58, 24,160, 84, 46,105,209, 99,216, 26, - 82,225,146,125, 7, 87, 61, 79,115, 30,175,213, 48,247, 73,112,225,114,205,218, -159, 11, 2,231,215,193, 77,102, 8,202, 47,124,215,201, 79, 80,158,191, 81,249, -184,143,213, 49, 44, 32, 89,170,250,101,211, 50, 11, 5,171,221,199, 51, 49, 94, -248,100, 2, 77,147, 73, 7,183,115,218,199,243,176, 47, 97,196, 75,180,217, 5, - 94, 33,120,194, 61, 40,134,140,222,105,102,204,165,131,128, 96, 97, 99, 27,157, -179,177,174,107,207, 85, 47,147,192, 89,101,247,134, 71,139,100,249,197, 19, 73, -126,190,128,228,123,234, 85, 70, 40, 61,247,232,227,169, 87,191, 72, 91,212, 98, - 22, 89, 54,143,171,179,225,255, 15, 65, 31, 16, 69, 82,153, 38,167,201,111,127, - 1,103,119,186,210, 25,153,206,220, 40,230,125,234, 22, 85, 37, 85,213, 55,195, -110, 98, 30,137,104, 31, 56, 69,221,186,150, 1, 2,179, 80, 48,142, 38,162,193, - 2,224, 61,213,209,171,127, 72, 49,198,222,199,142,206, 80,109,214,186, 48,138, -205, 58,100,120,163,159,206,243,178,129, 79,251,157, 58,248,209,126,119,199,130, -191,138, 55,159,122,191, 98, 5, 6,149,246, 71, 36,178,209,137, 33,156,191, 99, - 30, 29,244, 58,124, 42,185, 26, 16, 20,194,204,203,219,141, 57,191,122,244,245, -147, 61,172, 97,115,204,229,110,222,128,128,232,179,107,110,163,227,157, 74, 45, -252,244,116,157, 64, 57,105,119, 29,181,185,250,250,241,178,221,152,153,119,119, -119, 89,147,217,161, 10, 20, 18,137, 84, 95,167, 55, 58, 1, 30,251,177,170,162, - 67, 60, 88, 87, 70,194, 98,206,162,179,199,177,143, 28,107, 1,163,101,244,181, - 54,171,169, 44,133,135, 43,128,180,160, 65, 69,198,148,136,136, 36, 41, 73, 74, -195, 1, 80,132,204,144, 21,113, 3,121, 64,149,237, 92,181, 82,245,164,138,237, - 81,102,209,164, 30, 62, 73,237,124, 79, 40, 16,188,200, 58,206,109,239, 48, 2, -184, 72,128, 20,245,248,102, 97,148,124,214, 47,229,193, 53, 86,149,107, 11, 5, -252,237,133, 12, 22, 25,162,254,239,231,177, 50, 22, 89, 24,243,174,133, 16,105, -161, 17,141,146, 28,195, 10,121,149, 91,176, 81,175, 66, 57, 27, 66, 33,135, 63, -226,178,186,241, 9,222, 54, 0,110, 60, 56,193, 12, 21, 44, 5,168, 65,138, 19, -172,241, 4,137, 64,197, 36,108, 1, 24, 32,233, 8, 9, 49,203,160, 11, 80, 40, - 6,119, 99,244,251,150, 98, 33,119,201,143, 33, 54, 30,143,244, 60,138,217,208, -253,130, 90, 33, 19, 28, 50,208,195, 22, 24, 1,241, 96,112,102,176,180, 73,186, -117,219,156, 79, 69, 13, 15, 31,122,161,190, 7,180, 70, 70,203,218, 12,106, 65, -105, 26, 81, 25, 86,224, 9,130, 88, 35,232, 87,227, 42,143, 95,230,109,229, 1, -133,180,211,217,244,192, 58,109,234,160, 99,205, 98, 53, 46,169,176,210, 51, 8, - 30, 42,158,140, 83, 55,174,123, 75,184,216, 45,153,215, 89,160, 42, 10,196,151, -209, 68, 64, 27,155,220,161, 55,138,173, 21,251, 69,101,246, 69, 96,235, 76, 86, - 44,230,112,182, 26,220,202,114,124,251, 32, 64,130,194, 9, 20, 18, 28,133,135, -181,129, 5,246, 99, 36, 45, 1,113,172,231,217,214, 7,246, 5,182, 94,255,200, -178,179, 62,147, 29,228, 13,127,228,248, 79,176,164, 73, 33,101,161,217, 34,173, -107, 79,195, 28,250, 19, 69,251,160,215, 97, 30,110, 60, 42,102,176, 66, 13, 97, -140,195, 14, 76,184,156, 26, 49,107,202,191,194,196,137,231, 84, 44, 16, 93,161, - 28,164,104,208,236,252,193,116,171,212,136, 17, 7, 70, 59,196,168, 42,122,199, - +// ../Source/Template/GB_AxB_saxpy3_coarseHash_phase5.c: +uint8_t GB_JITpackage_90 [1108] = { + 40,181, 47,253, 96, 83, 12, 85, 34, 0, 22, 47,144, 40,192,146,117, 14,106, 70, +132, 54, 47,219, 91, 52,121,126,214,134,106,191,157, 47,140,179,202,186, 5, 50, + 64,149,157,232,120, 7,127,114, 93, 69, 65,144, 13,102,136, 0,132, 0,134, 0, +220, 92, 49,149,119,103, 75,254, 63,138, 58, 34,130,136, 1,132,118,218,180,241, +146,144, 50,199, 93,233,134,129,208, 91,169,198, 25,200, 68, 37, 34,178,209,140, +144, 94,186,249,237,238,130, 55,255,190,248,234,192,128,192, 0,178, 80, 64, 96, +240, 73,147, 94, 93,206,152,149, 71,226, 67, 93,131, 24,156,189,226,196, 12,165, +179, 51,116,144, 88, 14,109, 6,113,162,132,191,218,192,174, 41,198,187, 63, 4, +185, 83, 4,162,117, 93,146, 64,239,236,172,236,238,188,208, 27, 78, 80,147, 7, + 33,187, 49,175,164,108, 68, 73,113,248,192, 64, 4, 25, 24, 8, 93,246, 97,249, +192,137,152,124,184, 44,151,139,163, 27,199, 0, 18,137,242,166, 23, 31, 73,145, +153,197, 1,220, 14,246, 47, 42,119, 13,214,201, 41,168,114, 87, 80,251, 68,112, + 75, 58, 7,185, 69, 1,197, 81, 63,218,228, 22,158, 87,113,123, 93, 54,234,152, + 40,106,126, 13,147,247, 13,153,243,110,221,243,222, 18, 65,161, 43, 75,211,167, + 98,233,122,215,172,241, 75,184, 87,124,107,163,108, 65,154, 6, 86,208, 37, 28, +119,223,234,188,133,117,238, 77, 51, 17, 14,188, 23, 78,140, 55,220, 34, 18,137, + 84,156,187,188, 10,125,223, 12,159,156,162,162,232, 99,114,139, 6,130, 66,163, +145, 26,203, 69, 66,126,228, 37, 45, 89, 39, 2,131,168, 60,137, 34, 48,121,241, +214, 21,189, 99, 10,169, 13,117,247,240,176, 87, 94,150, 81,122, 64,192, 11, 60, + 93,169, 61,189, 31,229,120,171,116,242, 14,103, 95,137,217, 83,247, 96,183, 90, + 99, 26, 10,188, 37, 67,223, 25,130, 90, 3,133,125, 57,126, 21,130,173,209,140, +211,174, 61, 31, 44, 19, 55,157,236,234,108, 50,142,172,104,162,140,136, 88,134, +161, 72, 14, 6,195,190, 15,196, 65, 56,134,220,219,137,209,236,249,229, 99,199, + 56, 13, 81, 5, 1, 92, 7,187,242, 67,218,245,156, 92,122,197,178,177, 92,178, +232,144,109, 32, 56, 20,117,217,171, 45,204, 70,130,223, 96,125,244,225,121,166, +126, 37,221,146,197, 74, 68, 71, 78, 76,222,183,168,141, 75,229,135,182, 73,195, +111,158,207, 28, 10,187,210,207, 83,249,252,105, 98,233, 23, 78,188,112,103, 58, + 88,200,243,141,182, 70, 27, 12, 45,199,183,236, 85,144,155, 55, 79,163,157,198, + 82,100,143, 99, 67,180,209, 90, 30,111,122, 50,122,223,160, 91,229,201, 39, 44, + 21,141, 87,167,118,101,195, 41, 54,128,229,168,145, 33, 99,102,136, 2, 17, 73, + 65, 82,144, 66, 99, 48,132, 16,195, 84, 89, 55,226,152, 64,134, 81,145, 0, 9, +164, 49,198, 9,142, 4, 18,208,200, 4,105, 73, 65,161,102, 3,236,144, 1, 86, +197, 67,199, 79,110, 20,102,230,197,124,218,177, 67, 0,252,249, 60, 16,193,193, + 45,115, 49, 81,155,180, 97,143,155,121, 64, 70, 53, 9, 16,214,110,196, 23, 4, +138, 5,129,225,213,184, 28, 56,177,158,254, 93,104, 7, 73,119, 48,104,104, 62, +241,241, 19, 29,204,209, 57,230,116, 46, 16, 46, 28,253,211,247,237, 38, 84, 8, +135,240, 47, 10,111, 41,135, 0,229,208, 39,118,114,111,138, 57,208,153, 86, 3, +248, 42,178,133, 12,255, 15, 78, 4,147, 60, 85,215,221, 23, 60, 74,230, 21,147, +113, 78,216,154,123,103,136,101, 32,170,190,224,206, 4,144, 48, 30,245, 83,126, +171,179, 54, 73, 7,140,123,228, 38, 30,165,240,133,145,207, 62,165,216,229,254, +112,249,144, 33, 54,249,203, 95, 51, 68, 48,212,140,211, 44,137,144,181, 43,175, + 96, 91,161,127, 64,176, 15, 10,124,196,155, 66,186,158, 65, 56,217,226, 28, 80, + 54,227, 35,125, 59, 95,124,164, 99,103, 64,102, 64,133, 28,237,237, 22,255,210, + 4,186, 34, 20, 33,113,136, 69, 53, 54, 2,172, 10, 3,186,103,173, 37,240, 32, +185,229, 56,139,177, 26,138, 89,118, 78,144,174, 61, 50, 79,123,203,183, 99,212, + 93, 95,169,133,113,231, 48, 9, 46,241, 4, 96,109,125, 99,237, 3, 79, 58, 19, + 39, 11, 34,208, 16,118,137,105,194,151, 13,111,109,164,159,119,148,142, 36, 61, + 35,110,158,232,193, 66, 0,142,106, 48,249,118,143,231, 88,129, 22, 74, 64,182, + 3,104,239, 37,148,117,118, 59, 76, 44,230, 1,206,231, 74,113, 35,200,249,222, + 67, 99,112, 27,119, 25, 70,194, 89,151,225,162, 47, 13,210,122,127,199,123,189, +199,253, 80,115, 85,155, 62, 6, 62,237,169,232,120,132, 87,199,235, 33, 33,221, + 81, 32,226,188,141, 29,204,217,126,200, 57,162,204, 66, 79, 3, 20, 54, 42, 72, +156, 61, 59, 90, 32, 50,172,172, 81,209, 17, 2,148, 91,120,150,166, 10,138,232, +166, 77,227, 3,123, 5,124, 97,233,185,246, 60,111,236, 98,248,185, 22, 76, 70, + 81,192,228,120,216, 7,205,246, 15, 38,174,114,234, 79, 41,187,167,191,147,141, + 80,179, 28, 60,164,122, 0, 77, } ; -// ../Source/Template/GB_emult_08e.c: -uint8_t GB_JITpackage_106 [1262] = { - 40,181, 47,253, 96,243, 17, 37, 39, 0,214,118,162, 40,208,178, 58, 7,202,149, - 12,193, 35,114,204,232,169,106,199, 92,164,205,145, 83, 39, 52, 96, 95,254, 61, - 51,125,219,176, 6, 62, 98, 93, 70,169, 7, 94,160,148,152, 0,147, 0,151, 0, -249, 54,215,209,167,242,252,132,214,123,168,206,247,198,252, 94, 39,119, 25,115, -237, 79,131,247, 99,185,103, 91,143,233,177,191,218, 34, 74,101,145,244,199,205, - 27,127, 9,155,122, 52,215,238, 52,146,198,181, 57,186,145, 80, 48, 68, 84, 93, -111,132,141,155,115,156, 63, 12,202, 57, 8,198, 83, 3, 22,138, 69, 98, 80,161, - 88, 62,113,210, 41, 76, 55, 38,195,171,248,208,151,237,135,118, 78,101,113, 35, -191, 59,195,134, 75,214,153,130,178, 40,236, 27,250, 38,141,195,121,241, 59,156, -199,222,213,249,235,181, 63,142, 75,129, 42, 90, 10, 88,194,245, 75, 31, 80,180, - 12,130, 62,173,201,134, 79, 38,145,100, 50, 9, 28,167, 46, 42,146,170,170,176, -107,241, 14,140,162,216,171, 61,238, 60,195,190,246,127,252,135, 7,207,172,117, -165,158,116,175,171,173, 97, 94,145,220, 58,118,159, 53,130,130, 92,233,148, 65, - 93, 36,236,185, 49, 48,147,148, 7, 1,209, 48,213,162,244, 14, 39,147,101, 50, - 62,236,170,155,157,113,165,159, 46, 44, 21,138, 69,227,249, 93, 77, 58, 56, 70, -165, 24,116, 12,125,238, 80,135, 19,225,120,128, 82,249, 65, 16,228, 89, 16,238, -252,100,186, 77, 7,191,124,164, 95, 94,160,122,252,175,135,246,151,169,165,131, -206,126,185,177,255,127, 20,125, 68, 17,166,239,106,159,241,108,240,121, 62, 30, -107,193,123, 56, 10,210,120, 83,199,244,177,113,237,110,118, 21,100,189, 25, 49, -111, 80,165,185, 90,238, 19,192,212, 30, 20,127, 58, 58, 89,188, 48, 45,131,126, - 14, 90,187,221, 83, 84, 67, 47, 35,141, 68, 18, 48,151,142,177, 13,185,249, 76, - 67, 42,145,169, 54,184,113,138,186,152, 20, 33, 27, 40, 23, 30,139, 95,158,241, -133, 79,150,102,179,118, 73,158,205, 70,226, 33,180,167,166,208,181,220, 57, 44, - 8,206, 15,127, 74,199,243,253,153,248,250,176, 91,214,191,203,211, 24,236, 16, -204, 47, 58,106,241,140,233,166,115, 11,187,161,205, 92,111,188,191,124,207, 62, - 55,222, 64,248, 19,211,127, 28,253, 2, 81, 20,210,218,117,175,107,241,104,192, - 41,122,234,186,164, 71, 64,100, 50,205, 68, 70,202,205,118,196, 83,157, 76, 3, -134, 78,233, 49,195,137,155, 43,195, 16, 65,100, 26,175,187,138, 57,189,245,139, -235, 90,156, 94,152, 71, 34, 30, 53,131,123, 37,147, 69,135,136,206, 70, 2,203, - 4,252,214, 47,233,114,219,182, 83, 82,202, 77, 74, 41,165,203, 77, 90,151, 87, -102,174, 67,218,201,109,147, 19,189,101, 73,143, 20, 69,227,239,112,113, 98, 38, -211, 42, 56,241, 65, 35, 43,151,132,119,126, 92, 56, 27, 63, 20,206, 74,183,137, -218,162,244,168,201,140, 67,234,105,145, 94,114,250,200,115, 56, 51,214,172,199, - 11, 10,129, 11,168, 49, 61, 99, 74, 70, 68, 36, 72, 10, 10,146, 66, 58,161, 12, - 49,200,121,233,212, 3,210,112,100, 16,135, 16,133, 16,101, 68, 64, 8, 34, 34, -145, 72, 32, 18,137, 68, 34, 34, 35,217, 6, 20, 8,235,228, 78, 84, 67,213,111, -105,176,231,121, 83,120,136,179,192,131,241,191, 84, 28, 75, 24,243,210, 34, 56, -120, 35,214, 8, 49,218,150,155,133, 82,185,206, 30,211,128, 87,156,245,177, 94, - 40,146,251,150,192,107,142,208,128,249,215, 41,227, 9, 27,228,183, 49, 72, 59, - 97,127,153,218, 24,142,221,116, 29,118, 38,106, 22, 2, 43,239,205,235, 94,164, - 35, 10,159,211,126,114,148,200, 64,186,253,234,124, 64, 85, 37,223, 15,168, 20, - 70,125, 44,141, 20,165,175,205, 2,113,158, 56, 20,159,254,200,202,164, 44,237, - 82, 23,224,125, 43, 43,216, 82,194, 40,214,189, 95, 87,116,189, 16, 6,245,205, -181,147,136, 36,205, 41,173, 76,211,198,124, 72, 35,103,198,168, 27,149, 43,211, - 72,189, 2,131,119,150,191,214,191,220, 3,239, 4,174,183, 40,186,193,229,226, -206,173, 78,158, 95,159,118,147, 94,134,202, 59, 6,159,205,103,126, 55,255, 41, -252, 27, 21, 15,120,127,167,251, 26, 11, 34, 23, 35, 4, 8,191,129, 0,207,158, -209, 3,249, 36,252, 24,211,188,219,217,106, 66, 91,182,129, 54,226,226,236, 94, - 6, 56,109,120, 64, 70,121, 28,176, 18, 63, 52, 78,176,208, 33, 81, 85, 37, 0, - 55,245,162,207,160,128,122, 0,219,141,230,157, 80,236,190,109,173,203, 98,218, -133,167, 51,218,209,145, 7,121,141,214,222, 92,196,141,134,234,218, 70, 58,176, - 9,141,144, 75,208, 39,179,208,239, 66,154, 90, 86,147,238, 6, 98,246, 73,203, -238,199,103,230,190, 92,124,190,175,101, 76,114,194,248,154,230,221, 89,184,108, - 65, 53,122,194, 32, 56,116, 8,241,126, 98,162, 17, 55,232,179,141,132,252,109, - 58,240,120, 24,116, 46,183,241,197, 56, 42,183, 43, 34, 14, 41, 1,130,221,190, -145, 73,109,124, 48, 18, 27,174,145,117, 46,145,155,233,237, 90,115,207,196,104, -112,236, 60, 34,108,196, 89, 6,207, 65, 48, 96, 95,192, 77, 23, 69,189,109,235, - 42,112, 51, 55,138, 15, 46, 94, 64,176, 53,236,101,222,123,136,150, 73,179,163, -188,181, 36,118,225, 89,153, 64,105,166, 31,179, 21,138,254, 66,226,164,172,238, -164,213,110, 66,191, 59,203,232,131,199, 57,212, 22,167,212,158,188, 71,194,207, - 22,108, 45,123, 88,193,132, 26,161,107,135,188, 38,146, 36,125,170,233,103, 32, -249,252, 24, 57, 65, 30,241,228, 42,247,138, 10,142,222,223,195,173, 39,144, 13, -144,182,157,243,219,164,233, 84, 48,117, 85,227, 56,168,130,122,131, 65,117,103, -137, 1, +// ../Source/Template/GB_AxB_saxpy3_fineGus_M_phase2.c: +uint8_t GB_JITpackage_91 [1109] = { + 40,181, 47,253, 96,118, 18, 93, 34, 0,182, 46,142, 31,208,222,230, 64,230,110, +101,118,245,179,101,232,203, 13, 91,178,176,101,172, 13,162, 10,144,210, 44,245, + 48,126, 24, 80, 2,136, 0,128, 0,133, 0, 3,204, 15, 36,166,249,255,127, 0, + 96, 7, 88, 36, 26,136, 30, 99,212,252, 46, 57,187,138, 53,219, 14, 59,136,198, +182, 99, 21,132, 80,101, 72,137,176,109,103,227, 46, 29,231, 81, 86, 75, 47,203, +239, 7, 71, 99,209, 64, 64, 24,139,198, 9,177,193, 15,184,218,104,230,137,239, +185, 49, 95, 90, 61,253, 96,250, 64,151,209,164,231, 70,210,248,164,166,169,115, +173,153, 0, 63,216,139,109, 52,255,135, 75,225,171, 88, 66, 20,204, 37,141,198, +116, 52,193, 16,136,107,155,182, 85, 4, 29, 57, 19, 71, 49,120,193,125,224,101, +115,133, 2,128, 80, 40, 2,162, 14, 56, 35,193,203,119,183, 52,134, 9, 6, 67, +104, 27,164,252, 98,126,242,129,173,207,152,150, 15, 45,157,156,240, 96, 12,174, +217,136,190, 18,248,220,178, 79, 62, 59,105, 54,245,183,107, 63,177,181,134,163, +209,180,154,159,241, 89,197,159, 87,196,175,100,236,150, 14,198,226,208,231,181, +178,250,155, 23,128, 4,163, 98,235,219,222,240,182, 27,246, 92, 72,251, 44,233, + 47, 57,227, 22,196, 23,137, 69,229,188,207,182,113,159,230,243,181,175,131,208, +197,250,197,113,253,171,182, 46,114, 66, 20,194,236, 32, 9,207,157,217, 54,140, +158,178, 23, 42, 23, 51,159,166, 52,185,248, 12, 70,178,173, 7,184,238,249,116, + 24, 8,239,152,155,118, 92, 27,215, 44,141, 29,215,165, 73,187,177,119, 9,171, +221,240, 61,230,206,245,188, 61, 86,105, 55,211,143,185,222,142,195,122,237,165, +189, 64, 32,191, 87, 12,152,107, 78,157, 82, 10,196,116, 66,163,211,199, 1, 89, + 2,193, 51,157,145,104, 20, 2, 87,162, 15, 52,117,196, 26,168,192, 38,239,154, +173,217,222,216, 9,139, 87, 42,215, 89,146, 14, 46, 86,242, 35,193,143, 20,239, +201,227, 58,180, 85,165,201, 4, 0, 64, 15, 32,118,104,107,147, 19,198,216, 73, + 27,131,185,147,218, 10, 3,207, 43,130,228, 5,191, 65,105, 36,250, 48, 38,177, +134,182,103,235,241, 73,219, 52,233,173,237, 79, 96, 52,126,222, 51, 42,226,113, +110,217,207,182,183,219,101, 29,111,239, 17, 28, 63, 28,196,193, 35, 39, 81, 7, +212,148, 80, 39,210,135,233, 57,118,146,220, 13,111, 56,233,133,134, 63,215,119, +166,161, 89,251, 4, 19, 6,154,211,151, 33,161,190, 59,123,204,247,101, 73, 27, +151,157,113,156,252,171, 56, 32,171,240,103,178,130, 80,161,198,121,188,139,138, + 66,128,220,168,161,165, 82, 76, 68, 68, 70, 65,146,164, 80,104, 12, 64,132, 16, + 33,179,177, 14,242, 88, 34,163,105,196,104,196, 16,102, 4, 68, 96, 4,132, 8, +138, 72,100,161,132, 34,129,144,109, 3,166, 56, 73, 74,122,221, 68, 74,140, 78, + 19,232,113,174,147,142,234, 88,159,228, 65,193, 41, 91,175, 27,239,107, 96,190, +120,243,114,189, 55,113,160,242,251, 32,177,236, 22,231, 51,208,189,159,237,152, + 43,200, 55,209,181,181, 60, 14,166, 82, 21, 71, 7, 7,225, 9, 44, 98, 8, 88, + 66, 14, 69, 94,196,204, 82,178,225,176,236,228,242,155,229,151,110,142,208,115, + 5,117,250, 55, 94,228,120, 17,135, 32, 19,129,247, 63,182, 73, 96, 79,176, 36, + 91, 20,161, 70, 54,219,204,158,202,161, 80,137, 51, 74, 36, 3, 81,198,241,160, +107,133, 90, 89, 69,168,116, 70,247,118, 73, 27,234, 74,165,174, 52, 38,166, 11, + 95,186,151,231, 49, 52,195, 14,154, 9,233, 30,238, 1,154, 92,232,192,205, 43, +142, 96,120,169,168, 84, 43, 97,153,134,149,105,150,246, 56, 18, 2, 74, 6, 41, +104, 67, 1,126, 58, 64, 80, 60,180, 23, 96,135,254,192,218,235,217, 45, 71,143, +206,159,206,240,143,243,120, 6,181, 9,210, 99,205,184,226, 26, 13,106,216,108, +139, 3, 38, 27, 61,101,127,112, 0,140, 23,139,113,173,223,144,132,160, 97,235, +150, 26,160, 98,194, 58,220, 17,238, 69,126, 39,183,139,192,139,206, 26,251,190, +180, 46,108,218,160, 14, 97,205,202,206,231, 73,190,101,179, 20, 23, 33,194, 59, +142, 69,141,108,208, 32,171, 49,240, 53,183, 70, 21,164,114,160, 13,127,131, 17, + 97, 79, 33, 99, 6,215,110,165,198, 44, 41, 81,169,124,193,210, 65,167,138, 31, + 39, 25,142, 3,184,215, 34,143, 42,243, 2, 51,176,162, 56,200,154,218,248,217, + 11,208, 33, 70, 15, 50,164,233,137, 1, 24,214,132,241,144,234, 97,140,161, 48, + 98,251,139, 43, 6,185,207, 11, 64,139,191,187,118,242, 80, 45,156,127, 53,117, + 27,184,193,212,141, 51,131, 88, 75, 0,211,105,210,137,203,166, 82, 83, 96,174, +223, 86,117, 68, 71, 59, 2, 4,117, 3, 12, 73,252, 10,248,150, 74,158, 54,211, +103,145,229,160, 59, 85,148,236, 24,201,120, 72,197,206, 17,102, 16, 52,128, 76, +118, 70,231, 20, 19, 75, 78, 1, 26, 52,157,159,153, 6, 51,195, 57,198,125, 46, +137,129,151,218,175,170,186,187,119, } ; -// ../Source/Template/GB_emult_08fgh.c: -uint8_t GB_JITpackage_107 [1042] = { - 40,181, 47,253, 96,138, 23, 69, 32, 0,118,106,128, 40,192,208,108, 14,250, 15, -102,178, 22, 0, 46,115,129, 27,201,246,137, 6,220, 83, 23, 35,141, 23, 77, 70, -115,173,179,168, 11,132, 43, 96,154, 4,129, 52,201, 65,123, 0,112, 0,117, 0, - 34,253,110,107, 87, 84,153, 88, 36,181,243, 80,145,143, 25,107,115,125,193,186, -105, 36,213,130,213,211, 27, 73,132,130,195,100,171, 22, 99,181,149,115,123,187, - 79,115,238,121,124, 57, 96,169, 88, 36, 6, 2, 21,203, 39,143,116,105,219,130, - 42,124,194,207,232,110,248,117,231, 18,227,205,236, 68, 58,102, 48, 88,189, 29, -194,162,177,138, 25, 29,165,218,145,138,246,182, 95, 29,172,221,197, 39,100,194, - 84,194, 21,128, 80, 29,211,125,184, 75, 37,187, 94,232,171,217,204,156, 66,137, - 36, 20, 74,151,162,235,114, 30,164,221,253,184,189,243,132,190, 79, 32,137,145, - 88, 59,228,150,129, 39, 92, 3, 4, 81,233, 28, 88, 61,139, 67, 14, 58,245, 59, -210,107,179, 75,252,205, 8, 10, 46,216,115, 30,124, 58, 7, 71,102, 59, 99,233, - 29,142,133, 97,255,116, 57,230,147,254,207, 67, 38,231,191, 2, 8, 17,170,143, -181,187, 93,185,203,143,225, 49, 19, 39, 93, 42, 91,216,221,122,253,255,163,104, - 35,210, 94, 71,250,249, 13,164,231,127,226,121, 33,142, 18,145,136,231, 2,167, -168, 91, 24, 47, 56,100,151, 74,214,217, 60, 92, 86,192,228, 83,127,245, 13, 41, - 89,188,108,190,108,233, 11, 21,135, 45, 44,147,224, 48,131,102,110, 96, 40,228, - 4, 46,225, 17,236,119,115, 0,147,248,133,158,172,194,210,107,170, 26,109,191, - 75,140, 14,198, 85,230,143,199,167, 75,188,212, 46,233, 87, 54,103,230,212, 65, -253,221, 11, 67,173, 31,161, 14,146, 45, 93,191,245, 67, 49,197,137,247, 60,245, -126, 36,178,129, 53,155,226, 17, 62,197, 31, 4, 81,212, 49,185, 91,154, 60,185, -155,197,249, 27,130,191, 33,237,246,218,198,168,231,207,238,201,143,135,244,234, -117,119,193,133, 7,169,199,190,126,125, 37, 35,173, 96,123,245,163,246, 55, 20, -106,220,205, 57, 39, 51, 51,243,252, 80, 45,178, 68, 81, 71, 36, 82,137, 92, 7, - 92,246,101, 85, 73,119,104,176, 48, 13,132, 53,167, 38,125,134, 24,124,217,177, - 50,160,166,210,217,226,240,166,178, 20, 26, 48, 13, 87, 55,144, 58, 69, 85, 85, -149, 88,173, 87, 15, 30,128,223,168, 81, 65, 67, 36, 34, 34, 34, 82,144,164, 32, - 25, 14,112, 68,100,136,140,230, 1,130,152, 76,200, 50, 8,134, 80, 12,103,132, - 72,160,140, 49, 2,137, 17, 17, 9, 70,100, 68,210,169,198, 37,176,133,203, 3, -168,192, 70,245,101,183,237,240, 3, 98,166,207,222,232,215, 11,207,213, 91,121, -122, 27,175,220, 29, 56,153,116,130,201,250,195, 55,199, 81,214, 60, 57,145,177, - 24, 39, 64,210,134, 45,252,228,213, 51,129,148, 76, 38,140,235, 91,205, 71, 37, - 68, 82,155, 96, 25,182,244, 75, 49, 96,173, 92, 48,165,169,218,224, 58, 48,184, - 35,234, 47,146, 33,176,146,218, 9, 4,209, 99,182,129, 50, 29, 33,141,115, 54, - 59, 55,240, 77,213, 65, 99,228, 42,184, 42, 60,251,175, 55,220,210,196,138, 70, -213, 75,104, 45,116, 47,147,205, 7,213,107, 28,180,191,228,187,171, 25,161,210, - 0,239,251, 1,128, 39, 8, 49,196,146, 69,195,184,133,207,109,147,127,166,165, -128,133,213, 13,140, 56,223, 72, 41, 10, 44,195, 73,211,207, 86, 59,207,211,203, - 18, 38, 35, 28, 84, 24, 57,125, 89, 75,108,103,146,113,172,122,129, 4,230, 61, -212,149, 34,150,119, 75,223,222,122,215,122,167,178,104, 0, 57, 96,127,254, 41, - 25,111, 31,144,217,197,214, 84,133,218,187,230, 6, 88,178,199, 21,127, 90,216, -226, 49, 52,173,147, 27,176,253,122,223,151, 13,168,189, 70, 20,106, 3, 48,162, - 79, 18,135,129, 10, 54,111, 37,204, 17,251, 81, 87, 9,214, 38, 16, 60,246,197, -222,206,186,153,150, 95, 52,133,132, 68,122,234, 49,224,112,115, 56,180, 33, 37, -231, 84,192, 70, 83,164, 80, 77, 68, 34, 80,119,177, 72, 69,165, 76,104, 81,141, -160, 89,160,196,176,178, 3,117,233,103,190, 71, 23,210,184,246,206, 17, 81,235, - 66, 64, 59, 18, 25, 18, 3, 80,214, 31,177,117, 4,160,155,169,214,198,214, 68, -202,230, 83,131,228, 59, 58,201,126,230,182,198,145,251, 50,236, 61,185,213,211, - 17, 40, 11,170, 22,173,157, 82,120, 8,159, 11,222, 60, 59, 39, 60,241, 95, 33, - 2,155,209,202,147,166,120, 59,208, 98,137,177, 44,211, 60,212,243,131,174,134, - 17,112,161,244, 71,106, 10, 28, 68, 66,118,246, 82, 64, 32, 35,199,167, 98,217, -211, 59,154, 68,230, 77,243,254,193, 4,175, 84,145,162,168, 48, 79, 92, 74,133, -211, 9, +// ../Source/Template/GB_AxB_saxpy3_fineGus_notM_phase2.c: +uint8_t GB_JITpackage_92 [1115] = { + 40,181, 47,253, 96, 59, 14,141, 34, 0,150,109,137, 32,208, 92,117, 24, 45,246, +229,188,175,207, 65,236,108,250, 50, 22,173,229, 53,197,169, 75,106, 72,239, 69, +174,102,240,131, 89, 2,132, 0,123, 0,128, 0,255,255, 3, 0, 54, 64,151,240, + 16,125,170,200,151,248, 47,237,106,214,108,187,204, 32, 26,219, 86, 85, 13,130, + 84,241, 36,202,142,165,141,251,115,156,207, 85,253, 28, 69,197,115, 12,175,243, + 16,143, 69,231,189,160, 34,156,195, 53, 70, 86,158, 16, 79, 59,243,117,213,208, + 57,144,168,153,156, 47, 50,189,124,141, 83,242, 5,234, 92, 97, 32,192, 57,123, +113,140,204, 63, 55, 49,136,161,100, 19,136, 80,254,121,141,201,243, 53,110,242, +181, 35,134, 93,218, 86,115,100,208, 94, 51, 18,143,147,153, 56, 78, 46, 87, 40, + 0, 8,133, 34,163,216, 50,239, 91,159,117,105,235,115,175,192,147, 44, 21, 78, +102,100,181,198,201, 24,178, 92,254,219,110, 73, 21,126,225,112, 40,109,143,145, + 79, 94, 7, 79,168,151, 93,123,208,194, 60,134,215,174,154,159,113, 90,205,167, +215,196,175, 45,213, 69, 25, 92,167,215,174,234,111, 94, 44, 66, 91,223,246,150, +183,221,169,211, 74,178, 83,148,252,191, 47, 46, 65,188, 75,116, 97,122,159,109, +227, 78, 95,207,215,190, 18, 54, 55,235,187,227,122, 84, 61,221,196, 20, 88,220, + 71,160,156,107, 97, 50, 7,109,203, 23,236,223,215,149, 93,118, 91, 6,225,157, +201,140, 95,222, 51,183,235,184, 54,134,205, 26,125,185,174,234,141,166, 96,183, +124,159,185,115, 77,101, 87, 85,215,205,228,207, 92,101, 47,235,181,215,245, 91, + 66,153,207,104,164,100, 54,157,144,136, 25, 77,131,193, 43,153, 14,167,179, 25, + 75, 28,113, 4,101,204, 42, 48,159, 71, 72,182,213,240,240, 89, 35,218,212,218, +170, 98, 4,124, 78,201,140,199,240,226,235,121,108, 56,178,173, 97, 10,124,195, +108,205,246,170, 94,232, 30,134,175,217, 22, 73,104,137,173, 0,192,205,194, 58, +239,233,125, 23,154,199,185, 87, 55,239,211,182,178,219,104, 61,101,103,156,227, + 32, 33,203, 71, 20,242,136, 20,240, 12,219, 71,187,229, 45,193,133, 89, 75,219, +130, 67, 37, 80,210, 92,240,204, 70, 87,182,226,139, 21,143,136,150,102,219, 41, + 50, 93,225,180,143,162,100, 99,180, 1,183, 60, 3, 95,200, 63, 9, 51,154,192, +123, 15,111, 43,152, 1, 48,188, 89, 17, 45,159,242, 99,124,222,226,152,182,178, +245,188,229,185,178, 91,152,116,253, 91,120,199,221,169,155,231, 26,134,146,177, +203, 2,128,239,168,161, 37, 83, 72, 68, 68, 68, 68,146, 36, 41, 12, 7, 48,132, + 16, 82,204,200, 60, 2,129, 44, 5, 35, 17, 81,134, 17, 47, 32, 34, 22, 72, 48, +129, 36,201, 76, 78, 65,118,161, 17,104,207,108,143,217,150,101,244, 69,195, 81, +116,121,228,213, 28, 96,102,198,157, 97,188,215, 41, 85,219, 92,221,140,195, 15, +123,118,160, 70,124, 61, 76, 80, 44, 40,247, 36, 86,211,167,212,134, 86, 56,227, + 58,233,156, 53, 24,199,199, 18, 18,113, 21,171, 52, 88, 84,243,118,126,211,220, +101, 96, 7,208, 12,136,250,116,235, 29,118, 98,184,245,166, 65,211,180, 1, 5, + 0, 66, 15,175,136, 40,174,170,176, 81, 34,105,251,145, 42,252,172,230, 2,171, + 12, 25,106,217, 96,237, 11,107, 20, 9,125, 51,237,207,114,241,114, 42,219,195, +164, 40, 28,156,194,124, 7,239,188,216,121,211,173, 32, 34,134,249,126,228,116, +116, 31,194, 97,155, 57,215, 18,133,213,200, 10,223,144, 54,168,200, 16, 11, 30, + 20,245,240,225, 96,221, 0,184, 88,168,205, 48,201,198, 41,236,232,122,127, 55, + 6, 73, 51, 2, 46,244,207, 71,185, 5,221, 97, 41,124, 24, 77,201,109, 13, 22, + 74, 7,145,114, 37,121,180, 15, 42, 75, 65, 68,127,105,158, 71,123,225, 92, 81, +216,204,183, 3,240, 43, 11,244, 60,109,165, 5,128,148,200,176,162, 84,175,122, + 32,161, 52,229, 21, 26, 20,247,146, 22, 26, 40,132, 15,162, 97,108, 47,238,208, +111,190,228,145,115, 12,222,177, 0, 69,176, 25, 57,252,216, 93,114,184, 64, 17, +221,141,249,206,249, 5,227, 44,139,185, 65, 15,162,147, 5, 51, 92,112,236,122, + 66, 79, 6, 20, 40, 61,177,250,142,193,227,134, 78,231,110, 71,205,244, 59,150, + 65, 6,240,115,245,216, 90, 3, 20, 88, 8, 15,140,207, 43,198, 32,193,251,236, +208, 68,156,174, 95,100,142, 71,133,140,225, 2,228, 55,115, 16, 88,112, 92, 96, +106, 25,229, 2,206,116,192, 5,115, 90, 40, 78,245, 34,169, 95,112, 57, 52, 51, + 23, 0,141, 62,218,176,240,208,142,142,248,186,201,194, 6,124,189, 63, 81, 38, + 49,233,128, 39, 94,221,158,235, 88, 51, 70,170,101,193, 23,132, 9,229,114, 84, + 2,251,204,245,144, 84, 38, 80,152, 85,203, 73, 43, 91,159, 1, 51,216,244, 44, +175, 86,109,244,161,101,243, 35, 60,247,158,236, 75,140,126,164,254,178, 24, 30, +108,108,204,119, 58,147, 0,169, 38,181,195,146, 51, 92, 14,154,209,159,153,198, +157,195,156, 99, 55, 27, 24, 4,247,100, 96, 82, 61,220, 49, } ; -// ../Source/Template/GB_emult_bitmap_5.c: -uint8_t GB_JITpackage_108 [637] = { - 40,181, 47,253, 96,134, 6,157, 19, 0,134, 32,100, 39,224,206,234, 24,248, 48, -200, 37,132,178, 11, 64, 89,156,115,100,135,226,231,150, 41, 46,131,209,231, 98, -230,235, 86, 12,130,177, 72, 25,204, 48, 76,243,112, 90, 0, 85, 0, 88, 0,159, - 92,117,213, 92,111, 14,194,106,222,117,242,145, 0,242,128, 52, 14, 6, 30,144, - 71, 25,124,212,246, 67, 39,159,228, 41,184,253,121,150,243,184,145,150,201, 97, -154, 41, 84,213,153,226, 77,221,214,179,129,166,125,171,174, 25,127,127,247,242, -120,109,111, 93, 50, 5, 38,249,234,214,169, 8,134,169,183,109, 7,219,157,199, -171,216,164,220,225,128, 26, 14, 71, 93,237, 58,154, 41, 62,246,190, 83, 15,130, -102,204,144, 92,179,251,251,218, 63,138,156,242,224,244,121,129,233,242,213, 45, - 42,162,125,220,174,151,255, 63, 4, 89, 64,151,127,234, 58,207,246,252,189,102, -250,121,237,210,203,127,130, 30, 19,164, 81,185,140, 98,121, 42, 87,187,217,125, -171, 86,105, 84,125,107,102, 45, 13,134, 73,102,210,106,240, 18,155,147, 2,191, - 33, 28, 95,242,234,143,177,226,102,240, 9,152, 10,167,194,209,200, 12, 54, 41, -152,132,166,251, 81,187, 21, 63,238, 76,183,198,223, 88,129,129,133, 36, 29, 65, -242,199, 43,168, 59,250,185, 25, 37,193,251,217,157,229, 67, 14,143, 50,187,233, -214,176,118, 30,173,114,153,126,116, 49, 11,106,141,214,204,109,204,243,220,231, -111,123, 16,116, 81, 73,135, 46, 36,105,224,213, 31,112,195, 59,214,102,181, 91, - 25,142, 91,187,207, 1,142, 45,248, 12,230,218, 84, 22,174, 57, 59,240,243,211, - 22,147,143,248,113, 66, 62,114, 46, 74,132,165,240,242,210, 72,139,117, 77, 56, - 22,133,203,133, 97, 54,149,173,106,119,179,140,121, 73,190,122, 20, 17, 45,188, -245, 8,199,206,132,159, 15, 8,120,132, 31, 59, 50, 98,160,161,153, 84, 70, 68, -102, 68, 36, 70, 73,161, 49, 80,132, 76,217,221, 6, 73,177, 25, 92, 31,239,100, - 80,243, 48,104, 87, 73,184,248,202,139,212,185, 81,186, 46,169, 5,128,211,120, -123, 31,176,112, 72, 17, 96,208,178,103, 84,239, 70,222, 30, 27, 56,122, 81,111, - 3,174, 29, 17, 77, 60,129, 50,179, 14, 55,213,204,183, 50, 11,110,224, 59,120, - 22, 66, 53, 95,180, 86,150, 79,244,184, 37, 28,136,227,206,233,171, 41,183,255, -166,167, 89,165, 91,158, 41,153,235,147,198, 65,248,192,138,220,168, 25, 10, 51, - 71,174,174, 13,160,201,238, 34, 45, 80,215,107,248,129, 4,147, 83, 88,169,226, - 54, 98,225, 2,162, 43, 56,198, 75, 2, 18, 72,135,134,171,214,158,122,175,115, -113,139,116, 46,131, 61, 26, 8, 96, 28,219, 24,185,172,107,129, 53, 6,188, 94, - 16, 40, 2,159,144,218, 5,169, 9, 20,226,154, 60,216,238,160,113,221,164,201, -252,204,164, 78, 97, 93,125, 98, 20,192, 18,205,197, 94,209,139, 7, +// ../Source/Template/GB_AxB_saxpy3_fineGus_phase2.c: +uint8_t GB_JITpackage_93 [1010] = { + 40,181, 47,253, 96,202, 12, 69, 31, 0,134,171,130, 32,208, 28,231, 24,149,213, +127,107,213, 29, 47, 59, 22, 38,102, 40,204, 86,201, 34,231,130, 9, 99,185, 69, +174,102,240,131, 89, 2,125, 0,116, 0,122, 0, 0, 5,162, 59, 52, 25, 82,243, +123,228,236, 58,214,108, 91,220, 28, 26,219, 14, 43,231, 96,186,128, 16, 98,199, +206,198, 29, 58,206, 36,171,134, 94,150,223, 57, 70,167,232, 14,143,133,162, 59, + 33, 28,156,195, 53, 70, 47, 71,124,167,145,249,190,234,232,156,232,227, 84, 72, +147,158,153, 72,227,147,154,162,206, 21, 38, 2,156,179, 23,199,104,254, 57,241, +146,185, 95, 63, 87, 41,124,158,229,145,174, 49, 37, 77, 16,195, 50,109,235, 8, + 50,104,230,140, 98,176, 50,251,192, 74,230,137, 4,224,144, 72, 4,174,207, 5, +126,174,241,222,245, 89,139,182, 62, 55,235,255, 37, 55, 97, 46,158, 13,216,114, +129, 21,112,132,201, 28, 96,187,165, 33, 62,193, 96, 16,109,131,147, 87,204, 75, + 62, 88, 29, 83,242,245,178,107, 47,177,176,142, 65, 19,105,159, 37,237,250, 85, +243, 51, 62,235,248,243,142,183,221,248,245, 99, 61,231, 10,111,249,155, 31, 57, +227,148,195, 21, 8,197,105,101, 73,107,174,182, 30,215,171,106,234,163,134,208, +226, 34, 3,203, 57, 23,166,249,255,127, 0,192, 22,103,182,189,162,167,247,241, +242, 97, 66,184, 54,134, 61, 95,251, 89,151,230,235,134,239,114, 5,187,226,155, +204,157,235, 41,123, 88, 95, 55,211,147,185,202,142,197,122,237,125,253,158,225, + 21, 51,218,132, 74,160,101,211,249,140, 62, 13,136, 18, 8,126,217,124, 60,159, + 14,120,242,124,160,104, 51,214,192, 8,201,182,112,239,153, 67,234,212,193, 87, + 93,245,155, 72,158, 79,154, 49,232,253, 51,159,193,134, 35,219,234,173, 36,111, +152,173,217,222,240, 4,197, 61,239, 53,235,162,131,143, 53, 0,192,205,194, 18, + 44, 90,142,157,173,199, 39,109,211,164,178,182,239,126,222, 43,188,241,248,108, + 43,187, 93, 86, 82,246, 27,227, 28, 55, 14, 14, 25, 97, 66,164, 17,232,179,220, + 24,247,108, 17, 92,199, 42,218,190,221,198, 53,236,204, 8,218, 88,197,155,197, +110,251,235,249, 17,150,107,187, 18, 45, 61, 71,232, 60,111, 28, 60,219,198,125, +154,199,245,187,128, 72,103,147,249,190, 44, 27,151,157,239,205, 36, 39,228,223, +164, 1, 81, 98,103, 42,154,176,187,194, 38,195,110,164, 5,128,205,168,145, 41, + 82,104,100, 70, 68, 36, 5, 73, 82,104, 12, 64,132,144,169, 42,235, 6,226,184, + 20,201,116, 8,130,132, 16, 49, 32,193,148, 68,150, 36, 42, 40, 35, 41,213, 1, +217,181, 19,214,153,109, 5,118, 82,142,199,250,178,144, 69, 63,121,147,243,147, + 67, 48,231,187,113, 67,175,114, 76, 65,147,183,117,101, 51, 99, 84,141, 22,116, + 33, 94, 77, 13,218,158, 66,159,243, 94,137, 6, 6,253, 37,185,234,236, 17,226, +157, 57,187,166,178,235, 68,253, 87,104, 45, 76, 32,122,216,234,211, 5,246, 14, + 42, 57, 1,113,193,229, 62, 56,162,154,130, 14,127,171,195,186,131,184,187, 24, +210, 42, 35, 29,155,159, 77,200, 52, 56,150, 18, 88,107, 42,249, 6,107, 85, 97, +122,177,173,178, 56, 32,171,106,184, 7,163,138, 85, 76,144, 38,235, 60,236, 40, + 2,161,171,200, 74, 72,172, 58,187,179, 80, 63,238,205, 69, 90,198,143,223,144, +205, 61, 85,250, 31,151, 74, 55,122,166,228,137,196,193,197,178,170,163, 7,114, + 10,124, 84,179,222, 45,193,100,126, 73, 27, 74,169,148,125,198,111,208,160,116, + 96,104,193, 20,172, 71,225,161, 11, 69,163,146, 75,172,173,191,132, 64,103, 34, + 8,139, 96,149,178,180,157, 88,195, 98, 5,250, 25, 33,240, 85,232, 34,199,140, + 6,209, 45,160,183, 40,152, 63,157,216, 85,184, 93,172,232,142,151,167,100, 24, +100, 47,235, 78,172, 52,166,121,241, 62,185,236, 8,197, 69,188,244,129,240, 72, +174, 58,199, 37,212,164,238,150,128, 36,196,171,255, 2, 86, 21,142,138, 11, 68, +176,206,130, 76,107,243,224,169, 51,133,154,136,166, 13, 69,168,248,247,103, 12, +168, 27,140,234, 29,131, 57,240,240, 94, 25,242,162,124,213,244,196,184,225, 40, +189, 88,177,224, 57,160, 52,123, 1, 77,187, 98, 44,122,252, 17,102,179,131,199, +102, 56, 50,237,243, 8, 50, 48,142,121, 92,101,141,125, 55, 2,173,246,184,245, + 14, 25, 5,123,170, 78, 85,176, 41,241,233, 17,231,228,112,147, 65,153,139,175, + 97,138, 64, 38, 71,154, 62,104, 86,255,204,196, 28,117,215, 69,189, 31,113,168, + 58, 73, 53, 51,161,175,234, 1,136, 1, } ; -// ../Source/Template/GB_emult_bitmap_6.c: -uint8_t GB_JITpackage_109 [1043] = { - 40,181, 47,253, 96, 93, 11, 77, 32, 0,246,237,138, 40,192, 82,217, 28,170,114, -140,166,159,109,232,233, 21, 26,172,152,188, 17, 67, 88,219,119,154, 96, 98,207, -168,173, 90,104,215,205,159,126, 87, 81,168,174, 2, 16,128, 0,124, 0,125, 0, -225, 47, 97,122, 11,170, 72,150, 73,127,220, 20,169, 99,110, 83,143,102,219,157, -102,210,216, 54, 71, 55, 19, 9, 6,142,212,245,231, 54,238,206,113,254, 46,104, -231,181, 82,151, 6,150,138,101,130, 80, 80,177, 60,194, 69,151,152,126, 38,195, - 37,234, 29, 95, 14, 65,170, 93,102,212,166,250,196,121, 51,152,172, 51, 29, 51, - 72,170,117,244, 40,125,231,171,119,118,158,186,108,124,167,136,143, 93,222,186, -172, 8, 36,106, 90,192, 0, 20,172, 99, 46,155, 56,193, 76, 61, 91,174, 35,216, - 91,149, 57,133, 2, 77, 40,148,153,218,121,121, 59,231, 41, 90,250,108, 27,247, - 21, 49,197,222,183,191,141,177, 61,239,168, 54,188,157, 92, 69,125,122, 4, 67, -210,200,234, 92,156,137,134,131,128, 60,114,101, 29,138,147,109,153,102,203,192, - 51,225,145,205, 6,194,225, 19,192,177,232, 90,231,202, 50, 74,206,115,227,205, -216,218,254,242,101, 14,173,167,249,165,174,179,109,176,171, 8,134,220, 31,185, - 28, 3, 70,127, 69, 32, 81,183, 0, 46, 49,151, 46,252,114, 99,255,127, 8,250, -128, 32,233,182,216,241, 81, 48, 61,246,255, 6, 56,234, 58,118,253,113,216,138, - 54,112,180,191,161,247,218,181,206, 59,197,127,130, 23,243,138, 1, 29,205,183, - 16, 41, 78, 61,218,133,160,245, 75,150,214,138,109, 72, 51,197, 97,127,154, 84, - 48, 89,222, 99,157,159, 47,211,141, 75,143, 37,187,206,184, 19,188,237,246, 28, -207, 15,119,179,239,135,179,149, 23,150,114,180,246,134, 29,146,150, 77,187,178, -173,115,105, 26,101,101, 28, 10,211, 52,149,148, 86,244,174,225,183,177,109, 88, -149, 9,179,229,176, 20,222,246,120,152, 95,231,168,209,207,163, 39, 16, 20, 50, - 73, 48,157,222,184, 54, 20, 34,145, 20,220,163,157,237, 0,138,237,250,185,192, - 69, 43, 58,231,225,202, 52, 17, 87, 85,121, 66, 76, 55,241,146,131,186,212,174, - 76, 2,157, 87,135,218, 88, 23,131,182,129,192,174,237,193,235,206,122, 52,160, -186,228,175,162, 87, 31, 24,120, 68,188,244, 80,209,169,173,170, 50, 33,190,156, -162,123, 10, 23,167, 95, 74, 15,203, 69,119,120,208,104, 26, 45, 95,118,182,197, -203,124,197,231,237,224,242, 33,145, 92, 33,225,149, 79, 81, 4, 91, 14, 35,137, -184, 91,241, 8, 71,243,204, 1,128,213,168,161,157, 68, 37, 52, 35, 41, 51,201, -178, 6, 48,132, 24, 99,204,202, 3, 18,137, 80, 75,212, 12, 81,136, 64,129, 72, - 48, 1, 5, 34, 65,148, 36,101,165,212, 1, 73,219, 29,167,214, 75, 11, 44, 75, -136, 14, 94, 49, 31,123,192,154, 71, 68,123, 58, 34, 38,183, 31, 62,234, 67,139, - 68,220, 15,148,227,214,228,167, 69, 33, 61, 93,208, 21, 73, 97,190,195,196,150, -177,143, 73,213,190,234,248,226, 60,233, 24, 88,175,233,160,169, 31,167, 85,156, -135,112, 89, 4, 25, 7, 38,103, 56, 51, 19, 23,138,104, 13, 24, 64,231,218, 89, - 98,200, 58, 13, 22, 12, 26, 5,117,159, 72,146,125, 53, 0,172,254, 54,188,109, -242,233,168,175,140,117,212,125, 40,169,140,239,113, 23,175,218, 21,229, 52,195, -139, 28,179,199, 22, 62, 82, 90, 51, 41,125, 90, 62,249, 74,149,156,113, 40,207, -198,175,147,199,180, 11, 19,196,250, 66,237,142, 53, 98,102,194, 47, 45, 20, 47, -180, 0, 8,181, 61, 9,152, 87,194,252,213,163, 70,172,226, 19,148, 29, 1,179, -118,103,210,170,177, 59, 38, 80,188,254,145,198,155,216,108, 22,190,108, 47, 99, -147, 82, 93,214,164,130,214, 0, 24,118,205,181, 95,125,241,112,119, 76,130,205, -205,122,240,237,166, 40, 53, 98, 97, 35,152,137,209, 80, 29,176, 17,115, 98,221, -125,183, 33, 71, 3, 85, 87, 50,176,148,188, 41,233,178,217, 22,154,209,118, 38, - 45, 46, 59,154,146,191,228,133,189, 70,238,230,218,102, 50, 72, 90,224,185,144, -219, 9,186,202, 27,222,159,175, 58, 88,230,132, 13, 35,163, 88,139,255,230,226, -136,126, 85, 87,120, 96,201,105,242, 40, 0,137,101,133,186, 62,158,222, 50,176, - 13, 26,176, 1,243,192, 48,108, 10,152,102, 44,198, 69, 28,188,161, 17, 59, 44, - 36,151, 2, 33,207,130,150,180, 67, 94, 11, 35, 39,214, 69, 50, 48, 91, 51, 21, -236,145, 33,177,225, 19,189, 54,122,238, 51,255,152, 40, 64,184,251, 67,137, 65, -251,188, 91, 66,167, 49,117,168,219, 46, 61,254,204,189,101,250,152,164,255,104, - 30,229,155,102,165, 6,211, 45, 63,157, 84, 81,124,196, 68,131,253,223, 13,164, - 52, 12,154, +// ../Source/Template/GB_AxB_saxpy3_fineHash_M_phase2.c: +uint8_t GB_JITpackage_94 [1179] = { + 40,181, 47,253, 96, 29, 18,141, 36, 0,118,111,145, 40,192,240, 58, 7,126, 7, +120,190,119,253,151,152, 41,204,181,109,223,123,149,203,120,227, 77, 47,113,209, +191,133, 69,178, 63, 28, 56,100,219, 20, 69,166,232, 64,135, 0,128, 0,134, 0, +223,182, 11, 69, 81, 89,166,204,171,207,206,123,239,255,239, 40, 57, 40,146, 43, +194, 30, 55, 69,237,150,145,155,246,173,220,121, 34,108, 43,115,141, 16,113,208, + 44, 72, 58,182, 24,217,242,231,246,122, 19,253, 57, 8,106,175, 42, 23,229,138, + 16, 88,148,235, 20, 55,189,178,109, 49, 53,151,104, 39,121, 55,172,232,208, 43, +144,134,128,241,196, 57,114, 44,108,199, 41,130,248,246, 8,228,120,245, 87,152, +135,150, 21,108,151,204, 45, 23,219,233,137,114,147,158,157, 29,174, 77,101,133, + 36, 98, 76, 43, 49, 24,154,196,112, 62,153, 56, 34,147, 73,224,229,137, 99,167, + 6,172,233, 27, 78,130,246,145, 20,114,147,161, 13,167,127, 17,214, 99, 87,133, +212, 77, 30,193,121,113, 69,223, 95, 59, 54,253, 24,210,119,197,162,208,126, 21, +222,130,200, 41,146,138, 68, 34,169,174,140, 6,103,223,174,221,199,232,216, 87, +102,209,111, 88, 47,177,178,237, 36,209, 45, 11,210, 97,157,232,119,139, 35,142, + 11,171,142, 63, 46, 4,235,232, 22,250,234,167, 60,203,238, 81,180,242,166,219, +160, 4,196, 43, 91, 52,135,118, 30,222,218,239,120,228,123, 39,103,223,213,121, +123,219, 1, 1,223,132, 52,205, 2,195, 3, 37,141,183,242,217,187, 23,205,113, + 2,203, 52,218,230, 35, 51,158, 77, 33,164, 97,167, 94,137, 65, 81,237,247,233, + 79, 81, 29,144,214,161,174,233,162,174, 95, 46,147,236,216, 78, 81,132,107,136, +221, 58,228,109,245,175, 20, 24,184,181, 39,143, 63,222,147,246,236,247,143,201, +215, 8, 12, 91, 41,226, 6, 7, 30,238, 0, 50, 17,118, 30,213,190, 53,228, 78, +101,212,111, 78,159,246, 73,237,163,225,191, 99,112, 87,219, 97,163, 73,240, 72, +138, 79, 98, 94,122,165, 32,144,174,178,188, 28, 35, 78,219,237, 12, 14,199,134, +131,114, 87, 71, 0,148,199,141,147,173, 36,141,179,182, 72,142, 33,149, 95, 40, +181,233,163,144,160,101, 64,191, 29, 39,139,226,252,197, 22,100,207,167,161,246, + 5,215,211,171,178, 50,122, 75,189, 8, 43, 15, 96,176,189,139,111, 84, 94, 85, + 31,133, 80,130, 71,110, 62, 12,161, 5, 45, 51,121,108, 28,123,229,153, 70,201, + 66, 2,193,201,117, 69,120,231,109,123, 55,236,234, 40,164,239, 87, 60, 26, 47, +101, 81,215, 11, 10, 40, 58,115,140,162,208,141,142,239,236,196,209, 55,121, 20, + 97,167,174, 67, 71,222,103, 16,140, 78, 41,155, 30, 16,128,253,168, 97,177, 82, +106, 68, 68,102, 20, 36, 5, 73,161, 49, 64,134,136,204, 89,209, 3, 18, 89,162, + 3,129, 16,113,132, 9, 17, 33, 2, 35, 36, 2, 38, 16, 9, 68,136,162, 9, 36, +136,116, 14,149,184, 67,152, 9,116,238,153, 68, 29, 77,130,232,166, 44,193, 12, + 57,231,107,207,252, 95,154, 51,220, 51,115,120,150,164,163,211, 92,137, 29, 16, + 54,137,133,199,178,216,162,239,115, 26,173,199,185, 10,120, 36, 93, 40, 9,148, +195, 56,151,138, 59, 9, 77,109,111,171, 80,213,206, 65,153, 12,153, 65,148, 40, + 14, 91, 68,119, 11, 27, 79, 32,173, 25, 51,178,139, 30,229,234, 23,160,201,141, + 79, 95, 52,146, 85, 23,186, 56,222, 63,100, 33,140, 75,168, 70,126,108,199,131, +134, 71,222,212,140,106, 38,160,235,155, 41,133,237,104, 25,118,161,144,151,120, +193, 1,194,142,201,126, 43,101, 84,129, 91, 81,231,211,156,184,211,140, 79, 37, +246,210,186, 69, 5,210,106, 70, 91, 27, 63,100, 35,177,182, 31,204, 80, 14, 76, +115, 46,221,175, 98, 17,128, 25, 40,151,177,192,145, 67,213,211,218,166, 74,139, + 3,209,118,172,170,101,184,219, 86,207,212, 9, 63,233,255,125, 83,231,159, 39, +250,113, 21,127,234, 96, 95,234, 59,201,118,138,220,106,140, 64,121,228,226, 22, + 14,204,232,150, 97,155,115, 43, 16,190, 70, 80, 53,115,190,129,200, 58, 10, 57, +148,140,244,239,216,239,100,156, 79, 74,123, 79,191,194,154,249, 33,239, 27,254, + 69,147,193,152,196,227,251, 5, 37,125, 29, 11, 54,194, 65,224,240, 70,215, 80, +100,131, 56,246,139, 96,106, 1, 56,181,201,149,111, 19, 88,162, 22,230, 6, 12, +210,237,211,123,178,233, 19,149, 61,153,255,113,211, 3, 46, 11,159,105,128, 19, + 86,204,160, 64,101,195, 74, 27,204,215, 85,222, 87, 32,203,251, 64,215, 32, 29, +179, 79,176, 87, 12,212, 8,175,245, 89, 79,246,244, 97, 34, 17,136, 80,103,254, +197, 94,178,208,178,139, 49,147, 90, 14, 89,137, 31,146,178,240,110,150,121,178, +214,167, 95,132, 10,248,254,195,253,219, 43, 82, 65, 64, 40, 34, 28,195,215,255, +234,248,127, 93,109,156,166, 64,155, 65,110,234,157,188,229,200,120,195, 58,170, + 10,178,175,168,127,138,158, 16,115,185, 18, 61, 93, 12, 12,249,218,102, 82, 39, +140, 74, 71, 50,108,192,122,139,188, 16,156,163, 87,190,224, 44,203,141,234,219, +121,245, 56,251,165,244, 18,254,226,236, 96, 81,220,163, 61,105, 43, 34,227,198, + 47,124, 87,244, 22, 49,144,136,231,100,200,206, 68,202,103,115, 91, 88, 31, 52, +255,207, 76,116, 21, 62,156,114,238,170, 17,126,200,193,185,106,229,138, 1, } ; -// ../Source/Template/GB_emult_bitmap_7.c: -uint8_t GB_JITpackage_110 [908] = { - 40,181, 47,253, 96, 91, 13, 21, 28, 0, 70, 41,127, 40,192,208,110, 49,250,125, - 72, 82,180, 35,144,249,194, 37, 28,166, 28,157, 36,161,211, 23,185,144, 45,172, -162, 20,124,149,129, 11, 56,184,174,162, 48, 20, 5, 32,117, 0,114, 0,116, 0, -101,125,101, 94,252,193, 59,223, 80, 19,185, 58, 95, 16,111, 34, 13,152,142, 36, -188, 33,243,234,235,185,222,160, 9,236,185, 40,214, 79, 4,148, 9, 37, 82, 25, -152, 80, 46,129,244,147,198, 33,139,185,164,254, 2,180,201, 17,119,159,184,186, -193, 64,165, 53, 51,213,213,166, 45,185,187,241,201, 69,162,120,126,168,107,218, - 99, 15,179,253, 84, 63,109,183,158,221,194, 30,146,122, 93, 54,135, 37,123, 85, -241, 74, 59,110,252,121, 91, 60,199,235, 97,153, 83, 84, 20,161,168, 23,123,188, - 24, 88, 91,208, 87, 10, 71, 56,189, 10,109, 55,122,137, 90,104, 29,135,206,219, -172,127,151,200,246,235,223,246, 13, 98,115,235,107, 62,254,237, 29,236,140,191, -117, 38, 65,235,210,102,179,144,112, 13,141, 75, 27,125,167,110,157, 6,243, 56, -141,135,101,232, 59,143,198,113, 21,224,151, 42,175, 70,250, 99,127, 72, 94,127, -253,178, 89,158,189,170,132, 36,104,223,237,255, 31, 69, 25, 81, 36,185, 73,254, - 18,141,159, 69, 19, 9, 37,114, 65,160, 13,159,201,162,227,106, 38, 32,112,233, -187, 78,129,199,139, 36,249, 73, 20, 19,166,219,247,157,176, 88,191,254,105,194, -200, 32,189, 2, 71,211,105, 58, 79,237,236, 79, 97,190,229,167,109,150, 5, 6, - 25, 16,200, 45,183, 62,249, 69,181,104, 67, 25,172, 32, 52,147,120,131,230, 35, -136, 75, 32,222,118,107,122,197, 51,188, 32, 80, 95,202, 94, 70,117,104,175, 9, -218,222,120,230,155,228,231,226, 21, 69,107,218,242,229, 72,222,142, 19,214, 44, - 29, 33,222,191, 68,110, 25, 81,180,113, 65, 62,217,100,190,198,215,175, 22,111, -180, 1,129, 12,252,122, 68,249,240, 47,251,224, 48, 95, 7,149,175, 24,122,192, -203,140,190,195,209, 56, 13,131,134, 97, 31,169,177, 87,235,167, 78,203, 88,216, -210, 87,205, 83, 55,153,134,233, 54, 11,155,230,113, 62, 55,204, 31,236,192, 14, -169,191,158, 29,163,199, 42,125, 13,239, 62,127,191,103, 11,102, 39,245,167,123, -154,251, 26, 31,143,212,227, 18,191,250,124,197,193,112,186, 63,168, 91, 0, 18, - 24,128,175,160, 97,173, 83, 76, 72, 36,140, 20, 20,164,160,144,198, 96, 68,134, -202,206, 3, 73, 98, 27, 40, 53,220,226, 12, 27,228, 77,150,187,207,178,148,175, - 61,113, 32, 52, 32, 63, 41,236, 62,145, 29,181,227,228,100,220,112,237, 79,225, -222,143, 2,128,146,174, 69,162, 71,102,205, 78,177,191,213,204,240,228, 0,195, -103, 13,232,122,183, 10,213,228,192,163, 1, 75,208,227, 10, 68, 8,100,140,126, -147,113, 6,237, 62,193,232,150,155,119,180, 88,182, 61, 55,220, 37, 0, 47, 90, -116,240,108,110,236, 39, 51, 3, 11,249, 59, 51, 77, 12,115, 32, 25, 60,125, 81, -144,129,251,142, 21,243, 83, 23, 84,129,253, 43, 91, 80,107, 51, 62, 94, 6, 24, -152, 51, 76, 63,215, 25, 3,212, 10,120, 90, 0, 32, 13, 56,253, 14,109,202, 90, - 73, 62,225,235, 86, 71, 9, 7,129,225,206,104, 20, 77, 35,190,217, 62,195, 75, -105,229,121, 98,169,172,185,231, 52, 22,122,180,132, 5,106, 1, 60, 58,128, 21, -121,208, 14, 19,107,142, 95,190,181, 48,216,176, 18,237,170,216, 1,220,129, 2, -205, 41,156,172,213,172,137, 29,180,180,185,205,189, 97, 5, 98, 87,248,238,158, -214, 75,131,224, 14,110,160, 27, 3,233, 26, 27,144,109, 12,185,133,183,180,223, -106,176, 30, 70,174, 3, 30, 78, 49, 5,203,186, 69,139,235,250, 36,117,231,220, -195,153, 82,230, 62, 83, 6, 55,234, 2,215,187,220,104,134,155,214,121, 48, 8, -171,237,166,229,206,228,197, 13,129, 91,176, 70,111, 33,140,125, 86, 45,133,238, -161,128,109,131,222, 95, 0, 69,161, 2,204,246,198, 5,139,221, 20, 46, 73,199, -241,158,182,158,105, 53,102,230, 62,155, 38,230,103,166,187,142, 87,112,206,168, -124,110,234,138,189,162, 28, 15, +// ../Source/Template/GB_AxB_saxpy3_fineHash_notM_phase2.c: +uint8_t GB_JITpackage_95 [1173] = { + 40,181, 47,253, 96,175, 14, 93, 36, 0,198,239,143, 40,208,208, 58, 7,122, 69, + 25,194, 71, 56, 26,100,102,217,140,243, 89,236,219, 81, 7, 51,161,164,239,218, +177,212,243,166,179, 24,213, 31, 92,225, 17, 31,224, 18,136, 0,125, 0,135, 0, +211, 69,180, 36,203,227,103,229,189,247,255,143,162,141, 72, 66, 80, 65,216,219, +100,152,221,170,220, 93,223,201,156, 2,132,237,228,173, 23, 32, 19,151, 7, 2, +142, 51, 42, 91,214,220, 94,175,211,154,131, 96,246, 56,169, 36, 21,228,128,146, + 84,159, 54,233,209,118,134,188,156, 32,123,200,187, 20,163, 55,143, 16,217, 66, +197, 11,101, 77,176,216, 86, 25, 66,240,109, 15, 68,244,248,199,202, 64,134, 33, + 48, 0, 80, 44,183, 42,182,210, 11, 53,134, 75,167,230, 89,153,225,217,157, 54, + 9,133, 32,105,181, 10, 40,211, 42, 9,143, 68, 34, 72, 36, 18,243,211,227,193, + 77,214, 40,175,132,191, 46,113,222,255,208,249,171,154,132, 56,201, 21,148, 21, + 99,244,253,181,181,187, 87,218,125, 50,219,247, 68,210,245, 35,189, 8,144, 83, +183, 38, 83,103,182,119, 67, 83, 74, 26, 13,202,190, 61, 65,153,170,210,217,233, +150, 44, 20,214, 33,206, 31, 41,234,209, 29,122,182,141, 78, 15,199,223, 70,193, +233,185,213, 61,254,146, 99,216,189,169,139,158,116, 27,180,168,248,228,140, 78, +232, 50,167,119,246, 57,174,124,175,220,236,185, 41, 95, 57, 12,121, 17,123,219, + 15, 19, 22, 97, 54,217,229, 33,130,162,235,128, 80,189,147,207,222, 61, 71,214, + 14,118,201, 48, 26,205,162,192,224,176,201, 58,143, 65,206,236,247,187,105,106, +233, 25,136, 44, 67, 81,183, 18, 99,170,164,235,213, 31,159,170, 83, 40,210, 49, +141, 99, 43, 57, 16,158,244, 58,245,199,155,234,129, 99,191, 11, 17, 12, 45,101, +253,117, 70,185,126,171,188, 86,195,158,133,191, 90,129,193,157,141,113,174,179, +103,246,157,116,251,164, 49, 63, 41,125,217,167,101, 95, 71,255, 29,196, 28,119, +174, 79, 96, 46, 13, 10,218,197,167, 85,180, 13, 38, 33,218,120, 81,212,193, 30, + 80,102,116, 13, 79,237, 43,141,125,239,246,231,151,206, 95, 15,231,182, 74, 14, + 67,249, 74, 65, 35, 49,251, 31,158,151,147,164,138, 84,148, 96,221,173,202,243, + 67, 49,236, 2,210, 25,108,239,243,142, 73,236, 50, 81,227,176,193,104, 34, 54, + 15,153,229,215, 39,199, 56, 54,172, 16, 8,202,173, 49,232,149,183,237, 93,202, +181, 69,117,180, 36,216, 68,113,112, 92, 8, 8,216,175, 41,234,154,155, 28, 16, +117,112,159,228,202,185,199, 30,160,204,175, 79,247, 81,250, 68, 70,123,244, 13, +190,146, 11, 61,143,236,169, 55,129, 3,168, 97, 45,100,102,130, 25, 17, 73,146, +130, 74,134, 3,113, 12, 49,136,106,105,153, 7,226,136, 60,198,179, 16,177,136, + 53, 68, 64, 2,145,145, 25, 17, 82, 82, 82, 80, 80,144, 98,198, 25,214,153,145, + 77,240,144, 60,194,210, 3,240, 16,180, 57, 19,139, 79,106,112, 31, 22,164, 92, +207,126,223, 70, 61, 82,196,133, 59,243,223,223, 29, 30, 71, 22,239, 98,134,229, +109,139,222,163,139, 70, 82, 22,164, 99,190,144,145,120, 86, 38, 59, 91, 34,168, +126, 34,214,187,145,139, 5,113,179,160, 44, 62,239, 74,107, 5, 57, 39,169, 44, +218,178,220, 22, 79,138,187,223,168,252,233,107,141,207, 79,162,240, 47,122,151, +169,222,132,148,185,131, 74, 92, 63, 52, 55, 87, 0, 90,214, 2,161, 45,127,204, +199,179,113, 53,243, 76, 40,215,105, 93, 73, 78,159,124, 48,254, 65,210,145, 95, +165, 30, 97, 36,252, 86,202, 57, 38,240, 36,108,232,231,117,172, 68,209,131,108, + 78, 25,101,206, 11, 77,200, 66, 83, 84, 28,232, 53,187,170,170,152,149,138,232, +181, 51, 53,136,133, 37, 38, 35,114,235,108,239,202, 1,174,138,122, 21, 35, 27, +107, 64,144, 59, 13,102,173, 58, 85, 71, 64, 2, 76, 11,222, 32,187,144, 83, 12, +106, 74, 3, 4, 72,141, 64, 71, 69,195,244,190, 50,130, 4, 62,246,149,177, 97, + 86,147, 89,193, 12, 4, 4, 20,123,204,146,186,114, 73,225, 29,176,196,255,155, +154, 55, 14, 40, 42, 23,131,135,161,193,151,164,217, 10, 15, 58,179, 96, 64,200, +231,228, 91,163,152, 6,218, 42, 24,113,248, 75, 30,224,116,189,241,225,103, 72, +188, 28,253,154, 25,210,107, 51,104, 23, 80,104, 53,204, 90,144,201,162, 9, 64, +214,220, 96, 52, 0, 9,158,132, 86,227, 30,241,113,189, 8, 50, 4, 2,213,100, +154,216, 58, 82,197, 59,205, 13,220,105,193, 64, 35, 51, 98,161, 2,148, 66, 26, +106,214, 97,189, 98,226,154,254, 88,118, 2,174,217,202, 72, 12,165,148, 67, 95, +116,213, 37, 14, 13, 81, 13,155, 29,162,180,105, 38, 7,105,198, 60,238,113,139, +107, 89,245,173,165,144, 30,136,224, 50,119,231, 12,219,177,154,144,210,208,243, + 69, 25, 93,159, 61,115,116,245,246, 93,136, 69,108, 77, 3,123, 73, 85, 51, 97, + 50,169,168,127, 67, 2,171,190,202, 61,124,219, 0, 37,250, 87, 79,247,140,198, + 2,220,236,177, 11,102,231,166, 57, 39, 95,223,195,134, 53, 93,121, 45,191,235, +128,136, 58, 88,160,180,253, 91,208,141, 78,158,209,126,247,220, 60,102, 17,104, + 9,229, 82,102,252, 52,167, 8, 69,114, 63, 64,131,102,244, 51, 19, 94,166, 60, +142, 41,125,232, 45, 98, 55,132,148,234,129,117, 2, } ; -// ../Source/Template/GB_emult_bitmap_template.c: -uint8_t GB_JITpackage_111 [876] = { - 40,181, 47,253, 96, 14, 11, 21, 27, 0,198,165,116, 40,208,176,108, 14,250,141, - 27,255, 96,191,196,151,148,134, 76, 61,146,138, 94,179,165, 62, 67,124, 96, 90, -239,230, 72,128,176, 28,199, 62,224,139,135, 34,247, 23,107, 0, 98, 0,106, 0, -212, 67,179,109,238, 2,105,108,123,163, 24, 8, 69,101, 51,113,253, 1, 27, 55, -231, 56,119, 22,148,243, 90,227, 37,131,137,100, 2, 81, 40,144, 76,254,216,162, - 75,152,126,180,202,167,248,140, 46, 95,143, 98,151,174,136,145,221,167,129, 15, -148,198,160,246, 93,157,105,120, 65,159, 0,156,213,170, 6,139, 97, 94,146, 4, - 83,124,245,121, 74,103,173,126, 94,231,236,211,188, 76, 59, 89,174,161,215,153, -124,120, 36, 2, 65, 34,145,231,224,248, 35, 70,223, 68, 11,187,200,236,186, 68, -199, 56,150,235,138,148,237,250, 57, 72,144,146,122,167, 1, 18, 95,189, 19,159, - 55, 10,102,220, 32,193,159,179,133,108,233, 51,182,119,147,226,165,249,220, 22, -255,127, 8,218,128, 32,238,118,185,189,119,151,111,239, 49,103,251,107,238,214, - 63,213, 26,122, 14,222,191, 65,237, 50,254, 19,166,159,144,100,154, 64,186,219, -180, 47,158, 2,118,222,221,178, 11,172, 89,115,206, 95, 74, 41,169, 99, 60, 34, - 12,203,166, 2,235,242,181,207, 97,231,210,187,115,171,109,151, 7,239,227, 61, -247,109,239,192, 64, 4, 48, 49,204,132,101,201,102,116,174,118,151,105, 88, 91, -253,215,176, 91,244, 10,198, 2,145,201,230,156, 30,202, 89, 41,169,122,111,167, -113,109, 41, 53,241, 98,154,197,183,165, 24, 75,134, 99,145,200,176, 75,132,167, - 57, 15, 21,144,146,250, 3,131,153,112, 8, 16,212, 1, 81, 91,199,173,232,143, -204,171,234, 86,164, 80,171,102,157, 18,104,156, 0,246,151,209, 69, 48, 7,194, -114,113,226,230,178,106,119, 4,108, 19, 66,192,155, 11,235,102, 35, 82,182,141, - 27,252,172, 75,148, 38,179, 33,121,245,207, 4,222,172,129,253,221,123,225,182, -105,221,229, 55, 14,171,214, 27,196,102,250,139,143,105,151,159,113,189,107, 42, - 26,140, 2,222,106, 98,115,130,131, 93,225,198,210,204, 76,226,138,214, 23,128, -172,168, 49, 73,135, 42, 32, 25, 73, 74, 82, 40, 53, 6, 96, 36, 16, 42, 50,154, - 7,242,120, 40, 88,113, 32,168,140, 51,198, 40, 50,161, 4, 18,140, 72, 40,146, -149,106, 27,148,136,162, 97,195, 78, 39,107,248,220, 60, 30,144, 44,226,135, 71, - 2,198,111,225, 24,150, 87,161,112,120, 54, 56,209,106,179,121, 48,193,205,240, -234,230,228, 22, 23, 32,218,105,242,194, 56,185,126,221, 21,160,226,103,132,133, -196,237, 35,105,167, 35, 82,205,246, 44,136, 63, 22,143,122,151, 19,142, 27,101, - 86, 21,215, 69,132, 7,145, 71,142,132,104,227,214,170, 13,144, 7,206,176,232, -129,201,116,141, 73, 60,234, 12, 4, 92, 10, 40, 56, 50,166,120, 17, 69,198,246, -134, 42,145, 97, 79,104,182,187, 48,105, 2,104,198,135,144, 24,238, 44,210,203, -176,108,228, 17, 88,198,135,143,249, 74, 4,185,143, 20, 6, 62,193,221,146,138, -160,201, 62, 58,217,197, 34,163,100,116,244,222,240, 63,124, 5, 34, 75,174,120, - 4, 99,156, 93, 36,197,125, 77,112,150, 11, 27,218, 49, 49,240,231,221,168, 13, -225, 6,243, 41, 14,217, 92,132,239,140,142,145,160,103,179, 12,104, 20, 48,122, -251,132, 32, 18,141, 35, 86, 13, 99,183, 73, 54, 30,145,129,150, 8, 41,167,240, - 32,161,108, 0, 93,108, 67, 55, 3,135, 9,255, 15, 6,142,160,122,228, 20, 34, -212,118,131,216,143,173,163,115,212,142, 39, 25,248, 95, 94, 76,195, 96,199, 56, - 8,198, 48,212, 83, 96,160,135, 38,182,229, 35, 74, 89,221, 94,247,121,200,180, -238,201, 45,130,170, 93, 50, 98, 93,113,192,243,216,210,247, 28,225,171,101,156, -146, 81, 54,118, 57, 42, 40, 76,193, 82, 52,114,129, 86,110,154,163,159,153,192, - 64,167,254,113,182, 91,154, 56,202,107,172,229,148,238,128, 19, +// ../Source/Template/GB_AxB_saxpy3_fineHash_phase2.c: +uint8_t GB_JITpackage_96 [1562] = { + 40,181, 47,253, 96, 83, 25,133, 48, 0, 86,249,168, 40,208,210,170, 3,106, 50, + 90,237, 98,183,121,139,167,215,173, 49, 23,187, 35,253, 14, 17,200,241,107,107, +136, 2, 26, 47,208,185,226, 15,174,240, 20,131,248, 5,160, 0,146, 0,159, 0, + 28,213, 73,167, 61,249,205,242,171,191,176, 56,183,249, 92, 17, 47, 76, 25,148, + 37,101, 78,121, 53,246,187,255, 63, 4,210, 1,161, 76, 42,201,118, 90,252,176, + 91,224, 50,199, 61,119, 99,144,108,157,171,177,131,132, 34, 33, 98,178,173, 8, +220,186,157,215,238, 48,184,115, 41,177, 83,150,138, 82, 73, 12, 42,148,234,147, + 38,157,170, 44,138, 9,159, 96, 31,117, 77, 67,252, 57,229,193, 28, 48,221, 23, +193, 5,107, 43, 24, 63,207, 54,135, 30,200,169,159,154, 86,139,242,147, 76, 62, +231, 93,179,198, 65, 42, 29, 35,128, 93,153, 91,213,214,216,125, 89, 87,227,102, + 39,115,153,101,244,109,196,154, 97, 54,176, 12,179,240,129, 1,136,100, 96, 32, + 43,106, 15,164, 26,167,219,227, 71,114,210,175, 70, 89,190, 29,187,118, 61, 41, + 87,112, 69, 93, 75, 86, 98, 76,174,175,212, 44, 20,183,165,218,115,235,130, 31, +103,219, 26,190,233,220,104,215, 27,250,100,242,183,222, 78,251, 72,202, 56, 41, +247, 71, 63,163,118,206,189, 26, 67,223,238, 3, 58, 95,131,206, 95, 42,203,104, +139, 11,202, 88,109,136,251, 93, 65,230, 14, 82,238,115,183,158,207,241, 41,218, + 8,146, 83, 38,150,201,100,194,193, 50,114,243,228, 87,254,198,230,159,240, 8, +244, 83, 85, 37,194,252,133,154, 70,183, 25,191,173,167, 81, 57,195, 91,220,169, +159,242,235,122, 55, 5,151, 79,181, 25,148, 93, 97,227,193, 54, 87, 83, 89, 63, +234, 47,180,219, 12, 41,183, 33,120,249, 86, 25, 57,174,187,164, 20,180, 18, 20, +123,242,249, 35,176,231,114,149,116,121,245,200,167,234, 7, 7,159, 42, 17,150, +164, 95, 25, 11,252,186,131, 4,135,219,110,109,155,114,252,143, 61,222, 32, 25, +156, 53,120, 48, 78,214,144,209,108, 50,220,110, 28, 3,176,132,177,199,216,193, +229, 13,198,174,217,117,236,123,103, 4, 5, 61,249, 2, 93,190,225,228,158, 84, +251,196, 49,189,232, 97, 94,134,121, 28,189,247,141,221, 22,131, 66,147,240,192, +144,101,120, 25, 38,251,104, 22, 62, 69, 34,219,220,236,224,152,239,151, 75,150, + 69,153,128,180,181, 16,200,199,134, 50,138, 14, 82, 6,191,211,249, 14, 65,175, + 96,220,239,139,175,166,198,206, 79, 20, 72,117,144,158,114,113,183,192,157, 26, + 52, 64,250, 74,238, 52,110, 57, 69,117, 32, 62,154,142,196, 39, 2,203, 92, 60, + 58, 44,141, 67,180, 35,221,216,170, 48,101, 81,174, 74,117, 4,132,138,138, 4, + 44,195,192,129,248, 96, 29,255, 52,109, 91, 35, 72,178,147, 94, 94,121,228, 21, +110, 25,134, 32, 12,157,137,139,244, 79, 71,227,241, 96,205,151,114,134,145,202, +223,218, 42,183,127, 69, 54, 54, 83, 95,243,193, 18, 34, 36, 50,138, 77,179,181, + 29,183, 47, 60,197, 77, 31, 94, 92, 16,244,201,195,131, 50, 93, 18, 40,130, 24, +215,185,119, 80, 76,105, 58, 1,129,119,168,129,177, 66, 70,102, 70, 68, 36, 73, + 82, 40, 12, 7, 81, 8, 66, 16, 36, 33,120,230, 1,178,160, 40, 13, 98, 24, 7, + 49, 66, 4,144, 16, 74, 68, 68, 36,176, 64, 36,152, 36, 65, 11, 10,154, 52, 6, + 89, 96,199, 76, 46, 11,103,152, 40,199,142,238,214, 81,255,196, 61,229, 50,151, + 18,202,148, 67, 51,101,160, 37,102, 70, 85,150, 37,168,229, 38,127, 22,242, 43, +104,173, 72, 9,250,150, 43, 63,199,180, 2, 60, 8,149, 72,207, 1, 45,158,231, +203, 35,234,193,237, 73, 6,156,249, 45, 57,156,204,127,161, 25,186,240, 21,144, +136, 54,148, 69, 85, 37,178, 66,212, 66,143, 43, 16, 91, 14,222, 93,178,211,144, +144,170,161, 21,187,236,242, 10,242,245,145,167, 45,210, 51, 41, 6, 49,254,197, +213,226,171,191,147,101,100, 4,235, 33,169,220,245, 29,177, 6,216, 55,160, 40, + 42,240,157, 20,200,163,216, 13,219, 10,114, 25,148, 7, 13, 25, 54,111,226, 70, +141,168,253,105, 29, 21,221, 94,234,204,159, 1,102, 53, 38,146,175,164,232, 95, + 26,124, 18,184,165, 3,202,131, 36, 74,161, 10, 98,142,125,158, 3, 52, 53,227, +176,163,185, 33,173,177,102,180,135, 91, 82,110,148, 98, 70,113, 51,159, 22,213, +139,149,249, 84, 26, 80,221,189,176,111,213,187, 72,192, 22, 58,150,195,190, 32, +160,149, 12,136, 36, 13,124,232,129, 98,136,106, 60,161, 23,107, 56, 40,202, 65, +241,190,131,130,188,128,127, 98, 98,251,166,161,230, 65,158, 53,252,236,235, 90, +157, 20,134,251, 1,236, 30, 78, 18,217, 42, 30, 43, 73, 43,100,165,211,221, 46, + 26,170,114, 3, 50, 76,189, 73,145, 94,141, 81,103,178,251, 53,104,113, 49, 50, + 21, 67,216,137,172,147,249,193,241,142,172,219,180,248, 78,127, 13,225,103,163, + 80,251, 86,135, 75, 3,176,121, 94, 50, 46,126,228,144,142,199, 82,219, 18, 14, + 13,179, 85, 75,254,122, 59, 61, 56,220,124,195, 53, 50,107, 84, 8,209,161,212, +140, 55, 32, 26,154, 78, 65, 43,136, 44, 28,113,235, 10, 10, 76,151,248, 66, 35, +167,116, 69,191,176,163, 96,229,245, 30,152, 35,207,106, 89, 44,146,175,252,229, + 39, 34,240,217, 81, 60,144,217,146, 26, 11, 71,139,101,171, 40, 41,150,217,108, +179,105, 89,129,116,191,143, 27,140,233,223,186,101,106,176,142, 11,179,112,165, +225,240, 62, 72,185, 16,158, 31,231, 77,248, 85,250,145,244,236,158,211, 7, 62, +175,221, 27, 70, 57, 45,176, 38,170,150,172, 81,163, 38,232,120,212,182, 75, 18, +194,192,108,110,112, 45, 59, 14,188,168,255,251,139,212,110,202,164, 92,196,121, +201,229, 33,254,152, 82,148,127,171, 39,104,145,240,145,131, 88, 5,227, 12, 8, + 24, 86,245,247,178,211,216,151, 11, 32, 2, 20,176, 81, 43,132, 47,224,236, 99, + 10,156, 2,220,196, 32,132, 6, 43, 8,242, 56, 4,252, 83, 95,155,139,243,218, +197, 18, 4,239, 2,249,142, 9,250,187, 89,215,106, 66,141,165,237, 0,136,240, +147,239, 20, 64,207, 86,133,108, 96,156, 64, 68,173,220,162,163,243, 96,118,101, + 79,122,173,182,192,236,160,217,133,145, 14,108, 42,223,131, 61,220,217, 17,129, +204, 52,109,105,104,144,140,132, 81,148,176, 94, 5, 41,148,209,203,177,219, 27, +221,182, 76,169, 37,111, 45,141,136, 3, 54,127, 63, 90, 89,129,201, 34,117,191, +252, 82,193, 54, 40, 84, 86, 65,111, 91, 57,145,222,135, 0,240,194, 40,193,151, +224,132,108,208,122, 25,134,173, 48,113,167,205, 65,234,227, 75,146,173,161,218, + 95,229,149,243,141, 80,194, 21, 68,160, 35,168,122,115,145, 68,166, 7, 29, 16, +185, 10, 5, 37,214, 34,122,132,192,205, 43, 85,155,144,173,161, 95,244, 32, 27, +232,184, 50,198,116, 30,187,120,218, 26, 92,123, 15, 96,211, 87,199, 99,173, 31, + 80, 72,240,209, 15,230, 64,147, 21,243, 9,160, 68,132, 61, 79,157, 3,201, 57, + 92, 14,154,162,159,153,206, 37, 69,119,146,173,210, 36,130,230,135,164, 40,117, + 0, 77, } ; -// ../Source/Template/GB_ewise_fulla_template.c: -uint8_t GB_JITpackage_112 [740] = { - 40,181, 47,253, 96,215, 10,213, 22, 0,118, 33,103, 33,208, 90,231, 64, 7, 52, -163, 10,250, 51, 53,247, 75, 24,152,144,194,255,190,145,200, 53,113,227,167,252, -131, 43, 60,226, 3, 92, 2, 92, 0, 90, 0, 93, 0, 54,243,178,164,223, 20,137, - 67,130,208, 64, 28, 18,215,196,236, 27,182,169, 42,121,129,158, 69,230,147,201, -106,190,129,180,210,145,103,189, 19, 71,227, 91, 79,176,179, 69,129, 88, 99,179, -199,247,173,199, 45,218,155,171,233,138,151,101,125,223, 38, 85,239, 6,244,220, -224,222, 29,157,107,121,154, 58,135,181, 44, 81,162,176,177, 85,117,216, 77,110, - 48, 96, 4,131, 33, 33,213,168,225, 27,229, 56, 47,251,237, 83,174, 54,116,150, -247,209,172,223,186,111,244,249,255, 49,204,133, 97, 5, 92,182,121,187,116,209, -222, 54,123,116,150, 89,127, 79,162,143,141, 81,207, 39,147,212,252,133, 19,182, -199,246,171,147, 5, 59, 20, 18,132, 38,197,122,210, 59,110, 91,145,205, 20,130, -104, 43,132,142, 4, 83, 24, 59,117, 27,119,230, 56,147,163,185,102,156,117,137, - 26,155, 20,241, 53, 51,195, 99,237, 75,230,208,132, 50,203, 46,203,122,235,249, -211,116,122, 53,141,234, 61, 3,148,134,216,134, 52,187,200, 62,126,118, 20,144, - 93,147,249, 64,144,106, 94,102,114,127, 14, 23,140,108,218,103,108,158,196,255, -113,173,101,138,217,193, 10,221, 88, 60,207,235,186,238,241, 85,132, 64,175,101, -231,190,162,130,127, 24,143, 38, 24,246, 10,133,186, 80, 23, 10, 97,216,107,192, - 33,188, 15,164,112, 62,241,113,239, 48,224, 14, 27,162,149, 29,115,177, 80,186, - 42,226,247,173,165,216, 35,162,133,137,236,104, 82,218,160,243,115,238,141,203, - 42,250,118,126, 91,209,111,154,111,242,184, 70,178, 53,123,247,101,104,197,251, - 36, 18,203,197,251,192, 16,164,132,152,139,200,222, 53, 24, 64,126,254,241,195, -185,159,153, 38,218,128,139,160,161, 65, 67, 34,129,136, 72,146, 36,217, 24, 3, - 80,132, 16, 33,187,213, 1,153, 17, 57,165, 29, 14,181,147, 61,112, 9, 22,129, - 8,101, 39,237,255,227,148, 87, 38,245,135,138,170,136,148,181,232,158, 86, 81, -202, 22,213,160,104, 56,102,235, 75, 26,182,100,104,185, 7,176, 12, 60,225,190, -133,172, 13,243,164,183,152,212, 35,133, 80,129, 18,130,193, 2, 69,209, 26,100, -144,151, 70,134, 3,160,212, 12,177,102,142,152, 4, 28, 11,208, 96,150,209, 47, -135,157,129,142,236, 98,172, 20,161, 28,106,165, 0,120, 40, 25,140, 1,133,160, -126,219,117, 73,242,224,131, 14, 71,250, 3,193,232, 53,174, 5,252,101, 24, 51, - 30, 47,149, 1,152,106,217, 90,195,178, 66, 17, 39,106, 3,217,190, 53, 1,211, - 25, 0, 74,218,199,132, 27, 62,243,158,236, 64,194,112,252,153, 67,234,239, 50, - 45,246, 36,143,255, 23, 50,179,176,249, 28,113, 15,128, 66, 63,219,160,192,112, - 9,248, 0,217, 12, 84, 82,144, 3,193,228,109,102,247, 77,176, 33,135,108,156, -145, 96, 69, 30, 57,100,148, 68,116, 59,171,209, 34,130,224, 1, 49, 0, 44, 58, -200, 9,224,111, 0, 64, 15,247, 52,130,165, 86, 33,248,240,180, 75,171, 50, 67, -126, 5, 10, 60, 72, 37, 59,148, 38,134,234,175,108,120, 15, 35, 64,156, 15,227, -105, 50, 17,207,224,212, 24, 38, 51,121, 51,177,214,194, 49, 67, 75, 81,160, 7, - -} ; +// ../Source/Template/GB_AxB_saxpy3_template.c: +uint8_t GB_JITpackage_97 [3860] = { + 40,181, 47,253, 96,225, 92, 85,120, 0,202,105,156, 19, 46,192,172,140,115,247, +168,184, 9,182,237,182, 3,212,250,210, 78, 67,163,109,194,130, 50, 64,199, 17, +248, 25, 56, 10, 51, 33, 11, 0,192, 71,182,125,226,193,117, 21, 5,219, 54,112, + 1, 47, 1, 48, 1, 32, 1, 92,153, 44,210, 43, 15, 26,165, 31,182, 26, 79, 27, + 27,151, 42,141, 20, 15,122, 50, 22, 78,110,183, 63,156, 11,133, 5,230,151, 14, +231, 81,116, 98,220,116, 50,209, 66,109, 71,203,121,246,196, 69,195,185, 52,136, +158, 12, 3,140, 47,172, 3, 88, 62,221,159, 15,130, 44,179, 88, 44, 14,205,201, + 90,200,202,178,107, 39,181,166,137,137, 10,205, 43, 14,233, 30,206,165,211,121, + 15,231, 32, 32,213, 43,231,170, 95,171,235,181, 92, 7,252, 70, 2, 6,238,236, +138,178,156,122,167,224, 47, 95,252,255, 23, 22, 40,112,118,249, 2,144,217,110, +118, 0,206, 87,167, 89,179, 3, 44, 44, 68,106,102,111,251,213,185,114,150, 65, + 89,230, 70,247,162,174, 87,110,191,166,252,197,236,218, 27,219,143,166,196,110, +249,118,220, 70,173, 91,145,133,134,200, 4,194,153, 37,185,119, 74,229,198,250, + 78,190, 50, 16,182,147,173,158,128, 60,136,160,136, 92, 28,170,108,153,115,123, +179,139,230, 92,211,222, 41,135, 73,195, 4,114, 64,210, 48,249,100, 73,167,108, +135,100,196, 35,239,163,236,210,173, 61,167, 58,111,194,146,113,178, 74, 80,216, + 86,201,117,248,118,215, 89,184,104,118,121,251,101,135,238,168, 20, 2, 38,168, + 78, 89, 6,188, 74,117, 10, 95,169,113, 27,223,232, 48,226, 68,210, 70,139,232, + 69,139,196, 25, 24, 22, 32, 12, 12, 1, 24,166,187,144, 91,107,241, 87, 82, 13, +139,200,108, 52, 27, 24, 39, 14,213,130,216,169,152,160,192, 84,152, 74, 66,147, +225,100, 96,230, 81, 68, 11,205, 99, 16,161,217, 84,151, 78,228,108, 22, 68, 79, +244, 92, 36,168,204, 34,221, 18, 49, 24,146, 63,226,173, 22,110,170, 76,106, 67, +242,218, 78, 34,178,237,178,184, 73,182, 56, 20,145, 0,225,158,206, 43, 7,129, + 42,189, 92, 87,203,242,245,199, 99, 62,129, 52, 73, 40, 57, 71,151,196, 90,119, +113,102,217, 79, 83,178,151,228,154,221,168,177,166,201, 95,110, 23,178,114, 87, + 71,172,213, 27,189, 82,132,177,220,105, 50, 52, 77, 24, 20, 69,170,164,107,204, +121,202,130,200,236,211,235,244,102,151,210,202, 94, 80,165, 25,231,173,155,167, + 76,152,171, 88, 44, 22,139,229,189,247, 60,158, 71,225,128, 16, 66, 8,239,100, +110,131, 16, 66,184, 65, 64,182,223,200, 26,109, 35, 46, 19, 22, 88, 1, 33,132, + 16, 66, 8,167,137,162,160,139, 32, 43,161,244, 73,242, 68, 8, 33,132, 16, 66, + 56,189, 65,231,193,184,209, 56, 30,160,130,228,144,111,125,133, 68,162,110, 11, + 10,210,177, 6,155, 89,153,137,250,156, 69,124,147,227, 2, 4,124,122, 79,146, +172, 42,217,198, 81,149,179, 82, 44,130,232,197,218,103,235, 48,222,123,239,189, +247,222,123,239, 61,249,222,123,239,189,135,245, 53, 3,167, 64,179,203, 40,170, +146,184,234, 24,253,214,217,173,179, 78,221,217, 17, 96,112,168,192,224,192,232, +141,147, 30,222,127,188,114,200,177,157,124, 49,112, 55,251, 78,142, 8, 17,114, +127,252,131,161,201,218, 97, 42, 95,219,105, 90,135, 65,176,134, 88,201,192,150, +212,184, 56, 31,142,193,232, 6,213, 5, 83,205,142,206, 73, 2,153, 70, 83, 74, +119,202, 16,107, 92, 43, 95,204,137,166,117,198,173,116,244, 57,118, 74,239,105, +101, 13,219,109,207, 42, 24, 55,215, 89, 22, 61,118, 42,155, 28,106,137, 6,234, +226, 91,217,206,150, 80,146, 71, 75,159,148,164, 34, 29,203, 76,218, 87, 94,121, +229, 47,174,244, 98,244,125,209,197, 86,126, 32, 18,219, 19, 3,217,111, 99, 61, + 47,218,254, 90,201,218, 39,141,253,145, 9,163,178, 75, 51,238,169,189,173,113, +153, 37, 47, 14,182, 16, 2, 38,160,128,155, 42, 74, 0,172, 72,164,142, 97, 23, + 91,203,150, 37, 63, 35, 20,135, 8, 60, 70,127, 77,230,248,202, 60, 19, 73,164, +178,149,214,225, 43,103,183, 89,122, 68,114, 9,111,125,127,173,100, 84,159,193, +243,178,130,142,201,225,149, 74,111,208,100, 55,129,111, 71, 20, 8, 27, 90,130, +151, 38,251,246,236,182,159,204,159,247,169,139, 65, 22,213,102,119, 74,131,132, +134,240, 11, 11,191,253,139,177, 54,154,242,129,239, 5,213, 54, 54,238,128, 19, +143, 83,225,169, 42, 56,158, 78,140,152,152,173,116, 76, 95,182, 5,232,212,144, +238,233,104, 44, 50,241,194,121, 19, 85,100,170, 45, 57,170,210,121,106,242,197, +197,182,251,165,154, 72, 6,213,248,243, 56, 32,218,107, 54,232, 14, 35,109,210, + 95,124, 49,207, 75, 71,115,137,136, 23, 79, 5, 53,186,221,191,154, 78,186, 85, +169, 89,124,189,202,112, 46, 26,233, 23,104, 14,152, 84, 9,153,211,181, 82, 3, + 81, 64,243,154, 29,197,164,199, 35,193,195, 43,212,104, 59,228, 16, 16,150,154, + 28, 46, 64, 42,240,120,112, 46, 24,207,147,120,168, 32,210, 45, 40, 42, 6,153, +135,168,130, 80, 70,220, 31,175, 56, 8,239,234,241,232, 39,120,120,229, 21, 69, + 73,215,108, 50,158,140,231,154,220,167,186,226, 14,185, 4,201, 67, 99, 98, 88, +179, 0, 8, 84, 29,242, 56,218,126,109,114,148, 72,217,216,144,172, 90, 85, 85, +119,229,147, 5,103, 3, 47, 48, 46,216, 68, 79,197, 70,250,212, 90, 98, 23,115, +197,206, 85,242,168,210,141,183,142,118, 58,151,170,170,232, 84, 28, 19,197, 93, +189,167,216,106, 18, 59,101, 17, 73,156,138,162,254, 96,179, 79,177, 89, 27,108, +174, 4, 11,194, 57, 13, 81,213,213, 89,147,108, 59,131, 66, 38,157,212, 86,206, +174,188, 56,101, 21,168,236,224, 84,132,104,168, 51, 89,115,208, 57,167, 76,146, + 36,169,209, 26,179,145, 16, 16, 22,150,139, 71,115, 57, 73,206, 15,147, 17,226, + 32, 45, 20, 16,161, 65, 12,142,112, 28,195, 48, 8,136, 49, 70,192, 4,132, 16, + 66, 40, 33,136, 12,201, 32,117, 14,184,158, 46, 63,252, 32,125, 64, 26, 67,178, +135,204,121,223,116,154,201, 11, 53, 52, 80,121,237,255, 48,136,144,243, 55,153, +209,154, 90,243,113, 93,123,165,194,120,228, 79,187,198,172, 5,239, 57,184, 30, +112, 83,206, 56,254,134,188,172, 73, 1, 53, 1,131,233,156, 57, 52,131, 11,235, + 2,145,174, 1, 92,234, 78,178, 20,255,149, 74,147,214, 88,180,230, 3,206,128, + 47,187,249, 53,203,251,219,180,155,255,136,221, 32,171, 55, 7, 38,103, 45, 47, + 89,251, 23,203,133, 37, 65, 67, 54, 45, 91,182,251,181,176, 66,141, 37,116,123, + 53,219,195, 12,207,101, 25,231, 27, 33, 4,100,201, 74,130,136, 98,199,193,182, + 34,122,108, 36, 36,178,151,201, 20,146, 35,214, 91,237,196,106,244,214,202,241, +242,141,225,169,230,207,253,149,240,120, 14,235, 21,242, 98,203, 30, 2, 3, 43, +118,180,166,171,105, 94, 77, 92,161,255,133,228,174,202, 19,171, 76,163, 96,185, +134,135,199,187,122, 93, 5,222, 71,254, 42,244,107,251, 42, 53,183,179, 74,140, + 27, 60,100, 25,235,249,226, 76,254, 67,203, 9,210, 89, 84, 7, 99, 63,230, 26, +141, 63,166,114,248, 48, 88,208, 91, 36, 6,143, 57, 50, 11,177, 10,111,189, 18, +165,190, 31,252,161,131,195,124, 15, 39,116, 85, 70, 67,108,174,132,223, 17,173, +204,205,179,224, 41,142,130,119,123,232,158, 11, 23,209,153,218,185,195, 24,227, +154,226, 99,164,195, 61,141, 36,185,208, 86, 83,128, 45,207,109,145,171,116,134, + 44,212, 8,191, 31, 68,138,230,236,101, 30,112,241,201,197,232, 14, 80,243,172, + 59, 31, 94, 7, 67,113,239, 27, 9,140,157,155,114, 26, 26, 80,123,105, 91,244, +101, 78,199, 33, 98,120,233,203, 68,185,105,166,138,247,125,216,241,143,224,229, + 32,107,234, 92,192,168,148,145, 64,150,195, 4, 42,139,235,153,116, 63, 82, 42, +216, 88,218, 74,250, 71,141,145, 28, 0, 58,134,218, 45, 42,219,172,130,227, 47, +128,198, 50,211, 52, 10, 5, 15, 7,233,242,138, 83,189,230, 84, 98,117,132, 1, + 14,184,178,111,197, 36, 51,170,194,102, 29,186,239, 81,240,158, 79, 12,160,147, + 7,182, 7,203,230,201,105,140,228,144,216, 46, 46,181, 76,124,200, 15, 15,167, + 6, 86,195,153, 46,151, 74,199,100,203,130, 68,212,242,158, 32,200,156,116, 53, + 92, 2, 54,255,116,229, 95,185, 39,105, 34,126, 39,224,141, 23,156, 61, 19,241, +239, 65, 37,146,117,172,206, 12,195,151,231, 73, 76,246,171,199,124, 50,120,191, + 18, 40,197,238, 51,139,184,101,231, 67,146,135, 60, 13,186,161,167,163, 39,124, +245, 65, 39, 75, 59,147, 9, 54, 87,161, 98, 98,133,117,241,249,251,122, 84,105, +230, 54,100,209, 94,232,120,233, 81,136,153, 2,199, 9,138,199,169,127, 82,121, + 75,197,113, 5, 4, 99, 49, 58,180, 73,247, 0, 63,170,185,248,230,240, 91,113, +203,114,109,153,183, 20,172,139,143,251, 1, 15, 83, 16, 8, 25, 68, 47, 67, 59, +234,126, 32, 64,229,205,185,222, 48, 76,104,159,116, 20, 96,203, 70,207,176, 67, + 79, 30, 17, 10,164,246,235, 11,142, 29, 3, 36,212, 22,111,128,214,240, 22,157, +137,246,176,164, 70,178, 47, 44,181, 80,237,183,153, 91, 4, 58, 79,194, 18, 48, + 9,115, 29,141,116, 56, 19, 6,103, 33, 93,191,202,195, 73, 97,140,147,147,199, + 71,191, 31, 39, 28,223, 11, 18,220, 5,142, 78, 7, 8, 52,221,212,217, 49,133, + 89,131,194, 64,244, 16,144,152, 68,231,210,158,203,116, 49,184,222, 67,212, 69, + 60,173,116, 61, 76,233, 37,246, 77, 17,231, 16, 56,241,129,110,239,203,103,134, + 81,225, 48, 30,198,121,224,191,186, 68, 52, 38, 78,104,116,149, 17,183, 34,204, +163,228, 48,124,244, 32, 82,126,137,170, 47,113,107,103,246,246, 18,236, 49,207, +131, 50, 95, 63,198, 66,178, 46,189, 46,200,165, 58, 71,124,127,147,149, 35, 93, +166,198,163,239, 88,127,219, 71,183, 49, 40,210, 38,139, 67, 18,170, 67, 18,102, + 5,177, 40,173,136,254,129,164, 4, 57, 77, 41,212,233,237,132, 37,209, 33, 75, + 64,177,185,204, 33,145, 4,170, 58, 24, 61, 64,108, 33,156,233,255, 10, 0,128, +198,206, 43, 92,227,221,109,133,208,197, 78, 84, 12, 35, 86,172,122,148, 16,140, +186, 95, 79, 12,203, 47, 73,199,120, 73, 46,117,199,205,106,121,156, 90, 24,249, +184,104,129,182,117, 53,124,132,238,144,213,222,107, 88, 15, 84, 66,165,219, 14, + 30,216, 24, 31,164,186,106,191,127,170,110, 42,158, 34,233, 82,154, 5, 59,215, +248,157,105,127,119,248,141, 66, 50, 86,213,166,129,154, 0, 19,130,175, 74, 65, + 71,165, 66, 81, 3,237, 94, 24, 63,186, 80, 57,240,122, 14,143, 24,228,111,240, + 84, 1, 24, 73, 69, 4,190,106,141,150,129,120,130, 36, 18,112,146,115,141, 64, + 31,202, 63,115, 90, 80,214, 6, 0,164, 16,178, 8, 63,152, 59, 96, 48, 2,205, + 72,224, 12,175, 76,153,225,129,173,163,229,144,130,248,207, 19,242,116, 99,118, +119, 27, 37,113, 76,120,138,142, 61,116,115, 7,204,187,142, 47,243, 58,218,205, + 27, 44,226,122, 31,232, 6, 16,179,184,203,178,207,131, 19,234,127,155, 3,102, + 30,168,170,106, 61, 35,159, 46,245,171,218, 6,195,109, 56, 94,178,141,103,205, +142, 18, 15, 81, 89,105, 7,164,146, 6,186,220, 30,173,151,105,161, 59,174,227, + 52,107,255, 89,253,170, 0, 82,253,106,147, 50,109,214, 8,195,189,211,125, 61, + 10,130,219, 19, 75, 75,140,109, 76,182,236, 82,233, 13,122,242, 84, 21, 15,228, + 78, 51,220,216,116,206, 1, 51,148, 57,249,114,155,230,223, 59,206, 26,209, 13, +100,190, 79,198, 24,139,236,115,251, 38, 85, 57, 92,250,139,216,125,144,186,136, + 23,221,202, 98,136,242,109,130,143, 55,166,131, 35,245, 53,200,143,193, 70, 40, +126,225,158, 99,114,154,175,219, 69,203,193, 19,109, 14, 60,119, 86,182, 89,106, + 15,247, 0,207, 85, 65, 52, 21,170, 26,169, 63,230, 42,110,206, 83, 38, 85, 66, +238,254,193,138, 26, 0,206,230,142,186,107, 60, 57,200,213, 15,209,135,253,237, + 57, 20, 51,158, 19, 40,220, 39, 90,225,246,227,179, 28, 41,148, 75,124,218, 55, + 53, 77, 25,164, 83,216, 75,228, 6,180,110, 68,110,215,220, 48,209,176, 92,137, +237,137, 3,146,247, 35, 70,145,106,104,119, 54,158,140,225,187,194,164, 22, 25, +132, 42, 77, 49,245,133, 10, 32,169,134, 36, 52, 86, 2,214, 56,202, 69,169, 28, + 90,242, 51,131,250, 97, 8, 60, 4, 69, 98,180,207, 21,211,114, 49,138,116, 18, + 2, 77,135, 12,179, 86,100, 64, 0,113, 14, 18, 27,133, 0, 54, 49,154, 62,243, + 26, 63,192, 45,140, 15,133,151, 36, 6,252, 3,164,143,144,100,212, 48, 71, 61, +196, 84, 22,233,251,172, 35,136,168,243, 44, 73,135,108,190, 48, 36,112,133,249, + 24, 2, 40,236, 41,121, 13,220,153, 24, 73,178,202, 70,197,170, 74,116,141, 34, + 98, 82,249,121, 21,138,140,242,201,243,124,119,214,172, 65,189, 34,189, 47,169, +187, 65,223,203,170, 37,141,202,184,253,108,133,183, 40,200,227,189,177,155,217, + 58, 25,151,236, 59,229, 40,186,246,105,167,129,157, 93,164,186, 95, 34, 96,232, +219,144, 34, 27,102, 34, 99,190, 27,205, 96, 98, 3,203,167,150, 19, 59, 33,191, + 73,190,215,182,118, 86, 48,195,109,200,102,102, 50, 29, 46,182, 50,148,153,140, + 62,112,193, 42,204, 48,224, 60,163, 43,173, 11,255,198,179, 11,208, 79,169,219, + 87, 37, 43, 19, 59,117, 23,152,191,202,201,229, 88, 9,254,109, 3, 74, 77, 96, + 74,213,178,213, 16,161,166, 51,188, 53, 65,190,198, 67, 93,149, 35,134, 50,180, + 4, 7,129,188, 76,208,169, 15, 25, 80, 52,141, 63,230, 1,130, 8, 10, 39,106, +129,217, 24, 13,147, 70, 22,119, 53,246,197, 44,154, 30, 72,144,167,212,235,251, +255,155, 1,129, 36,227, 22,237,132,104,120,148,141,253, 80, 37, 84, 34, 45,122, +128,243,182,154,159,217,176, 98, 40,253, 71,207,214, 57,158,131, 18, 82, 50, 14, + 55,175,193,155,195, 50, 13, 48,128,244, 74,235, 32, 12,103, 17,240,239,139, 74, + 30,115,103, 59, 2,172,249,127,109,130,206,176,242,110,227,123, 55,108,121,116, +243, 4,229, 3,161, 66,104,153,244, 39,145,227,106, 20, 41,131,217, 43, 43,222, + 5,184,206, 80,124,113, 97,183,232, 99, 3, 16, 83,169,159, 20, 50,170,162,232, +195,111,255, 61, 0, 18,176,217, 72,123, 35,148,113,149, 24, 64, 47,202,166,132, +121,103,215, 1,116, 88, 97, 4, 45, 68, 4,178,218, 93, 12, 13,137,101, 63,102, + 90,176, 73, 38,164,165, 74,249,211, 27, 22,109,177,195,171, 34,156, 24,133,141, + 68,198,216,220,221,167, 94, 91, 27,151,154, 44, 97,251,114, 9,204,181,131,250, + 55,254, 35,107,171,219,157, 49, 44,182,242, 43, 61,143, 51,245,116, 95,168,222, +158,246,235,216,242, 31,104, 8, 73, 96,165,191,199,241, 11, 13, 34,138,172,188, +114,120,242,103, 64,127,162, 99,113, 34, 77,185,115,190,112,188, 42,225,224,136, + 91, 22,163, 25,170,112, 31, 2,182, 87, 13, 82,202,181,201, 50, 29, 87, 29,215, + 58,184,232,246, 20, 58,185, 58, 32, 6,122,109,149,121,197,252,247,195,177,252, +198, 24,166,105,191, 56, 0, 2,144,248,127,242,107,231,168,147, 61,230,106,143, +228, 53,145, 73, 72, 83,197,134,153, 31, 36,238,159, 99, 17, 1,129, 74, 22, 10, +188,218, 72,101, 32, 33, 33,212, 42, 21,242, 26, 69,154, 63, 63,223, 16, 92,219, +224, 43, 26, 6, 20,139,139, 47,247,176,164,163, 47,167, 39, 65, 31,103,208, 79, +200, 38,153,166,134,175,237,190,114,214, 57, 1, 65, 17, 68, 95,182,193, 27, 87, + 64,166, 88, 3,121, 39, 2,178,117,186,196,246,202,120,102, 71,104,129, 51,105, +208,235, 50,241, 8, 6, 78,206, 3, 84, 93,110,106, 55,185, 88, 61, 21, 51,115, +146,160, 32, 90,252, 94,144, 60, 0,202,135, 38,166,161,137,179,172, 60,152,101, +238, 43,227,178, 59,109, 97,196,198, 77,103, 48,116,122,152, 17, 43,101,148,152, +202,173,224,110,114,187,178,157,237,143, 19, 94,164,101,244, 20,229, 30,146, 2, +198, 99, 64,166, 9,167, 88,123, 49,120,141,172,100, 21, 78,213, 73, 69, 17,108, +161, 46, 34,193, 33,191, 29, 59,206,195, 4,245,108, 28,122,144,143, 69,248,103, +255,198,253, 7,198,125, 67, 54, 12,140, 94, 31,131, 18,213,150,204,236, 66,130, + 25, 9,241,179, 93,240,147, 21,189,191,133,197,132, 69,102, 99,158, 16,124,130, + 43,114, 60, 11, 74,173,224,144, 85, 48,185,140, 34,226, 64,112,150, 43, 63,152, +173, 60,185, 41, 14,255, 66,156,141,132,146,226, 11,115,247,105, 35, 90,112,195, +168,144,131,240,103, 59, 8,251,248, 85,121, 33, 26, 72, 36,145,233, 55, 76,102, +236, 44,229, 57,217, 6, 4, 76, 50,172, 74,188,140,114,144, 25,138, 11, 91, 58, + 0,249,180,135,126, 55,189,214, 75, 38, 42, 76,188,179, 46, 5,181,146, 0,136, + 59, 29,112,238,121,232,171,107, 47,123,196,207,173,230, 56,219, 66,197, 9, 79, + 58,249, 41,207, 8,181, 76,123, 58,214,230,210, 57,173,210, 62,114, 75, 1,160, +247,211, 85,255,158,212, 44, 76,199, 69,179, 34,233, 74, 38,106,204,220, 14, 44, + 42, 16,112, 73,220,181,242, 60,250, 77,245, 68,201,133,130,120,139, 85, 10, 3, + 31, 24, 15,208, 74, 82,230,118,243,195,147,211, 96,136,243, 85, 23,125,194, 59, + 84, 32, 16,114, 70, 55,250,123, 6, 44,186,248,106, 7, 52, 54,205,253,186,204, +100, 6, 53, 66,255, 48, 33, 75, 63,154, 19,240,238,191,252,180,206,101,240, 7, -// ../Source/Template/GB_ewise_fulln_template.c: -uint8_t GB_JITpackage_113 [639] = { - 40,181, 47,253, 96, 10, 6,173, 19, 0, 22, 96, 99, 32,208, 28,231, 24,149,213, -255, 59,212, 71,162,195,106, 72,143,165, 21, 58, 78,205, 40,154,106, 0,244, 15, -174,240, 72, 7,241, 11, 90, 0, 87, 0, 91, 0, 42,219, 57, 73,210,123, 11, 5, - 66, 81,112, 36, 16,138,119, 34,119, 15,219, 87,165,220, 64, 47, 27,115,217,178, -158,123, 33,205,124,163, 89,207,203,163,241, 89,205,176,179,117,133,219,251,172, -199, 45,218, 51,215,214, 23, 39,201,250, 62,123,132,253, 35,208, 75, 14,254,209, -185,146,102,171,179,233,146,164, 43,101,106,108, 97,109,250, 46, 63, 28,182,194, -225, 16,178, 24,120,212,173,247,190,123,244,185, 85,255,255,109,163,109, 91, 96, - 52, 92, 87,224,141,114,145,226,181,130,109, 51, 96,178,239,217,172,247,109,213, -101,183,254, 44, 83, 71, 53,118, 61,151,247,199,118,244,124, 67, 24, 20,133, 30, -197,106,210, 63,206,182, 41,155,111,163, 48,133,198,183, 69,155, 41,136, 40, 28, - 3,170, 95,103,227,238, 28,231, 49,176,107,239,141, 98,237, 58,230, 55,228,230, - 71, 75,108, 39, 5, 16, 0,126, 29,229,158,201,124, 44,166, 16,227,233, 84,194, -144,118, 32,119, 37,127, 54, 49, 26,249,218,103,124, 75,241,144,119,179, 43,114, - 15, 51, 20,164, 1, 65,240,251, 62,200, 99,147, 2,125,199, 93,242, 24, 29,188, -194, 25,121, 76,180,163, 63,203,195, 61, 42,145,128,220,207, 46,115,181,167, 7, -219, 86,219,106, 4,201, 17, 32,119,206,166, 18, 98, 66,149,239,244,157,184,127, - 37,147,244, 88, 99,178,166,238,153,247, 98,244,158,167,114, 89,217,202,157, 86, - 58, 52, 3, 86, 40,167, 17, 8,145,155,135, 28,113,201, 77, 78,180,185,102,204, - 53,233, 66,245, 40,226,119,151,195,168,218,231,152, 77, 45,215, 37,251,172,230, -205, 86,249,218, 82,213,211, 20,200,106, 99,160,113, 57, 83, 51, 34, 18,136, 72, -148, 66,105, 56, 96, 68,102,170,106, 55,205,133,164, 24,108,119,112,107,194,111, - 39,187, 40,104,225,142,181, 17, 69,176, 60, 65,232,113, 49,235, 26, 72,191,209, - 51,194, 4, 19, 65,171, 32,192,148, 29,220, 31,188, 17,139,150,236,207,230, 11, -173,163,241,194, 14, 28,181,229,109,248,108, 69, 74,164,108,111,203,252,129, 51, -184,124,138, 70, 50, 25, 3, 19,123, 99,139,146,180,110,224,124, 76,137, 29, 52, - 69,100,106, 24, 61, 96,116, 54, 5, 69,212, 7,160,120,234, 60,206,250,246,194, -152, 63,113,225,200,108, 2,202, 54, 8,164, 80,172,195, 67,196,116, 78,186,216, -102, 55,142,167, 29,108,179, 75,216, 62, 67,198, 91,230, 47,185, 34, 56,200,194, -195,144, 0,150, 3, 28,236,117, 2,187, 46,107, 69, 0, 73,122,215,105,177, 32, - 52,191, 6, 69,217, 37,146, 37,188,216,107, 19, 52, 2, 84, 3,112, 4, 50, 86, - 8,104,211,236,252,204,148,126,209, 10,183, 8, 19,167, 93, 85, 81,135, 7, } ; -// ../Source/Template/GB_iceil.h: -uint8_t GB_JITpackage_114 [236] = { - 40,181, 47,253, 96, 35, 1, 21, 7, 0,114, 14, 45, 23, 64,219, 1, 22, 70,217, -219,190, 77, 7, 33,125, 81,192, 98,236, 66, 4, 26, 59,154, 4,128, 0, 0,254, -151,125,184, 61, 36,109, 8, 77,244,128, 5, 65,232,161, 43,176,208,245,151,113, -227, 70, 79, 15, 61,205,223, 37,155,118, 23, 55, 88,222, 11,120, 0, 80,156, 85, - 73, 80, 5,250,151,193, 15, 0,228, 80, 12, 23, 61,108, 58,221,156,254,224,167, -217,191,202,112, 52,187,247,150,177, 69,215,241,249,122, 58,234, 88,163,169, 24, - 62,214,227,232,116,177, 40,136, 98, 48, 9,162,244,224, 9, 93,160,191,226,168, - 15,167, 91, 49, 45,201,215,186,200, 28,235, 17, 77,124, 78,141,163, 39, 54, 51, - 79, 95,205,128,161,187, 88,232, 48,127,159, 37,216,104, 46, 63,253,252,160,127, -221,136,199,248,238, 61,247, 76,125, 47, 96,220, 27, 15, 0, 4, 3,194, 37, 40, - 94, 64, 37,196,188,106, 43,224,213, 42,156, 77, 22,208, 39,106, 87, 51,104,218, - 60, 51, 69,155,192, 86,235, 1,131, 8, 59,215,167, 40, 24, 2, +// ../Source/Template/GB_AxB_saxpy3_template.h: +uint8_t GB_JITpackage_98 [4518] = { + 40,181, 47,253, 96,156,116,229,140, 0,250,124,196, 22, 45,176,172,142,115,242, +172,209,203,118, 47,133, 14, 53, 84,106,169, 11,103,148, 5, 53,228,221,125,206, +203,105,203,159,194,141,154, 96,229, 53,203,125,248,167,244,167,193,217,241, 12, + 97, 1,104, 1, 93, 1,214,181,177,116, 58,176,194,185, 3,229, 26,214,109,215, +169,184,109, 17, 52, 89, 40, 50,112,115, 61, 40,223,152,161,237,218, 73,177,136, +227,147,229,104,251,251, 67,214,101, 65,121, 72,202,238,195,197,237,182,231, 15, +158,173,228, 87,152,156,106,104,248,251,211,170,233,213, 85,241,236,109,143, 70, + 99, 92,214, 31,103, 77,231, 58, 17,165,242,122,112,184,102,163,118, 97, 32,120, + 88,179,159,221,222,246,173, 59, 60, 76, 56, 85,153, 43,105,151,237,203,154,254, +153,188, 91,227,181,151,197,253, 94, 4, 34,238,236, 47, 68,248, 66,165, 93, 74, + 36,154, 30,189, 24,143, 78,133,158,100,178, 94,121, 68,207, 55, 86,190,125,122, +207, 92,185, 75, 66,151,117,117, 44, 20, 11,156, 5, 88,168,184, 44, 29,136,177, +176, 44,157,107, 0,134,197, 5,228, 92,213,197,135,179,249,233, 0, 11, 11,144, + 42, 30,254, 67, 95,186,109, 89,187,159,244,217,100,142,179, 95, 58, 79,179,179, +101,173,243, 67,176, 74, 63,183,147,246,237,217, 31,150, 88, 16, 0,129,120,176, +134, 69, 14, 94, 82,185, 63,125, 39,103,151, 7,219,201, 88, 99, 30, 23, 18, 22, +144,140, 71,149, 45,111,110,175, 6,234,205,165,132,127, 3, 32, 4, 64, 60, 10, + 68, 4, 64,156,194,166, 63,219,163, 40,113, 8,124, 73,187,116,235,206, 31, 7, + 98, 42,141,139,149, 66,194,182, 70,142,195,183, 59,206, 66, 70,181,203,219, 31, +123,116,134, 74, 17, 88, 7, 42,127,149, 3,164, 84, 46,209, 32,124,163,228, 54, +190,215,128, 18,167, 17,237, 85,105,192,171,162,248,195,195,194,227,225, 33,143, +116, 56,155,203,132,104,218,186, 41, 9,137, 36,211,172, 42,143,163,226, 34,142, + 83, 42,206,115,135,115, 85, 72,116,201, 51, 68, 34, 8,215,170, 39,152, 94, 61, + 56, 89,203, 50,171, 17,196,245,180, 98,113,187,109,202, 67,231,202, 26,233,175, +250,236,170,226,116,160,133,193,192,208, 85,133,184,210, 9,234, 63,234, 78,183, +108, 32,166, 98,145,184, 20, 92, 42, 27,203, 5, 99,113,233, 96, 26, 88, 23,231, + 98, 65,179,107,111,108, 31,185,151, 40,144,200,104, 42, 22,206,181,209, 76, 92, +157,201,187, 35,183,178,157, 7,158,241,217,239, 83,222, 2, 40, 92,139,108,168, + 55,134,203, 32,139,155, 30,234,235,234, 10,145,141,247, 20,123,172,224,192, 10, +235, 20, 42, 35,226, 56, 5, 10, 14, 16,220,205,190, 20,197, 16, 17, 49, 0, 49, +128,192,189, 34, 34, 16,147,255,239,247, 50,112,103,119,211, 45, 29,140, 42, 98, + 35, 38,185,178,139, 20,111,180,221,166,107,216,109,146,237,100, 28, 61, 25,107, +119,177,174, 94,139,193, 52,200,176,149,212,235,112, 96,133,130,242, 84, 21,197, +157,108,109, 79,147,218, 81,188,172,221, 79, 71,174,158, 55,161, 60,163, 47, 21, + 5,213,208,240, 12,139,131,112, 79, 70, 67,248,167,226,167, 34,167, 80, 40,135, +227, 7, 38, 19, 69, 77,167, 92, 67,195,250,189,150,171,195, 69, 53,110,207,226, +222,189, 68, 54,110, 83,198, 25,243,156,148,228,164,183,146,103,101,209,179, 7, +214,149, 39,131, 22, 48,150,204,198,178,224,234, 92, 20, 48, 22, 57, 43,170,148, +116,136,237, 40, 78,153, 43,221, 79, 30, 53,232,222,136,217, 75,238, 21, 10,127, +153,164, 27,183, 88, 96,116,120,210,236,189, 11,104, 61,100, 46,214,103, 63,174, +236,206,131,245, 70,111,124,236, 17,117, 95, 79,144,190,147,159, 49,199,158,207, +136,157,111,204,184, 78,226,162,201,104,172,123,138,227,146, 11, 9,139, 6, 87, +229, 98,105, 58,240,122, 48,201,102,215, 44, 61,241, 78, 18,150, 87, 42,149,137, + 68, 6,114, 87,239, 41,211, 73,146,210, 70,148,216, 95,229,142,119,101,122,228, +146, 64, 61, 38,157, 19,117,209,172,114, 30, 69,150,179, 39,126,136,140,147,246, +229,104,118, 91,146, 83,115, 43,181,151,100, 44,174,206, 70,163, 81, 81,169, 76, + 78,245, 95,133,155,238,112, 84, 42,167, 96, 63,240,254,228, 2, 38,172, 37,245, +108, 37,251,146,228,218,113, 87,118,150,235, 37, 20,153,203,230, 98, 89, 56, 24, + 25, 8,201, 88,122,182, 46,116, 27,159, 49, 8, 20,229,231,182, 39,149,201,217, +202,218,141, 87,197, 82,209,129, 84,168, 47,150, 1, 33,252,155, 14,101,196,154, +163, 84,190,242,237,232,103,204, 94,202, 34, 87, 25, 29, 38,154, 37,163,185,144, +202, 35, 38, 81,237,175, 82,142, 62,107, 58,233,246,218,179,207,182,139, 52,192, + 88,108, 52, 23,152,179,214,129,208,123,154, 69,110, 75,145, 36,227,189,132,250, +133, 5, 99, 97,105, 42, 15, 24, 54, 23,104, 49, 57,244, 4,207,183,227, 54,138, + 73,140, 51, 81,247,118, 73,169,199,234,134, 80, 20, 97, 20,193, 6, 8, 33,132, + 16, 66, 8, 41, 17, 20, 93, 48,163,170,232,171,184, 63,141,234,143, 18,137, 68, + 29, 43,183,228,250,202,110, 11, 0, 52, 72,118, 69, 68, 34,128,115,214, 73,108, +246,236, 36, 17, 17,216,177, 88,113,163,101,108,140, 57, 46,205,248, 44,155,200, +163,129,138, 56,166,201, 39,148,217,125, 38, 62, 36, 42, 37,253,216,108, 70, 78, +131,175, 97, 16, 8, 68,210,215,224,236,175,196, 97, 27,111,159, 94,186,220,198, +183,188, 81,140, 61,151, 86,222,120,150,211,185, 84, 81,235, 74,170,244,246,178, +113, 64, 77, 21, 19,144,152, 49, 22, 37,215,121,254, 62,146,237,237, 82,119,177, +120, 57,198, 52,184,178,118, 10,194,110, 87,140,179,182,179, 37,224,239, 29, 6, + 8,252, 65,252, 69,108,107,247,143,202,182,163,166,107, 80,236,239,189, 73, 79, +109, 52,153,139, 63, 6,150,137, 94, 66,226, 6,138,149,187,133, 53,153,211,100, +124, 39,111, 44,185,173, 31,230,109, 52,152,207,200,143, 99,177, 46, 29, 2, 17, +160,184,245, 7,147,145,235,101,239,228,217,167,164,123, 27, 33, 6, 84, 38, 42, +223,200, 21, 52,227,180,205,208,179,178,148,113,179,150,235,141,218,181,243,113, +141,183, 91,229,123,237, 82, 15,189,191,182,219,126,173,140,159, 43, 99, 39,129, +223,229,135,100, 44,194, 88,195, 30,219, 38,105,126,200,181, 77,123, 20,181,121, +123,163,215,110,147,254, 88,122, 58,154, 69, 42, 63, 19, 8, 36, 83,239,254,149, + 65, 60,187, 11,245, 54,184,233, 21,149, 11,203,197, 48,157,101,107,164,219,159, +100, 60, 65,109,109,204,100, 71, 53,251, 76,204,220,246,237, 60, 15, 1,229,192, +116, 9,154, 57, 54, 56,135, 63, 18,207,141,133, 4,168, 3, 42, 90, 24,100,204, +212,204,140, 72,146, 36,105, 12, 83,145, 16, 24, 18, 9, 76, 6,163, 65,105,218, + 62,243, 48, 67,249, 32, 38, 68,131, 48, 10, 97, 17, 6,129, 16, 6, 65, 88, 2, + 34, 32,134, 8, 8,129,132, 16, 74,136, 33,210,171, 3, 39, 56, 61,149,231,181, + 65,138,193, 95, 4,110, 84, 34, 78,251, 12,140,193,131, 8,179, 42,224, 37,131, + 70, 17, 8,153,228, 94, 86,175,224,249,208, 59, 89,197, 76,130, 1,135, 57, 29, +193,192, 90,152,216,188, 8, 25, 81, 19,117, 58, 37,114,176, 72,174,125, 33,249, +134,113,174, 72, 91, 34,104, 44, 46, 56,118, 43,133, 71, 47,255,221,207,160, 70, + 12,167,106, 8,189,119,227, 84,163, 16,130,241, 82,235, 35,132,146,130,218,168, +207, 92, 38,212, 10,249,191,160,221,234,188,168, 85,104,113,179, 92, 5,169, 59, + 4,241, 30,179,217,106,244, 47,110, 86,174,195,243, 30,172,154,206, 2,202,169, +236, 36,108,213,102, 87,102,215,236, 47, 67, 72,230,156,210,216,222,191, 27, 25, + 28,142, 0,126,162,138,193, 21,254,115, 39,238, 60, 36,113,252, 19, 8,130, 97, +131, 2, 78,248, 32,111, 19, 91,120,102, 4, 70,155,232,123, 92, 56,173, 23, 61, +248, 35, 5,213,163,180, 22,213, 93, 62,126, 68, 12,138,254,174, 5,146, 95,100, +143,117,166,216, 13,232, 61,203,250,154, 6, 6,132,214, 2, 64,248,245,126, 20, + 96,195, 35, 84,155, 71, 0,134,186,136,180,229,165, 69,243, 70,253, 64,140,150, + 84, 51,153,138, 17, 21,203, 36, 31,171,219,114, 75,243,181,172,211, 38, 74,204, +190, 76, 47, 3,159, 83, 29,134,144,203, 47,171, 84, 71, 6,111,197,164,131,233, +164,149, 61,169,218, 13,184,126, 40, 70,169, 19,253,237,160, 86, 62,207,126, 37, +159,131,237, 36, 31,182,248, 57, 29,237,186,154,243,211,140, 67,220, 3,158,144, +146, 72, 78,162, 8, 91,120,198,221,194,179,186,109,213, 22, 12, 54,174, 34,219, +213,144,170,132,104, 7,109,218, 6,120,151,181,111, 58,219,180,130, 6, 81, 88, + 9, 89, 10,215,235,233, 63, 89, 33,166,138,240,100,161,196,116, 82, 42,246, 37, +227, 70, 53,157,231, 84,197, 11,119,250,207, 50, 88,213,131,139,168,252,208,236, + 66,121,137,248, 69,194, 56,230,247, 74,176, 16, 38, 23,108, 59,173, 55,153,172, + 12, 22, 45, 84, 85,161,117,117,198,175, 96,192,173,204,176,209,115, 23,223, 70, +232, 11, 48,212, 69,122, 60, 69,167,240,187,128,245, 12, 81, 69, 21, 82, 42,108, + 9, 13,162,237, 18, 4,150,212,145,203, 64, 1, 17, 30,127,111, 96,233,159,102, + 81,150,119,192,128, 89,240, 61,161, 42,247, 11, 14,153,147, 35,118, 66,237,244, +210,202,182,147, 18,214,133,211, 96,168,187, 71, 45,189, 38,182,137, 74,198,101, +241, 39,133, 61, 0, 78,154,125, 51, 92, 53,194,245, 45, 23, 2, 21, 47,181, 22, + 69,193, 89, 66, 13, 84,237,154,164, 21,105, 41,213,128,230, 13, 85,194,110, 38, +182, 59, 14, 60,211,105, 7, 89,191, 46,186,144, 69,121,202, 11,171,196,220,157, + 68, 85, 36, 38, 33,226, 11, 31,161, 44, 16, 1,177,237,255,187, 17, 92,146,154, +186,183, 27, 32,250,174,123,234, 35,128, 15, 47,132,124,174,157,200,229,235, 83, +189, 57,223,232,236, 77,188,253, 85,184,153,120, 44,204,241, 10, 8,215, 15, 30, +105,154, 83,221, 19, 32,134, 9,237,123, 98,112,167,145, 90,136, 64,225,100,188, + 34,148,244, 33, 64, 58, 28,174,235, 6,157, 34, 34, 0,249, 55,160, 26,125,238, + 7, 37,124,249,133,174, 45,119, 87,192,253,113, 75,210,138, 15,245, 53, 49,246, + 51, 16,181,236,123, 8,229, 70,169, 58,133, 10, 91,173, 82,218,149, 39, 17,195, +124,213, 84,183, 81,189,172,225,133, 55,178,241,189,169, 11,148, 73,241,173, 17, + 23, 87,105,118, 2, 46,254,110, 93,100,117,253,100,176,225,195, 79,109,211,211, + 5,150,159,136, 84,156, 53,237, 38,206,239,164, 12,195, 10,156,169,198,203, 92, + 28, 42,198,201, 70, 12,230,183,140, 48,108,227, 53,110,252,103,177, 11,235, 20, + 82, 67, 42, 49,101, 8,220,148, 96, 79,106,244,174,246, 39,115,246,230,230,154, +178, 75,160, 14,238,163, 23,110,132,245,148,161,139,123, 42,151,118, 54, 92, 80, + 41, 5,219, 39,202,120, 97, 82,211, 61, 1, 75, 20,234,215,244,175,101, 20,187, + 96, 98,230, 81,174, 74,246,178,222, 81,239,201,243,213,175, 87, 6,166, 89,245, + 40,217,105,200,219,203, 90,238, 27,169, 54,230,124, 23,118,114,109,236,199, 85, +208,106,167, 39,201, 71,193, 38,112, 92, 57, 42,191,230, 8,115,246, 61, 17,221, + 68,142, 80,137, 55,141,159,148,180,112,112,164, 17, 24, 52,102, 66, 97,209,134, + 5, 34,163,166, 69, 85,168, 14,236, 81, 94,149, 23,205,246, 78,124,250, 71,123, + 81, 36, 36,102,236,211, 61,235,141,135, 30,137,228,215,244,135, 30,182,254,133, + 75, 69,251,164,179,125, 56,183,157,116, 36, 62, 87,161,119,245, 28,225, 37,227, +172,127,162,235,146, 61,202, 87, 80, 32,227,233,241, 74,247, 53,225, 33, 84,160, +122, 52,171, 75, 14,149, 28,190,181,246,196,137, 96,161, 81,250,140,165,244,110, +242,185,244,206,193,151,174,218, 4,149, 74,164,160,163,216, 63, 7,247,215,211, +167, 9,232, 78, 37, 12,181,217,250, 43, 75, 85, 91,106, 3,122,159,111, 36,134, + 5, 76, 71,145,187,223, 86, 98, 75,119,234,109, 81,154, 30, 1,131,128,251,226, + 92,186, 27, 14, 26,108,151,240,241,250, 92, 82,171,243, 7, 70,149, 30,130, 99, + 67,226, 40, 69, 89,236, 36, 14, 27,162,187, 80,145,184,105, 7,213,152, 3, 0, + 18, 91, 8,128,111,180,225,116, 70,248,166,168,194,193,159,183, 96,166,128,184, +140,113,131, 7,157, 38, 1, 35, 67,201,101, 8, 71, 47,230, 22,225,145,120,150, + 44, 13,167,215, 60, 33, 42,120,184,217, 15,239,115,106,202,150,194,224, 59, 62, +214, 80, 6,123,209,227,190,235, 70,200, 85, 34,184, 22, 95, 58,217,121, 4,171, +240,129, 12, 16, 87, 64, 78,145,142,132, 48,214, 68,126,166,163,160,196,159,197, +214, 57,110, 54,148, 12,112, 35,129, 36,241, 65,225,136,192, 14,204,173, 1,194, +169, 32, 10,142, 79,200, 75,138,230,174,170, 56,216,106,124, 22,186, 63, 65,145, +197,227, 23,229, 89, 50,230, 81, 38, 76, 70, 52,243,142,111,179, 15, 64, 83, 80, +149,226,254,161, 91,228,212,158, 34, 8, 34,119,132, 26,136,176,185,212, 24, 52, +197,129, 66,120, 2,189,142, 55,209, 22,142,125,224,252, 54,107,160,210,215,129, +210,176, 29,103,153, 9,231,183, 59,196, 26,121,118,122,185, 9,213,249,193,251, +188, 96,227, 91,230,251, 31, 14,243,239,122,156,159,194, 8,100,255,223,184, 3, +235, 13, 20,242,156,208,179, 77,134,204, 86, 37,179, 26,185,126,175, 46,142,110, + 23, 67,122, 12, 33, 17,213,120,196, 24,115, 50, 93, 72, 21, 4, 24,194,192, 98, + 31, 77,194,101, 45,205,245,205,218,216, 46,188,139, 74,172,137,123,111,112,110, + 77,236,184, 69,172,123,122,130, 11,145,244,232,168,179, 97,227,150,174,255, 36, +152, 75, 13, 7,124, 49,210,240, 50,222, 29,189,115, 77,109,207,134,221,248, 90, + 36, 92, 15, 18, 73,164,216,235,164,135,144,208,218,171, 32, 22, 22, 11, 35, 80, +196,211, 66,172, 63,171, 26, 44, 84, 29,210, 1, 74,140,108,192,160, 78, 6,176, + 18, 73, 34, 42,110,101,233,239,181, 51, 55,125,161,222, 97, 43, 76,152,224,222, + 96,163, 31,103, 93,188,107,226,187,228,110, 28, 86,150, 92,233,220,123,191,189, +105,137,149, 78,130, 85,229, 84,191, 35,235,161,220,189, 12, 73,181,180,159, 23, + 95,114,157, 80, 81,148,215,211, 3, 5, 47,197, 5,202,137, 40,183,201, 79, 1, + 61,104,168, 32, 26,245,174, 51,139,241, 36,148, 10, 47, 45, 3, 74, 87, 96,124, +213,102, 68, 44, 81, 98,139,207,229,124, 38, 1,171, 2,129, 77,229,124, 9,108, + 12, 52, 83,147,101,122, 60,191,226, 71,147,111, 74,206,125,192, 47, 1, 25, 62, +156, 83,232, 72, 96,148, 96,213,237,247, 9,134,125,145, 77,250, 8,242,173, 80, +181, 99,137,147, 61,215, 19,180, 51,166,130, 54,229,158,198, 4, 44, 28,152,154, +120, 25,198, 49,178,255, 94,232,229,163, 34,158,227,245,178,115,139,151,180, 41, +122,106, 64,221, 99,196, 65,171, 38,220, 34,235,200, 38, 64, 80,245, 93,143,107, + 35, 18, 50,252, 76,252,211, 24, 70, 5,187, 41, 78,184,155, 34,203,180,183, 43, + 63, 24,134, 88,188, 80,236,164, 33,209, 73, 44, 69,213, 27,229,120,119,179,237, +126,213, 34,114, 52,193,211,143,171, 8, 24,133,129, 39,145,162,109, 78, 3,146, +119,212, 64,170, 81, 5,244,164,159,121, 75, 44,116, 99, 65,240,150,126,216,150, +197,180,171, 63, 42,134,215,108,243,161,113,235,198,116, 55,176, 3,122, 15,229, +201,250,215, 9, 58, 54,140, 2,156, 47, 39, 57,114,160,181,227,183,116, 8,209, +132,162,119, 63,195,214,148, 66, 11, 8,107,213, 6,171,159,139,149, 82,100, 90, +249,153, 84, 48, 44,108,224,154,124,182, 43,177, 45,180,122,166,218,211, 6,120, +111, 50,222,177, 32, 57,130,116,174,173,245, 15,244, 57,207,191,231, 68, 85, 67, +146, 52,180,180,238,136,178,146,168, 89, 53,134,136, 11, 49,129,238,194, 40, 87, +167, 34,193, 21, 21, 72,150, 12, 13, 7,186, 99,178,101, 86, 32, 71,157, 49,150, +123,227,252,233,218,127, 14,245,152,125,199,226,239, 70,105, 65, 33, 69,127, 10, +218,219,242, 86, 44,137, 51,157, 83,223,230,110, 70,175,215,120, 45, 74,201,169, +238,120,140,114, 6,186, 33,234,203, 13,201, 53, 59,158,186,210,119, 75,233, 81, +206,201, 29, 17,243, 24, 87, 92, 45, 37,251,127, 72,167, 84, 52,192, 66,147, 26, +216,208, 61, 77, 36,197,234, 61,138, 13, 31,170, 25,206, 30, 86,140, 89,255,146, +168, 32,250,186, 82,197,131,108, 23,157, 12, 75,156,101,123,104, 79,218,178,113, + 85, 81, 62, 16,169, 9,215, 97, 24,244,128,208,121, 37,243, 96, 76,152,129, 15, + 53, 44, 46, 80,243,225,183,184,147, 82, 54, 49,181,163,135,131,125,242, 34,206, +180,247, 40,172,114, 5,248,244, 49, 72,134, 70,130,245,220, 5, 90, 49,170,199, +160, 62,139, 58,255, 12,130, 82, 48, 4,157,235, 53,122,101,115,168,246,235, 9, +130,239,239,187, 18,205,103,155,127, 20, 13,208,209,244,115,243,165,165, 69, 93, +115,225,252,241,188,135,216,232, 65,190,100,113,146, 44,164,153,247,196, 71, 46, + 65,208,153, 99, 90,184,233,104, 11, 72,149, 26,200,162,187,119,141, 67, 45,239, +192,169, 88,211,251, 47,255,216,183,141,136, 68, 14, 81,171, 30,106,223, 89,133, + 49,161,165,245,210,102,114,121,178,192, 23,194,147,138,201,245, 80,109,202,199, + 65,131, 8, 88,134, 84, 8,106, 17,108,126,118,179, 6, 28,245,167,210,233,115, +212,217,156,217, 73, 92, 3,148, 54, 67, 98, 77,226,104,116, 75, 77,253, 29, 74, + 69, 49,198,207,254, 15, 28, 18,221,219,143, 66,119,138,183,158, 0,252, 83, 15, +162,218, 10,107, 88,167, 79,159,231,202, 34, 68,231,250, 74,186,226,213, 63,162, + 37,238,178,161, 13, 65,187, 88,226, 22,118,153,165,210,156, 51, 64,239,127,205, +226,132, 52,115, 10,205,223,115,153, 39,191,133,222, 7,178,158, 4,227,137,219, +102, 39,217,178,179, 24,136,180,224,154, 3,113,176, 29, 7, 10, 47,104, 9, 73, +159, 31, 45, 52,194, 40,177, 6, 99,108,236,204, 86,166,170,188,195, 51, 46,230, +203, 8,188,222, 23,246,210,168,150,210,209,167, 84,170,202, 84,221,237,131,181, + 45,173, 69, 67, 47, 32,238,114,206,192, 33, 7,207,150, 34,151, 34,169, 7,187, + 71, 78,198,217,246,255, 5, 91,230,187, 67, 3,225,234, 84, 69, 44,219,197, 32, + 61,185,101, 3, 42,228,236,106,232, 61, 21,174,220,255, 51,212,114, 47,225,165, + 7,178,109,128,194, 56,165,185, 14,184,185,191,114,109,153, 77, 43,204,113, 68, + 16,145,235,204,177,208, 72,167,213, 15,196,214, 76, 86,229, 66,166,119, 84,210, +218,222,103, 71,124,179, 14, 4, 14, 47, 64,237, 0, 33,128,125,159,137,207, 64, +117, 2, 89,201,232, 82, 65, 74,107,210,115, 65, 56, 29,118,200, 86,129,222, 8, +182,142, 19,154, 99,133,204, 63,126,246, 96, 23,121, 66,238, 52,208,172,168, 49, + 94, 60, 71,164,144,243,232,219, 42, 77,205,234, 27, 51,100,236,151,183, 68,151, + 51, 21, 89, 53, 3, 79, 62,227,174,229,141, 34, 80,138,248, 95,161,120,191,140, +138,133,241,202,174, 71, 30,170, 86,180,104,201, 20, 0,230, 67,162, 28, 0,230, + 45,162,132, 72,144,108,240, 95,224,213,161, 82,118, 78, 84, 73,120,200,210, 51, +194,254,156,244,123,196,224, 96,219,163, 76, 60,154,178, 73,186,152,220, 10, 20, +129, 48, 40,106, 15, 15,194,109,198,213, 54, 79, 12, 4,165,227,161,222,126, 35, +191,236, 22,205, 29, 99,153,227, 16, 96, 30, 17, 61,185,184, 98,179, 97,128, 76, +236,107,173,240,204,178,136, 29, 32, 5,116,133,176,166,187,194, 11,168,125, 84, +111,115,103,203,131,137, 28, 6, 41,233, 49, 79, 75,204,250,208,170,208,153, 72, +148,149,193,138, 14,145,131, 14, 9, 31, 71,214, 86,100, 49,145,182, 19,135,142, +242, 4,168,251,247, 19, 84,132, 74,255,152,141,215,181, 0,224,251,114,192, 64, +114,217, 54,121,179, 81,106, 74,131, 1, 68,213,175,142,207,245,104, 33,251, 54, +171,100,212,195, 39, 30,214, 34, 71,140,186,203, 31, 6, 2,183,180,234,160,116, + 23, 43, 50,174,230,220, 99, 1,108, 41, 11, 25,209, 58, 5,108,217, 31, 0,118, + 93,141, 36, 26, 50,147,218, 30,168,139, 38,160, 22,230, 87,121,204,110, 36,176, +158,234,188,249, 51, 72, 94, 73,212, 7, 25, 18, 35, 45, 70,164,108,194,190, 75, +235, 62,255,221,136,234, 68,134,151,142,175, 76,116,211, 4, 92, 48, 83, 84, 20, + 2,243, 80,235,134, 21, 24,233, 0,146, 51,167,131, 90,183, 26,131, 2, } ; -// ../Source/Template/GB_jit_kernel_proto.h: -uint8_t GB_JITpackage_115 [2452] = { - 40,181, 47,253, 96,170,145, 85, 76, 0,154, 73, 8, 14, 39,208,176,204, 3,239, -189,192,126,148, 26,178,110, 73,166,115, 34,229,154, 10, 66,140,141,213,199, 70, -126, 3, 33,132, 84, 91, 96,205, 82, 15,131, 43, 30,128,215, 0,206, 0,215, 0, - 60,212, 44,243, 98,109,152, 7, 52,189,251,125,218,142,203, 63,226,108,219, 35, -239, 70,222,187,186, 67, 96,241, 89, 99,189,200,111,250,213,143, 48, 40, 22,223, -249,158,239, 71, 31,167, 95,228,251,156, 10,122,190, 33,228, 31,107,221, 61, 46, - 30,170, 57,212,204,207,182,225, 6,164,226, 98, 97, 36, 30, 54, 95,141,245, 0, - 30, 15,211,194, 89, 46,218,196,172,236, 98, 69, 76,141,245,178,230, 2, 60, 6, - 4,164, 0,251, 85, 10,198, 71,216,246,106,110,207,214,187, 2, 44,207,182, 94, - 44,128,162,210, 4, 60,219,217,150,219,203,243,254,101,220,203, 99, 28, 63,162, - 72, 3, 82,128,193,100, 64,122,168, 66, 62,226,183, 67,171, 23,136,255,249,186, -230, 92,238,163, 45, 98,242, 3,233,118, 64,176,124, 83,112,179,253,134,219,131, - 63,119, 65, 60,198,244,183,214, 60,183,224,167, 63,194, 39,160,187,222,224,196, - 54,111,187,153,253,106, 76,233,240, 18,201, 35, 64, 34, 9,149,118, 24,211, 58, -229,111,182,205, 76,211, 68,161, 80, 50,148,179,142, 74, 27, 33,169,107,111, 74, - 79,148, 56, 75, 53, 37, 5,180, 41,166,149,127, 24, 2, 64, 13,121,254, 30,239, -110,114,248,245, 40,135,154, 37,195,208,248,137,209,203, 82,149, 73, 29,185,235, -228,129,204,119,122, 36,150,211,139,233,219,238, 63,148,243, 30,249, 94,166,239, -161, 62, 34,137,122, 8,246, 80, 79, 15, 53, 37,212,249,196,203,183,155, 31, 12, -130,220, 54,169,178, 75,206, 10, 76,211, 94,242, 59, 43, 82,202, 24, 99,229,163, -140,124,235,197,124,110,236,172,120,212,238,143,231,168,243,139,113, 53,220,157, -207, 13,167, 93,198,168, 50,117,159,212,247,122,119,231,118, 71, 95,101,242, 59, - 63, 74,198, 74,231, 89,215,136,122,207,221,157, 86, 30,242,158, 71,171, 42, 70, - 32, 15, 89, 90, 5,151,245,237, 17,200,191,214,228,107,202,237, 0,129,122,110, - 27, 86,116,112,112, 48, 77,147,148,146, 66,137, 58,223, 87,179,153, 32, 5,114, -116,237, 56,228, 88,105, 96,114, 24,166, 98, 69, 28, 54,119,146,237, 72,105,155, -220,197,154,200, 88,219, 37,106, 27,132,113,168,193, 48, 76, 67,231, 86, 8,164, -156,126,187,217,105,205, 90,172,112,151,156, 92,164, 50, 11, 85, 65, 22,211,202, -177,174, 22, 22,169, 13,179, 80, 29,185,111,218,121,143,216,108,205, 49, 47, 12, -134, 94,198,180,147,183,203, 69, 30,238,241, 13,187, 10,187, 48, 82,154, 16, 72, -158, 14,157,156,126, 51, 4, 43, 1, 1,193, 79,211, 84,161,245,173,249,212, 30, -183, 57, 80, 12,206, 44,137,108, 11,126,190,223,250,249, 83, 31,201, 72, 92, 96, -168,252, 39, 83, 5,202, 7,164, 84,104, 57,252,234, 91,220,133,218,139, 60,148, - 51, 53,153,200, 83, 51, 15,245,114,116,167,211,242, 77,117,157,150,135,209,214, -189,218,206,220, 22,156, 19,234,183,243, 80,206, 93,219,135, 19,143,135,230,122, -217, 2, 60,254, 31,218,128, 72, 84,112,154, 69,154, 92, 56,204,182,105,154, 36, - 77, 36,102,101, 44,214, 37,203, 98, 67,198,146, 7, 7,211, 68,161, 84, 44, 41, -109, 91,131,204, 42, 76, 14, 72, 19,173,170, 34, 1,193, 52, 77, 20, 10,151,101, - 82,130,244, 80, 6, 4,161, 10,244,171, 97, 55,200,245,174,148,243, 94,166, 95, -223,250,227,221,118, 81,190,115,210, 15,196, 52,235,155,195,204,114,101, 24,142, -252, 17,158,233,238, 91, 22, 47, 28, 4,132, 6, 68,214, 88,215,235,202, 87,228, - 61,214,203,215, 39,211,153, 57, 92,219, 22, 37, 6, 33,103, 92,206,105, 23,114, -207,242,240, 37, 18, 10,220, 80,151,118,232,197,224,133,105, 87,146, 36,138,163, -137,229,244, 3, 39,214, 22, 31,180,200, 98, 47,211,111, 86,170, 90,108, 57,101, - 97,214, 86,113,232,157,177, 92, 26, 64,190,217, 26,135, 53,244,236,166, 48,149, -117,201, 57,139,212,242,203, 97,163,181, 93,153,130,144,168, 50,212, 80, 33, 53, - 51, 35, 73, 73, 10, 82,104, 12,130, 82, 4, 97, 96,146,131, 56,233, 32,222, 34, - 56, 36,136, 65, 32, 6, 65, 16, 12, 97, 8, 16,132,128, 70, 16, 4,225, 16, 12, - 97, 64,132, 8, 8, 33, 20, 25, 99,172,146,179, 3, 79,112,160,252,209,165,247, -240,201,209,170,188, 21,191, 16,213, 17,113, 42,235, 99, 48,172, 65, 91, 5, 24, -228,250,251,130, 48, 5,180,158,146, 31,130,114,146, 14, 21,185, 3,129,151,247, -225,254,237,109, 84,247,139,188,136,169,136,224,192, 59,103, 68, 66, 48,186,182, - 92,224, 68,242,122,174, 77,162,126,202, 2,110,224, 75,245, 11, 40,247, 65, 61, -134, 64,108,136,198,203,195, 41,165,174, 1,168, 15,225, 10,248,166, 1, 77, 25, - 33,109,144,185,250,130, 28,128, 99,117,174,248,164, 50, 56, 56,207,247, 79, 19, -208,151,135,101, 61, 46,103,188,132, 39,137, 82,200,185,170,219, 82,199,153,249, - 65, 41, 74, 43, 4, 9, 3, 18,115, 87, 66,105, 91, 69,220,138, 2,106, 8,252, -198,244, 31, 49,155, 69, 81,153, 89,112, 38,154,143, 94,187,115,149, 38,124, 57, -224,140, 75,156,124,247,199,127,165,230,185,162,180,219,229,130, 2,120,228, 20, -244, 46, 26, 82,118, 51, 48,255, 41, 75,172,155, 73,153,178, 76,148, 77,131, 33, -135, 86,113,156,196, 0,178,152, 25, 21,135, 86,249,105,165,215,134,152,127, 54, -179, 62,179,148, 95,141, 27, 78,248,176,209,116, 96, 59, 20, 19, 92,104,244,113, - 83,244,147,135, 61, 10,132, 56,200,170,115,163, 27,108, 95,205,137, 49,102,119, -129, 89,163,106,118,205,105, 63,171, 51,195,173,211, 50,241,192,250, 11, 44,215, - 21, 0,139,184, 11,207,235, 98, 3, 79, 99,203, 62,198,217,111,199,119,214,115, -185,134,205,135, 40,185, 48,166,165, 75,237,195,170, 70,149,203,142, 8,204,138, -157, 70,162,146,108, 89, 35,155,108, 55, 2, 75,144,121,105,119, 49, 11,140,163, -235, 47, 10, 37, 63, 83, 21,200, 87,241, 21,193,202,196, 39,170,114,144, 31, 26, -135,150,156,100, 51,189, 51, 67, 46,125, 86, 5,147,246,205, 10,233,199,159,109, - 22, 31,200, 31,235,113, 43,236, 80,246, 8,164,208,241,215,154, 74, 97, 39, 1, - 99,140,159,143,235,226,110, 21, 43,173, 82,211,134,111,170, 9, 81, 93, 54, 33, - 91,138, 51,250,205, 29, 82, 22,242,127, 20,209, 57, 24,220, 3,117,191, 45,113, -109,111, 81, 52,223,132,194, 63, 76,148,223, 0,146,105, 99,186,138,113,168, 3, - 21,133, 32, 79, 60,204,120, 52, 83, 86, 48,157,181, 35, 9,244, 15, 23, 61,144, - 54, 54, 10, 99, 53,234, 96,133,166, 71,209,205, 54,113, 12, 83, 59, 96, 92,115, -157,168,201,186, 88,120,239,230,117,234, 56, 18,204,128,236, 78,234,157, 87,245, - 21,149,204,155, 10,143,117, 44, 30,149,160,113, 64,201, 9,186, 9, 87, 9,188, - 86,120,255, 44,190,101,182, 10,131,115, 31,148, 1,198,119,250,164,223, 38, 9, - 52, 13, 79,137,136,115, 91, 41, 93, 76,106,165, 50,192, 59,134, 61,221,203, 10, - 90,197,247,208,210, 29, 32,169,196, 3, 90, 64,236, 34,215, 93,214,205,213,231, - 33,141, 86,215, 63,218,104,223, 0,245, 86,107,185,222,228, 30,210, 27, 5, 92, -232,246, 76,233,203,144, 30,154,234, 20, 92, 92,242, 37,137,196,172, 55, 14,173, -128,150, 14, 31, 56, 33,123,220,233,127, 87,125, 91,191, 61,105,161, 25, 21, 58, -108, 52,124,112,225,185,143,160,117,236,141,126, 45,114, 78, 39,202,244,152,162, -109,230, 40, 69,181,128,107,128,140, 96,139,208,135, 36,239, 62, 17,229,177,123, -172, 13,181, 35, 73, 96,120,157,160,133,178, 48, 93,117, 69, 30,250,196,140,180, - 5,145,161, 7,205,178,119,154,236, 9, 26, 14,232,249, 6, 93, 60, 2,110,192, - 67, 58, 57,251, 88, 16, 51,144, 22, 32,204,192,138, 93,188,103, 24, 35, 15, 75, -143, 72, 19,218,133, 99,188, 89,136,204, 38,145, 38,129,196,221,209,124,201,132, -230, 93,235,157, 65, 97,100, 96,165, 65,101, 88,193, 60,171,148, 98, 14,223,109, -168, 86,104, 23,164, 54, 7,100,226,221,249,115,178, 28,241,108,183, 97,139,202, - 34,191, 55,127,187, 53, 16,137, 51,197,143,175, 95,106,174, 11,207,131, 71,167, -126,206, 15,204, 96, 96, 50,174,215,174,220,169,164,179, 11, 15,112, 90, 7, 69, - 61,249,126,229, 37, 98,140, 99,107,126,105, 40,193,208, 50,160,163,190, 29,217, -123, 97, 28, 56, 56, 23,164,135,125, 79,132, 79, 93,193, 10,213, 67,113, 71,178, -128, 39,130,167,113,222,211, 86,136,152,146, 21,117,200, 3, 13,163,140, 80, 86, -237, 78,151,122, 49, 10,111,204, 88, 45, 19,212, 55,255, 97, 21,216, 27,136,163, -102,119,219,139,169, 47,160, 88,114, 36, 31,132, 43, 77, 24,100,210,139,211,251, -182,159, 8, 78, 32,236,103,145, 70,217,253, 7,210,236, 0,145, 19,205,133,247, -197,180,121, 46,225, 67, 20,242, 76,243,173,196,174,210,138,159,111, 54,206, 80, - 42, 58,225, 82,209,148,153, 42,225,171, 28,198,240, 46,218,246, 64,185, 88, 32, - 12, 64,200, 1, 30,120,253, 4,163, 66,166,192, 3, 99, 50,113,104,234,213, 58, -223, 71,167,254, 55,212,241,193,163,133, 15, 42,155, 37,142,157, 56,170, 3, 49, -221, 32,242,142,131, 47,167,230,121,213,155,214,187,155,111, 79,125,153,104, 37, -106,133, 6,248, 43,249,248,149,169, 44,209,145, 8,161,217, 94,113,152,181,108, - 23,220, 28,246, 61, 52,186, 76,249,250,123,253,167,115,241,209,192, 27, 95,249, - 27, 72, 36,158,246,130,202, 90,162, 64, 30, 43, 16, 65,192,148,223,238,227,181, -127,178, 84, 59, 71, 89,138,156, 15,210, 76,160,147,217,132,225,208,150,222, 45, -113, 22, 41,202, 11,205,201, 6,237, 55,160,147,167, 29,171, 43,129,217, 76,122, -205, 86, 90,185,230,242, 10, 99,205,251, 41, 15,170, 8,173,225, 59,223, 43, 45, - 38,253,150,235, 39, 17,188,208,132,186,196, 29,243,141,193, 22,249, 17,164, 38, -216,122, 41,118, 10,208,196,231,109,195, 64,138,205, 30,209,121, 3,173, 52,100, -160,119, 34, 54,169,225, 15, 2,100, 30,133,173, 68,204, 21,184,119,108,174, 40, - 94,184,132, 94,177,155, 11, 93,112,209, 51, 1,214,245,143,103,140,102,130,211, -169, 19, 1, 41, 81,198,134,215,199,153, 0, 25,197, 16,157,159,220,218,137,167, -172, 44, 31, 68, 59, 52,233, 22, 49,178,201,227,112,180, 79, 29, 16,186,140, 77, -159, 6, 86,128,150, 77, 46, 10, 80, 91, 31, 81, 0, 36, 50, 15,130, 88,193,160, - 69,183,102, 73,132, 16,154,130,202,123,207,188,154,127, 82,161,200,242, 47, 86, - 48,111,241,250,186, 58,105,152,179, 6,229,190, 56, 42,217,161,163,241,186, 37, - 5,175, 10, 43, 43,128,240,205,167, 6,254,246,142, 83, 70,106, 76, 29, 69, 99, -128,118, 5,155, 62,160,160,110, 28,120,139,125,203, 8,181, 21, 23,111, 71,132, -185, 66,253,131,230,182, 81, 32,235,106,214, 31, 52, 3, 14,204,244, 75, 71,221, -188, 49,182, 73,237,199, 49, 23, 85,175,238, 23, +// ../Source/Template/GB_AxB_saxpy4_meta.c: +uint8_t GB_JITpackage_99 [909] = { + 40,181, 47,253, 96,254, 9, 29, 28, 0,182,234,129, 40,192, 18, 89, 29, 74, 4, +198, 98, 30,222, 5, 14, 4,172, 77,205, 69, 93,188,126,147, 10, 99,206,215, 97, +170,156,227, 74, 58,143,167,223, 85, 20,138,235, 32, 4,121, 0,110, 0,120, 0, +219,148, 30, 60,195,109,170,209, 92, 59,171,164,198,181, 39,173, 72, 22,148, 75, + 36,107,205,109,220,152,227,188, 97, 80,204, 57, 14, 62, 58, 48, 32, 48,144, 20, + 10, 8, 12, 14,205,231, 17,166, 26, 73,121, 4,126,179,101,219,209,235,145, 5, + 43,113,243,228,133, 96,176, 58,211,207,114, 36,158,236, 50,205, 60, 62,186,237, +109, 54, 73,227, 43, 61, 12, 31,113,220,167, 29,211, 79,143,162, 0,156, 12, 76, +103,144,185, 59, 12, 97,227,109, 72,140,197, 13,136, 69,136, 75, 36,142, 36,145, + 4,158,247,225,190,242,120,210, 78,170,182, 62,171,242, 23, 22, 24,201,168,173, +182,123,111,249,184,183,153,101,247,107,179,228,190,238,155, 83,190, 35,120,210, +108,107,174,254,200, 85, 73,252,218, 71,152,235,122, 59,227, 89,103,121,187, 54, +134,212,215,171,244, 25,203,217,222, 38,223,214,111,153,106, 28, 99, 84,122,105, +215,248,149, 74,153,163, 95,230,215,106,207, 26,127,223,112,213, 30,211,103,118, +203,221, 29,211,237,114, 8, 34, 6, 82, 7,149,137,162,244,199, 73,205, 55,153, +246,149,220,236, 12, 58,117, 93, 68,236,226,170, 46, 11, 69,169, 48, 11, 70, 0, +252,129,177,163, 25, 4, 63,153, 52, 56, 72,211, 39,175,205,105,230, 51,134,144, +144, 43,125,198,213,206,141,212,224,228, 27, 14, 65,211,243, 74,165,226,225,249, +133,161, 44, 11,198, 8, 62,154,120, 52, 61, 55,198,255,223,113, 58, 28, 71,163, + 89,133,228, 74,181,206, 32,191,246,222, 14,112, 40, 21,133,133, 98, 2,195,172, + 74,163, 1, 78,204,181,241, 68,214,249,218,142,243, 65,208,152,235, 15,200,140, +116,150,156,215,117,134,188,179,143,155,149, 22, 92,235,172,126, 1,239,128, 52, + 10, 31,101, 96,217,221,214, 79, 6, 62, 77,211, 52,197, 24, 99,220,128,158,141, +203,130,161,174, 11, 94, 32,134,186, 92, 68, 64,240, 57,101, 97,224,197,130, 18, +206,214, 84, 9, 33,165,219,230,221,131, 78,188,135, 71,124,126,129, 19, 87, 21, + 39, 88,204, 52, 88, 76,177,120,206,218, 76,230,153,248, 60,233,205,184,175,192, + 51,182,192,241,252,178, 44, 20, 19,133,129, 1,128,167,168, 33, 77,163, 12,137, +204,136,164, 36, 5, 73, 26, 3, 96, 68,100,172,170,234,114,112,112,150,133, 41, +134, 20, 36,196, 4, 66,193, 72, 36, 50,138,202, 42, 40,116, 55,113,162,203,219, +178,209, 58, 5, 70,192, 85,152, 56, 30,157,157,222,132, 25, 34,175,251,151,170, + 68,120,240,186,188,108, 41, 90,171,134, 3,106,170,220,226, 72,168,134, 61,197, +195,239,190,185, 79, 72, 41,217, 18, 4,145,228,135, 72,238,199,146, 36, 3,139, +255,144,198, 57,202,166,251, 59,137, 11,109,249, 32, 95,196, 23, 25,133, 67,107, + 96,128,255,229,250,124,160, 3, 33,195,171, 74, 99, 45, 37,134,145, 58,159, 66, + 20,202,212,218,160,101,216, 29,209,219,212, 80, 93,179, 32,132,206, 50, 38,225, +181,145,213,191,145,228,158,226,109, 10, 21,189, 16,162,110, 40,199,208, 48, 15, +110, 51,145,192,215,111, 14, 60, 70,218,163,167,230, 3,172,200, 25,138, 64, 69, +185,182,123,101,170, 68,124,154,192,175, 51,129,164,129,150,112,135,131,217,134, +252, 42,158,104,144, 13, 45,123,165,230, 89, 11,238, 54, 14,142, 5,219, 78,219, +116,202,210,117, 59,100, 62,165, 48,186, 6, 21, 95,126, 66,195,140,171, 69,147, + 23, 33, 85,204,119, 61,221,115,137,242,233,166, 2, 46, 89,147, 41,251,136, 23, +235,212,250, 70, 64,207,120,155, 85,126,208, 75,240,169,209, 5,121,193,130,195, + 15,187,168, 77,247,240,249,149,187, 68,115, 0,175, 66, 30,252,155,255,250,249, +214,190, 60,236, 43,166,228,222,100,154, 58,139,176,248, 52,217,173,185, 96, 29, +158, 6,165,198, 81, 4, 16, 76,181,105, 74,127, 48,217, 42,183, 4,169,228, 31, +209, 91, 86,251,116, 67,245,112,239, } ; -// ../Source/Template/GB_log2.h: -uint8_t GB_JITpackage_116 [613] = { - 40,181, 47,253, 96,114, 4,221, 18, 0,230,225,102, 32, 0,153, 27, 87,209,154, -120,225,232,208,118,180,139,154,137, 13,147, 19, 86,217,177,250,154, 88,174,143, -252,255,255,254, 16, 2, 95, 0, 93, 0, 92, 0,213,187,223,174,208,100,131, 77, - 63, 93,199,206,105,156,193,239, 57, 77, 41,164, 9, 7,173,160, 93, 10, 67, 65, -107,171,139, 77,192,127,146,147,198, 32,173, 2,179, 45,189,167, 9, 29,200, 22, - 1, 77,242, 90, 24,142,175, 52,117, 60,127,216, 1,104,237,217,190,142,178,166, -246,190, 73,157,131, 93,207, 42,187,175,127,158,235, 55, 3,196,180,207, 82, 46, - 98,233, 44, 3, 92, 89, 22, 22,219,219,125, 70,210,201,112, 28,202,134,217,100, - 52, 18,172, 74, 7,243, 87,159,190, 95,107,169,103, 89,177, 61,235,171,199, 61, -232, 69,108, 68, 2,145,104, 21,165,178,116,109,109,194, 87, 45,237,233,245,123, - 92,195,174,178,235, 55,206, 63, 10,120,253, 0,224,194,105, 22,205,230,249,172, -222, 7, 0, 5, 76,187, 28,236,164, 9,210,140,235,239,125,174, 62, 49,151,227, -184,179,180,218,236,187, 22, 11,235,135,117,221,151,101, 12,108,202, 25,108,119, -236,152, 58, 71,163,217, 42, 22,169, 45,167,163,208,206, 24, 99,119,108, 43,115, -136, 68,174, 31,198,184, 97, 40, 83,122,198,245,113,216,132,217,109,145,226,182, -137, 54, 74, 87,180,227,234,103,250,225,136,227,252, 36,193,206,182, 54,118, 59, -219,254, 12,115,167,169, 12,241,127, 58,123, 1, 0,171,208, 14, 71,199, 22, 68, -204, 79,159,229,231,117, 58, 14,219, 71,147,134, 22,196, 93,237, 99,236,215,132, - 31,244,116, 99,246,250,234,218, 38, 88, 84,206,157, 76,121,227,111,210,183,135, - 55, 55,126, 13,200,195, 85, 52, 28,135, 2,210,108,184, 14, 6,224,253,172,134, -190, 12,215, 21,155,209,133,126,180,165,117, 35,118,236, 82, 6, 49, 28,185,174, -131, 89,147, 5, 76, 32, 64,132, 16, 98,102,231,226,139,217,182,166,206,235, 78, -171,176,111, 57,117,149,113, 69, 87,141,131, 65,222,234,181,157,160, 13,100,164, - 40, 23, 16, 26, 41,224, 30, 4,228,209, 28,106,133, 90, 68,249, 84,214, 78,190, - 90, 74, 40,108,116, 96, 81,132,238,203, 21, 33,147, 85, 0, 24, 90, 2,197, 0, - 6,142,198,147,239, 2, 64, 7, 20,185,194,198,196,216, 0,160,149,130,248,120, - 1, 56,192, 72,161, 5,228, 2, 28,146,110,152,202,190,223,130,205,133,145,127, - 22,249, 0,166,172,114, 19, 44,221, 97,129, 90,171, 22,251,200, 97, 35, 16,182, -120, 88, 65,255, 9,191, 8,225,220,184,109, 75, 50, 70,159, 94,152,167,183, 36, -135, 63, 88, 15, 39, 86, 68,186, 64, 37, 30, 34,240,171, 5,102,208,204, 60, 51, -221,134,208,106,243, 67,224, 56, 89,133,162,206, 13, +// ../Source/Template/GB_AxB_saxpy4_panel.c: +uint8_t GB_JITpackage_100 [914] = { + 40,181, 47,253, 96,129, 21, 69, 28, 0,230,167,123, 33,240,214, 54, 72, 4, 78, + 65,105,204, 13, 17,104,121,252,125,153,254,190,111,137, 57,205,201, 20, 70,164, + 76,145, 77,132,109,244, 5,115, 0,110, 0,114, 0,135,130, 70,248, 17,188,103, +117, 6,250, 88,196, 59,127, 72, 33,188,206, 15,226, 10,161, 19,201, 20,194, 31, +161,175, 95,227,122,143, 32,172,241,178,172,142,109,218, 65, 35, 40,178,131,230, + 23,104, 57,166,241,232, 70,188, 80,221, 52,110, 83,132, 61,199, 54,181,194,141, +231, 69, 59,198,107,244,158,155,223, 56,221, 84,254,217, 20,125,226,168,233,157, +160,250, 99,224, 19,103,128,133,242,243, 61, 45,194,116,150,174,182, 92,169, 90, +174,115,131,161, 34, 24, 12, 1,229,245, 31,221,209, 57, 23, 77,215,159,150,119, +228, 31,194, 72,139,115,129, 95,228, 21, 10, 97,216, 10,207,212,191, 4,101,172, +245,239,244, 20,153,160,143, 32, 30, 73,142,109,207, 56, 53, 81,240,138, 92,226, +113, 50, 22, 12,196,118, 38,254,227,246,207, 88,252,240,181,233,133,109, 45,103, +181,173,182, 44, 83, 17,226,126, 25,126,223,242, 20,189,103,249,121, 69, 27,127, + 14,241,207,245,151, 97,190,163,235,208, 28,247,139, 92,227,209,171, 2, 31,248, + 52,227,125, 93,155,134, 66, 89, 0,107,219, 4,154,150,191, 28,125,131,172,225, + 31,210,227,223,225, 3, 45, 50,213,226, 81, 56,187,161,136, 56,144, 17,180, 16, + 35,107,248,133,141,213,242,106, 39, 92,231, 91,103, 19,100,236, 7, 93,131, 1, +248,163,124,221,209,240,131, 63,188,146,190, 45, 34, 97, 57,195, 17,254,250,130, + 94, 85,167,235,204,150,143,224,198, 36,237,238, 94,157,170,170,208,185,185, 51, +246,240,195,107,150,158,255, 63, 83,120, 31, 13, 85,149,170, 66,164,237, 44,105, +189, 10,199,226, 93, 36, 27,137, 38, 99, 67,164,229,114, 26, 72, 49,118,153, 94, +241,195,204, 31, 15,207, 66,254,232,143, 36,207, 52,109,219, 26, 78,222, 71,191, + 42,181,105, 90,150, 29, 62, 80, 61,171, 99, 36,190,150, 87,132, 11, 28,159,167, +199, 49,118,199,153,121,252,244, 48,191,173,167,192, 96,216, 54, 45, 51, 53,182, +156, 99,164, 99,165,206, 49, 79,210,109, 90,214,240,235, 64,130, 44,231, 36,154, + 90,129, 72, 34, 34, 14,115,128,174,160, 65,189, 98, 72,102, 68, 68, 82, 90,144, + 20, 26, 3, 96, 68,100,202,104, 61,209, 1, 30,127,157,214,197, 79,222,125, 32, +127,200,138, 6,157, 24,146,187, 11, 24,244, 46,133, 57,120, 41, 6, 72,189,159, +144, 82, 14, 24, 6, 45, 18, 14, 65,182,176, 54,103,202, 95, 36,250, 9,170,111, + 36,164,250,122, 56,157,140, 56, 49, 59,160,183,147, 7, 61, 65,200,130,218, 42, + 17, 21, 64,149, 13,174,166,198, 80, 54, 42, 5,110,163,254,109,181,143, 86, 83, +125,217, 65,220,230, 98, 63,192, 55, 32,131, 6,242,160, 12, 26,200,160,106,135, + 14, 1,179, 96, 96,186, 52, 96,125,139, 53, 47, 0, 97,192, 67, 67, 60,117,205, +157,136, 90, 53, 57,120,230,176,153, 35, 98,209,114,189, 49, 30,246,201,249, 10, +199,247, 20,103, 39,226,203, 87,111,160,184, 25,193,220,225, 81,162,157, 66, 23, +192,126,192, 68,139,109,215,200,205,226,106, 50,195, 12, 14,183, 32,122, 3,110, +155,223,187, 50,123,248,123, 13, 98,195,131, 67,212, 57, 25, 37,143, 99,248, 77, + 1, 4,197, 92,254,230, 53, 4,148, 65,153, 47, 49,130, 90,129,253,129,110, 45, +230, 44, 56,238, 64,126, 80,139,200,198,163, 8,246,205,130, 7,128,244,103,247, + 29, 32,204,192,213,220, 43,162, 65, 41,212,141,120, 0, 14,236,244, 69,193, 89, + 6,164, 29, 0,137, 1,162, 46, 44,128,177,157,128,119, 59,179, 58, 37,168, 30, +190,189, 12,219, 64, 51, 55,111,201, 41, 90,168, 54, 9,165,165, 28, 99,192,129, + 45, 4,215,142, 90, 6, 45, 0, 37, 54, 1,194, 32,183,165, 26, 32,234,185,166, +102, 56,242, 96,199,136,107, 16,240, 16, 72,102, 38,231,131,105,116,217, 0, 0, +201, 39,232, 86,100, 3, 66,136,241,249,146, 3,210, 77,147,243, 51,147,186, 8, + 87, 29, 82,148,136, 10, 60,128, 57,110, 80, 69,175, 24, +} ; + +// ../Source/Template/GB_AxB_saxpy4_template.c: +uint8_t GB_JITpackage_101 [3122] = { + 40,181, 47,253, 96,236, 72, 69, 97, 0,154, 96,212, 17, 45,176,172,172,115,200, + 50,240,251,252, 57,188, 69,102,150,141,253, 38,154,131,160,219,167,185,111, 38, +172,169,240, 92,229,182,175,114, 77, 14,153,117,252,160,255,160,255,194, 67, 9, + 12, 1, 10, 1, 27, 1, 22,217, 13,220,217,191,103,182, 13, 37,219, 89,121, 49, +154, 97,253,255, 12,134, 4,203,214,218,100, 5,134,116,201, 80, 92,209, 55,202, + 17,218,158,103, 43, 48, 46, 14,172, 13, 86,217, 88,155, 91, 43, 92, 22,131, 79, +249,104, 61,158,149, 59,233, 8,121,147,106,172, 42,131, 81, 68, 84,149, 78,153, + 61,235,202,147, 61,149,110,215,250, 31,242,242, 7,185, 30,234,216,240,182,185, + 75,107, 58,233, 71,239, 61,153,245, 43,189,210, 11,191, 48,203,228,153,187,231, +110, 95, 92,227, 27,130, 31,205, 26,213,169,233,113, 39, 91,174,224, 47,157, 16, +255,195, 54,228,193, 88,120, 72, 28,204,101, 18,172, 62,169,220, 91,223,201,154, +229, 96, 59, 57,235, 7, 71,131,134,204, 67, 99,139,202,150, 53,183,151,243,180, +230,158, 87, 61, 18,144, 44, 72, 28, 7, 34, 11,146, 75, 89,244,104,219, 66, 54, +252, 81, 61,196, 93,250,245,245,184,169, 30, 42, 28, 40,171,195,100,195,183,195, + 13, 3, 2,202,239,118,231,149,199,202, 96,136,131,176,173, 18,180,213,163,231, +133,219,109,223,242, 88,105, 84,212,100,249,132,175,244,192,143, 47, 86, 32, 4, +130,164,197, 42,160, 10,171, 56, 28, 2, 97, 56, 32,144, 7, 89, 30,150,175,189, + 61,195,219,147, 62,235,203, 31,119,187, 74,106, 31,163,237,202, 20,196, 44, 32, +117,122,111,101,123,242, 83, 30,115,238, 36,196, 37,156,138,190, 89, 48, 85,178, +151, 73,146, 20,125,242,133, 43, 56,181,141, 85, 38, 80, 2,135,214,212, 34,170, + 72,141,232,211, 59,149,232, 82,199,225, 98, 8, 42,107,149,190,210,143,252, 62, +191,208,163,217,103, 63,130,211, 17,234, 56, 58,143, 18,117, 7,138,131,162, 92, + 18,113, 72, 62,147,200, 7,156, 12,212, 35, 21, 41,226,152,196, 73,100,105, 28, + 66, 69,123, 22,195,124, 58, 40,227, 68,209,169,155,117,189,150,107,227, 22,122, + 65, 24,206, 36,104,187, 74, 47, 46,123, 30, 46, 17, 5, 40, 50, 13,170, 77,180, + 32, 44,234, 30, 79, 9, 58,168, 75, 49,126,173, 89,116, 30,163, 71, 72, 88,151, +117,105,170,204,255,201,159,199, 91,229,181, 31,219,150,202, 55,122, 91,233,205, +216,130,103,127,149, 47,107,159,166,121, 6,202, 23, 78, 69, 82, 36,102,253,201, + 25,210, 34,246, 66,141,185,204, 94,154,145,213, 36, 87,238, 98, 95, 56, 61,246, + 60,121,240,163,151,159, 71, 86, 80,129,114,173,239, 41,141, 83, 7, 77,246, 2, +212,163, 58,151, 53,119, 97, 99,196,129, 97,115,225, 31,173,236,153,178, 94,235, + 87, 64,122,230,174,172, 63,122,229,132,104,209, 92, 48, 87,229,208,152,131,243, +141, 55,166, 41,239, 79,212,165,207,193,121,134, 15,229, 28,206,190,147,102, 84, +171,244, 59,157,167,128, 52, 6, 97, 2,100,143, 0,103, 45,244,178,249, 9,159, + 9, 3, 86, 13,153,137, 75, 77, 32, 12,229,151,164,142, 39, 58,164,241,169,163, + 99,222,128, 92, 66,199,115,185, 38,186,199,254, 99,215,242,145,114,233, 70,191, +104,170, 7,203,165, 1, 99, 96, 61,144, 62,159,248,233, 60,145,149,215, 66,158, +188,237, 75,159,216, 69,151,186,216, 81,245, 6,151,135, 12,132,132,197, 1,128, + 15, 24,112,205,197,122,200, 88,145, 3,214, 53, 86, 97,215,195, 4, 68,164,115, +169, 19,101, 42,136,203,170,108, 46,154, 12,246,233, 66,133, 73, 29, 48,236,117, + 66,170,125,162,238,145, 95, 83,164,134, 39,185, 98,191,146,122, 91,131, 37, 17, + 33, 1,129, 73, 8, 88, 22, 96,155,137,135, 12,182,177,164,142, 34, 60,118,244, +203,101,105, 56, 88,131,172, 91,202, 64,152,232,227,239,151,139,162,130, 81, 92, +214, 21,113,105,176,176, 77,133,105, 5,112,158,122, 54, 67,247,178,253,132,173, +199, 19,166, 12,198, 4, 14,245,139,115, 24, 40,212, 47,164,137,164,163, 95,210, +248, 90,153, 49, 24,186,145,116, 17, 99, 55,132,134, 20,125,242,198,167,130,210, + 90,114, 49,137, 92,112, 36, 61,137, 52, 71,226, 68,231, 44,212,184, 78,186,209, +125,206, 57, 17,135,195,146,159,243,201, 67,155, 84,227,239, 11,237,228,122,253, +143,141,134, 58,183,149,185, 75, 90, 95, 14, 7,206,190, 94,104,185,222,222,118, + 76,182,104, 15,151,201, 11,157,113,129,138,206,158, 20,121,140, 91,116, 4, 87, +132,133, 93, 52, 19, 87,166,178, 80,148, 83,223, 46, 97, 18,162,148,111, 26,119, + 51,210,202, 17, 54, 8, 93,145, 81,239, 17,196, 55,156,180,111,198,182,107,118, +201,147,106,231,206,175, 13,191,223,142,206, 87,106, 96,120,201, 61, 54,136,181, + 10,172,120, 55, 3,229, 84,103,194,186,174,226, 96, 85, 73, 82,236, 62, 81,175, +128,239,164,174,123,228,170,232, 21,134,233,166,169,235, 36,221, 36,210,109,156, + 13, 99,177, 32, 36,174, 42,250,116, 9,100,241, 64,199,108,182,225, 39,147, 90, +105, 17, 58, 28,132,105, 68,166, 15,131,134, 8, 9,203,101,131,105, 36, 22, 96, + 23,118, 93, 28, 58, 21, 80,122, 16,108,237,173, 19,112, 72,131, 52,168, 66,164, +212, 41, 69, 35, 34,146,146, 36,133, 12, 7,114, 32, 8,131,161, 64,143,181, 40, +232, 14,162,128, 52,200, 81, 32,196,176,136, 33, 68, 17, 67, 12, 33,148,136,136, + 4, 34, 36,129,200, 4, 81, 32, 81, 7,137,231, 84,153,101, 6,206,171,142, 86, +139,213, 55,115, 9,163, 40,196,132, 41,161,220, 43, 18, 73, 66, 31, 12,253,118, + 78, 73, 73,224,222,159,148,222,219,166,174,112,127,182,207,126, 45,223, 42, 25, + 13, 31, 98, 7,181,181,162, 13, 75, 79,181,189, 37,157,106, 55,184,129, 3,173, +208,169,234,123,225,180,156,111, 52, 34, 41, 12,189,135, 21, 8,109,156, 19,150, + 22,237, 30,231, 27,143, 63,209,230,207,170,119,238,172, 35,130,160,120, 70,127, +239,219,182,149,186, 77, 12,155, 83,188, 76,155,142,130, 38, 60, 20, 58,172,132, + 2,196, 58, 31,241,228, 87, 13, 35, 67,150,204, 46,233, 23,242,115,197,141,120, +112, 61, 50,154, 42,196, 77, 81,167,107, 65, 53, 53,226,248, 56,125,244,250,187, +134, 13, 34,203, 53,195, 1, 59, 2,197, 73,181, 63,202, 93, 64,232, 17,182, 69, +149,226,195,130,161,225,205,200, 29,176,194,200,136,118,219, 12,180, 13, 74, 50, +104,135,239,105,240, 83,253,190, 66,224, 11, 61,156,220,157, 45,118,145,159,108, + 4,104,213,161,145, 5,211,202, 7,115, 3,210,204,112,100, 11, 14, 84, 1, 98, +111, 76, 15, 87, 59, 76,200,208, 58,215,137,181, 33,188, 26, 81,164, 69, 59,165, + 6, 38,169,157, 11,232,161, 38,189,234,193, 6,132, 94,153, 70,169, 4,103,104, +129, 77, 82,203,149,152, 51,233, 10,154, 11, 98, 73, 58,138,165,158,250, 16,194, +221,179, 85,229,204, 86, 1,173,198, 88,142, 61, 10, 17, 93, 8, 22,109, 90,218, + 2,251,209, 64, 15,250,107, 52,114, 22,226,213,120,215,220,194,232, 6,142,208, +105, 68, 23,168,208, 12, 48, 3, 99,240,162,147,171, 0,173,181, 70,183, 33,201, +210,201,122,228,150,130, 62,228, 17, 94, 42, 39, 76, 62, 53,112,221, 48,226,255, + 45,125,215,153, 33,142,145,192,114, 91, 56,237,202,207,136,237, 41,143,252,121, + 92, 48,156, 24,153, 54,135,136,164,223, 51,170,175, 47, 6, 47, 27, 78,104, 37, +234, 99,104, 70,155,243,168, 24,123,255,118,241,204,237,190, 79,200,225,167,128, + 55,135,155, 88,230, 87,196,238,186, 1,241, 54,159,177,138, 86,228,198, 91,225, +196, 98, 42,216,176, 63,195,118,145, 72,226,188, 40,137,241, 9,103,216,159,104, +238,210,134,238, 27,167, 77,120, 51,190,252,232,116,141,173, 44, 8,133, 46, 72, +157, 98, 13,198, 54, 42, 62, 21, 25, 55,162, 80, 86,171,236, 79,225,209,142,145, + 33,220,199,150,137,187,227, 68, 22,141, 63, 67, 98,219, 61,189, 99,119,231, 55, +255,144, 83,225,133, 64,204, 57, 93,162, 83,175,126, 71,219, 56, 77, 28,211,203, + 24,121,146, 1, 16,160, 76, 80, 26,190,110, 3,235, 79, 32,253,210,127,222, 23, + 89, 75,142, 60,198,138, 59, 94,145,229,139,105,205,201,111,129, 37, 28, 68,219, +112,136, 68, 74, 55,144,182,143,201,139,202,117,232,146, 54,236,122,228, 12, 73, + 24,193,253,221, 98,113,189,157, 48, 12, 7,233,109,128, 64,118,220,143,124,255, +161,250, 21,229,198, 94, 20, 57,101,184, 35, 23, 64,234,147, 40,210, 89,195,204, +233,167,144, 58, 98,217,212,195,228,243, 28, 46,128,246,156, 16,156, 45, 23, 98, +212, 67,118, 99,107, 16, 69,134,154,184,126,156,236,191,165, 19,170,122,202,128, +251, 55, 5,201, 51, 26,104,158, 75,176, 31,145,180, 62,167,159,203, 64, 98, 5, +117,192,162, 91,160, 30, 2,247, 70, 34,104, 17, 28,230,142,225, 93,103,213,160, + 91,135, 33, 24,173,208, 35,217,122,139,222, 41, 46,246, 54, 23, 18, 94, 93,244, + 70,119,177, 23,121,161, 77, 24,101,230,147, 61, 28,177,160,200,145, 19, 67, 17, +255,169, 91,122,216,236, 96,148,135,209, 56, 18,101,163,206,163,219, 61,200, 54, +149, 34, 8, 66,200,150,160,237,136, 92,118, 32, 9,251, 28,118,124, 68,109, 81, + 70, 22,228,230,237, 24, 2, 37,138, 72, 43,207,184,113,163, 25,209,120, 29,137, + 65,177,179,134,201,135,192, 92,191,103,215,105, 57,171,129,233,236,219,172,195, +125,114,111,166, 54,169, 35,190,185,175,205,224,171,120,238,147,214,215,130,124, + 93, 90, 21, 69, 6,165,103,165, 68, 48, 9,169,243,159, 52,138, 33, 55, 1,226, +231,251, 0,236,117,213,113, 40,148,213, 9, 38,159,160, 42,135,191, 33,219, 61, + 59,119,112,252,111,152,114,183,167,145, 73, 31,223, 56, 87,156,250, 69, 64, 56, + 84,211,188,144,218, 56,205,200,185, 19,126,117, 48,231, 35, 87,149, 14, 86, 21, +230,110,153,160, 68,218, 11,174,211, 38,100,237, 0, 64,130, 41,125,244,232, 0, +116,176,238,222,115,194,240, 4, 13, 44,250, 37, 2,186,248,161, 22,124, 23,153, +132, 16,213,173,174,153,108,181, 92, 6, 34,115, 42,178,135, 34,238, 37, 47, 14, + 8, 99,252, 47,134,191, 89, 28,101,223, 7,160,230,186, 15,240,247, 33, 74, 17, + 56, 56, 6, 94,101, 84,215, 31,198,209,170, 72,204,161, 52, 82, 42,130, 21,134, + 83,224,241, 70,204, 48, 2, 80,211,104,221,217,236, 2, 77,252,230, 87,102,198, +231,134,192,103,131, 66,215,112,156,200, 9, 16,230, 65,194,146,154,127, 29,119, +133, 66,124, 9, 84,146,135, 91,228,138,142,158,243, 42,101, 23, 81, 63,137,196, + 3,148, 1, 92,227,245, 66, 79, 11,202, 41, 60,229, 80, 78, 0, 76,139,160, 43, +137,188,187,197,133,217,172,218,237,164,193, 45,225,204,108,216, 23, 82,195, 6, +175, 66, 32,210,110,253, 57,143, 6,186,153,179, 20,126, 81,159,128,228, 50, 66, +242,106,104, 39, 11, 9, 18,226,109, 12,119, 25, 13, 13,238,196,182,247,157,178, +153,136,140,193, 9,242,145,147,165, 95,181, 15,239,254,136, 80, 63,147, 64, 29, + 38,242, 17,239,239,175,108,240,169,196, 28,217, 37,212,242,245,128, 69,202,213, +229, 76, 52,131, 49,231,179,245,131,171, 78, 87, 55, 80,176,155, 19,108, 19, 39, +156,155, 91,131,161,131, 61,128,235,206, 21, 31, 42, 77,113,244,247,248, 66,189, + 81,182,101,154,228, 49,164,145,255, 88,113,118, 57, 30, 73,126, 84,137, 86, 10, +202,249,225,152,208,117,129,100,120,242,219, 31,173,166,200, 94, 62, 94, 59,115, +222,150,118, 76, 3,254,177,205,165, 41,219, 38,140,245,110,195,202, 26,246, 49, + 37,217, 22,130,148,142, 32,195,182,205, 10,125,205,205,125,117,107,232,200, 70, + 30, 20,226, 85,136,206,244,252,135, 49, 60,202,195, 22,106,229,138,217,136, 73, + 51,196, 32,230,175, 35, 16,102,179,213,101,184,125,114, 39, 27, 79,193,176, 48, +180,160,104,239, 83,130, 51,115,168,200, 56,175,222, 2,110,207,100,206,116,143, +198, 0,113,212, 89, 27, 10, 31,208, 34, 72, 23, 12, 21, 61, 43,133,138, 95,156, +195,221, 98, 94,132, 83,230,125,110,111,109,178,137, 27,170,105,211,209,142, 59, + 64,120,221,120,125,227,178, 49,200, 39,199, 49, 93, 81,144, 38, 13,127, 0, 62, +229, 19, 35, 57, 64,165, 28,238, 48,101,160,161,227,172, 47, 83,192,250,158, 7, + 48, 99,129, 12,130, 80,113, 50, 27,108, 52,150,237,152,115,101, 40,214, 40, 29, +154, 85,170, 50,108,245,232,183,236, 70, 22,154, 2, 82,150,143,158,168,192,130, +129,205,188, 49,128,144, 80, 24, 3,220, 78, 77,190,110,194, 76,186,109, 32, 5, +114,152,197,195,202, 3,253, 11, 40,104, 35,248,130, 22,171,198, 30, 43, 53,102, + 12, 74, 47,228,195, 94,174, 11,207, 85, 27,164, 56, 33,197,252, 71,193, 63, 49, +112, 54,220, 12,212,144, 10,222, 62, 64,208,144,102,188,137,241, 40, 35,194, 8, +184, 12, 61,221,243,183, 65,122,241, 18, 43, 9,242,208, 90,152, 43,100, 44,201, +254, 92,177,100, 36, 70,140,249, 48,216,129,163,159,157, 32,197,163,114, 75,175, +240,132,171,161,251,118,233,255,150, 50, 27, 21, 46, 26,108, 16,101,158, 24,190, +139,119,192, 12,170,133, 22,150,100,155, 0,156, 46, 67,246, 36, 98,103,246,241, + 78,160,200,127, 89,173,138,239,103,138,243, 58,105, 48, 8,203,175,153,208, 84, +145, 40, 42,145,163, 10, 25, 40,136,158, 96, 35, 1, 13, 86,238,176, 60,239,193, + 29,182, 58, 24,170,246, 7, 33, 31, 49,161,244, 82,100,244,155,163,233,233,158, + 78, 56,172, 22,254, 30,240,160, 55, 0, 63, 0,133,114, 88, 79,148, 8,107,228, +225,220,240, 28, 83,138,151,228, 48, 19,187,115, 0,108,109,112,153,112, 66,248, + 45, 21,185,140,156,237, 97, 6, 88,244,255,165,225, 89,124, 76,175,237, 2,197, +180,194, 19, 81, 59,100, 26, 14,211,182, 22, 36,253, 24,236, 50,227, 83,206,135, +177, 43, 30,140,214, 81,113, 65,126,236,127, 62, 76,148,251, 11,124,170,195,131, +116,222, 22, 10,168,176,255, 71,177, 85, 57,149,123,212,236, 87, 39,122, 33, 55, +205,236, 16, 76,244,150,151, 73, 22,242, 17, 65,185,164, 28, 6,199,208, 42,100, +102, 2, } ; -// ../Source/Template/GB_math_macros.h: -uint8_t GB_JITpackage_117 [706] = { - 40,181, 47,253, 96,155, 5,197, 21, 0, 38,164,108, 32,224, 26,231,201, 71, 0, -188,143,108,167,114, 83,140, 76,168, 47,246,154,206, 81,212,123,234,211,218, 49, -140, 49, 24, 67, 8, 1,103, 0, 97, 0, 94, 0,225, 12, 96,134, 14,193,181,248, -201,148,247,198,237, 25,206, 92, 27,212,112,141,107,127,115,195,141, 42,159, 14, -108,214,109,220,160,227, 44,154, 38,232,148,122,223, 18, 8, 3,130, 99, 28, 12, -136,107, 95,246, 13, 79,150,172,188,243, 62,138,217,162,166,232, 91,200,219, 76, -196,148,188,152, 70,227, 43, 83,161,206,115, 21,194,254,166, 41,212,196,111,136, - 29,182,247, 19,179, 68,145, 38,152, 23, 10, 24, 87, 40, 4, 31,177,252,233,218, -150,197, 84,254, 90, 73,249, 59,109,240,194,185, 19,178,223, 78,217,127, 19,203, -210,181,225,193, 43, 51,190, 98,193,176, 88, 44,154,183,152, 95,237,113, 79,218, -247, 27,174,118,102,153, 87, 41,148,253,158,235,180, 41, 46, 75, 75,195, 95,123, - 49,213, 73,197,119,100,231, 96,149,223, 92, 18,245,173, 78, 20,214,117, 6,176, - 12, 41,228, 1, 81, 50, 34,143, 19, 54, 88, 3,242,227, 93,191,221, 15,231, 45, -174,119,149,251,226, 30, 93,225,155,150, 36,126,182, 53,127,187,205,234,150,205, - 68, 92,114,124,227,174, 75,254,184, 43,211,198,205,149, 65,254,106,124,239,106, - 71, 30,167,163,225,252,182,169,115,157, 29,110, 89, 74,173, 40,250,187,121,109, -203, 84, 93,155,213,223, 58, 60, 30,101,139,202,227, 41,230,217,122,127, 31,171, -188, 3,164, 43, 43,226, 24, 22, 78,176,118, 0,195, 0, 98, 55, 1,111,112, 69, -191, 58, 3, 88, 73,218, 86,169, 32, 31, 90, 58,251,123,116, 52,218,152,253, 92, -181, 85,211,184,236, 13,195, 33,145, 44,187,230,202, 66, 19, 79,211, 24,105,120, - 59, 75,106,232, 18, 29,130, 85,231,193,198,171,198,125,237,236,146,160,202,154, - 39,202, 10,154, 37,197,175,174,194,135, 97,248,195,129,114, 77,168,227,189, 69, -145, 45,109, 99,237,190, 1,113,168,225, 36, 99,140, 49, 19,153, 41, 72, 33,211, - 26, 48,132, 32, 67,103, 61,178, 41, 89,105, 8, 55, 66, 51,145,162,148, 31,229, -219, 1, 89, 11, 16,111, 68, 88,227, 19, 7, 92, 68, 51, 48,236, 23,234, 3, 66, -126,132,148,236,126,101, 83, 62, 53,209,176, 84, 0,144, 36,113, 38,222, 41,117, - 82, 54, 31, 45, 1,101,162,211, 78,164, 32,131, 46,188, 57,187,209,220,132, 90, - 92,158, 51,242,178, 51,205,203, 24, 79,219,174, 89,220, 25, 18, 30,164,171,125, - 92,138,152, 71, 89,183,245, 78,138, 77, 50,231,239,125,139,142,204,188, 91, 60, -159,147,250, 97, 96, 81, 2, 10,168,157,243, 60,190, 71,111, 14, 2, 89,236, 27, -182,198,150, 32, 76, 25,183,232, 53, 70, 3, 84,139,123,249, 90, 86, 44,189,142, -124, 4, 84,229,149, 7, 84,141, 33, 46,188, 28,199, 97, 55, 17, 68,111,120,241, - 14,227,220,200, 16,216,216,209,158,215,228,183, 66,128, 50,202,189,163,183,224, - 3,162,102,254,132, 86, 83,196,195, 95, 38,242, 4,179, 48,159, 24,203,123,148, -209, 36, 81, 1, 25, 83,210, 62,104, 82,149,153,178,126, 55,206, 67,236,220, 18, - 79,208,188, 53, 12,188, +// ../Source/Template/GB_AxB_saxpy5_A_bitmap.c: +uint8_t GB_JITpackage_102 [1090] = { + 40,181, 47,253, 96,145, 11,197, 33, 0, 54,115,152, 40,208,210, 56, 7, 84,147, + 52,161, 39,210,162,178,116,226,198,157,168, 82, 16, 8,221,177,141,249, 16,193, +238,238,113,151, 53,210, 99, 31,240,197,131, 34,247, 23,143, 0,135, 0,140, 0, +124,111,164, 25,119, 91, 4,169,166,237,223, 41,159,201,248, 36, 2,138, 65,197, + 26, 22,233,187,165,114,131,250, 74,206, 34, 42,182,146,177,230, 84, 26,153, 11, + 74,198, 32,149, 45,119,110,175,230,209,157,111,219, 59,117, 96, 64, 96, 80, 45, + 20, 16, 24, 92,130, 77,167,108,131,196,204, 41,239, 35,237, 78,174, 61,167, 48, + 30, 7,106, 52,214,141, 5,131,111,119, 24, 82,101, 58,210, 42,108,107,164,246, +240,212,223,169,109,235, 64,183,125,235,146,181,144,195,129,135,153, 88,183, 96, + 20, 26,185,219,159,235, 93, 9, 35, 42,138,246,130,162,119,193,205, 43, 21,169, +170, 84, 2, 25,203,150, 29,214,149, 37,123, 60,224,117,214,202, 2,146, 21,209, +209, 84,104, 54, 32,206, 64, 45, 32,251,148,118, 59,228,214, 67,118,109,142,237, +101, 87,119,107,237,206,143,237,166,118,153,187,109, 59, 49,170,243, 98,241,225, +118,159,111, 44, 43,135,238,137,144,136,175, 19,244,140,175,141,216,231, 50, 98, +135, 63,165, 98,221,142,202,254,104,163,125,183,142,211,176, 27,185, 95,219,113, +127, 7,205, 95, 74,157, 55,206,111, 84,188,121,174,195,176,120,214,238,231,253, + 22,177,206,122,202,201,157, 53, 15,229,117, 30,142, 54, 57, 43, 89, 3,217,196, + 91,151,177,134,217, 75,228,100,179,200, 85,187, 23,215,201,141,183, 45,214, 72, + 79,185,249,200,121,196, 74,179,190,191,178, 37,117,126, 58,215, 99, 38,183, 44, +203,178, 32,132,208,227,121, 23, 23,192, 69,146, 73,164,185,216,240, 92,111,218, +109,206, 15,219,141, 45, 48, 34, 46, 56,109, 95,240, 28, 77, 69, 71, 51,113,117, +107, 26,117,168, 32,133,151,127, 28,170,119,204, 63,239, 23,235,122, 45,215,129, + 51, 60, 27, 50,171,192, 47,151,188,129, 56, 84,214, 49,231,126, 47, 4,133, 43, +251,215,202,137,193,119,202,250,253,127, 73, 18,145, 36, 80,103, 50, 32,146, 52, + 34,141,156, 10,157,234,247, 78,117,244, 39,183, 68,214,244, 76,230,121, 56, 25, + 20,221,220,201,190,146,142,158, 60,202,241,207, 3,152, 14,106,174,123, 32,116, +204, 31, 13, 61, 10,210, 83, 34,120,202,163,217,132, 62,211,161,166,243, 56,150, + 38, 67, 57,222,161,208, 41,165,148, 74, 58,224, 7,199, 41,103,209,203, 37,148, + 6,167,195, 11, 2,110, 36, 13, 23,204,225, 7, 46, 41,168, 44,148,101, 42,152, +252,153,228,203, 59, 56,206, 88,111,199,252,214,120,237, 5, 63,234,188,180, 43, +102, 57,187,200,100, 98, 67, 54, 94,249,134,203, 9,142,153, 10, 40,172,185, 40, + 71, 1,128,215,168, 1, 69,101, 16, 34, 25, 17, 17, 73,146, 20, 50, 28, 96, 68, +100,204,202, 54,226,112,108, 24, 36, 89,166, 8, 49,196,200, 69,150,145,146,194, +250,217, 9,166, 33, 34,206,219,108,216, 78,123, 62,120,239,234,244,116,151,206, +142,251,223, 20, 42,162,112,148, 69,169, 61, 89, 80, 85,145,181,210,150,141,168, +215, 36,235,104,231,147, 54,183,254,226,182,225,152, 85,128, 1,226, 39,133, 48, +157,178,123,248, 58,164,118,140, 69, 35, 18,129, 77,217, 35, 68,100,175, 29,135, +250, 70,224, 47,117,160, 63, 15, 77,236,244, 17,153,237, 44, 11,213, 46, 3, 38, +140, 64, 57, 43,142,210,144, 52,235, 81, 94,212,173,124,134, 98, 29, 50,197,215, +126,177, 24, 57,202,176, 83, 35, 0,254, 50,226,185,134, 66, 9,116,113, 73,193, +205, 92, 99, 69,106,125,220, 95, 13,233, 22,246,150, 11,192, 45, 4, 22,144, 34, +145, 21,180,255, 13,106, 67,231,253, 52, 86,239,180,101,100,171,151, 24,229,159, + 94,126, 26,101,164, 37, 24,198, 6, 25,190, 58,151,106, 40,159,129, 51, 32,153, + 9,135,100, 9,159,108,205,155, 98, 2, 52,107,168, 52,237,164,201,120,207, 20, +165, 44, 45,101,222, 68,178, 11, 13,235,102, 68, 46, 82,141,152, 82, 35,136,137, + 20,203,129,175,126, 35, 31, 29, 60, 47, 24,206, 64, 3,250, 8,177,127,128, 89, +106,145, 58,218, 65, 99,108, 47, 19, 19,252,104, 31,198,248, 49, 47, 42, 31,134, + 26, 45, 54, 45,239,117,230,242, 3,254,138,200,148, 23, 68,127, 48,149, 97,104, +170,218,255,138,107, 48, 7, 16, 57, 5, 12,155,119,246,195,118,151,170,133,156, +128, 80,149, 32,164,195,247, 70, 37,114,225,100, 10,153, 67, 56, 62, 17, 87, 47, + 96, 41,192, 3,168, 94,224,181, 77,195,143, 82,163, 32,152, 46, 61, 13,127,189, + 42,230,122,126,125,177,220,200,182,150,226, 68,248, 62,227,195, 79, 33,163,160, +157, 69, 2,184,189,172, 73,216, 84, 61, 42, 95,250,241,247, 94,123,152,139,121, +118,152,137,220,248, 46,216, 27,209, 10, 54,205,251,131, 41, 41,181,137, 40, 41, +208, 67, 57,122,198, 67, 41,141,135, 1, } ; -// ../Source/Template/GB_memory_macros.h: -uint8_t GB_JITpackage_118 [820] = { - 40,181, 47,253, 96,241, 13, 85, 25, 0, 86, 36,111, 39,208, 20,177, 14, 84,196, -253,186, 96,251, 85, 64,172,128, 59,183, 32,236, 78, 33, 15,224,254, 90,189, 89, - 2, 97,182, 31,127,204, 62,224,139, 7, 69,238, 47,103, 0,102, 0,100, 0,140, - 89,176, 94,110,177, 44,163,188,147,175,137, 9,247,100, 75, 78, 19,141, 7, 11, -202,197, 28,203,205,212,251, 98, 30,146,122,150, 93,254, 16, 42, 6,149,137,194, -129, 65,229,206,130,254, 90,114,224,195, 41,151,119,176, 75, 53,121,241,183,185, - 76, 13, 88,133, 54,194,194,109, 97,221,240,149,219,230,249,164,242, 66,139,102, - 25,252, 45, 24,165,169,181,160, 86,117, 44,213, 88,171, 26, 34, 46, 73,207, 68, -146, 2,175, 3,183,184,107, 32,251,235, 1,232, 1,208,227,157,210, 86, 18,231, - 92,133, 34,232, 4, 4,159, 38,140,138, 51, 0,188, 66,143,146,132,227,174, 95, -133, 48, 24, 10,226,255,159,199, 34,131,241,208,215,226,143, 14,250, 71,250,190, -147, 90,191,147, 39,212, 44,215, 91, 26,111, 97,182,145,173, 37,105, 15, 79, 41, -240, 72, 84, 27, 13,229,112,201, 84, 27,148, 38,131,201, 68,190,102,148, 2,143, - 1,165, 50, 9, 22,172, 13, 98,105, 72,148,215,228,206, 88, 64,228,111,254, 34, -174, 95,245,104,203,199,189,105,128,208, 63,182, 12,175, 14,132,190, 16,158,243, - 85, 12,245,107, 90,198, 53, 20,125, 33,210, 55, 93,116,200,245,227,218,185,111, - 66, 14,154,105,186, 56,148,212,187, 40,250, 37, 41, 7,130, 94,178,112,215,127, -174, 70, 80,197,196,244,170, 10, 51, 77, 64, 84,149, 20,253,145,244, 23, 48, 57, -182,108, 68,118,174,159, 12, 5,165,201,168,158,135, 34, 34,237,133, 13,143, 89, - 91,255, 65, 77,163, 54,114,124,164,124, 81,235,108,217,141,122,192, 75,239,179, - 45,114,111,239,130, 43,255,186, 3, 67,162,252,100, 14,230,167,176,221,238, 22, -167, 60,123, 76,136, 89,157, 11,239,214,241,199, 28,218, 1, 19, 26,222, 99, 74, -214, 96,159,177,123,122,189,147,221,201,214,110,214,185, 25,187,224,128,146,160, -113, 49, 83,104, 68,100, 72, 82, 90,201,176, 6, 64,134, 8, 77,205,117, 3,241, -112, 3, 95, 60, 34, 66,172, 22, 59,156, 67, 20,187,103,217, 24,214,152,113, 51, -220, 32,143,148,163, 24,163,216,248,195, 79, 18,155,111,253, 96, 63,174,118,146, - 9,206,182,185,181,184, 28,152,190,143, 4, 66, 11,201, 60,203,107, 65, 88,102, -219,164,225, 7, 91, 13,182,156, 60,216,164,192,159,226,188, 25,107, 16,205,199, -182,167, 92,163, 1,238, 62,240,153,232,122, 87,137, 10,104, 25, 51,123, 51,192, -156, 98,202, 40,217,171,174, 0, 43, 75,149, 34,222, 20, 78, 4,165,149,134,231, - 66, 41,187,161, 7, 24,161, 68, 99,212, 2, 28, 17, 32,123, 73, 7, 65, 43, 58, - 11, 54,115,212,209,129,215, 95,194, 53,173, 28, 43,193,103, 28,113,176, 92,170, -128, 11,210, 68,120,134,130,117,153, 1,171,117, 31, 5,207, 96, 1,112, 64,103, - 6,126,224,249, 28, 4,114, 13,120, 32, 4, 88,122,187,237, 32, 14,237, 64, 5, -200,108, 63, 1, 88,191,195, 6, 29, 30,200, 18,141, 60,122,213,118, 18,186,133, - 31, 34,113,101,213, 14, 65,239,233, 89,135, 66,186,131, 4, 11,162,244,240, 44, -161,177, 42, 0,247, 99,115, 39, 44,251, 44,133,163,136, 61, 62, 39,140, 42, 32, - 27,134,225,105,176,101, 39, 12,253,140, 3, 30,115,168, 6,195,227, 80,239,147, -215,137, 27, 0,145,126,138,100, 9, 9, 51,135,100,162,193,239,160,116,238,191, - 21, 58, 14,252,212, 8, 57,244,234, 90, 92,115,106, 71, 90,220,192,167,138, 0, - 26, 52, 49, 42, 51, 81, 47,192, 10, 39, 0,234, 62, 24,133, 62,188,162, 23, 15, +// ../Source/Template/GB_AxB_saxpy5_A_iso_or_pattern.c: +uint8_t GB_JITpackage_103 [1253] = { + 40,181, 47,253, 96, 11, 14,221, 38, 0,166, 56,168, 40,176, 84, 85, 29,244,237, + 47, 43,182,169,206,172,243, 71,225,210,191,247,192,153,219,235, 19, 61,145,167, + 98,233,151,220,218, 41,253, 65,255,193,246,148,110, 6,159, 0,150, 0,158, 0, +157,212,122,235, 74,171,247,201, 97,150, 59,109,136,195, 49,212,209, 74,221,201, +229,158,223,168,188,245, 16,247,173,136,192, 98, 64, 77, 78,147, 22,190,225,206, +254,116,166,115,203, 80, 19,211,169,181,134,210,128,216, 88,182, 25,114, 39,158, +156,227,204,121, 52,231, 93, 7, 63, 29, 24, 16, 24, 80, 11, 5, 4, 6,159,104, +210, 39,220, 33, 18,226, 22,248, 16,151,171,215,216,167, 14,212, 68,206,202, 43, +209, 48,241,149,182, 51,115,127,157,232,242,129, 95,172,244,114,123, 14, 63,117, +221,247,185,117, 76,164,192,170, 98,189, 65,179,208, 59,115,150, 54,187, 53,171, +184, 51,152, 37,132,236,136,196, 89, 28,129, 89,148,248,229, 18, 81,151, 75,245, + 10, 28,115, 58,187,144, 7,202,122,117,239, 57, 67, 80,200,180,159, 49,173, 90, +132,159,172,231,255,143, 72,162,232,211, 27, 13,216, 38,109,250,105,125, 39,157, + 30, 15,248,173,247, 78,129,200,202,112,174,139, 75,226, 51,183, 79, 11,244, 39, + 46,183,200,177, 7,237,219,222,196,167, 77,229,174,185, 92, 61,248,171, 92,158, +222,113,227,138,144, 38, 35,242,231,121, 55,233,157,160, 99, 25, 10,249, 91, 63, +223,102,198, 82,243,156, 74,237,241,183, 92,172,252, 89,218, 15,117,182,115,199, +105, 89,122,207,248,243, 14,255,169,207,150, 91,179,172,223,184,128,185, 82, 91, +239,125,154, 38, 63,185,252,154, 31,221,189,122,190, 50,227, 44,126,220,154,109, + 95, 13,207,237, 29, 4, 28,213,229, 54,111,127, 32,243, 94,122,165,130, 65, 88, +102,122, 7,204, 9, 94, 73,147,130, 73,107, 79,210,208, 38,205,238,219, 38,167, +225, 79,168,132, 55, 57, 47,151, 51,239,163,221,236, 58,121,165,189,245,234,165, +231, 33,175,221, 58, 63,211,222,230,215,201, 16,234, 50,239,228, 68, 30, 41,240, + 85,229,150,101, 89, 86,140, 49,198,145,137, 52,114,109, 54, 48, 12,131, 27,128, +138,187, 90, 61, 19,119, 24, 49, 94,115, 93,112,174,138,172,155,227,236, 3, 21, +109,196,220,243, 64,193, 87,247,192,103,173,111,198,243, 82,206,176,129, 22, 88, + 38,102,157, 76, 6,177, 72, 81,132, 47, 16, 69, 37, 37,248,147,101,165, 95, 24, +132,216,100,100, 20, 25,171,231, 71, 59, 79, 58,250,149, 67,203,113, 15, 4,144, +238,221,225,221,248, 19,232,211,188,149,122,244, 39,249, 9, 75,159,162,253, 52, + 18, 63, 97,151,196, 68,122,188, 56, 80, 99, 93, 16,152,227, 76,103,174,244,211, + 7,200,115,202,229, 43,236,234, 68, 68, 96, 84,222,210,113,159,214, 99, 59,183, + 99,206,149,209,108, 50,152, 38,195, 34,203, 96, 29, 78, 38, 2,244,234,208,130, +160,229,120,131, 64,214, 90,107, 39, 29,241,131,227,214,179, 44,230,147,137,139, +210, 99, 54, 81,125,226,128,169, 30, 79,249,164,128,106,152, 26,164,130,202,191, +117,230,248,212, 2,129, 0,168, 81, 65, 82,102, 70, 68, 68, 36, 5, 73, 10, 25, + 14, 80,132,200, 84, 89,113, 3,242,144, 76,140,114,148,161, 68, 64,136,145, 2, +162, 9, 74,100, 22,164,160,126, 54, 65, 75,138, 74,213, 60,162, 85, 2, 52, 2, +141, 62,190,212,160, 62,189,215,181,173,101,125,200, 63,141,165, 81,181,119,136, +108,203,102,214,108,100, 86, 97,234,151, 38,199,107,220,194,137,182, 50, 56,211, +130,139,241,156,121, 72, 68,182, 95,120,123,176,211,253,213, 7,189, 0,162,116, + 98,140, 91,242, 35, 13, 31,166, 54,197,105,151,162, 72, 21,114, 85, 98, 37,231, + 68,149, 8,197,228, 89,124, 30,130, 39, 3, 45,145,222,172,161, 94,132, 97,150, + 32,120, 7,198, 10,196,250,202,115, 56,164,205,110,121, 74,195,146,212,111,156, +229, 5,196,233, 8,124, 59,113,116,143,149,133,134,137,191,156,233,209,100,109, +218,211,169, 90, 42, 63,159, 81, 33,221, 49,148,183, 29, 60,241, 0,105,206, 56, +106, 69,193,138, 27,129,120, 25,113, 82,119,224, 84, 48,153, 6, 93,181,171, 70, +119, 40, 50, 4,178,161,229, 81,248,176,235,130, 42,143, 6,180,111,203,200,236, + 72,180,205,154,249,102, 85,172,182,105,134,161,246, 33, 44,180,163,182,244,113, + 72,117,172,202, 65,124, 32,159, 90,177,196,225,251, 82, 75,254,215, 98, 17,218, +208,166,136,100,140,236, 22,184,199,136, 44,181,150, 87, 37,171, 79,149,116, 26, +245,100,164, 50,195,148, 26, 80, 76, 0,131,173,151, 51,108,221,172, 34, 43,182, +184, 99, 29,223, 16,203,154,173,174, 10,133, 56, 9,206, 79, 18, 8,169,104,111, +178, 50,234, 26,215, 17, 8, 55,239,203,209,229,244,200, 52,223, 18,174, 43,211, + 9,116,127,116,121,144,221, 85, 67,236, 31,152,209,112,224,138, 64,225,154, 64, +141, 24,232,203, 29,176, 3,179,162,132, 5,163, 99, 89,253,170, 68,102, 43,203, +144, 41,161,243,101,228, 26, 22, 90, 29, 24, 22, 24, 23,149,154,126,245, 8, 88, +247,131, 83,144,179, 73,135, 63,204, 32,210, 99,144,238, 59,171, 60, 82, 90,225, + 62, 85,153,217,120, 25, 52,230,208,200, 12, 35, 24, 61, 97, 83, 17, 15, 36,242, + 18,152, 45,255,248,179,235, 60,110,205, 8,171,250, 7,113, 94,102,138,133,199, +254, 19,113,230, 98,137, 10,156,137, 5, 97,216,100, 82,242, 36,136,209,165, 39, +186,241, 99,138, 99, 71,232, 14,151, 24, 77, 2,169,183,218,193, 23,230, 6, 44, + 23, 50,194, 50,159,180, 4,112,193,185,164,120,249,166,249,254,204,228, 51, 85, +201, 75, 63,210,173,213,104, 94, 82,171,210,192, 24, +} ; +// ../Source/Template/GB_AxB_saxpy5_unrolled.c: +uint8_t GB_JITpackage_104 [2932] = { + 40,181, 47,253, 96,105,200, 85, 91, 0, 58, 83,112, 15, 45,176,172,170,234,138, +235, 11,188,206,124,107,248,171, 15, 57, 18, 43, 79,117,184,193,112,209, 84,244, +191, 36, 90,215,140, 80, 53,210,215,221,193,180,246, 7,253, 7,203, 63, 56, 23, +236, 0,244, 0,231, 0,179,192,181,153,252, 97, 28,234,108,197,151,110,142,145, + 56,144, 29, 44,249,243,186,250,134,107,243,188,212,179,127, 64, 81,117,243,144, +103,207,125, 24, 54,109,254, 54,177,154, 85,219, 89, 46,163, 25, 79, 12,227,221, +196,110,253, 13,158,125,103,243,106,222,168,150,175, 97, 25,127,220, 45,213, 51, +246,249, 84,195, 52, 56, 80,140,119, 38,247, 44,241, 55, 92,234,117,180, 99,171, +179,117, 54,210, 93,154,243,244,126,233,183,205, 77,196,226,250,108,187,103,221, +124,229,136, 26, 58, 66, 53,108,122,213, 41,151,214, 76,205, 29,205, 36, 34, 20, +119, 20,171, 19, 17, 7, 16, 11, 54,151, 98, 90,113,156,181,140, 90,241,109,171, + 14,197,142, 58, 34,129, 81,255,129, 61,135,112,221, 76,136, 55, 84,239,104,217, +114, 21,115,200,162,154,176, 52,111,222, 8, 10,197,119,122, 22, 52,215,207,194, +177,109, 95,230,184,222,242,142,106, 27,183, 24,170, 10,196,114, 10,214,144,209, +109,179,183,251, 46,169,227,113, 38,190, 44, 78,117, 89, 17,119,112,112, 68, 28, + 28, 2,143,140, 61,195, 39,248,156, 74,168,248,122,158, 95, 23,205,243,186, 38, +216,224, 65,175,237, 50,234,161,255, 14, 8, 26, 12, 72, 83, 39,164, 81,177, 39, +163, 25,165, 29,189,243,248, 26,135, 52,135, 42, 62,244,160, 24,207,182,207,110, +188,250,181,207,183,217,217,154, 43,182, 94, 70, 87,111,229, 40,214, 60,214, 25, +254,208, 84,175, 64,254,208,128,234, 99,249, 41, 16, 16, 21,102,130, 65,130,235, +128, 4,166, 27,139,197, 98,177, 44,203,194, 96,170, 5, 23,128,115, 8, 68,170, + 63, 30, 78,117, 89,240, 0,115,109,214, 98, 80, 5, 22, 18,151,101,113,189,172, + 79, 92, 40, 42, 46, 8,174, 90, 53,237,225, 30,129,136,245,202, 61,235, 25,171, + 55, 99,122, 25, 42,188, 97,239,194, 31,222,209,109, 67, 32, 98,121,229,220,243, + 37,167,220,213,103,220, 89,204,170, 14, 89,158,255,223,225,152,224,112,100,106, +214, 5,200,104, 87,187,239, 88,189,180,163, 25, 15,112, 47, 93,112, 88, 36, 42, + 46, 20,151,136, 12,205, 50,117, 1,107, 48, 50,138, 63,171,101,202,109,180,187, + 20, 65,231,218,140, 5, 84,148, 82,202, 62, 4, 65, 6,205, 83, 57, 83, 3, 65, + 16,230, 18,241,220,186, 84, 84, 19,150, 11,132,119,241,170,169,252, 19, 60,207, +243,188,232,208, 33, 14,246,188,227, 97, 28,229, 40,110, 40,169, 40,165,148,212, + 33,125,138,122, 60,254,191, 30,242, 60, 15,195,243,202, 33, 38, 65, 72,165,212, +103,130, 18,124,228,220, 7,188, 86, 7,229,106,254,124,158,159, 96,166,248,157, + 61, 20,193,210,184,184,231,113,103,184,198,115,200, 31,144,102, 61,183, 46, 3, +149, 63, 6, 60, 84, 14, 35, 20,136,242, 64,200,127,113,138,213,237,149,231, 59, +179,198,181,217,171, 23,195, 52,123,132, 9, 94,156,131, 57, 40, 54, 61,172,185, +118,227,207, 39, 64, 32, 88,131,103,238, 62,224,225,209, 43, 15,132,176,202,205, +174,147, 61,116,251, 50,170, 97,248,143,238,193,217,164, 87,203, 23,247,117, 27, +221,182,121,167,119,143,179,159, 92,198,188, 94, 86,243, 31,127,232,181,116,119, + 75, 41,165,164, 40,138,162, 40, 80,248,247, 60,163,219,195,230, 1, 14,135,164, +104,214,125, 11, 14, 71, 5, 74,222,190,153,161, 25,140, 32,132,221,221,221,221, + 29,187, 99,199, 24,187, 59,198, 24,163,148, 82, 74, 41,165,148,146, 36, 73,146, +108, 73,146, 36,105,154,166,105,154,166,105,154, 38, 73, 75,166,150, 72, 36,146, +169, 91, 34,145, 72, 36, 20, 69, 81, 20, 69, 81, 20, 69, 77, 38,113, 50,153, 76, +168, 56,153, 76, 38,147, 40,138,162, 40,138,162, 40,138, 96,212, 13,163,110, 8, + 33,132, 48,234,238,134, 16, 66,216,221,221,221,221,221,221, 49,198, 24, 99,140, + 49, 70, 41,165,148, 82, 74, 41,229,195, 53,147, 94, 12, 14, 38,201, 40,187,194, +165,175,163,148,231, 52,156, 4, 15,113,156,212,176, 59, 74, 72,253,144,115,212, +134,203,166,221, 78,241,148,160,128,115,207, 53, 44,215, 13, 44,193,219,252,232, + 25,207, 13, 70, 56, 10, 69,132,171,192,193,100,195,216, 16,123,133,110, 38,174, + 32,201,216, 48,130, 19, 74, 50, 77,146, 36,101,140,221, 16,206, 67, 17,162, 55, +148, 1,131, 95,168, 66,139, 25,153, 25, 25, 17,145, 20, 36, 5,201,112,178, 34, + 4,162, 72,146,197,152, 85, 89, 7,146, 40, 26, 5,113, 8, 3, 34, 8,194, 96, + 8,130, 32, 8,130, 32, 36, 67, 4,132, 8,140,128, 8, 8, 33, 70, 41,163, 17, + 86, 7, 72,206, 33,134,209, 51,166, 33, 19, 13, 24, 40,218, 93, 99,210,197,252, +228,203,164, 88,138,138,124, 15, 66,202,138, 63, 6,238,190,172,217,104, 56,211, + 11,160, 70,123, 11, 67, 34, 3, 87, 77,169,137,225, 64, 53, 32, 47,123,159,115, + 64,216,172, 95, 65,150, 29, 3, 39,171,103,242,105,239, 10, 62,150,114,240,139, +217, 39,126, 6,220,160,193, 25,109,156,219, 2,101, 61, 34,194,239,119,127, 37, +108, 17,120,234,147, 13, 54,148,217, 54,233, 3, 69, 71, 38, 35,248, 69, 21,181, +177,122,100,160,240, 61,141,130, 60, 74, 8,216, 51,110,197,205,122,129,227, 23, + 75, 26,206, 80, 39,242, 16,123, 82, 63,229,158,128,170,239,254, 95,242, 43, 30, + 88,100, 90, 17,185,158,167,128,159,138, 60, 36,100,216, 51,110,109,236,186,192, +227,239, 83,241,250,155, 0,148,250,201,190, 5,186,101,109,100,146, 80, 13,212, + 49, 20,202,242,142,133,241,179, 30,208, 68,119,245, 80, 40, 30,186,255, 48, 17, +222,202, 23,196, 37, 11,167, 56, 58,112, 59, 35, 69,226, 96,152,181, 25, 71, 10, +186,122,168,132,234,173,228, 46,244,199, 91, 81,119,146,202, 28,178, 99,160,181, +203, 24,244,158, 63,221,124, 45, 90,136,203,212,204,236,108, 40, 78,198,168,152, + 76,182, 13, 8, 51, 16, 81, 70, 64, 68,176,164, 20,133,183,131,100, 30,230, 66, +151,250, 74,207,219,147,226,184, 38, 90, 51,201, 66, 9, 47,142, 56,101, 48, 72, +168, 76,125,166,240,127, 1, 55,247,217,158, 13,234,189,238,242,162,208, 73,218, + 32, 94,132, 22,105,179,141, 67, 70, 57, 12,180,114,129, 65, 94, 85,226, 28, 70, + 19,225, 83, 51,217, 97, 67,159,169,201,208,116,250,136,251,114, 9,230,206,200, +192, 59,204,116, 33, 38, 48, 89,236,122,210,116, 42,235, 58,240, 46,137,248,132, +146,105,138,236, 44, 52,163, 22, 67, 99,165,161, 96,232,208,114, 34,219,146, 57, +117,219,226,245,137, 25,110,253,169, 20,255,116, 57, 0,117,159, 1, 5, 27,224, +181,161,239, 30,168, 47,193,252,252, 85,198, 62,195, 54, 2, 48, 79, 47,234,156, + 72,182,242,200,158, 19,247,205,104,110, 94,142, 75, 71,183,189,162,173,199,140, +128,227,208, 69,208,194,216,168,217, 12,207, 26,147,141, 3,238,111, 37,131,119, + 91,226, 57, 79, 34,115, 41,209,103,200, 46,161, 50,245,179, 2, 76,119,186,237, + 29,253,254,198,250, 22,228, 39,193,222, 88,214, 41,183, 21,193,109, 9, 27,111, +233, 19,151,189,172,110,120,198, 70,196,107, 71,177,122,162,216, 13,119,166,162, +213,160,198,207,223, 51, 49,227, 8,224,102, 8, 11,218, 1,189, 28, 60,209,109, + 21, 71, 62,169, 40,253,175,205,130,204,200,195, 95, 58, 10,146,120, 35,153, 93, +116, 26, 27, 23, 69, 72,251,109, 45, 40, 61, 2, 16, 36,229,143, 64, 59,172,108, +211, 57,211,244,214, 60, 89,210,145, 29, 2, 4,134,170, 40,107, 13,141, 35, 27, + 81, 46,208,206, 27,178, 87, 12, 85,156,213, 89, 92,181,204,167,162,210,116, 28, + 37, 47,214, 92,102,124, 62,152, 34, 91, 84,194,244, 30,255,141, 73, 20, 99,238, +168, 46,195, 15,208,180, 49, 29,117,212,176,119, 40,112,162,190,162,192, 53,186, +227,174,216,158,170, 16, 94,154, 34,164, 20,133, 91,233,137,218, 82, 19, 4,210, + 18, 50,164, 36, 2,144,142,112, 39, 21, 81, 34, 13, 65, 71, 10, 66, 70,244, 67, +128,168, 7,119,160, 29, 42,225,181, 13,129, 41, 76,209,229, 71, 39,132, 7,158, +224,251,137, 45,101, 12,167,114,133,185,142,158, 12, 46, 71, 85, 93,212,221, 81, +254,130, 59,207,200, 36,166,243, 94, 0,221,202, 8,168,149,193,222, 43,144, 5, +238,152, 5,102,206,157,218,205,141,128, 40,125, 64, 54,181,129,224,194, 5,252, +105, 2,213,203, 3,168, 45, 41, 11, 24, 17,128,134, 19,192,131, 36, 59,168,102, +132, 18, 40,196,169,202,234, 95, 71,206, 36,213, 80,199,163,200,193, 73, 68, 41, +143, 22, 98,199,251, 81, 69,202, 39,128, 53, 26,143, 90,113,117, 17,117, 4,178, + 9,243, 14, 17, 55,174, 32,165,177,175, 81,217, 31,187,156, 27,195,206,108,110, + 98,212,103, 62,252, 22,103, 27,136, 76,227,243,156,102,197,107, 67,177,126,241, +143,162,178, 99, 17, 7,232,152, 1,219, 64,123,228, 31, 73,247, 13,191,128, 12, + 35,110,221,143,182, 60, 64, 80,205,135,160, 10,225,165, 49,178,187,206,132,159, + 76, 22,201, 12,190, 86,235, 98,254,100, 76,226, 69,137, 21,162, 76, 70, 84,108, + 58,213, 62, 87, 85,212, 83, 92, 86, 92, 96, 27,190,214, 85, 43,133, 23,178, 66, +201,174, 24,216,220,108,181,107,137, 93, 87,159, 3,195, 10,162,175, 68, 96, 30, +203, 83, 49,152, 14, 5,124,185, 50,242, 4,130,126,107,249,190,178,154, 94, 85, + 75,166, 22, 54,245,166,156, 90, 85, 74, 76, 11, 69, 10,159,115,224,206,208, 47, +135,206, 28,185,101,224, 48, 3, 0,105, 0,238, 9,106,145,177,100, 39, 94,148, + 68,230,160,215, 24,202,136,211,243,220,195, 59, 70,172,181,103,226,149,115,232, + 89,208,185,218,157, 10,195, 71,167,203,182,178,149,244,131, 79,156,161, 15,114, + 89,249,204,149, 2,226, 36, 22,147,240, 89,164,177, 90,102, 76,176,133, 66,132, +110,135,137,105,200, 70,186,108, 39,121,216,224, 89, 3,190,173,200, 23,103,114, +177,249, 33,180, 22,245, 16,143,191,201, 47,252, 50,177,133, 90, 31,133,106,248, + 86, 33,153,192,171,146, 76, 25, 26,149, 12,129,204,177, 94, 50,201,224,131,207, +141,105,156, 95, 9,164,110,202,195,217,127,139,225,116,143,145,157,169,211, 49, +192, 51, 45,199, 66, 4,148, 13, 70,121,153,253,251, 77, 95, 69, 16, 63,162, 48, +255,219,224, 44,234, 69,231,213, 88, 9, 96, 45,190, 42,238,140, 63,222,106,199, +203, 52,241,190, 70, 50, 64, 33, 4, 6, 86,241, 79, 3, 96,174,161,104,159, 42, +112,205,192,123,248, 21, 40, 95, 47,136,170,209,216,186,248, 32,112,171,200, 79, + 41, 2,146,112,255,243,146,156,134,103, 67,139,244, 74,128,189,158, 94,140, 66, + 77, 24,162,130, 42, 85,222,118, 72,212,193, 82,148,251,186,155,243, 4, 66,176, +115, 6,170, 14, 99, 22,243,104,255,206,240,252,152,235,135,216, 27,218,181,233, + 52,105, 24,110,131, 34,198,192,215, 7, 15,142,152,186, 66, 81,134, 35, 94, 73, + 89,157, 43,155,229,195, 32, 15, 65,197, 77,186,231, 82,128, 11, 25,193, 99, 17, + 30,148, 21,234, 71,198,134, 66, 61,111, 2, 82,204,245,170,234, 51,108, 62, 62, +161, 62, 53, 56,104,154, 51,210,147,227, 12,216,189,200,172,235,250, 38,215,183, + 68, 35, 20, 57, 26,137, 47,162,183, 23, 72,154,133,240,139,225, 56,230,144,101, +214,255, 46, 85, 25, 14, 86,194, 91, 33,223,253,222,255,110,128,212,186, 26,160, + 78,136,162,215, 67,133,236,157, 98,196,100, 44,163,168, 98, 91, 80,195,105,128, +145,214,105,101,165,211,147,203,252,215,132,228,165,102,165, 86,171,235, 13,198, +110,112, 27,215,104,228,185,213,174,172, 80,146,123,232,106,114,224, 67,172,192, +188,114,244,219, 10,142,129, 11, 49, 74, 12,235,229, 4, 95,167,196,248,156,130, +156,222,206, 80,198, 66,132,115,189,240,139, 32,229,225, 29, 3, 4,133,121, 16, + 13, 90, 23, 68, 56,108, 98,187,142,161,138,182,226,207,247,138,200, 49,132,155, +157, 75,198,167, 83,120, 3, 47, 16,230, 67, 67, 35,245,250,168, 52,251, 35,170, +207,174,150, 10,248, 93, 62, 37,212, 44,108,115, 3,113,167,178, 96,253,183, 85, + 24,227,188,203, 39,185, 95, 61,171, 83, 26,204,228, 50, 9,130, 42, 73,178,110, +151,197,165,229,227, 93,158,226, 80,121, 91, 31, 78,155,141, 95,194,123,253,153, +234,181,135, 95,245,217,241,160,209,232,216, 86,230,219,116,127,119, 41,120,118, +171, 42,100,231,194,187,143, 17,169,150,191,147,242,122,226, 4,198, 74,165,204, +175, 3, 52, 92, 8,128, 96,164, 14, 13, 9,234, 95, 96, 82, 49, 41, 12,110,133, + 30,203,139,221,239,191, 87, 49,238,114, 92, 12, 71,165,255,227,172, 99,210,151, + 47, 53, 47,140,240, 42, 11, 88,192, 90,152,128, 51,187,128,156,225, 13, 81,104, +190, 81,136,240,232,226,189,204,119,179,219, 66,162, 96,176,200,197,150,125,201, +155,130,253, 38,170,141,224, 50,149,192,212,230,138,106,118,177, 19,102,253, 46, +199,247, 49,113, 61, 5, 54, 93,104,169, 26, 76, 73,102,124, 37,183,144,199,144, + 53,190, 74, 31,174, 16, 27,195,230,130,212, 88, 44, 33, 39,205,227,169, 33,149, +244,180, 68,172,179,228,135,163, 85, 16, 19, 23, } ; -// ../Source/Template/GB_meta16_definitions.h: -uint8_t GB_JITpackage_119 [2278] = { - 40,181, 47,253, 96,159, 48,229, 70, 0,138, 77, 84, 14, 45,176,204,138,117, 42, - 46, 0,184,110,151,240, 15, 1, 82, 30, 44,102, 91, 47, 54, 46, 41, 84,216, 84, -165, 0,211,237, 11,170,221, 6,144,231,148, 61,205,157,210,159, 6,255,193, 46, -215, 0,219, 0,216, 0,116,179,222,235,188,115, 20, 40,124,131,193,120,160, 0, -114, 50,255, 15,129, 68, 30,241,224, 58, 24, 9,122, 85,221,211, 30,174,164, 22, - 32,242,137, 40,208,123,101,142,121,190,177,242,237,207, 75,185,210, 83, 62,240, -193, 14,134, 98, 66, 96,163, 30,209,126,155, 94,177,213,190, 97,114,158,107,180, -108,117,182, 58, 47, 21, 61,117,122, 62, 43, 21,179,243, 4,196, 97, 2,193,192, - 22, 21,169, 59,165,114,123,250, 74,174, 50, 12,108, 37, 83,109,193,224, 96, 2, - 99, 82, 49, 71,101,203,155,219,107,109,244,230, 24,230, 30, 17,128,112,128, 96, - 56,240,224, 0,241, 8, 5, 61,178,205, 17, 39, 62,113,223,172, 59,179,238, 60, -226, 56,139,103,209, 88, 41, 40,204,225,219, 26, 7,242,226,221, 61,243,219,109, - 91, 35,181,103,235, 94,206, 87,146, 41, 87,191,209,186,183,213,180, 78,177, 38, - 86,206,190, 45,219,195, 21,140,120,136,151, 51,248, 40,222,208, 0, 97,104,104, - 8,242,146,173,142, 95,206, 87,163,217,164, 78,193,104, 46, 32,104, 52, 80,131, - 81,208, 0,126,224, 5, 98, 58, 12, 48,164,139, 75,124,212,237, 28,116,231, 92, -116,237,156,115,174, 93, 67,174, 47, 23, 37,209,185, 43, 62, 72, 50, 78,221, 45, -191, 53, 94, 11,157,139,176, 86,239, 21, 81, 32,119,230,184,160,139, 58, 19,121, -244,209,244,160, 63,248, 30, 5,228, 73, 1,172,201,190,145,233, 1,192,112, 82, - 39,243, 52, 30,205,120, 95, 23,244,190,213, 43,249,186, 7, 87,178, 47,111,156, -226, 0, 51,161,201,192,207,245, 30, 65,219,208, 65,236,141, 25,134, 69, 79, 87, - 82, 82,185,100,140, 99,250, 2,134,105, 30, 26,179,219, 83,197,132,230,226,130, -225,116, 24, 44,255,144,159,233, 65, 2, 53,174, 43,227,244,221,242, 71, 95,249, -117,221,242,207, 47, 44, 16,113,101,255, 90, 57, 41,182,253,199, 22,227, 8,195, -217, 56, 12, 78, 4,157,211,113,146,133,133,131,155,139, 4, 48,194, 3, 84, 14, -178,242,245, 78,166,226, 85,164, 99, 98, 60,157, 98,182,208,107, 71, 10,163,138, -111,100,224, 74,237,196, 0,219,104, 81,184, 0,173, 70, 49, 41, 8,159, 71, 70, -242,134,237,234, 50,246, 22,156,133,163,193, 76, 84,168,188, 37,146,190,104, 92, -104,198, 61, 46,116, 76, 39,179,105, 0, 43, 50,151,190, 22, 12,164,174,124, 66, - 68, 34,145,168,200, 72, 89,203, 84, 59, 99,123, 44, 82, 77,183, 91,177, 92, 54, - 94, 79,191, 98,108,202,180,207, 45,103,147,226,233,151, 8,196, 31,109,191, 16, -185, 71, 23,122,201,251, 2,125,163, 84,198, 89,195,194, 66, 67,103,131,225,112, -220,172, 62,239,175, 58, 59, 78,117,229, 76,147,159,242, 21,170,177, 57,101,155, -253,134,113,213,232,197, 52,203,245, 20, 10, 77,102,147,145, 50, 14, 3, 62,208, -184,137,251, 39,150, 43, 61, 79,191, 83,254, 90, 45,251,101, 99,246,203,198, 54, -100,219, 71,174, 23,244, 22, 44, 15,183, 88, 30,121,208,135, 12, 16, 72,133, 58, -239,176,197,108, 86, 31,136,106,215,156, 24, 79,205,146,171, 55,204,123,230,232, - 27, 49,174,183, 54,180, 41,217, 85, 94,177, 32,195,216, 20,239, 45, 27, 45,217, -151,204,209, 27,183,241,209,195,237, 22, 59, 48,139,228, 29, 61,106,232, 10, 46, - 27,135,225,192, 7, 27,167,201,188,135, 95,107,163, 43,141, 17, 73,155,158, 99, -115, 78,149,107, 72,146,244,233, 76,170, 60, 34, 81,232,159,134,146, 36, 73,146, -244,137,251,229,218,154, 4,174,147, 89, 85, 34,210, 50,118,219,210,173, 59,167, -115,141,119, 82, 36,147,208, 50,248, 33, 63, 89,132, 1,136, 35, 24, 48,224,159, - 16,129, 16, 94, 19, 58, 8, 2,153, 29, 44,167, 5,129, 36, 97, 81,246, 91,141, -178,167,215, 89, 35,203,198,174,109, 46,224, 7, 74, 80,227, 46,156,107,145,104, -180,196, 77, 96, 48,216, 46,205,216,211,167,125,189,247, 28, 26,218,110,127, 60, -234, 75,222,212, 37,222,175,220,193, 98, 28,130, 77,168,114,180,142, 41, 83, 35, - 34, 35, 41, 73, 10,173, 1,242, 40, 6, 33, 57, 28, 72,113,178,118, 3, 82,160, - 40, 11, 33, 17, 66, 18, 48, 34, 32, 4, 17, 1, 49, 2, 67,160,128, 8,132, 72, - 48, 34, 34, 98, 82,226, 28,164,252,234, 14,113,141, 98,179,139,200,224,224,240, - 16,102, 28,241, 8, 27, 33,158,197, 54,132, 57,143,170,217,173,254,228,120,189, - 78, 73,192,139, 75,209,192, 34, 85,183, 75,205, 28,118, 55, 41,173, 63, 23,128, -122, 39,112,204, 29,126, 83, 55,171,105, 41,146,221,244,148, 39, 27, 4,238, 23, -204, 92,233, 92,154,220,227, 41, 55,115, 99,126,246, 49,180, 10,167,173,122, 9, - 89,168, 65,230, 24,184, 82,189,211, 82, 14,138,216, 15, 4,183, 46,241,231,149, - 51,176, 71,229,200, 27,160,112,218,242,248, 16, 85,255, 3, 52,138, 29,159,227, -180,243,249,166, 29,176, 38,238, 72,117,231,184,110,166,145,235,208,144,247,138, -112,195,160,141,235, 30,109, 1,244,144,156, 97,232, 92,213,247,118,157,245,172, - 75,115,147,146, 29,155,180, 76,115, 21,249,119,220, 54,130, 27,253,180, 11,168, -172,215,195,136,135,211,134,116,118,217,120,117, 65, 67,194,113, 81, 57, 43, 15, -188,124,148, 88,180, 71,171,120,125, 87,217, 35, 0,154,252,191,179,111, 70, 32, - 90, 4,125, 50, 64,233,135, 40,128,203, 37,241, 9, 40,147, 21, 39, 69,108,106, -197,136,248, 92, 44,219,110,169,206,247,183, 11,193,204, 73, 73,188,231, 79,103, - 79,187, 26,168,138,241,115,240, 17,222, 60,164,134, 3,190,177,144,164, 35,237, - 17, 36,117,206,110, 63,143,123,198,240,143,142, 31,155, 1,132,225, 18, 93,101, -153,172, 80,202,252, 95,110, 36,122, 24,211,223,178, 80, 38,112,243, 43, 72, 77, - 14, 69,199,168,118,198, 28,101,104, 56,240,196,107,154,202,224, 46, 56, 66,168, - 51, 2, 22,184,155, 94,224, 46,145, 41, 52, 48, 14,249,138, 64,101,235, 52,242, -176, 0, 4, 99,252, 45,115,121, 33, 47, 61,210,157,101, 62,102,210, 73,228,114, -194,149, 36,245, 69, 53,101, 77,165,111,162,110,252, 28,107, 18,120,148, 73,150, -155,251,235,152, 6,200,111,162,161, 31, 79, 82,168,113,212, 31, 3,228, 72,111, -202,182,208,176, 16, 82,154, 10, 37,141,168,184, 4,149,200,125,236, 3,201,187, - 83,224,245,212,194,163,232, 45,143, 79,122,237, 7,149, 14,224,240, 29,215,211, - 65,142, 51, 46,164,211,137,245, 17,239,160, 16,192,152, 72,128, 67,184, 60,192, - 10, 61, 84,116,199,222,144, 44, 13,231,164, 73, 28, 5,234,169,175, 68, 84, 36, - 17,222,236,125,181,217,167,237,111, 43, 12,110,166,175,235,160,189, 60,116, 73, - 87,117, 84, 32,234,245,156,170, 90,245,125, 92, 13, 99, 84, 9,245,101,249,146, - 97, 19,155, 18,103, 95,213, 84, 55,194,216,181,128,230, 10, 0, 32,203,192,201, - 64, 32,180,237, 2,143, 8,179, 74,194, 41,136, 97,150, 80,139, 86, 13,131,130, -201,172,249,234,245,198,169, 79,147, 75, 4,166,198,180, 96,179,109, 77, 2, 21, - 45, 19,199, 25, 55,150,133,208,105,105,180, 90, 83, 22,145,140,109,240, 33,118, - 16,228, 9,192,188, 4, 83, 78,233, 29, 12, 30,102,142, 6,179, 43, 52, 55,254, -140, 66, 84,195,231,168,204, 10, 74,128,135,204, 30,254,214,246,222, 50,129,148, - 6,192,209, 38, 72, 40,192,244,120,157,206, 61,200, 66, 33, 48, 76, 3, 47,199, - 57, 54,173,215,163,222, 91,130, 31,205,109,231,116,143,192, 5, 57, 32, 38,123, - 16, 3, 58, 49,127, 99,241, 74,149,137, 91,193, 37, 26, 86,218,137,177,240,152, -146, 25,111,210,223,149, 87, 37,156, 40, 59,238, 98,140,100,143,173, 74, 36,193, - 95,155, 10,181, 67,150,190, 24,127, 28,253,147, 85, 68,180, 64,133,220,175, 82, - 60, 29,210,101,139,190,116,189, 95,120,122, 39,111, 43,126,225, 1, 99, 91, 28, -133,131,178, 63,240,145, 2,137, 35, 34,133, 8,200, 1,185,118, 43, 36, 93, 54, -136, 9, 40, 12,140, 43,160, 61,101,144,111, 8, 67,119, 54,163,161, 89,222,136, - 40,130, 55,132,222, 63,245, 12, 0,115,210, 30, 20,102, 22,195, 74, 35, 63, 24, - 86,233, 92,154, 36,196,228,239, 24,134,113,135,198, 60,142, 60,241,128,200,118, -210, 93, 29, 66,118,103,221,128,204, 2,206,244,215, 57,211,216, 14, 20, 80,155, -190, 25, 70, 34,120, 65, 29,134, 53, 63,198,138,135,194,234,161,251, 44, 68, 53, -127,123,144, 35,124,207,113,255, 48, 96,127,186,254, 71, 95,153,244,225,239,200, -109, 71,119, 97, 3, 89,192,107, 37,171, 1, 8, 89, 51,195,190,244,214,204,107, -129, 93, 16,225, 84,241,229, 78, 86, 55, 36,234,158,115, 87, 53, 71,157,237, 83, - 68, 48,157,143,238,163, 55,221, 86, 50, 92,247, 43, 7,150,239,142, 43,129, 31, -210, 70, 28,180,134,151, 87,170,159,171,168,229,116, 59,240, 64, 3,185,214,152, -200, 78, 65, 61, 89,196,206, 61,246,242,152, 48, 10,122, 52, 45, 4,245, 92, 38, -168,128, 98, 96, 47,207,242,139,247,121, 45,245, 15, 15,224, 58, 65, 31,193,193, - 5,206, 13, 47,204, 23,162,216,119, 95,197, 65,159,118, 55, 77, 38, 42, 13,167, -237, 44, 46,159,147, 53,162, 19, 77, 81, 75,158, 92, 1,207, 97, 63,112,113,185, - 35,159,205,250,128,224, 73,126, 8, 93,176,196,232,182,188,200, 71,239,108, 44, - 5,234,204,113,106, 62, 35,129,118,177, 97,225, 80,230,121,128,231, 87,204,150, - 72, 72, 50,185, 91,226, 75,106,246,211,155,131,117,165,198,188,106,172,204, 17, - 49, 61, 88,149,230,191,212, 13, 26,233,184,249,201, 81, 64,239,235,192,116,255, -138,137,173, 94,113,238,216,232,103, 78,197, 13, 79,225,114,239, 25,164,239, 48, -182,156, 59,250, 49,135,248,110,172,118,127,252,176,102,128, 62, 1,246,149,204, -246, 8, 94, 76,122,217,118, 82, 30, 8, 1, 62,145, 8,213, 52,184, 20,198,221, -228, 57,173,182, 17,254, 65, 75, 31, 84,117,180, 68, 62,225,193,149,112, 39, 45, - 22,164,145, 64, 98,174,142,209,151, 73,175, 50,131, 13,223, 55, 77,173, 86,152, -182, 22,255, 64,178,174,127, 18, 53,207,148,181,229,242,167,232, 27, 59, +// ../Source/Template/GB_Template.h: +uint8_t GB_JITpackage_105 [791] = { + 40,181, 47,253, 96,135, 9,109, 24, 0,166,171,125, 36, 16,115,219, 61, 14,101, +196, 77, 68,224, 69,220, 73, 52,151, 98,224,169,251, 85, 40,131,165, 43,222,121, +217, 77,198, 62, 85, 85, 13,170,252, 6,124, 0,111, 0,116, 0,141, 68, 4,113, +121, 42, 22, 19, 16, 19, 51, 56, 53, 64, 99,224, 80, 38,220,214, 82,143, 50, 72, +238,169, 31, 50,131, 38,236,144, 87, 87, 38, 26, 15, 22, 14,227, 15,201,206, 23, +234,223, 56,250, 66,157,123, 84,130, 64, 49,160, 76, 22, 14, 12, 40, 58,176, 4, + 84,226,253,177, 15,234, 60, 90,181,143,175, 47, 42,177, 60,149,134, 70,173,140, + 96, 96,151, 75, 89,248,123, 90, 26,103,177, 61, 63, 85, 25, 39,117, 24,251, 27, +246,196, 76, 25,154,195,191,142,122,124,137, 26, 34,180,160,160,153, 20, 20, 4, + 14,213, 83,143,213,249,197,197,146, 62, 20, 85,198, 73,217,162,234, 68, 34, 10, +123,242,174,167,148,137,108,155,107,229,220,194,216, 15,249, 33, 36, 99,166, 98, +140, 6, 48,108, 7, 91, 87,255,190, 7,168,254,106,249,206, 82,185,189,178, 99, +112, 91,132,157,212,222, 31, 19,201, 62, 55, 46,158,139, 6,168,194, 28, 43,249, +195, 57, 96, 67,185, 25,201,174,169, 23, 87,164, 57, 31,204, 34,202,108,186, 5, +155,163,213,212, 44, 62,253,109,223, 48, 64,149, 4,210,206,174, 39, 8, 10,168, + 66, 1, 69, 14,208,229,185, 88, 38, 64, 51,240, 60, 96, 48, 73,157,235,140,192, +130,115, 82,117, 11, 37, 63,236,166, 97,248,214,151,145,162,166,235, 7,192,200, +214, 47,165,171,222,234,221, 46,170, 14, 59,105,217,178, 84,102,152,125, 62, 53, +190, 74,158, 88, 82,234,250,112,219, 29, 28, 56, 40,100,161,120, 20,198,247,217, +161,222, 42, 97,239,140,228,246, 21,170, 78,108, 54,223,162,110,167,119,134, 90, + 38,162, 40, 34, 33, 32, 8, 77, 51, 53,131, 12,208,172,149,156,219, 69, 61,106, + 98,162,100,170,114,243, 69, 9, 10, 47,249,127,151, 71,212,190,111,137, 87, 59, +110, 0,121,190,183,249,182, 95, 83,190, 71, 24,223,167,112, 68,199,150,101,123, +136,145,156,169,100,124,252,114,185,165, 23, 67,218,146,203, 30, 85,114, 97,123, +148,107, 95,212,126, 31, 79,143,165,226, 75,118,119,199, 80, 50, 38,154, 30,182, +244,213, 47,254,194, 73, 49,131,253,110,238,196,204,249, 3,107, 32, 48, 68,168, +144,157,117, 75, 11,102,231,130,151,241,200, 28, 0, 48, 46,162,114, 98,152, 88, +162,222,178, 80,106,224,122,224,152, 20, 28,183, 61,242, 53,123,204, 36,222, 51, +168,153,192,130,234,210,195,122,183, 35,117,175,132,231,212,183,231,149,231, 34, +178,104,250,222,127,240,204,113,158,101, 2,154, 93, 0, 89,143, 0,207,244, 89, +131,147, 65,250, 97, 67, 63,148,169,124, 43, 97,245, 6,114,112, 19,168,147,129, + 53,129,223,255,142, 86, 48, 72,194,198, 48,110,114,130, 66,193,116,161, 65,147, +240, 57, 7,136,227,134,135, 62, 2, 56,109,137,255, 29, 22,187,129, 67,237,172, +184, 23,207,208, 10,236, 9,173,112, 71, 2,148,220, 95, 98, 25,191, 17,200, 91, +172,233, 96,206,194,197,194,113, 2,180, 27, 13,216,215, 26,125, 56,194, 25,105, + 87, 7, 96, 32, 1,187,190,248,206, 54,120, 45,136, 8, 16, 71,142, 58, 66, 88, + 8,234, 46,190,216, 42,191,169, 49, 2, 60, 90,206, 91,221,194,169, 81,154, 6, + 40,211,134,112, 1,218, 82,159,112,214,204, 79,185,152, 3,112,209,115,226,171, +139, 12,214, 1, 0,157,233,114,154,189,205, 43,132, 61,104,102,158,153,110, 67, +100,181,126, 32, 58,123,125,159,162, 96, 8, } ; -// ../Source/Template/GB_meta16_factory.c: -uint8_t GB_JITpackage_120 [623] = { - 40,181, 47,253, 96,110, 39, 45, 19, 0,102, 22, 70, 32, 32,145,117, 3, 79,107, -131,126, 89,140, 81,194,197,153, 62,122, 70, 61, 75,166,194,250,215,122, 10, 20, - 83, 1,140, 4, 32, 15, 59, 0, 61, 0, 61, 0,223,172,108,177, 74,249, 51, 69, -136,100,105,242, 54, 18,141,175,212,166,206, 85, 51, 57,233, 51,147,143,191,150, -126, 90, 43, 55,118,121,106,143, 27,203,234, 7,248,196,118,109,174, 36,165, 14, - 80,230,198, 40,169,113, 2,193, 65, 4, 66,125,205, 76, 90,239, 43,221,139, 10, - 80, 91,149,212,226, 19,183, 43,173, 57,235,249,128, 26,103, 93, 85, 8,100, 81, - 72,162,217,155,219,184, 39,199,217,202,212,201,175, 43,254, 49, 20, 94, 1, 66, -192, 87,248,160, 18,252,193,117, 35, 21,143, 98,255,100, 33,185, 56,224, 23,211, - 36, 74, 38,106,122, 80,209,202, 22,243, 75,142, 51,160,112,165,162,224,180,254, -191,227, 56,119,128,145,178,136,116, 86,105,207,128,115,209,117,105,232,175,253, -163, 73, 44, 87,204,159,219,218,102,253,193,137, 25,206, 1,172, 8,103,182,230, - 74,123,102,154, 0,181,223,114,221, 50,137,237,173, 36,214,215,185, 14,124,240, -193, 23, 57, 17, 62,248,224,195,245,177,241,213, 29, 64, 21, 97,192,123,106,174, - 42,171,210, 15,129, 84, 24,146, 24,161, 60,164, 23,125,160, 97, 46,153, 17, 10, - 82,146, 58,149,225,112, 2, 17, 17,177,177,217, 1, 36, 17, 50, 14,109, 77, 38, -197,130, 98, 39,179, 83,132,204,150, 58,185, 18, 76,100, 37,212, 78,166,128, 41, -164,163,132, 88,149, 82, 97,228, 74, 38, 67, 5, 10,203, 21, 43, 5,177, 86,152, -108, 6, 86,164, 58,168, 66,149, 80,104, 69,178,172, 82, 61, 82, 19, 42,165, 87, -110, 55,164, 50, 10,149,142, 50, 98,213, 88, 44,113, 16,219, 23, 11, 20,150, 42, - 86, 16,196,108,215,185, 75, 89, 80, 29, 92,177, 90, 80,136,133,207,118, 84, 29, - 9, 21,150,211, 27, 14, 31, 96,105, 74, 1, 67,249, 84, 84, 17,170, 95, 65, 62, - 98,129, 8, 88,172, 58, 64, 45, 18,139, 74, 58, 51, 97,169,122, 48,101,245, 16, -129,237, 60,187,137,154, 38,229,178,144,216,113,104,192,209, 48, 16, 75, 83,148, - 23,123, 79,208,166,246, 80, 82,146,163,140,148, 2, 62, 66,143,132,116,133,169, - 35,177,100,177,202, 32, 22,128,133,105, 63, 12,165,156, 82,200, 7, 87,164, 22, - 84, 14,194, 44, 29, 8, 9,179,139,202, 9,150, 4,172, 82,183, 27,229, 93,189, -147,247, 24,246,119,139, 85,200,214,181, 11,225, 47, 33, 61,251,172,145,192,141, -162,191, 95,142, 53,187,236,187, 40,189,238, 9,202,186, 17,112,208,148,142, 94, -115, 22,192,209,241, 72, 80,184, 34,110, 79,195,144, 82,233,118,119,111, 16,133, - 69, 4,196, 17, 74,101,151, 54,105,138,249,153,201,206,232, 90,160, 47,136, 42, - 69,193, 30, +// ../Source/Template/GB_add_bitmap_M_bitmap.c: +uint8_t GB_JITpackage_106 [714] = { + 40,181, 47,253, 96, 82, 17, 5, 22, 0,198, 91, 88, 32,224, 90, 55,224,207,180, + 99,154,225,243, 48,154,240, 16, 31,196, 35,115,234, 90, 59,108, 62, 52, 39,148, + 36,204, 16,105,196,132, 80, 0, 76, 0, 77, 0,251, 51, 97,144,231, 76, 29, 99, + 44, 18,139, 67, 67,145, 88,120,129, 35, 56,166,113,234, 90, 28, 65,125,245,109, + 17,196, 33,199, 54,218,169,223,120,201, 12,228, 53,121,199,237, 55, 46,183,153, +115,233,101,154, 99, 94,113,172, 26,232,132,162, 9, 36, 21,135,104,118,188,224, +198, 37,219,117,215,214,140,103,217, 60,100, 89, 88,251,234, 83,247,243, 74,243, + 37,203,205,149,228,214, 95,230,155,114,242,191,141,223,187,240, 58,182,197,176, +251, 29, 62,248,121, 4, 69,206, 49, 39, 69,215, 52,246,202, 76, 32, 22,135,255, +184, 59, 82,135,144,143, 61,188,195,239, 52,135,215,225,115,184,115, 24, 89, 62, +136,238, 83,228,235, 7,185, 14, 19, 63, 97,208,179, 40,150,124,146,188, 48, 18, + 62,196, 27,141,102, 67,151,140,173, 25,119,239,187,176, 20,212, 74,105,196, 11, +238,114, 89,141,173, 70,240, 16,232,178,109, 20, 32,113,255,106,160, 62,113,138, + 38,241, 74,196,221,125,206,214,156,136, 15, 69,223,250,126,246, 93,150,124, 95, +144, 20, 61, 95,237,115,190,220,189, 53, 61,220,133,143,215, 14,242,199,213,151, + 85,199, 52,206,255, 10,112,136,198,194, 6,252,187, 50,115,225,183,159,188,181, +211, 17, 97, 62, 84, 11,105,170,221, 52,150, 18,188,213,185,120, 64, 23,142, 13, +105, 54, 30, 6, 20, 44, 74, 95, 15, 71,188,240, 44,172, 65,199, 84, 27,173,104, +131,129, 99, 37,205,214,128,161,160,241, 37, 83, 35, 19, 68, 83,144, 20, 50,173, + 1,112,136, 12, 17,217,230, 19, 40,139, 51, 69, 74, 69,185,141,176, 84, 20,177, + 45,161, 78, 52, 44, 62, 10,155,196, 89, 92,233,174, 24,118,128,116, 23,138,217, +145, 19,231, 67,179, 57,248, 52, 61, 24,115,231, 61,100,129,168, 47, 1, 22, 70, +238,152,113, 13,200,204,156,146,198, 79, 70,244, 8,184,108,214,162, 67, 71,225, + 88,174, 96, 38, 27,231,152,251, 0,117, 50, 25,220,240, 60, 83,180, 44,117,205, +211,137,156, 74, 4, 37,100, 81, 52, 64,146,128,185, 76,220, 22, 79, 68,112,129, +200, 39,168,195, 30,150, 11,135,177, 96, 36,208, 10, 30, 58, 2,131, 35,160,243, +160, 5, 60, 87,129,199, 0,132,103, 36,127, 5,141, 90,192,111, 4,148, 93,112, + 13, 28, 52,240, 36, 65,102, 95,176, 28,235, 23, 5, 8,221, 39, 96,230,185,125, + 59,146, 84, 92,220,211, 73,196, 13,128, 29,169, 71, 24,219,107, 81,154,144,232, +226,184,209, 70, 8,186, 56,106,180, 17,131, 49, 30,233, 71, 27,126,232,146,113, +129, 90,134,145, 5,112,217, 72,193,128,194,225, 35,100,162, 72,113,227,109, 80, +140, 93, 21,166, 51, 62,103,180, 93,190, 29,240, 22, 25, 67, 51, 6,107,132,114, +153, 46,204, 25,194,215, 97, 35,240, 54,247,215,226, 68,169,159,214, 87, 25, 98, +161,148, 64, 81, 9, 48,222, 41,131,180,233, 32,219, 96, 4, 23, 32,118,159,105, +255,148,245, 70, 93, 29,194, 13, 20,126,166, 25,180,105,110, 84,102,106,159, 96, +197, 46, 25, 20,181, 35,113,113,154,102,164,232, 36, 3, } ; -// ../Source/Template/GB_meta16_methods.c: -uint8_t GB_JITpackage_121 [400] = { - 40,181, 47,253, 96,135, 3, 53, 12, 0,118,213, 67, 32, 16,147,117,230,109,189, -195, 75,154,158, 23,212, 5,150,111,250,227,110, 85, 67,243, 67, 40, 80, 51, 98, - 35, 2, 0,168,242, 27, 60, 0, 56, 0, 55, 0,146,194, 80,168, 62,136,130, 19, - 48,237, 64,198, 39,247,207,204,118, 67, 45, 39, 92, 78,242,230, 6,239, 99,209, -248,194,237,234, 76, 57, 87, 20,167,207,181, 57,194,236,218,236, 95, 96,105,103, -194, 0,115,111,176,247, 56, 69, 69, 18, 69, 5,199,246, 70,184,121, 95,168,197, -150,167,168,255,143, 34, 80, 84,152, 42,169,103,132,155,251,226, 54,205,104,174, - 45, 35, 82,227,218,145, 74, 36, 12,195,154,100,119,110,227,174, 28,231,169,161, -149,107,154, 59,225, 80, 21,170, 86, 98,207,227, 6, 71, 88, 40, 12,193,101, 63, -203,145, 35,237,221,158, 45, 96, 78,184, 90,154,105,165, 89, 75,192, 91,114,180, - 88,105,224, 93, 86,120,247,204,254,147, 41,126,207,252,106, 47,107,111, 45,159, -225,204, 1, 81, 20,122,239, 61,137,228,226,176,220,196, 18,121,149,134,149,129, - 52,174,138,179, 46,236,138, 96,159,249, 25,149,181,114, 14,248,181,247, 54,174, - 42, 67, 99, 56, 55,236, 96,104, 92, 14, 98, 97, 7,173, 1,113,234, 12,181,109, -211, 25, 67,228, 47, 32, 80, 68, 48,136, 24, 15, 40, 4,203, 1, 25, 10,139,216, -208, 17, 76, 23, 14,173,251,132,151,103,215,137, 88, 50,160,188, 5,162, 73, 64, - 79, 0,112,162, 9, 44,192, 46, 33, 88, 2,186,229, 81, 68,163, 84, 70,196, 68, -220,227,144, 9, 47, 65,230, 94, 49,185, 83,200,143, 37, 44, 49, 48,113, 47,200, -107,196,106,104,196, 5,221, 30,130, 10, 85,160, 16, 1, 38,170,113, 11,202,160, -105, 8, 51,105,199, 2,107,112,197, 35, 36, 44, 18,170, 23,210,250, 21, 45, 67, +// ../Source/Template/GB_add_bitmap_M_bitmap_27.c: +uint8_t GB_JITpackage_107 [842] = { + 40,181, 47,253, 96,201, 11, 5, 26, 0,230,229,115, 40,208,240, 56, 7,254,167, +122,237,247, 13,176, 93, 64,190, 21,166,199, 48,226, 25, 38, 84, 71,207, 23,252, + 46, 30,172,172,114,205,252, 69,174,102,192, 11,231, 11,108, 0, 98, 0,104, 0, +242,110,157,113, 36,109,183,198, 36,131, 36, 66,243,153,100, 77,170,109,219,225, +246,106, 22,210,225,115,194,191, 1, 75,197, 34, 49, 16,168, 88, 14,193,168, 63, + 43, 73,172,249, 4, 94, 67,187,220, 72,134,254, 64,144,161,210, 40,215,205,165, +109,101, 10,234, 43, 59,208, 52,103, 39,162, 84,207, 54,254,131,127,157, 99,110, +253, 85, 17,152, 73,232, 60, 16,172, 95, 12, 44,157, 72,121,116,229, 21,179,140, + 99,181, 57,133, 50, 73, 40,148,242,242,181, 84,207, 46,107, 13,179,135,108,209, +162,108,198, 93,181, 27, 71,157,232,179,231,228,202,244,116,196,157, 71, 22, 92, +233, 3,243, 76,222,223, 77,102,156,118,187,243,255,159,166,210, 52, 77,180,203, + 93,239,202,112,114,237, 46,214,213,107,187,155, 76,122,109,237,202,190,220,150, +245,221,122,212,147,142, 56,236,239,149,123,199,202, 91, 83,101, 98,145,180,134, + 49,133,191,212,150,162, 21,245,234,250,187, 32,117, 24,171,106,243,204,249, 55, + 30,100,125,187,190,190, 49,102,157,179,127,221,213,123, 43, 15,185,120,146,186, +144, 35,234, 34, 74,125,129,211,137, 33,133, 13,194,233, 49,207,252,239,109,108, + 24,245, 6, 15, 39,196, 9, 57,192, 79,196,176,124,255,178,173,233,223,173,124, + 45,253,141, 4, 5,165, 72,228, 8,199,188,242, 12, 5,177,147, 73, 27,118,137, + 80, 27, 39, 47, 86, 63, 81, 28,130, 5,211,212, 81,185,220,118, 43, 51, 47, 69, +176,103, 94, 65, 39,126, 89, 16,222,230,219, 23,100,145,204, 54, 43,114, 55, 86, + 81,226,227,177, 94, 85,158,140,217,200, 26,157,220,240, 32, 31, 29, 2,148,173, + 39,233, 0,167, 22,245,143, 71, 1,196,129, 80,168,170,139,179, 50,210,191, 12, +248,119, 33, 89, 3, 61, 12,213, 35,240,153, 91, 47, 65,174, 7, 4,156,219,206, +190,206,193,113,198, 52, 26, 24, 61, 32,142,168, 51,145,124, 4,128,156,160,145, + 37, 51,138,208,136,140, 36, 73, 10, 25,214, 64,132, 24, 67,102, 55, 7,201, 98, + 63, 80,156,107,171,178, 51,142, 24,180,114,176, 32, 86,113,113,222, 29, 0,141, + 43,116, 11,243,216, 0,204,123, 89, 32,156, 76, 76, 64, 8, 92, 72,151, 4,120, +112,227, 37, 29, 47, 68, 59,134,136,102,211, 40,198, 19,153,125, 97,241, 36,114, + 61,205, 2, 3,218,230, 65,245,226,181,179,251,104,164,201, 71,184, 13,140, 44, + 16,223, 15, 8, 7, 4, 3, 12,168,182,253, 42, 32, 79,161,243,192, 37,244,154, + 33,104,131,192,236,231, 95, 10,224,242,224,246,178,133, 14,143,106,236,126,101, +225, 12, 50, 76, 2,202, 0, 78,232, 46, 38,118,102,181, 60,143,229,154,192, 68, +193, 45, 1,215, 0, 20, 38, 96, 13,120, 6, 65,119, 1,123,154, 15,139, 46,159, + 12, 3, 34,205, 96, 56,135,199, 28, 78,220,228,231,172,203,120,146, 52, 1, 62, + 68,128,240, 87, 53,192,185, 57,161,232,240, 10,166,130, 0,210,237,143, 26,217, + 2,183, 2,194,144,255,190, 41,211,173,225,192,255,203, 94, 45,157,234,123,203, + 29, 19,199,205,210,172,166, 95,255,219, 63,103, 78,201,106,178,201,166,201,206, + 63,147,216, 37,228,152,117,249,168, 1, 54,214, 48,122,193,134,206,110,207, 74, +210,218,199, 58, 14, 64, 1,103,202, 75, 20, 22, 26, 21, 53, 43, 10, 63, 50,138, +237, 22,195,109, 20,204, 84, 23, 7, 99, 55, 10, 89,200,237,104,196,105,190, 73, +100,133,164,121,110, 73,183, 64, 49, 97,104,212,118,211,110,180,201, 12, 92,124, +211,124, 84,102, 98, 7,189, 54,255, 56,122, 14, 93,127, 17,251, 57, 68, 82, 20, +220, 1, +} ; +// ../Source/Template/GB_add_bitmap_M_bitmap_28.c: +uint8_t GB_JITpackage_108 [1138] = { + 40,181, 47,253, 96, 77, 16, 69, 35, 0,198,235,132, 40,192,208,170, 14,248,125, +236, 97,162, 9,185, 8,203, 6, 37, 52,207,181,239,170,123,108, 61, 47,174,196, + 82,165,150, 92, 4,216, 75,192, 52, 9, 2, 0,150,207,126, 0,116, 0,122, 0, +151, 36,129, 80, 30,189, 97,244,198, 87,190,174, 90,205,182,179,204,163,177,109, +172, 50, 60, 34, 46, 28, 72,214,163,175,113, 59, 28,231,205,162, 58,156,227,226, +225, 0, 69, 66,121, 24, 76, 36,148, 59,176,233, 16,215, 17,189, 28, 18,143,177, +101,175,171,158,195, 78,100,144,219,165, 31,166,210,248,163,183,211,185,138, 58, +210,215, 23, 99,139, 64, 46,190, 60,228, 56,145, 22,137, 80,243,234,215,161,164, +162,133,160, 1,176, 92,175, 28, 80, 52,243,210, 46,215,207,204, 50, 58, 37,230, +145,136,244,136, 68, 2,182,239, 97,254,238,243, 36, 40,208,160,168, 91,170, 75, +110, 77, 14,108,177, 10, 53, 89,175,102,236,187, 68,113, 7, 86, 51,205,120,106, + 78,148,245,134,225, 59,236,188, 38,156,209,254,182, 60, 59,145,118,174, 57,122, +127, 59,239,180,179,160,223, 5,168,158,213,252,108,171,124, 21, 51,111,203,173, +249,255, 75,146,134, 36, 65,112,228,232, 39,202,152,232,203,184, 69, 28, 29,253, +235, 45,215,126,102,233, 97,246,108,214,217,118,215,220,237, 60,236,159,119, 13, +174, 15,119,226,159, 75,210,106,102,175,233,229, 25,167, 4,103,115, 53,230,122, + 35,242,123,104,155, 27, 61,224,247, 18,252, 40, 71, 49, 60,175,233,156,141,135, +235,188,135, 23,241, 16, 84,233, 37,110, 24,104,238,207,169,120,235, 14, 16,172, + 83,195, 67, 66, 39, 3,145, 48,233,229, 18,231,166,147,209, 58,179, 90, 61,252, +196,233,113, 74,137,185,117,250, 60, 15, 14,170,221,116,237, 78, 95,200,104,166, + 39, 1, 99,169,110,253, 16,102, 88,108,122,195, 38,227,201,120, 28, 34,103,134, + 48,205,135, 89,146,180,177, 65, 81, 19, 73,183,203, 81,208, 97,149,242,115,199, +228, 22, 86, 79, 89,151,119,226,181, 90,170,203,207,203, 88,143,190,229, 16,168, + 71,244,203, 2,214,175, 9,117, 57, 16,194,208,148,119,122,228,132, 14, 55, 57, + 93, 78, 5, 16,174,142, 16,172, 76,242,154,119,223, 91,126,102,171,102,169,254, +234, 21, 19,150, 9,196,106, 71, 45, 70, 38, 41, 2,216, 82,148,171,110, 97,235, + 12,245,148,183,222, 88,229,176,156, 25,127, 85, 11, 9,100,108, 61, 76,114, 13, +138,222,122, 69,129, 7,168,225,169, 34, 51, 34, 34, 35, 73,146,100, 89, 3, 49, + 12, 66, 97,144, 91, 73, 61,194,136, 68,138, 50, 12, 75,128,136, 35, 68, 25, 66, + 8, 18, 24,162,132, 34, 73, 19, 73, 65,242, 84, 73, 13,213,121, 90,191,155, 8, + 32, 68,218,144, 35,162,229,163,179,100, 17, 1, 9,250, 65, 41, 4, 31,161, 81, +177,175, 38,194,127,142,107, 22, 46, 21,169,127,143,188,247, 26, 97, 28, 20,247, +223,240, 12,251, 95, 16,165, 21, 8,133,166, 61,118, 2,127,163,186,117,224, 1, +191, 53,242,233, 12, 51,224,215,123, 24,206,139,219,100,121, 29, 79, 75, 5,146, + 34,249,193,195,118, 9, 31, 67, 80, 80, 3,183, 90,117,233,231,230,221,111,131, +102,104,119, 53,236, 35,237,230,254, 45,223,102,151, 72,200,207,147, 85,109, 29, +207,166,102, 65, 48, 29,184,111,254,208,239, 42, 9, 11,245,140, 47, 35,134,185, + 18,126, 45, 94,168,169,237, 92, 66,167,134,171,193,244, 50, 27,191,133,136, 40, +107,223,100,254,148, 46,218,135,121,254,227,235,153,172,167,139,176, 2,152,145, +103, 52,231, 50,114, 26,218,132, 5, 26,152,182,160,195,153, 11, 39, 54, 90, 14, + 25, 22,110, 80,214, 39, 1, 79,147, 31, 49,155,217, 1, 55, 5,169, 84, 15,206, +144,168,205,177,143, 58,250,121,124,246, 44,195, 88, 67,165, 0,117,238, 77,144, +197, 32,138,161, 52, 33,109,192,221, 82,141, 67, 2,104, 77, 63,151,208, 25, 66, +123,250,154,189, 46,164,161, 16, 8, 71, 1, 56, 96,231, 31, 94, 30,198, 36,105, +200, 90,109, 31,224,231, 91,241, 85,253, 20,188, 35, 45, 78,121,236,138,205,241, + 47,174,228, 7, 68,171, 54, 69,152,121, 18,208,235,148, 53, 47, 84,109, 59, 87, + 34,208,212,115,154,125, 84, 16, 57,146,135,153, 1, 76,254, 0,189, 60, 29, 22, +248, 27,198,228,106, 87, 5, 91,208,250, 86, 34,193,221, 94, 54,134,192,106,150, +188,136,206, 27,172,116, 36,152, 24, 56, 2, 63,165, 19,249, 14,195, 93,158, 23, + 1, 67,160,125,174,171,211,150,218,116,220, 75, 53,136,215, 31,102,222, 27,199, +240, 87,172,226,157, 82,221,117,220, 7, 94,196,175,160,111, 19,222,159,164,231, +223, 82, 84, 50,107,235,230,205, 76, 77,135, 14,139,169,157,103, 9, 26, 48, 64, +134,118,248,242, 3,128,200,174, 73, 29,248,117,195,252,195,239, 46,224,250, 13, +163, 51,190,206, 83, 64, 3,171,246, 62, 3,242,204, 40, 0,216, 28,101,180,174, +231, 21,227,252,224, 97,162,238,220, 20,247, 71,161,243,196,215,136,206,215,217, +133,100, 62,255,168,228,202,169,135,243,111, 36, 61, 80,157,228,166,105, 85,102, + 50,151, 74, 89, 39,165,166,183,235,151,108, 63,133, 78,149, 6, 56, 1, } ; -// ../Source/Template/GB_nthreads.h: -uint8_t GB_JITpackage_122 [473] = { - 40,181, 47,253, 96, 62, 4,125, 14, 0,102,154, 78, 32, 0,149,117,214, 44,112, - 77, 54, 47, 29, 47,224, 10,164, 42,208,233, 12,229,178, 0,169,195, 6, 7, 8, -200,255,255,189, 62,132, 70, 0, 74, 0, 64, 0,175,240, 4,193,198, 47,237, 35, -153,173,103, 98, 94, 93, 52, 9, 67,126,224,125, 32, 26, 95,248,185,116,158,221, -229, 85, 59, 57,125, 79,155, 82,120,225,231,215,114,111,220,221,230,159,179, 7, -188,235,244,220,206, 29,143,144, 23,142,176,175,204, 85,195,120, 28,195,158,133, - 97, 1, 92,228,218,127,172,165,240,117,157, 92, 71,192,131,104, 46, 13,205, 97, -129, 96, 40, 92,199,202, 77,192, 19, 92,153,213,114,131, 31,237,136,219,147,155, -185,118,140, 88,141,107,111, 83, 98,101, 26,149, 43, 54,232, 54,110,203,113,150, -156,105, 57,165,218, 43, 66, 38,200,172,195, 64,144,157,218,166, 85,211, 77,103, -227,255,191,233,213,219,229,190,199,176,255,185,206,119,157,180,206,111, 51,195, -140,223,187,170,189,197,143, 21,190,234, 11,109, 40, 19,230, 27,211,198,221,241, -124, 87,251, 17,173,246,181,101,126,213,169,157,220, 2,217, 21,239, 92, 27,122, -239,113, 51,214, 6,188, 87,162,166,106, 58, 37,130,253, 90, 75,185, 83,211, 23, -215, 20, 12,255, 95,226,212, 96,122, 70,155, 68, 22,255,255, 78,122,148, 8,122, - 52,255,159,220, 58,207,241,148,249, 25,195,166,207, 80,110,176,223,160,201,177, -145,194,108,243, 49,236, 1, 59, 32, 48,132, 8,200,161, 62,161, 0,120, 93,226, -129,109,207, 70,193, 34,112,136, 52, 64,141, 6, 43,207, 61, 38,250,188, 96,206, - 97,119, 6,143, 6,190, 54,204,145, 9,194, 30,130, 51, 16, 39,208, 90, 24, 57, - 64, 29,188,233,148,190,128, 61, 14, 12, 36, 69, 49, 11, 30,157,108, 16,200,237, -136,106, 11,118,125,229,185,176, 93,123,201,168,179, 16, 94,203,217, 88, 33,237, - 63, 17,157, 54, 17,187,188, 13,109,107,195,185,252,165, 52,207, 5, 38,103, 79, -211,229, 52,222,238,119,200,224,240, 76, 87,178, 3,218,214, 30, 52, 49,207, 76, -181,101,172, 22,199, 24,114,106,117,159,162, 96, 8, +// ../Source/Template/GB_add_bitmap_M_bitmap_29.c: +uint8_t GB_JITpackage_109 [1142] = { + 40,181, 47,253, 96, 77, 16,101, 35, 0,166,235,132, 40,208,208,234, 24,248,109, +148, 89, 1,171,114, 85, 85, 75, 52,197, 54, 54, 21,205, 35,168,240, 58,116,167, + 88, 53,228, 6,197, 93,221, 34, 87, 51,224, 7,179, 4,127, 0,116, 0,123, 0, + 87, 36,129, 80, 30,148,203, 38,142,175,100, 90,183,186, 47,213, 50, 15,170, 47, +205,170,195, 99, 2,195,129,104, 52,148,169,166, 16,215,155,195,168, 16,183, 54, + 30, 14, 80, 36,148,135,193, 68, 66,249,148, 73,135,186,134, 38,230,144,120, 13, +110,127, 94,245, 28,118,162,131,197,225,153, 23, 42, 84,231,137, 59,116, 87, 80, + 39,202, 20,107,112, 17, 8,214,143,135,214,130,182,136, 5, 53,183,252, 58,180, +168, 88, 37,104, 0, 46,215, 43, 8, 20,141,196,211,219, 21,147,154, 54,165,181, +240, 72, 36,122, 68, 34, 1,135,218,165,248,112,103,252, 45, 9, 10, 56, 40,234, + 23,203, 37,175,164, 73,223,172, 66, 73,247,171, 59,203,143, 44, 62,101,117,207, +173, 37,106, 65, 26,229, 50,253,233,202, 75,210,218,164,153,219,210, 3,109,183, +212,218,249, 79, 15, 99,102, 12, 96,185, 86,247,247,173,241, 22, 75,251,184, 77, + 53,255,255, 40,226,136, 34,136,182,236,204,160,157,129,242,214, 20,100,103,232, +153,114,187,210,107,119, 30,238,239,106,116, 95,234, 81,139,189, 47,123,254,174, +209,245, 1,213, 47,112,197,177, 43,218,170,118, 47,249,109,105, 73, 10,206,230, +186, 69,181,165, 29,145,227,195, 75,109,232, 1,199,135,121,218,153,105,121, 73, +231,108, 62, 93, 37, 62,204,176, 14, 63, 21,195,196,141,131,117,234,147,195,118, +190,250,244,129, 85,122,136, 80,232,100, 36, 20, 36,134,193, 68,185,233,100, 54, +170,221,173, 30, 98,150,116, 75, 90,213,177,111,121,240, 79,245,164,111, 88,122, + 67, 70, 35, 61, 10, 11, 23,203,171, 31,194,141,155, 73,127,216,100, 60, 25, 15, + 68,228,200, 78,207, 29, 81,212,209, 65, 81,147,184,233,220, 20,251, 28,214,199, + 56,169, 56, 77, 94,101,245, 84,245,136, 43, 94,235,197,242,152,191,157,209,208, +185,221,193,233, 67, 67, 51,111,129,234,215,132,194, 28, 8, 97, 39, 35,230,116, +135, 92,148, 30, 37,195, 71, 87,110, 79, 29,172, 72,241,219,135, 79,185,125,237, +214,237,242,174,187,229, 23, 21,151, 9,204,170, 55,175,134, 22, 41, 2,250, 82, +211, 98,220, 42, 59, 42,227,171,211,172, 90, 29,229,214,185,110,157,192,214,247, +203, 36, 20,246,129, 9,168,193,173, 50, 51, 34, 34, 35, 73,146,100, 89, 3, 65, + 12,130, 48,200,173,164, 30,178,120, 88, 16,165, 24,150, 0, 17, 72,136, 81,132, + 8,140,224, 72, 73, 80,177, 50, 75,218, 6, 68, 73,165, 83,121,186,183,155, 11, + 64, 56,216, 80, 42,226,171, 71,143, 37, 45, 10,176,173,231, 39,202,178,167,209, + 76,196,155, 73,163,190,192,152,113,172,149,226, 33, 3, 89,113,130,209, 91, 26, + 13,252,167,237,185,141,210, 61,133, 66,209,158, 68,224,135, 81,125, 25, 48, 74, +198, 30,103,151, 60, 28,200,255,104,115,202,181, 18,244, 98,160,216,199,145,200, + 2, 81, 34,249,133,234,181,242,145, 20, 26, 53,121, 34,137, 46,158,140,223, 59, + 11,136,172,237,144,200,254, 4,184,206,191, 47,110, 69,192, 36, 68,243, 36,177, +182,199,179, 71,179, 18, 92, 15,252, 57,247,251, 1, 74,250, 72,189,242,185,199, + 80,113,165,184, 40, 87,162, 62, 19,221, 26,233,182,251,209,106, 44, 7,201,132, + 91, 15, 38, 68,211,247, 72, 25,134,243, 63,107,101, 51, 52, 45,114, 24, 48,214, +204,150,200,185, 93, 20,210,210,180,130, 52,125,118,212,248, 33, 85,204,204,246, +152,179,195, 88, 31, 72, 18,164,153,253, 6,108,230, 38,220, 96,184,168, 84,114, + 74,130, 0, 56,136,252,253,107,244,100,189, 34, 8,245,198, 85,197, 54, 97, 22, +149, 40,134,210,139,105, 67,220,138,106, 30, 72,136, 86,240,195, 35, 62, 67,104, + 99,158, 51,240, 4, 80,224,150, 15, 83,192, 6, 16,254, 4,151,196,216, 30,141, +165,150, 62,241, 8, 12,127, 44,254, 74, 48,121,182,209,226,138, 71, 90, 10,116, +228,197,136, 27,180,159,108,232, 9,195,240,102, 42,157, 30,128,169, 16,200,215, +214, 94,153,183, 54,191, 15, 9, 87, 38, 11, 83, 51, 99,206,221,162, 90, 9,174, + 35,122,212, 37, 94, 66, 86,231, 45,153,125,155, 8,227,239,170,219,250, 50,140, + 52, 24,253, 28,216,234,114, 24,210, 58, 82,253,244,167, 22,118,133, 91, 47, 31, + 22, 76, 9,237,187, 46, 8, 44,237,230, 52,160, 75, 72,152, 97,190,190, 34, 51, +135,156,196,191,176, 18,127,114, 48,245, 33,156, 16, 26, 23,157,198, 76, 56,126, +172,159,215, 77, 65,242,172,175,155, 69, 51, 56, 61,138,176, 76,237, 54, 75, 20, + 81, 61,180, 49,247, 95,115, 1,143,108, 72,106,250,175, 47,230,141,252, 2,196, +209,239, 18, 61, 51, 67, 96, 78,202,224, 61,142,202,160,207, 64, 61,195,133,159, +205, 81,162,133, 61, 23, 49,206, 12, 30, 26,117, 90,167,184,122, 20, 18, 79, 72, +205,118,126,214, 21, 4,136, 50,137, 74,143,156, 50,112,248,198,249, 2, 41, 68, +110,154, 87,101, 38,122, 73, 17,215, 73,254,116,164,250,157,228, 39,106, 73, 15, +235, 24, } ; -// ../Source/Template/GB_omp_kernels.h: -uint8_t GB_JITpackage_123 [599] = { - 40,181, 47,253, 96,119, 5,109, 18, 0,118, 95, 94, 32, 16,149,115,231,182,111, -244, 50,232, 92,214,162, 49,181, 58,233,130,120, 4,252,226, 98, 66,245, 36,194, - 17, 1, 0, 84,193, 13, 86, 0, 86, 0, 80, 0,149, 45,107,110,175,252,180,230, - 28,103,157, 74, 32, 12, 8,130,226, 96, 64,124,160, 9, 78,217, 22, 65,200, 43, -235, 37,121,105,215,155, 83, 19,102, 85, 28,210,131, 53,178, 96, 91,161,135,241, -237, 15,251,236,103, 44,147, 61,204, 63,179,237,119, 59,105,223,158,189,113,252, - 66, 86,150,227, 89, 25,148,121, 29,205, 28,145, 23, 10, 19,161, 80, 8,241,113, -194, 83,246, 86,234,121,159, 61,237,248, 93,236, 28,252,108,115,142, 89,254,127, -154, 30,152, 37,211, 92,149,201, 99,210,182,149, 69, 44,111, 87,249,114,156, 56, - 48, 73, 50,172,114, 93, 52, 23, 37,203, 88, 48, 27,199,185,117, 96, 50, 84, 8, - 2, 75, 13,122,214, 23,149,123,235, 59, 57, 78, 8,108, 39,107, 93, 33,120, 32, -153, 42,178, 40, 87, 6,147,253, 91,115,220,144,213,236,122,103, 51,206,241,227, -180,217,129,106, 32, 43,203, 86,240, 8,249,218,248, 95, 40,175, 54,191,237,252, -153, 80,106, 36, 46,112,133, 94, 71,181, 71, 6,105,148,171,124,103,223,246, 41, - 30, 81,201, 95,177,253, 32,167,157,235,119, 61,168,105,221,209, 11, 69, 80,254, -210,121,203, 52, 6,193, 65,192,150,187,190,163,255,178, 76, 54,157,108,115, 69, - 6, 23,220, 70,200, 85,222,140, 4,187,236,242, 39, 59, 6,177, 46,141,100,147, -121, 44, 75, 22, 39,220,166,105,235, 56, 25, 48,248,168,188, 61, 58,215,218, 95, -136,235, 1,181,178,194,112, 96,108, 28, 71, 85,190,144,123,165, 63, 84,137,230, - 95,251,117,183,149,185,174,116,112, 9, 82, 40, 32,132, 16,163, 28,154, 7, 18, -106,174,132, 84, 35, 68, 34, 18,205, 68, 52,241, 31,101,232, 1,226, 8,194, 68, -252, 53,193, 6, 4,213,236,208, 49,167,145,188, 97,179, 84, 15, 96, 30,234,136, -228, 27, 32,129,248, 4, 31,237,128, 30, 18,130,113, 16,187,182, 6, 66, 41, 3, - 65, 14, 45, 7,183, 16,128, 22, 25, 44, 50, 37,192, 18, 59, 3,218,241,110,214, - 68,114, 19, 61, 32, 10,120, 50, 29, 89,110,103,140,227,105,222, 52, 21, 21,210, -192, 8,130, 68, 19,104,217, 63, 3,162, 13,228,122,138,102,206, 33,162, 84, 8, -232,107,173,229,255,160, 27,244, 61, 10,244,123,191,177,168,233,254, 30, 84,153, -129, 47,121,118,233,164,119,111,196,214,172,241, 10,222, 71,227,109,211,220,232, - 24,237,194,213,235, 32,121,211, 80,231, 99,118, 43,212,109, 63,230,179, 80, 93, -211,246,160,233,223, 77, 2,224,210,168, 52,128,248,230,188, 70, 43,192, 13, +// ../Source/Template/GB_add_bitmap_M_sparse.c: +uint8_t GB_JITpackage_110 [1476] = { + 40,181, 47,253, 96, 1, 24,213, 45, 0, 54, 57,167, 39,192, 24,113, 14,192, 31, +182,239, 46,215, 70,243, 71,229, 27, 33,230,190, 58, 95, 0,254,168, 32,130,243, +100,196,143, 25, 8, 14,176, 44,130,128,178,168, 64,158, 0,147, 0,159, 0,152, + 1,195,248, 74,151,223,235,190, 74,182, 76,248,174,174, 54, 35,246, 19,184,231, +208,102,135,107,157, 51, 85,200, 26, 63,218,167,104,191, 19, 29, 96, 50, 5,156, + 89, 43,167, 59, 76,110,172, 43,228,203,162,128, 41,100,171, 51, 10, 62, 34, 54, + 48, 23,135, 38, 83,230, 56,173,153, 72,115,252,189,233, 46, 33,115,144, 41,104, + 64, 56,200,220, 98, 73,119,180, 67, 27,113,204,244,147,172, 70,173, 59,238, 60, + 83, 6, 39,147, 59, 41, 60, 92,123,243, 68, 24,169, 69,235, 23,220, 79,150, 39, +153,193,169,187,119,238, 56,151,105, 3, 65, 1, 60,116,238,192,116,174,164, 21, + 85,201,213,106,127,170,235,218,138, 67,113, 3,131,168,192,192, 32, 60,179, 90, +105, 27,252,227,247,118,174,188,212,226, 87, 19,217, 41, 5, 50, 4,115, 43,149, + 20, 68,183,194,203, 62,205, 69, 96, 87, 32,174,168,111,206, 86, 63, 74, 85,149, +206,198, 64, 4,175,149, 2, 67,172,208,162,152, 56, 25, 37,214,191,221, 72,248, +117,251,212,134,123, 71, 29,139,135,147,107, 93, 9,251, 21, 50,229, 41,105, 83, +231,201, 89,201,198,159,159, 60, 24, 57,191, 76,223,220, 50,226, 90,138, 52,183, + 84, 32,186,148,244, 14, 14, 9,143,103,114,123,107,155,149,194,104, 65,206,234, + 93,141, 16,179,248,255,115,126,249,244,205,223,249,140,119,255, 31, 69, 79,137, + 34,204,123, 91, 20,198,174, 77, 35,103, 29, 24,132, 77,230,188,189, 13,101,181, + 75,238, 96, 67,230,207,233,102, 43,209, 74,230,155,135,124, 58,253,139,164, 36, +200,187, 47, 49, 74, 83,237,206,196, 51,117,168,170,181,191, 24, 63,188,205,138, + 53,104,174,246,160,249, 55,167,228,140,213,226,208,179, 10,114,150, 17, 14,237, +172, 4, 31,249,230, 29,137,112,177, 64,126, 33,185,225,156,115,238,130,124, 87, + 81, 82,250,180, 81,117, 72, 80,104,238, 50, 74, 58, 85, 85,112, 40, 70,104,103, +213, 2,114, 14, 82,189, 96, 99, 15,154, 95,243, 16,144, 71, 41,151,203,195, 53, + 63,248,230, 87, 75, 22, 4,103,181,182,240,228,146,248,109, 23,103, 22,189, 69, +162,215, 6, 81,180,178,114, 48,185,238,139, 87,236,186, 86, 63, 41, 23, 70, 89, +105,148,112, 75,226,163,153, 72,107,145,222, 81,148,174,252,206,106,194,135, 75, +171, 5,221,180,200, 48, 98, 45,125,198, 79,159,156,213,230,222, 72,120, 74,174, + 0, 17,245,168,115, 45,206, 72,105,126, 14,135,118, 53, 73,155, 40,138,176,190, + 32, 3,125,139, 45,112,238, 30,175, 44, 63,171,162,206,176, 3, 44,140, 66,166, + 10, 56, 95,219,179, 96, 86,227,231, 60,151, 51, 48,112, 75, 70,134,199,196, 85, + 84,190, 49, 81, 29, 22,156,202, 99, 81, 77,210, 51, 36, 52, 56, 36, 48,170, 14, +139, 11,140, 47,172, 5, 64,116, 53, 17,216,116,123, 99,125, 69,173,243, 99,222, + 11,129, 91,168,177, 37, 67, 68, 35, 34,146, 20,164,160, 80,104, 12, 97, 12, 66, +148,148, 88,170, 59,130,136, 60,206,225, 16, 69, 12, 70, 2, 68, 8, 17, 16, 70, + 2, 9, 36,146,104, 36,148,160,180,122,138,147,156, 32, 45,204,252,102,100, 54, + 33, 49, 61, 5,102,113,188,116, 21,112,217,250,180, 52,243, 85, 38, 88, 89, 84, + 80,233, 98, 72,217, 68, 65,233,193,112,178, 8,152,116,123, 80, 50, 81,187, 71, + 24,217,106, 68, 58,103, 18,178, 15,118, 58,202, 71, 62,138, 71, 71,171,247, 73, +168,170,222,129,179,149, 44, 11,224,246,220,152,168, 41, 84, 56, 56,167,198, 68, + 88, 45,185,229,104,170,169,139, 37, 7, 49,148,107, 0, 61,156,156,189, 91, 18, +183, 20,131,103,137,185, 21,158,185,172,156,109,162, 67,120, 1, 90, 40,219,164, + 91,241,194,180, 60,141,144,109,226, 45,232,148,134, 46,215, 65,234, 35,206,113, +143,154, 93,131,127,164,254,194, 92,170, 37,173, 5,133,182,146,223, 16,102, 50, +125,218, 79, 13,125,170,228,200,122, 54,254,162,157,211,179, 63, 98,167,198, 59, +170,180,214,103, 37,247,183,160,145,169, 50,154, 16,235, 44,206, 42,231, 90,178, +218,135,168, 35,114, 1, 60, 76,176,107,199,138,188, 90,197, 94, 10,118,162,227, +227, 75, 98,163, 12,170, 95,216,227, 73,123,144,170, 39, 56,161, 66,254, 42,118, +196,234, 26,154,135,129, 73,107,247, 96,218,185, 61,195, 87,199,243, 27,215,158, +240,175, 18,171, 73, 14, 39,211,184,158,147,243,137, 42,233, 60, 65,168,103, 61, + 59,147,208, 77, 67,242, 48,127,132,178, 38, 1,122,134,102, 78,117,218,190, 56, + 12,156, 6, 6,138,138,164,244,210,215, 6, 45,241,216, 53,212,150,107,118, 36, +218, 59, 28, 11, 78, 88,201, 53, 31,226,102, 25,187, 35,217,162, 83, 92, 52, 58, + 29, 74,186,232, 24,100, 51,169, 21,116,121,144, 93,245, 44,225, 84,251,188, 76, +134, 79,118,129,169, 14, 75,170,248, 35,218, 96,230,214,113,234, 21, 3,178,158, +246,135,154,233,157,131, 24, 74,144,141,105, 94,120, 62, 22, 22,158,169, 52,117, +195,236, 1,108,198,191,125,238,202, 23,110,180, 49,222, 89,249, 94, 60, 88, 16, + 38,125, 91, 67,211, 34,237,193, 11,169,216, 85,155,180, 74,199, 90, 28,255,235, +170,111,202,238, 10, 64,161,166,177, 49, 11,121,110, 34,251,223,142, 99, 46,118, + 47,147,243, 21,130, 75,236,221, 29, 33,215, 23,156,176,114,236,160,179,243,194, + 48,147,167,196, 18, 21, 87, 74,167,144,100,228,225, 92, 96,224,243,178,238,151, +130, 73,191,227, 14, 82, 25, 43,174,122,176,235,219,177, 39,192, 50, 63, 98,173, +139,186,247,245,203,156, 77, 55,129,149,224,223,237,135,204,209, 25, 0,244,130, +202,177,147, 31, 54,183, 4,229,168, 7, 32, 66, 54,221, 65,250, 40,215, 79, 57, + 4,226,162, 44, 45,206, 24,122, 82, 25,179, 93,247,248,232, 12, 17,167, 7,254, + 76, 74, 23,175, 48,219,140,181,206, 86,180,154,204, 50,239, 46, 22,200,234,232, + 99,212, 98,192,205,160, 13, 33,241,166,117,174,142, 57, 66,161,113, 79, 6, 24, +223, 1, 30,113, 78, 32,165,131, 11,128,156,222,209,122,109,135,182, 9,148, 37, +185,131, 0,170,145,107,223, 65,129, 85,208, 15, 47,185,236,153,164,188, 83,181, +199, 83,132, 99, 79,129,138,243,229,241,193, 2,199,191, 64, 4, 81,121,176,196, +140,222,200, 16,186, 15,140,119, 84,100,254, 83,189,134,237, 83,244, 67,102,181, +125,165, 30, 41, 14,208,146,219,169,165, 49, 83,164, 95,190,105, 86, 63, 48,173, +234, 36,243, 20,111,189, 83,123,225, 58, 9,141, 74,209,107, 19, } ; -// ../Source/Template/GB_prefix.h: -uint8_t GB_JITpackage_124 [259] = { - 40,181, 47,253, 96,202, 1,205, 7, 0,178,140, 41, 23, 32,221, 1,163,204, 96, -126, 23,192,172, 0, 23,171,218,171,103,223,123,129, 4,128,197, 3, 0, 48,110, - 17,125,119,199,158,110,122,245, 43, 48,176,134,133,101,150, 61, 8, 60,246, 97, -214,178,142, 5,133,123,162, 71,119, 0, 88,159,119, 81,147,150,141, 47,162,227, - 14,128,163, 72,136, 47, 67, 80,125,220, 89,127,143,187, 69, 95,188,136,103,209, - 15, 55, 70,120, 82, 86,136,255,174,207,190,230,108, 91,146, 91,115,211,124, 92, - 43,201,145, 16, 13,114, 36, 62,132,130,107,118,191,160,228,197,227,114,217,166, -231,230, 92, 59,207,174,160,186,125,187,221, 13,112, 18,221, 39,136,250,246, 96, - 80,169,130,107,229, 78, 89,196,123,252, 85,253,160,202, 13, 3, 32, 12, 35, 32, - 32, 64, 68, 32,144, 34, 31, 8, 0,156,230, 58,102,161,248,128, 7,130,106,185, - 12, 57, 16, 25,176, 70, 48,231,147,152,195,224,130,106, 28, 80, 24,192,238, 75, -163, 70, 6,216, 69,185,100,104, 95,160, 21, 24,103,207, 99,144, 2,196, 84, 96, - 6, 77,153,119,211,104, 80, 53,251,176,192,249,209,149, 27,123,138,186, 33, +// ../Source/Template/GB_add_bitmap_M_sparse_24.c: +uint8_t GB_JITpackage_111 [833] = { + 40,181, 47,253, 96,148, 11,189, 25, 0, 6,101,113, 39,208,210, 86, 7, 42, 29, +227,242,158, 4,192,207,181,189,224,185,237,200,208, 18,114,218,199,107, 99,162, + 10, 79,192,159,100,149, 46,163,212, 3, 30,176,188,107, 0, 99, 0, 99, 0, 85, +198,233, 48,161,208,120, 40,151, 28, 93,137, 37,196,113,198, 50, 38,196, 41,117, +111, 5, 23,203,101,130, 64, 96,185, 60, 18,167, 55, 60, 71,173, 57,197,189, 3, +203, 89,104, 70,188,125,156,195,195,108,223, 6,204, 71,230, 41,250, 72,148,138, + 64,149,215,220, 51, 87,218, 14,172,114,206,219,171,183, 39,113,212, 2, 7, 64, +161, 58,198,224, 2, 37,190,109, 49,228, 64,219,161, 60, 45,120, 93, 13, 95,195, + 43, 21,105, 82,169, 4,120,146, 84,116, 73, 44,226, 71, 42,172, 38,124,181,188, + 88,134, 33, 81,253,205, 64,167,146,210,190,109,111, 67,217, 59,148,209,215, 6, +100,126,205,252, 92,231,111,246,134,137, 52, 14,192,100,112,185, 50, 44, 75,206, +255, 95,146, 62, 36,137,130,229,204,186,188,253,231,114,149, 33, 73,109, 40,139, +191,106,159,131,231, 43,201, 66,185, 76, 36, 22,219,186, 99,174,156,160,153,171, +188, 54, 19,137, 3,205,114,211, 29,124,175,161, 47,153, 69,210,122,237, 88, 61, +195,111,217,149, 30,199,243, 17,141, 54, 39,234,113, 58, 40,115, 12,107,113,171, + 58,245,248, 12, 19, 20,110,159, 57,245,183,230, 81,227,244,135,206, 38, 98, 19, + 1,225, 60,112, 3,119,126,187,170,180,111,249,118,198,246, 25, 26, 28,124, 72, + 36, 87,200,220,114,106,138, 96,218,163, 26, 49,146,169,102, 51,199,123,233,226, +145, 56,115,231,146, 20, 98,201, 89, 61,158,212, 63, 36,241,148,115,157,165,229, + 26, 52,175, 90,193, 44,195, 7, 43, 60,157,234,239, 54,237,136, 97, 99,150,246, +131,196, 12, 8, 33,168, 84, 73, 71, 23,184,173,166,123, 58, 12,159,205, 4,195, +123, 86,134, 39,116,111,246,141,195,189,105,204,214,184,142,195,187,196,157,122, +117,235, 3, 3,111,137,169,180, 14, 2,242,214,104, 28,236,124, 54, 32,121,129, +102,192,155,254, 44,251,128,157,160,161,169, 50, 37, 37, 34, 34, 41, 72, 10, 82, +104, 12, 64,132, 16, 66,119,182, 1,201, 98, 31, 44,154,183,177,130, 78, 22,241, +199, 42,100, 2, 95,178,227,182,211,192,158,157,208, 22, 51, 20,104, 27,195,181, + 63, 14, 38, 52,193,185, 76,132,194,205,164,196, 66, 64, 30, 47,119,188, 8, 53, +102, 25,124,173,217, 18,170,241,139,208,154,152,120, 33,124, 33,221, 2, 35,148, +109, 52,213,220,117,179,251,192,104, 38, 20,233,165, 16, 25,100,240, 17,216, 10, + 2, 48,176,240, 58,237,171,134, 60, 69, 78,246, 2,225, 45, 12,163, 13, 25,102, + 38,223, 74,129,174, 71, 28, 59,187, 16,192, 17,237,234, 87, 86,230,191,210, 37, +178, 10,124, 65,127,221,146, 80,204,187,199,236,129,104,115, 3, 5, 54, 0,184, +134,161,187, 50, 13,196,155, 6, 90,211,225,112,235,114, 51, 96,240, 96, 38,211, +156, 65, 33, 45, 85,208,229, 84, 30,129,212,126, 44, 80, 62, 59, 70, 86, 13,114, +238, 78, 29,218,117, 9, 64,145, 44, 1,153,147, 78, 68,217, 98,216, 67,132,196, +191, 56, 99,154, 2,165,161,252,170,123,181,252, 20,159,183,240, 80, 60,126, 70, +179, 48,141,248,207,228,105,230,244,150,147, 95,142, 44,204,244,157,128, 47, 66, + 7, 86,204,101,218, 67,227,230,136,139,123, 3,110,218, 47, 18, 9,252, 9,192, + 10,124,224, 57,133, 39,213,168,173, 22,124, 71,248, 34, 46, 24, 66, 18,210, 19, + 11,154,132, 51, 43,143,168, 51, 35,107, 69,216, 33, 12,131,146, 90,155,105,113, +145, 2, 55, 48, 26,108,196,132,235,108,154,157, 63,152,108,133, 47, 74, 10,216, + 73, 68,232,113, 93, 49,198, 73, 62, 40, 69,175, 24, } ; -// ../Source/Template/GB_printf_kernels.h: -uint8_t GB_JITpackage_125 [763] = { - 40,181, 47,253, 96,240, 7,141, 23, 0, 86,163,109, 32,224, 88, 61, 24,247,139, - 43, 50, 6,117,163, 45,196, 88,112, 37,118, 66,155, 55, 17, 32,185,174, 43,155, - 51,152, 97,152,230,225,100, 0,102, 0, 97, 0,133,215,248, 65,171, 41,124, 38, -156,140,254, 41,191,254,206,245, 14, 69,182,243,123, 53,199, 20,137, 67,162,208, - 64, 28, 18, 62, 0, 47,199,180, 61,205,137,103,154,167,194, 45,150,236,231,152, -227,117,158, 38,239,183, 29, 61,203,211, 52,145,208, 52,243,230, 37, 49, 87, 23, - 97,235, 89,172,174,177,104,183,197,182, 62,117, 71,152,233,251, 56, 63, 73,214, -141,109, 54,201,200,230, 6,131, 85, 48, 24, 2, 46,110,119,112, 54,157,137, 69, -233,130, 49, 58, 64, 0,240, 81,255,120,231,201, 81, 79,241, 69, 70,242,134, 81, -138,167,143,247, 10, 60,117, 47,118, 76,139,176,205, 91,251,158,165,193,193, 33, - 16, 55,149,192,188,245,229,131,141,233,203, 34,249,180,141,220, 62,239, 3,150, - 69,122, 26, 10,215, 81, 50,178,242,113,151,142, 83,159,226,106, 3,214, 33, 75, - 20, 62, 4,167, 73,115, 71,126, 91,237,198, 79, 47, 1,245,225, 3, 41,189,173, -211,164,230,145,242,114,149, 5,242, 65,150,101,215, 24,176, 28, 96,200,222,212, -221,224,103, 75,221,191,100,183,227, 49,251,119,193,120, 38, 18,141,161,167, 20, - 77,164,235, 68,232,235, 17,196, 99,117,109,195,239,177, 72, 93, 91, 39,129, 31, -130,158,197,156,223, 69,206, 61,219,119,212,159, 67, 61,222,138,237,209,228, 52, - 79,138,231,214,254,225,222,163, 72,183, 14,150, 85, 45,197,239,159, 75,135,225, -139,227, 38, 28,229,250, 58,237,243, 48,237,242, 56,202, 68,254, 13,229, 49,132, - 39, 56,216,224,143, 66,226, 37,185,108,218, 70,102, 36, 20,139, 68, 30, 14, 86, -199,209, 58, 75,225,233,216,110, 17, 83, 49,220, 95,242,215, 27, 65, 70, 80,155, -255, 13, 77,176,144,239,157,158, 10,137, 25,156,165, 42,238,234, 26, 77,135,171, -214,179,232,216, 95, 91,125,118,156,213, 21,128,131,168,113, 41, 82,134, 72, 70, - 38,140, 36, 73, 37, 29, 48,132, 16,165,172,230, 3,130,184,108, 24,227, 48, 1, -105,148,137, 68,100, 40,144,252, 76, 84, 88,218, 1,222,140,186, 15,206, 2,155, - 40, 27, 31,147, 50, 41,247, 43,248, 78, 5,241,183,244, 47,103, 92,243, 26,168, -189,153,224,151, 52,152, 69,183, 77, 83, 15,206, 42,116,228, 64,140,151,156,112, -147,166, 14,107, 5, 77,156,243,131,197, 81,196,248, 67, 8,236, 6,147, 8, 58, - 24, 28,116, 27,224,184, 15, 70, 95, 4,251,177,142, 40,134,250,179,200,122, 86, -202,109, 74, 56,139, 69, 74,128, 72, 16, 94,248,193, 86,142, 61,247,207, 13, 73, -215, 72,201, 83,172,173,104,162, 80,216, 38, 99,108, 98,228,112, 21, 39,142,159, - 80,232,168,206,149,152, 51, 24,195,138, 86, 49,235,228,102, 68, 4, 35, 72, 26, -136, 45, 82, 35,142, 44, 88, 49, 17, 14, 0,174,163, 33,225,194, 97,122,146,128, - 14, 12, 43, 55, 60,216,166, 93,161, 21, 76,238,220,243, 48,132,181,175,168,248, -233,109,243, 5,184,185,105, 27, 22,106,226,126,153, 66,226,131, 97, 98,162,252, - 67,115,223,148,129, 76,155,198,163,200, 2, 14,240,161, 14,248, 82,146,234, 99, -162,227, 43, 41, 63,184, 82,213, 1, 93,248, 0,164, 80, 57, 40,187,199, 61, 71, -159, 76,161, 15,154,206,127,211,178,186,194,149,193, 67,167, 76, 63,197, 94, 85, - 7,176, 3, +// ../Source/Template/GB_add_bitmap_M_sparse_25.c: +uint8_t GB_JITpackage_112 [1087] = { + 40,181, 47,253, 96, 3, 15,173, 33, 0,134,107,132, 40,224,208,232, 24,248,189, + 18,180,156,212,224,103,121,195, 37,253, 6,201, 64, 85,143,137,126,217,148,179, +245, 8,220,180,252, 77,243, 52, 97,134,148, 24, 19, 2,125, 0,116, 0,122, 0, +146, 4, 66,121, 80, 46,155, 24,190,146,105,221,234,190, 84,203, 60,168,190, 52, +171, 13, 15,137, 11, 7,162,209, 81,166,154, 62, 92,111,238,162, 62,220, 90,248, + 71, 64,145, 80, 30, 8, 19, 9,229, 84, 54,253,233, 58,154,151, 67,224, 53,184, +221,137,170,231,175, 3, 27, 34,135,103,198, 84, 58,116, 87,140,142,100, 45,198, + 22,129,127,153, 98, 13, 46,242,248, 52,183,142,253,197, 10, 94, 10, 26, 0, 11, +246,138, 1, 69, 82,157, 39,214, 82, 35,241, 20,237,250,145,154, 54,101,196, 60, + 18,145, 30,145, 72, 33, 61,247,159,118, 41,254,219,121,110,141,191,101,193, 1, + 71, 85,221, 98, 93,242,107,162,180,157,163,155, 85,170,233,118,117,103,249, 82, +197,169,172,238,185,245, 68, 45,134, 70,185, 76,159,186, 18,155,180, 54,105,230, +182, 20, 97,220,237,150, 90, 59,243,196,199,162,238, 83,116, 49, 51, 14,176,174, +213,253,125,235,115,247, 10,245, 52, 0,147, 1, 69,235,184, 77, 53,255,127, 73, +226,144, 36, 72,252,131,251, 82, 17,181, 88,212,101,215,238,188,174,215,232,122, + 44, 91,231,186,133, 6,182,190, 93, 86,205, 75, 91,213, 46, 38,187, 45,161,156, +224,108, 48,170, 45,237,136,188, 75,237,232, 2,199,151, 94,158,118,102, 90, 98, +211, 57,155, 78, 87,249,151, 1,255, 64,117, 94,224,166, 97,110,250,121, 5,127, +157, 2,189, 58, 57, 64, 44,116, 50, 17, 11,114, 94, 46, 80,110, 58,153,141,106, +119,171, 1,214, 41,252,247,129,211,161,140, 17,243,235,243, 91, 38,252,186, 5, +166,248, 7,155,190, 89,172, 95,255,123, 27, 55,155,238,176,201,120, 50,158, 7, +200,145, 1,146,212,209, 81, 85,147, 24, 39,135,237,148,128,254,106,140,159, 79, +126, 89,153,245,250,234,122,196, 20,175,213, 98,253,215, 99,238,118, 70, 71,231, +118,232, 81,160,238, 84,103, 58,154,121, 15, 92,199, 38, 21,230,188,247, 66, 50, +226,233,144, 35, 61, 11,152,208, 31, 23,167, 71,201, 0,210,149,219, 84,232, 85, +166,248,173,195,167,220,190,118,235,102,177,126,235, 22, 20,150,201,203,170,104, + 94, 13, 45, 82, 6,244,173,166,181,126,113,171, 12, 81, 25,127,157,102,213,234, + 40, 3,128,241,168,241,169, 34, 52, 34, 50, 83, 80, 80,148, 66, 99, 48,132, 24, + 99,204, 56, 15,162,128, 72,139, 66, 24, 73, 96,160, 17, 40, 99, 8, 33, 72, 96, + 2, 73,146,153,168, 37,169, 14, 36, 67, 28,122, 76,179, 10,169, 1, 86, 20, 18, +122,232,219, 22,114,250, 83, 64,231,128, 80,107, 33,218,239,223, 63,228,108,149, +186, 80, 97, 28,218,122, 92,249, 71,136, 64,164,185,188,154, 99, 97,160,120, 55, +194, 66,170,120, 23,184, 70, 76,125,224,216, 84,215, 96, 50,152, 97,132,234, 27, +207,183,210,251,155, 47, 52,177,224,109, 92, 70,178,153,158, 16, 81, 34,254, 96, +175,140, 70,168,136, 34, 64,150,212,151,204,237, 4,159, 68, 19, 60, 11,215,230, +122,134,215,196,137, 20, 3,145, 27, 69,220,223, 17, 94, 37, 63, 77,204, 87, 90, +129, 93,252, 3,241,104, 0, 55,147, 87, 96, 99,185, 16,122,249, 14, 79,202, 74, +213,137, 17, 60, 20,255,245, 90, 84, 6,166,136, 13,234, 64, 59, 51,113,174, 34, + 95,112,238, 40,163,192,145, 24,224,182, 6,213, 44,133, 28, 54,150,114,224, 62, +112, 59,153,109,130,106, 37, 88, 52,236, 18,210, 64,133,196, 25,135,113,164,212, +108,255,197, 44,164,185,160, 46,209,149,148,125,123,214,159, 88,130,122, 66, 20, +129,235, 69,213, 5,130, 64,141,253, 69, 92, 79, 91,249,129,234, 68,185,144, 1, +127, 89, 36,126, 89,128,252, 15, 44,209,137,114, 10,153,171, 52, 16,208, 73,246, +219,181, 76,159, 45, 7,196, 70,234,229, 23, 93, 98, 44, 34, 92,235,117, 57,154, +149,102,226, 6,150, 99, 43, 86,130,145,169,159, 48,107, 46,123,222, 72,224, 62, +115, 67, 94, 13,189,157,201,169,193,241, 97, 44,174,180,178,218, 76,234,217, 26, + 97,207,221,183,141,149,216,199,205, 57,152,109,203, 71, 55,100, 8,131, 12,230, +227,155,176,154,200,186,189,128, 36, 98, 88, 83,204,124,115,231,119,184, 18, 58, + 28,197,239, 50, 44,175,253, 74,252,169,136,121,142, 69,129,102,112,188,244,107, +114,255, 44,248, 73,122, 42, 76,102, 60,203,142,231,239,164, 97, 66, 4, 22, 23, + 25, 50,124,183, 2, 47,184, 1,104,216,178, 4, 62, 94,217, 28,166, 70,125,234, +197, 87,225,164,200, 84, 0,255,134, 7,116,207, 72, 85, 70, 2,230,220,130, 97, +204,247, 84,196, 77, 94,169,196,239,212, 94,104,174, 77, 99,122,168,119,163, 40, +153, 32, 32, 55,205,245, 7, 19, 84,217,227,146, 59,192, 73,245,253, 18,127,156, +157,164,187,170,225,155, 7, } ; -// ../Source/Template/GB_reduce_panel.c: -uint8_t GB_JITpackage_126 [1902] = { - 40,181, 47,253, 96,106, 38, 37, 59, 0, 54,122,171, 40,208,178, 58, 7,208, 43, -129, 98,255, 92,204,225,231,186, 85,189, 48,115,159,144,162, 23, 77,102,237, 58, - 80, 45,141, 77, 45,125,205, 23, 94,112,212, 14,170, 4,157, 0,158, 0,168, 0, - 83, 61,123,222,245,235, 94,253,148, 74,249,115, 13,122,188,210,217, 75,217,155, - 18, 82, 29,225,231, 57,157,219,181,201, 53,119,215,184,174,135,250,190, 67,194, -250,125, 19, 85, 40, 6, 20,115,217,122,213, 25, 40,195, 13,182,100,205,162,184, - 74,206, 32,134,202,176,104, 40, 26,127, 80,174,188,121,109,174, 3,110, 30, 99, -245,233,192,160, 98, 64, 45, 20, 84, 12, 46,101,146, 79, 21,126,172,229,148,234, - 32,174,103, 7,175, 79,156, 10, 19,193,121, 75, 39, 24,184,210,245, 56,220,240, -227, 68,116,227,102,245,251,217, 15,129,180,183,251,254,147, 84, 73, 30, 66,103, -136, 44,215,195, 56,251, 52,166, 88,196,196, 9, 8, 34,138,128, 32, 43, 57, 7, - 83, 93,100, 36, 0,201,175,205,133,195,169, 26, 30, 2, 65, 85,151, 36,127,120, - 72, 6,105, 87,166, 3,175,186,202,153, 85,239,255,143, 34,145, 40,218,160, 38, - 89, 32, 82, 40, 56, 75, 40, 16, 97, 46,153, 74, 35, 55, 14,193,250,142,223,110, -172, 5,112, 20,249, 5,156,181, 47,102, 18, 10, 92, 52, 26, 23,182,241,110,107, -131,196,125, 5, 45,165,123,140,107,154, 51,119,105,220,116,122,222, 87, 65, 94, -214, 45,252,200, 32,101,201, 29,175, 40,179, 66,109,185,171,132,223,185, 55,122, - 29, 55,134,205,158, 42,172,213, 55,139,161,167,155,161,131,228,158, 63,150,147, -188,237, 26,122,166,148,155, 53,148, 60,198,111, 3,113, 15,252, 33,231, 27,134, -240, 65,145, 46,127, 50,230, 50, 7,138,226, 56, 57,144, 95,174,202,162,177,192, - 44,157,207,196,155,120,222,227,194,166,117, 33, 38, 14, 13,222,236,199,216,242, -155,217, 71, 62,159,206,231,147,137, 67,195,255,145, 72,146, 91, 88,195, 59, 28, - 93, 41,220,184,134, 32,125,109,103,188, 84,160, 45, 83,174,165,164, 98, 1,174, -113,183, 79,159,166,234,186, 76,116, 10, 40, 14, 9, 20,161,198, 93, 55,129,104, - 75,254,108, 95,131, 83,206,238, 22,171, 34, 83, 65,129,105,100,170,199,149,176, -163,220, 33, 78,166, 66, 2,195, 84, 25,139, 98,115,185,176,203,166,194, 72, 92, - 44,149, 63, 60, 72, 77, 69,113, 89, 17, 24,199,146, 42,135,144,111, 12, 65,161, - 37, 12,201, 81, 52,130,225,125,239,190,186,205,215,142, 95,101,250,209,190, 92, -214, 6, 35, 70,238,238,254,255,201,169, 42, 39,108,128, 7, 75,117,217, 96, 18, - 22, 69,197,213,105, 25,157,114, 47,153, 61, 7, 45,119,254,226,126,220,131,159, -218,157,158,166,107,243,169,195,113, 12, 77,178,199,208,244,162, 19,132, 53,121, - 7, 41,131,189, 93, 37, 28,185,172, 94,194,186, 79,122,221,252,118, 29, 75, 61, - 13, 54, 93,239, 18,158, 51, 24,235, 37,200,124,109,248,122, 46, 91,142,115,122, -166,230, 10,185,238,216,184, 97, 28,191,103,186, 92,125,253,212,237, 41, 20, 42, -232, 84,164,145,207, 50,245,100, 42,172,203,178, 84,133, 4,131,131,104,129,252, -168, 33, 34,162, 25, 17,145,146,164, 32,201,176, 6, 49, 8, 1, 67, 97, 16, 66, -234,206, 7,194,136, 44, 13,225, 12,132, 49,134, 24, 73, 4,132, 8, 20, 33, 2, - 37,144, 24, 19, 74, 32, 52, 82,118,152, 24,246,107,223, 82, 10,247,126, 35, 47, -131,254, 55,247,126,103, 13,123, 65,131, 32,115,112,223,240,194,205,209, 38,220, -171,159, 54,146,198,253, 68,245,224,253,179, 95,248,115, 35,151,128, 80,170,117, -197, 4, 74, 57, 46,175, 62, 68,197,171,158,247,229,175, 37, 0, 2,131, 91,188, -195, 79,136,110,123,219, 3,128,217,170, 5, 6, 17, 30,184,171, 92, 12,225, 70, -197, 43, 29,179,246, 74,210, 20,174,123,146, 41, 18, 7,113,164, 97, 56,208,164, -108,117, 73, 13, 51,145, 12,101,126, 62,153, 65, 15, 50,153, 57,126,190,246,163, -193,123,241,203, 22, 62, 65,130, 23,120,122, 30, 11, 92,166,147, 52, 86,104, 1, -117, 2,155, 85,214, 49,105, 44, 36, 20,138, 82,160,196, 40,223, 15,161,236, 45, - 70, 12,157,120, 95, 54,217,229, 59,116,196,136,166,198, 21,160,167,145,143,218, - 68, 73, 4,209,132,188,234,150,224, 29, 86,249, 57,100, 98,229, 44,250,136,250, - 9, 0,231,221,122,184,106, 52, 11, 62,201,138,118, 80, 52,156, 93, 57,182,183, -218,146, 3, 91,209, 68,224, 24,184,204,122,112, 3,216, 75,211,153, 29, 68, 13, -199, 23,190, 74,222,203, 77,141, 32,237,203, 15,131,100,127,145,136, 0,157,114, -242,222,134, 89,248,176, 5,166,109,233, 86,232,160,180, 68,128, 44,148,227, 42, -130,150,200, 5,229, 53,137, 4,210,179,177, 49,117, 26, 49, 33, 2, 66,173, 96, -225, 35, 28,231, 81, 75,243, 41, 3,248,243,160,158, 94,198,137,155,125,162, 34, -170, 48,216,198, 94, 7,125, 93, 34, 33,124,119,192,157,243,159, 58,229, 2, 94, - 92,164,255,214,224, 46,227,231,254,124, 2, 44,204,136,255,166,146, 71,138, 48, - 93,240,123, 54, 70,152,157, 76, 56, 80,197,191,114,236, 21, 16,214,231, 45,247, -249,187,211,228, 81, 77, 80,217, 25, 45,195, 71, 53,111,208, 60,246,198, 93,232, -251, 34,162, 92,235,129,239,144, 72, 18, 34,158,148, 44, 91,180, 52,165, 88,247, -234,127, 7,241,212,238,180,145,225,155,253, 48,231,157,194,214,178, 56,194,157, -197,119, 0, 81, 16, 65, 15,241,101,148,182, 22,192, 61, 33,202, 4,191, 33, 28, -172,133,146, 96, 27,142, 75,202,219,111, 45,184,178,102,104, 42, 41,194,216, 66, -153, 8,118,243,180,177,158,186, 82,152, 21, 10,207, 60, 31, 76,114,108,198, 17, - 98, 74,192,163, 84, 43,140, 26, 90,150,190,128, 62, 59,181,237,240,152, 49,162, - 37,194,105, 25, 84, 71, 54, 97, 72, 62, 13,210,235, 96, 62,153,130,138, 34,190, -179,246,112,219, 71,183, 73, 5, 6, 31,167,122, 9, 75, 29,225,112, 92, 49,181, - 6, 95,140,194,124,180, 16, 55,202,143,232, 60,243, 75,239,252, 98, 10,180, 86, - 48,178,134,189, 87,103,213, 29,133, 97, 29,149, 3, 47, 1,218,238,121,152,147, -218,235, 78,163, 63,127,251, 82, 2,117, 54,233, 8, 16, 46,191, 20,196,161,132, -230, 47, 5, 9, 25, 86,136,227,186,229, 66,241,123,111,215,134, 55,118,176, 1, -189,248,228,239,177, 88, 32,216,165,118,184,105, 21,132,187, 0, 10, 13,231,124, -147, 62,182,128,183,241, 2, 66,144,150,219,183,148, 82,235,195,118,123,204,170, -206,214,245, 4, 82,165,168,202,213,241,145,132,152, 45, 8,226,223,163,126, 14, - 49,254,191,194, 72,158,182,243, 64,140,199,144,154, 7, 29,158,131,112,118, 67, - 19, 46,204,227, 28,122, 43, 61, 15,194, 23,153, 14,234, 95,164, 16,216, 85,152, -153,249, 91, 17,182, 15, 13,210,141,127, 67,237,111, 36,202,221, 73,236, 51,153, -237,252, 63, 97, 21, 9, 63,196,253, 66, 84, 39,141, 58, 95,229,181,145,232, 44, -106,135, 54,140, 68,211,237,242,161, 37,120,203,120,216, 66,108, 48,140, 98, 7, -173,153,122, 89, 41, 88,162,189, 69,104, 74,254,147,115,100,223, 82,243,254,244, - 17,136,182,119,229, 88,136,118,209, 86,146,174, 0,132,138,105,109,190, 98, 73, - 56,175,151, 4, 26,186,106,204,190, 50,255, 40,148, 76,108, 72,248,200, 17,178, -130,247, 11,139, 32,137,133,172,183, 69,179,174, 4, 39, 5,126,222,189,144,102, - 64,155,163,172,209,154, 50,210, 67,186,183, 20,231,119,215,214,176, 23,136,206, - 19,109,128,162, 11, 75,184,101, 53,116,248,221,177, 61, 40, 66, 93,232,187,245, -224,228,154, 75,136,125, 69,194,166,208,244,252,116,160,243, 19,248,197, 19, 18, -127, 98,137,245, 52, 96,242,122,203,217, 58,167,202,164,177,198, 23,242, 72, 62, -208, 83,106,238,107,176,200,141,226,136, 99,195,100,119, 27,183,201,213, 46,217, - 85, 75, 45, 51,102, 1,253,190, 6, 20,135,123,238,153,188,213,189,118,253,100, -180,212,100, 37, 16, 63,228,103, 33,131,106, 8,243, 74,190,158,218,158,128, 23, -172,211,147, 17,231,253,115, 31,161,148, 81,222, 57, 13, 41, 89,105,153, 29, 58, - 32,232, 44,249,105,184,147,104,132, 2, 96,128,239,249, 65,117, 61,207,181, 54, -253, 20,152,159, 21, 69,144,167,176,176, 19, 95, 4,119,159, 35,222,125,200,252, - 0,173,166, 58,153,102,226, 98, 5, 61,180, 77, 29, 41,140, 49,154, 80, 20,129, -115,192,169,217,149,158, 51,206,254, 1,225, 16,231, 70, 82, 9,254,237,164,239, -243,180, 55, 77,135,202, 76, 92,137, 97,194, 35, 94,168, 3,208, 17,139, 20, 13, -228, 1, +// ../Source/Template/GB_add_bitmap_M_sparse_26.c: +uint8_t GB_JITpackage_113 [1091] = { + 40,181, 47,253, 96, 1, 15,205, 33, 0,214,107,132, 40,208,208,234, 24,248,109, +212, 86, 66, 6,180,235,114, 46,248, 40,197,153, 82,130,133, 88, 83,191, 26, 67, +167,152,217, 89,234,175,104,145,171, 25,240,131, 89, 2,127, 0,118, 0,120, 0, +199,162,200, 99,226,168, 28,157, 57,158,242, 85,187,217,141,171,134,113, 84,141, + 43,181, 12,142, 8,203,230,161,213,208, 87,117,117,184,222,156,133,117,248,189, +241,144, 96, 18,153, 56, 14, 36,145,201, 39, 42, 29,106, 27,154,150, 63,226, 49, +184,237,125,108,231,144, 19, 25, 46, 46,207,239, 66,225,212,109, 65,156,232, 94, +208, 6,185, 14,191,154, 49, 56,200, 35,204,188, 58,118,120, 81,209, 74,200, 0, + 84,176, 83, 12, 38,178,234,111,102, 45, 51, 50,207,207,182,153,212,180, 41,175, +203, 33,144,200, 1,129, 4,210, 27, 52,152, 14,166,227, 16, 55,178,211,115, 31, +106,184,230,195,253,205,173,243,183, 44, 48,208,160,168, 87,170, 71,110, 73,147, +190, 51,132, 41,133,146,176,103, 55,253, 30, 81,124,162,118,207,173,165,122, 65, + 90,229,168,254,132, 37, 38,105,109,214,143,219,242, 3,194,219,111,189,119,126, + 51, 63,127,188,207,143,197,252,114, 64,117,205,238,111,108,255,121,215, 60,110, +215,204,255, 63,138, 52,162,232, 17, 15,175,141,235,167,222,252,241,232, 53, 60, +175,237, 51,218, 6, 87, 71,185,245,103,183,110, 96,107,236, 81, 42,123,180, 89, + 13, 99,210,219,242,146, 18, 27, 13,246,171,234, 91, 55, 32,207,135,184,222,208, + 5,158, 15,191,121, 39,213, 18,147,190,209,120,218,202,124,120,113, 29,122,108, +102,137, 26,134,235,212, 39,151,239,188,245,201, 3,173,212,240,160,192,193, 64, + 40,200,204, 98,137, 82,195,193,108, 85,195,155, 13,168, 62,229,195,236,146,126, +201,235,186,220,122,246, 45, 17,110,189, 34, 79, 60,195,164,111,149,231, 87,183, +126, 8, 51, 48, 13, 81,180, 65, 81,146, 24,119,157,187,102, 49,226, 57,180,143, +113, 82, 81,114,171,162,213,237,169,152, 39,110,227,173,219, 74,245, 91,143,159, +183,105, 13,157,219, 29,156, 60, 53, 52,191, 93,125,192, 58, 38,161,242, 6, 66, +216,201, 40, 99,222,200,142,194,165, 59,228,162,244, 40, 23, 60,218,114,123,234, + 32, 69,138,223,188,252,202,237,107,216,110,149,119,221,171, 87, 76, 84, 36,144, +218,207,196, 24, 90,156, 12,104, 44,227,169,121, 45,176,149, 93,149,241,214, 43, +181, 1,128,243,168,225,169, 50, 52, 34, 34,163,160, 32, 37, 41, 52, 6, 48,132, + 16,195,152,209, 60,146,112,104,146,164, 24, 22, 33, 8, 9, 36, 49, 2, 66,148, +224, 4, 51,129,132, 21,197,168, 58, 19, 67, 28,228,230,224,242, 20, 18, 2,206, + 19,242,224, 10,205, 66, 44,254,216,130,229,128, 48,195, 66,202,167, 1, 14, 17, + 9,157, 38,165, 20,143, 13,227,114,212,164, 65, 68,195, 69,171,143,194,224,227, +109,204,194,174,241,170,224,235, 17, 37,238,221,124, 37, 86, 92,216,183,246, 24, + 55,119,207, 10, 19, 4,151, 97,224,228, 12,141,192,203,250,178,253,155, 45, 80, + 68,143, 36, 31,190, 52, 27, 33, 7,204,138, 12,127,141,197,222, 78,255, 36, 97, + 89, 59,241, 12,162,137, 19, 74, 6,180,108, 54,112,255,179,188,136,119, 58, 6, +144, 43,170, 11,244,196,169,163, 16, 3, 13,165,247,122,227, 38, 72,255,190, 58, + 77, 46, 93,245,128, 26, 30, 53,191,164,166, 63,219,175,136,135,117,168,159,221, +151,243,243, 53,228,148,105, 58,170,221, 48, 1,108,254, 30,161,165,202, 89,112, +191, 1, 33, 65, 61,223,140, 10,213,129, 88, 66, 96,209,114, 23,189, 68,129, 96, +137,112, 38,193, 83,178, 16,196, 13,165, 32,168, 87,239,168,178,242,136, 65, 40, + 37,140, 90,112, 43,169,183,131,158, 80,109, 95,152,240, 19,237,136,185, 60, 81, + 32,228,207, 88, 22,206,183, 22, 88,238, 47, 23,111,138, 98,125, 48,254, 28, 40, +159,240, 91, 23,159,206,187,117,128, 74, 52,164, 44, 81, 8,198,224,134, 61,128, +190,237, 51,131, 76,114, 96, 57, 27,227,228,209,214, 67,253, 17, 73, 44, 19,184, +215, 72,204, 16,164, 28,247,193, 32, 71, 18, 53, 39,174, 99,153,184,127,221,143, +214, 34,206,155,120,123, 46, 86, 75,179,150, 63,193,128,110,202, 48, 10, 25,192, + 71,157,136,153,126,222, 65,128,154,152,108,138,171,213,220,250, 59,113,209, 92, + 89, 97,225, 12,237,181,100,213,231,116,214,164, 56,112,139,143,134,214, 77,253, +239,157,158,110,167,184,100,182,140,178,149,233,152, 2, 5, 33, 0,235,148,240, + 25,126, 55, 89, 94,210, 0, 21,236,177, 36, 71, 94, 97,172,106, 65,241,212,244, + 73,129,153,134,164,146,249, 76, 67,236,148, 85, 19, 41,193,168, 76,138,195,224, + 54,148, 46,142,179, 5, 59,106,193, 37,239, 56, 28,151, 26,152,238,108, 90,237, + 3, 5,109,140,130, 41, 78,114,211, 92,127, 48,133,202, 6, 47,189, 6, 78,242, +239, 63,228,143,176,147, 52, 84, 74,187,121, } ; -// ../Source/Template/GB_reduce_to_scalar_template.c: -uint8_t GB_JITpackage_127 [1289] = { - 40,181, 47,253, 96,186, 16,253, 39, 0, 86, 53,161, 40,192, 22,117, 14, 80, 61, -209, 98,243,219,127, 12, 93,218,216, 39,157, 48,152, 95, 92,129, 70,210,195, 9, - 49, 3,184,124, 96, 14, 33,219,166, 40, 16, 92, 55, 3,148, 0,150, 0,153, 0, - 21,115,109,237,104,217,171,215,164,101,202, 36,223,104, 60, 9,149,125,163,198, -158,167,207,181, 52,249,116, 65, 8, 6, 10, 21,230,180,232,193, 67, 88,150, 28, -217,148, 55,171,194,151,178, 38, 47, 21, 15,138,195, 96,227, 18,203,151,175,223, -230, 72,228,245, 57,225,167, 5, 5, 4,133,138, 67, 2,130,194, 37, 45,250,116, -101, 73,164,110, 0,239,225,186,118, 18,251,164,129, 23, 10,206,139,246, 2,130, -175,141,158,134, 91,126, 26,232,241,181,127, 34,109,199,238,241,159, 36, 24, 89, - 62,135,224,142,211,235,184, 51, 27,103,212,110, 86, 59, 99,237,219,216,102, 20, - 23, 63, 56,128, 42, 7, 7, 1, 82,116, 34,101,103, 12, 13, 17, 31,153,168,192, - 91, 62, 2,223,154,180,125,217, 18,252,239,236,161,169,124, 95, 90, 53,248,254, -127, 8, 66,145, 62, 83,103,218, 68, 31, 28,153,138,207, 45, 23,233,112,228, 70, - 89, 0,146, 94, 97,144,226,232,144,228,180,153, 62, 17, 83, 41, 0, 93,240, 2, - 43, 52, 89, 6,203, 62,224,117,193,140,162, 32,135, 55,202,169,244,147,136, 12, -249,230,150,130,127, 2, 56,250, 5,156,183,111,106, 84, 10, 64,144, 65,197,241, -129,101, 32,211, 38, 43,173, 29,167,126,206, 93,188,253, 27,185, 95, 79, 52,153, -241,155,232,221,142,173, 38,103, 14,251,239,247, 43, 63,153, 70,239, 1, 24,152, - 65,172,186,144, 34,239,211, 8,197, 5, 64,196,249,163,178, 37, 73,196, 11,185, -180, 6, 6,188,216,181, 28,169,212,214, 63,254,202,123,108, 83,150,247,100,231, - 40, 82, 65,129, 68,196, 17,110,185, 23,221, 86,206,121,146, 80,121, 47, 37,220, - 98,249,221, 34, 91,174,105,116,142,132, 51, 82,217, 89,238,143, 6,115,129, 24, -107,227,170,176,172,170,168, 40,169, 94, 0, 58,107, 29,225, 59, 89, 83, 89, 20, - 27, 25,144, 76, 3, 49, 46,203,145,174,126,178, 27,185, 12, 94, 42,204, 85,105, -100,152,149,129,240,137, 99, 87,165,209, 64, 9, 70,223, 38,115,217,135,210, 63, -226,210,135,198,232,212,165,194,192,156, 4, 16,148,242,251,113,230,119,217,122, -223,187, 47,101, 19,189, 55,150,139,108,178, 67,110,145,210,137,108, 43,204,186, - 54,181,111,235,156,220, 84,183,237,142,202, 42,172,141, 12,182,209,111,234, 62, - 48, 21,101,121, 90, 94,154,166, 41, 58, 38, 99, 97, 22,118, 65, 14,202,222,167, -182,177,239,237,220,216,244, 18, 82,194,164,201, 46, 82,207, 22,241,228,180,123, - 41,235, 62,234,117,245,177, 35,137,214,219,100,255,206,200,185,229,217,228, 57, -163,141, 30,107,114,222, 83,147,250,219,242,151,211, 34, 67, 80,138, 6,172, 46, - 10, 11,171,229, 9,223, 51,109,228,142, 70, 89, 25, 76,102,131, 10,129, 16,168, -209, 41, 66, 52, 50, 34,146, 36, 5, 41, 53, 6, 49, 8,194, 80, 36,234, 36,215, - 3, 50,145, 52,206, 66, 32,130, 16, 54,130, 33,193,132, 40,144,145, 32, 74,202, - 41,214, 3,185,215,129,143, 15, 87,114, 87, 96, 31,148,164,181,234,131,181,214, -249,124,178,117,143,102,107,122, 85, 87,123,220,110,138,169,162, 83,139,106, 52, - 90, 97,211,162,178,254,224,210, 75, 51, 99, 85, 28, 20,157, 43, 90, 65,202,159, -129,148, 46,167,234,164, 60,196,202, 69, 84,107, 14,104,196, 24,178,106, 40,157, - 12,118, 20,245, 38,142,162,175,114, 87, 95,128,242,251, 11,188, 55, 7, 64, 26, -194,248, 67,113,104,119,105, 5, 17,255,153,238, 19, 65,211, 92,144,102,230,131, -168,235, 43, 17,149,147, 34,244, 71,189,156,202,139,202,233,161,127,197,197, 48, - 37,165,187,183, 21, 36, 71, 22,114, 67, 36,169, 33,194, 12,137,196,240, 71, 58, -135,217, 30,181,245,101, 68,157,162, 13,249, 42,255,124,248,171,210,162, 82, 59, - 11,143,197,187,248, 24,166, 97, 49, 87, 41,198, 89,198, 99, 49,244,188,131,138, -119,110,219,149,236, 95,168, 10, 70,232,174, 96,244, 88,144,131,147,138,169, 53, - 21, 6,209,135, 51, 75,193,253,238,183, 62,233, 41, 32, 24,123, 9, 61,136,136, - 30, 82, 13, 42, 59,242,135,100, 62,201, 20,215, 61,233, 18,241,207,146,183,156, -197, 5,192,239,121,151, 51, 28,239, 24,145,129, 17,127,105,229, 56,166,104,122, - 84, 56, 0,168,220, 14,116, 57, 85,212, 17, 8,146, 26,144,125,117,121, 58,184, -201,201,231, 45, 45,120, 20,120, 31,162,166,179,233,102,209,122, 65,162,113,208, - 86, 21,199,166,253,111,134,241,118,139,127, 81,197, 93,229, 81, 78,151,121,234, - 20, 70,238,140,200, 56,123,139,114,167, 93, 21, 51,254, 38, 88, 88,117, 67, 28, - 6,226,225,209,125,230, 92, 73,201,182, 94, 76,169, 57,127,244,203,221, 89, 94, - 39, 48,230, 27,150,203, 74,226,219,173,216,205,165, 96,229,173, 1, 29,243, 40, -229,200,137, 34,181, 67,216,206,216, 24, 80,126, 9,111,166,249, 19, 78, 26,144, -157, 79, 44,230,174,201, 31, 65, 26, 33, 15, 17, 57,159,219,186,180,223, 32,223, -248,113,189,132,184, 99, 15,193,140,217,222,249, 6, 83,165,199,131,144, 48,191, -246,226,172, 74,185,244,184,171, 93,129,227,221,164,211, 34, 7,163,113, 38,182, -192, 34,186,192, 5,157, 78,146,217,174,122,231, 67,120,156,153,242,200,180,176, -176,205,142, 8, 1,141, 82,192,249, 10, 17, 5,194, 6, 36,127, 15, 24, 24,128, -153,250,112,173, 38, 80,183,160, 59,223, 83, 69,105, 63, 92, 93, 54, 77,196,109, -153,205, 60,137, 65,116,207,251, 72, 12,173, 35, 76, 65, 20,233,126, 42, 5,168, - 86,155, 80, 4, 33, 31,177,193, 77, 51,255,153,201,252,185,150,123, 58,198, 62, -246,166,116, 2, 23,190,238, 86, 39, +// ../Source/Template/GB_add_bitmap_noM.c: +uint8_t GB_JITpackage_114 [467] = { + 40,181, 47,253, 96, 49, 6, 77, 14, 0,166, 19, 64, 33, 0,211,230, 87, 31,107, + 24,153,192, 65,209, 9,245,246, 51,119, 85,154,112,205, 72,127, 59,133,131,133, +157,244,255,219,127, 40, 1, 55, 0, 55, 0, 51, 0,139, 87,243, 28,111,204, 96, + 48,229,211, 54, 33,212, 11,173,216, 64,116, 22,109,184,245,136, 53,155,164, 23, + 51,159,159,142,125,162,131,169,192,142,136,100,192, 26, 90,204,136, 45,245, 94, + 91,105,227,150, 37, 41,203, 10,248,152, 36, 84, 23,213, 30,103,195,121,132,216, +184,195, 35,216, 55,163, 58,131,205, 97, 8, 85, 89, 76,170,219, 27,177,115,107, +207,163,119,193,218,191,111,126, 50, 92,132,139, 58, 20, 8,215, 37, 46,250,148, +241,198, 6,125, 59, 44,160,128,196, 37,122,143,167,102, 92,103,116,138,198,216, +182,153,171,211, 15, 62,175, 56,118,203,250,127, 41, 59, 82, 86,223,167,233,222, +162, 5, 63, 47,182, 55,226,150,252,149,100,137,158, 3, 82,126,126, 8,234,176, +236,240, 5, 13,157, 47,177, 67,142,103, 77, 95,127, 2, 92, 85,184,106,224,125, + 53, 31, 7, 94,208,126, 74, 20,130, 62,153, 17, 74, 70,235,150,213, 25,189, 3, + 97, 72, 52,198,163, 82, 50, 71, 23, 85,160,193,177, 52, 51, 19, 22,148, 36,149, +114, 53, 64,134,136,177,185, 30,201, 36,139,102, 29,149, 94,217, 63,102,178,136, +171, 57,163,104, 81,142, 75, 0, 21, 22,142, 46,145,228, 24,150, 16,122, 12,156, + 65,131, 40, 58,104,134, 54,135, 0, 26,191,212,146, 65, 68,153,104,147,182, 89, +176,139, 58,232,204,219,112,215,168,130,103,151,217,105, 24,212,243, 32,105,168, +196,112, 61, 50, 92, 62,201,124,185,180,141,101, 2,144, 89,121,212, 64,142,160, +167, 10,220, 23,230,118,198, 71, 24, 46, 2,104, 56, 90,220, 59, 75,158,244, 67, + 56, 86,208,202,232, 53,171,129,159, 97,147,117,154,218, 21, 1,135,123,176,142, + 0, 60,143,221, 94, 14, 53,142,179, 6, 0, 89,163,210, 66,178, 5, 54, 2,216, + 29,232,163,129,219, 92,202,246,166,169,243, 51,147,187,130,149,158, 40, 74,162, +147,192,198,148,162, 64, 15, } ; -// ../Source/Template/GB_rowscale_template.c: -uint8_t GB_JITpackage_128 [887] = { - 40,181, 47,253, 96,233, 8,109, 27, 0,230, 43,132, 40,192,208,108, 14,248,118, -213,110, 18,204, 73,136,175,208,121, 36,118,103,197, 29, 83, 31, 91, 39, 14,132, - 31,165, 75,149,212, 27,224,224,186,138, 66,117, 21,128,122, 0,115, 0,121, 0, -161, 55,199,234, 9,183, 41, 72,115,237, 47,155, 26,215,246,104,101,146,184, 48, -143,175, 59,183,113,107,199, 57,212, 80,237,162, 88, 93, 42,144, 68, 36, 19, 2, - 65, 68,114,135, 23, 93,194,180, 51,175, 63,170, 99,132,217,110, 40,119,105,171, - 42, 50, 28,231,165, 36, 52,190,115,220, 58, 83,206, 6,125,232,205,115,115,113, - 86,171,153,244,123,223,201,185,192,159,199,244,215,251,118,232,185, 20,184, 40, -235, 9,157,167, 56,110, 58,119, 45, 78, 15,123,236,237, 36,229, 16, 8, 52, 65, - 32, 1, 87,116,128,201, 29, 14, 43,122,195,165,187,176,138,180, 60, 48,116,146, - 18,157,211,176,109,171,112,230,140,149,222,194,251,255, 67,144,198,237, 78, 87, -139, 63,233, 51, 39,115,233,250, 31, 95,139,153, 13,167,226,157,121,157,222,173, -127,117, 94, 62,170,122, 59,231, 57,190,195,124,208, 30, 99,180,222,228,177,225, -188,213,121,246,245,110,255,245,215,157,103,152, 47,138,243,237, 85,138, 47, 89, - 76,173,131,217,191,198,156,103, 91,143,105,200, 65,145,135,100,234,119,142, 31, - 55,246,115,163,153,119,252,104,150, 28, 50, 75,134,191,217, 55,204,245,212,177, - 5,158,185,190,182,216,201,168,149,250, 63,185, 35,163,102,162,111,149, 10,194, -129,230,206,224, 32, 87, 10,210,175, 74, 57,161, 68,107, 51,141,197,150,242,178, -101, 22,211,238,122, 87, 90,193, 28, 52,172,161,227,178,131,253,129, 52,192,178, - 44, 75, 74, 41, 39,255, 44, 76,215, 29,209,169,127,174,103,143,222,140,251, 10, - 28,195, 76,112, 93,245,140,171,245,228,245,220, 26,139,233,194,100,201, 16,180, - 1,109, 8, 80,143, 88,209, 49, 23,108,203, 34, 48,249,145,151, 42,104,134, 74, -244,210,231,186,196, 97, 20, 74,191,232, 21,166, 85, 21, 11,187, 42, 36, 26,201, -131,246,159,254, 42,189,199, 94,105,188, 68,101,116,217,101,244,227, 21, 62,126, -114,234, 24, 69,166, 93, 56, 11,131,232, 46, 75,182,117,149,133, 82,105,151, 46, - 25,151,113, 90,133,169, 61, 94,202,119,212, 24, 24, 80,152, 60,114, 42,114,120, - 52,207,140,163, 22, 57, 95,135, 30,190, 35,234, 54,156,250,107,193,139, 45,138, - 51,128,156,168, 97, 57, 82,102,102, 70, 68, 65, 65, 97,146,180, 6, 80,132, 8, -153, 89, 55,242,200, 72,203,164, 14, 25, 51, 19, 92, 32, 73, 38, 40, 41,255,242, -145, 90,166, 71,117,100, 42,184, 15,169,118, 32,114,100,161,213,240, 70,177,198, - 82,234,180, 24,128, 73, 25, 37,126, 76, 15,126, 24, 1,174, 79,247,204,235,178, -140,252,105, 29,187,240,182,125,231,193, 93, 3, 60, 26, 24,117, 39,178, 73, 34, - 42, 25, 71,102, 92,237, 35, 30,211,150,185, 13, 51, 75, 33, 1,107,194, 10, 32, -208,133, 25,136,133,155, 36, 46, 28,123,189,138, 21, 13, 55,185,233, 79,146,138, -206,210, 63,211,200,112, 43,101,139, 4, 58, 47, 21, 8,177,192,164, 94,135,237, -181,253, 16,209,207,233,160, 64,201, 48,211, 64,233,112, 28,168,247, 49,232, 83, - 26, 61,114,180, 17,200,172,146,146,148, 85, 3,121,131,186,158, 53, 68,123,203, - 57, 32,214, 8,155,253,145,131,235,170, 50,101,117, 97, 28, 70, 25, 26,240,222, -213,163, 35, 74,215, 79, 25,185,115, 40,189,105,119, 28,195,155,236,138,128, 57, -141,154, 8,175,240,138,161,226, 0, 64,176,232,120, 33,224,128,208,166,216,220, - 41,193, 99, 68, 50,110,106,183,199,102,108,162,129, 77,210, 33, 16, 49,174, 98, -230, 65,184, 43,136,236, 81, 44, 74,111, 10, 89,228,141, 67, 8,192, 2,202, 1, -162,135,234,141, 40,109,215,224,132,134, 18,128,179, 9,152, 55, 31,100,111,211, - 48,129,213,215,128, 18,194,116,136, 91,231,249,166,201,170,204,180, 97,100, 1, -132, 95,232, 74,119, 69, 12, +// ../Source/Template/GB_add_bitmap_noM_21.c: +uint8_t GB_JITpackage_115 [687] = { + 40,181, 47,253, 96, 19, 9, 45, 21, 0, 70, 93, 92, 32,224,220, 28, 3, 28,146, +176,166,194,249, 74, 52,132, 37, 37, 14,140,171, 9,170,161,233,113,207,204,142, + 97,140,193, 19, 3, 14, 83, 0, 81, 0, 82, 0,182,115,189, 85,169,219,121, 24, +206,203,133, 2,161, 40, 56, 18, 8,197, 7, 31,119,169,239,171, 82,110,152,143, +169,182,216,186,159, 75,207,196,116,170, 92, 71, 11,196,234,177,102,143,221,215, +229,217,186,131,184,126, 94,222,187,236, 8,115,226, 29,146, 80,208,140,136,105, +174,173,125, 79, 20, 4, 43,237, 44, 63, 28,182,194,225, 16,152,122,156, 6,171, + 29, 85,155,182, 92,248,163,136,122,104,199,154,159, 91,226,107, 43, 85,199, 12, +136, 28,188,251, 27,223, 48,172,114, 94,130,162,106,219,204,255,127,219,102,155, + 29,171,190,247, 54,132, 65, 81,176,170,175,230,121,200,104, 47,234,110,108,193, + 75,193,106,108,191,139, 41,136, 40, 28, 3,104, 95,163,213, 1,153,244,211,252, +228,223, 55,125, 80, 40,147,110, 60, 23,148, 5, 81, 87, 18,249,228,151, 82,134, + 63,238,154,205,229,115,249,116, 38,135,178,116,221,151, 32,182,249,114,143,117, +235,252, 77, 25,141, 25,129,112, 73,228,136, 79,184,129, 14,235, 11,127, 16, 2, +135,197,187,191,241, 91,233,131,239,238,186, 53,103, 67, 23,168, 63, 8,219, 86, + 35,124,222,156,117,219,211,156,168, 11, 98,143,138,155,118,116,196,217,120,239, +198, 26,214, 79,211,170,202, 97,213,128, 46,160,150, 56, 96, 27,190, 30,120,246, +184,115, 54, 21,207, 37, 84,233,186,147,168, 47,205,151,176,121,185,186,149, 82, +230, 6,211,157, 48, 88,201,203,125,187, 64,192, 29,101,117,104, 35,221,105,180, +155, 2,128,132,160,241,169, 66, 52,193, 72, 82,148, 20, 50,172, 1, 64,132, 24, + 83,118,245,201,130,102,128,244, 57, 44, 98,153,139,238,106, 51, 7, 47,235, 4, +143,192, 11,119,168, 68,197, 61, 12,242,153, 20, 15,108,202, 0, 23, 77, 65, 79, +134,154, 86,194,146,154,208,242, 45,115, 42,146, 96, 18, 17, 11, 41,100,187,186, +184,254, 94, 30,229, 67, 12,183, 64,230,131, 90,182, 18,224, 32, 28, 77,139,172, +238, 48, 4,198,170,216, 87,209, 11,168, 50,192,135, 3,156,155,117,210, 34,166, + 2,171,131, 34,199,221, 60,218, 54,148,245, 99, 42, 11,216,172, 16,239,163,161, + 8,117, 40, 89,166, 0,102,107, 19,189,160,107, 64,111, 4, 99, 57, 19, 92,138, + 11, 53, 87, 68,109,128,164, 5,216,161, 40, 73, 62,156, 60, 38,200, 58,100, 56, + 5,251, 87,186,136, 4, 87,188,169,210, 66,147, 27,104, 43,213, 90, 89, 58,241, +183,214,135, 8, 6, 1,196,145,161, 47, 76, 45, 62,243, 60,183, 78, 17,148,153, +100, 44, 9, 78,203, 41, 3, 38,124,204,210, 44,107, 6, 9, 99, 24,112,189, 13, +160,182,189, 69, 18,241, 62,130,113, 0, 11,152,121,206, 7, 15,207,140, 82, 48, + 69, 56,106, 63,160, 40, 11,187, 28, 72,132,204, 22,169, 51, 43, 9,133,142, 66, + 15,122,109, 48,152, 75, 89,185,105,122, 84,102,186, 59,180,194, 27,140,152, 9, + 39,109,131, 41, 69,221, 19, } ; -// ../Source/Template/GB_saxpy3task_struct.h: -uint8_t GB_JITpackage_129 [492] = { - 40,181, 47,253, 96,235, 3, 21, 15, 0,118, 24, 77, 33, 16,149, 30,166, 38, 44, -202, 36, 34,136, 71,194,103, 26,135, 18, 89,232,206,161,223,106,142,254, 98,201, - 48, 34, 0,128,170,154, 1, 68, 0, 70, 0, 65, 0,161,248,104, 43,235,143,102, -251,249, 75, 83, 90, 70,105, 80, 47, 94,136,194,241,141,158,230,249, 65, 26,148, -150,102,255,116, 55, 4, 25,195,209,215,206,198,213,126,254,250,211,101, 43,168, -149, 57,208,205,120,243,224,152, 11,159, 39,138,120,107, 64,250,186, 96,117, 93, - 1, 23, 7,198,114,209,182,137,150, 93, 10,154, 74, 38,211,166,203, 58,127,130, - 3, 11,171,156,114,209,203, 90,113,253,231,231,234, 82, 82, 57,174,206, 61,165, -202, 60, 42,150,244,208,117,236,150,198,153,114,222,210, 93,151, 53, 85,192, 6, - 88,133, 32, 12,176, 14,112,128,166,240, 7,247,198,143, 8,188,219,196,220, 20, - 71,218,211,250,232, 49,237, 16,170,133,172,238, 53,213,150,187, 54,115, 30,106, - 78,253,235,234, 69,231, 27, 51,238,188, 25, 14,185,126,119, 55, 36, 65,247,190, - 12,161,229,253,229,176,203,142,212, 18,101,238, 19,140,108, 1, 16,206,151,213, - 39, 8, 23, 13, 75,211,246,180,125,162,103,167,249,186,140,222, 53,126,154,251, -219,180,172, 32, 59, 59,208,161, 20, 0, 71,215,111,236,127,115,245,158, 22, 61, -170, 29,110,251, 62, 34,209,181,137, 57,229,219, 80,224,235,170,109, 12,232, 47, - 6, 74,160,177,165, 83, 67, 65,105, 74,202, 72,181,112, 80,134, 4, 68,105,117, -122, 68, 99,150,161, 9,173,247, 70,130,181,195,182, 7, 76, 46,208,118, 28,146, - 88, 82,216,245,104,103, 25, 33, 43,116,197,248,208, 83, 6, 73, 1, 30,182, 7, -133,232, 19, 19,244, 5,252, 2,128,218,112,120,131,146,134, 62, 5,187,110,171, - 41,161,184,117,225,120, 45, 3, 54, 8,110,140,125,163,203, 95, 55, 37, 25, 50, -190, 19,110,198,184,215,222,105,174,100, 1,173,177,253,232,162, 31,207,236,236, -181, 7,104,245,230, 18,167, 18, 40, 97,152, 40,244,219, 64,203,136,160, 13, 53, -246, 90,105, 83,237,240,208, 66, 20,120, 47, 62,230,128, 15,154,204,207, 76,235, -148,215,206, 39,138, 78,113,198, 84, 81,128, 7, +// ../Source/Template/GB_add_bitmap_noM_22.c: +uint8_t GB_JITpackage_116 [1013] = { + 40,181, 47,253, 96, 34, 13, 93, 31, 0,230,167,121, 40,208,208, 88, 7,120,107, +239,101,162,127, 4,216, 47, 80, 65,135,193,222,181,214,216,222, 62,222, 55,160, + 55, 13,185,101,196, 59,101, 59,200,213,176, 2,191, 23,114, 0,106, 0,110, 0, + 16,202, 99,106, 87, 91,248,202,157, 52,163,185, 78, 44,243,152,184,206,139, 50, + 60, 38, 48, 27, 8, 54, 65,119,226,249,112,156, 53, 12,250,240,109,131,127, 3, + 20, 9,229, 97, 48,145, 80, 62, 93,210, 31,166,160,198, 28, 2, 31,210,114,199, + 81,136, 63, 14,100,136,154,237,171, 80,225,204, 76, 51, 56,209,157, 54,164, 69, + 38,190,109,241, 35,252,187,245, 23, 41, 88, 89,175, 80, 40,178,161,171,210, 54, +151,105, 71, 98, 88,203,168,240, 72, 36,122, 68, 34, 1, 7,231,160,168,203,237, + 45,151,188,186,149,166,139,230,206, 88,154, 91, 6, 54,181, 11, 75,146,203,168, +191, 93,246,109,110, 91,223,114,221,155,195,232,107,237,179, 36, 40,200,149, 78, +188, 77,203, 39,140,245,188, 90,174,210,250,219,168, 23,252,235, 88,210, 67,246, +226, 38,247, 8,131,129, 82,195,201,100, 19,203, 40,192,111,119,203,188,125,120, +172,246,177, 78,203,179,225,255, 31, 69, 28, 81, 4,137, 63,196,244, 86, 36, 9, +183, 51,182,248,131, 59, 87,170, 55,140, 74,229,103,202,248,234,243,162, 27,142, + 50,227, 75,179,143, 64,198,181, 67,120,224,173, 65,245,234, 87, 86,148, 81,172, + 90,178,203, 18, 74,138,141,198,234,136,212,185,129, 30,112,251,119,123,235, 11, + 75, 75,250, 70, 99,249,212, 97, 42,237,159, 6,252,243,208,150, 14, 37, 6,106, + 24, 58,207,206,169,201,243,168,116,203, 65,147,113,136, 72,224,100, 36, 18,100, + 75,207, 44,191,176, 21,175,222,207, 50, 81,212, 81, 81, 20, 53,233,136,173,217, +173, 61,127, 52,198,206,235, 36, 61,163,167,162,173, 56,165, 23,203, 95, 61,218, +219,229,107,130,174,229,207,155, 60, 19,212, 55, 11,220, 99,217, 9,101, 55,239, +189,247,254,100,180,210,225, 70, 66, 36, 40,124,254,180, 40, 61,202,133,234, 30, + 76,167,207,171, 72,241, 89,247, 60,181,124,172,210,236, 98,185,124, 5,199, 5, +163, 21, 74,170, 29,205,215,181,248, 52,121, 23,229,186,134,176, 72, 17, 8,128, +226,168,209,169, 66, 51, 35, 34,146, 36, 73, 97, 89, 3, 32,132, 24,164,170,140, + 30,194,144, 64,142, 51, 36, 66, 24,177, 2, 98, 68, 40,144,192, 2, 9, 36,148, + 64, 65, 97,105,218,201,106,196,233, 17, 51, 41,173,236, 17,156, 29,134, 36, 15, +206, 82, 56, 67,251, 84,184, 56,225,241,119,185, 37, 54,207,139, 1,171, 42,211, + 7, 50, 60,176, 37,138, 28,153,248,161, 29, 57,141,234,151, 13,255, 63,190,192, +192, 43, 83,101,111,187, 56, 23,129, 51,115, 47,200,145,199, 18, 56, 28, 21, 44, +150,152,228,173,144, 32,242, 51, 40, 98,108,104,145,130, 44, 10, 70,115, 26,156, + 82,123, 68,225,109, 34,132, 34, 82,165, 16, 15, 7,246,245, 77,245,111, 61, 59, +137,166, 60,223,107,190,158,252,211,156,132,196,192,106,163, 14,247,241, 86,130, +241,167,136,153,103, 37,118,129,173,202, 94, 86,174,129,106,207,124, 23, 66,252, + 32,109,187,250,164, 46,154, 5, 85, 9, 76,253,206,117, 50, 89,126, 22,169,184, +145, 55,102,214,231, 60,185,227, 46,242,173,231, 44,163, 89,208,130,253,147,201, +107, 79,194, 51,142, 17,247, 59,112,161,121, 11, 26, 9, 46, 52, 94,209, 17,129, + 97, 21,112,165, 14, 64,118, 2,155,163, 21, 5,163,245,239,187,109,149,138,149, + 21,169, 67, 40,232,122,112,253,187, 91,102,241,137, 9,168, 65,166, 32,153,161, + 43,111,202,165, 66, 8, 67,178,209, 39,105, 92,150, 94, 58,147, 80,190, 90, 86, + 98, 20, 44,224, 26, 33,171, 29,108,101,185, 10,160,152, 40, 0,152, 7, 53,253, +209, 44,146,131,212,223,102,142, 3,208, 54, 46, 48,238,246,247, 25,191, 38,105, +250,129,124,132, 81,228, 39,238,205, 58, 35, 54,231,242, 34,184, 29, 57,187, 90, +147,104, 9, 0,183,142,234,124, 59,152,206,205,201,189,214, 38,213, 84,129,150, +230, 88,177,195, 69, 95,122,183,207,168,148,194,206,178, 84, 72,124, 32,122,195, +129,144, 47,148,139,119, 25,119,172,180, 17, 46, 87,216, 51,104, 84,225, 52, 48, + 18, 77,209, 91,241,178,224,229,219, 78, 58, 4,168, 61, 54, 1,227,240, 66,231, + 85,112, 79,113, 45,145,153,188, 15, 57, 83,158,206,113, 24,181,240,205, 8,174, + 20,246, 98,110,158,128,198, 78, 62, 10, 61,155,166,171, 6, 83, 86,213, 8,198, + 48,230, 23, 63, 95,174,179, 13,151,210, 3,112, 2, +} ; + +// ../Source/Template/GB_add_bitmap_noM_23.c: +uint8_t GB_JITpackage_117 [1015] = { + 40,181, 47,253, 96, 33, 13,109, 31, 0,102,232,122, 40,208,176,170, 14,232,147, +180,248,102,126,137,175,235, 54, 53, 57,143,233, 92,107, 16, 38, 45,252,153,247, + 71,170,228,226, 59, 13,172, 89,234, 97,208,203,128, 18,115, 0,106, 0,114, 0, + 3,147, 71,115,217,180,241,148,219,116,163,185,182,134,121, 52,174,157, 81,134, +199,132, 69, 51,160,181,231, 54,238,135,227,204, 97,208,135,119, 93, 60, 36,152, + 68, 38,143, 3, 73,100,114, 41,139, 14, 49,245, 76,203, 7,226, 63, 92,254, 60, + 10,113,184,137, 12, 22,103,231,189, 80, 54,157,105,198, 6,178, 14,111,219, 15, + 7,105,124,167,197,143,135,191, 14,173, 41, 86,215, 41, 4, 19,217,240, 85,105, +167,151, 41, 38, 53,109, 74,235,114, 8, 4,122, 64, 32, 1,175,142, 61, 75,132, +115, 76, 83,229,246,212, 35,175,110, 35, 41,163,121,102, 28,117,151,161, 53,151, +225, 72,122, 25,245,247,219,222,117,215,205, 91,239,251,244, 48,230,181,246, 89, + 22, 24,228, 74, 27,119, 77, 93,194,218,236,203,229, 42,175,195,141,154, 89,135, +216, 21,253, 99, 51,175,189, 67, 22, 75,148,153, 13,102,107,109,163, 0,191,223, +169,190,243,214,181, 58,175,125, 92,238,134,255, 63, 4,113, 64, 17,211, 95, 80, + 36, 19,129, 59, 51,182,184,131,103,174,211,236, 48, 42,149,157,150,241,213, 59, +163, 29,142, 50,227, 75,183,142, 64,198,245,163, 18, 30,184,155,158,154, 97,175, + 46,104,163, 90,189,228,151,165, 37, 41, 52,153,235, 86, 7,164,118,231,121,192, +237,225,157,221,204,176,188,162,107, 50, 31,166,210, 30,106, 88,135, 28,138, 69, +183,164, 37,102, 24,172, 79,159,156,237,230,171, 75, 28, 72, 35,135, 12,198, 33, + 66, 97,131,145, 80,144, 88,244,141,250,133,173, 56,102, 5, 16,212, 81, 77,211, + 36,233,136, 51, 55,198, 57,164,143,113,214, 41, 74,209, 55,250, 41,218,138, 83, + 90,161,254,234,209,222, 47,103,237, 57,151, 59, 80,226,180,103,222, 76, 93,224, +156, 75, 50, 89, 13,132, 16,194, 67, 25,173, 70, 66, 40, 92, 58,135, 92,140, 30, +229,130,117,121,117, 14,166, 92,150, 58,144, 18,197,111,223,115,115,249, 90,165, + 91,133,186,124, 5, 71, 69,163,148, 41,170, 31,205,217,181,184, 36,129, 25,245, +102,253,104, 49,128,225,168,225,173, 50, 52, 34, 34, 73, 82,144,194,178, 6, 32, +132, 24,163,152,217, 60,194, 80, 96, 20,200, 56, 68,224,136, 20, 32, 35,164,130, +137, 68, 2,177,140,210, 20,180,216, 41,107,210,231, 33, 87,146,194, 45, 15, 85, + 13, 12,153, 13, 46, 13,166,147,125,162, 92, 71,211,209, 29,254, 41, 98, 58, 47, + 53,174,172,194,158, 78,248,189,172,108,112,152,230,183,152, 24, 26, 18,205, 92, +184, 13,223,111, 96,148,170,146,230,174, 93, 17, 8,159,185,232,201, 81,131, 38, + 41,254, 23, 98,157,148, 76, 38,221,152,242,129,162,199, 10, 0, 26,135,177, 1, + 23,247,231,156,219,156, 98,252,136,246, 86, 91, 21, 9,217, 41,120,217,181,125, + 27,211,191,219, 51,132, 68, 27,120,118,212, 14,207,151,154,161, 24, 59,128,170, + 81,199,253,121,229, 57, 7,135,152, 36, 87, 48, 23,195,234, 98,179,218,171,129, +226, 39, 19,122,130, 64, 7, 30,218,196, 23, 58, 0, 78, 21,224,255,173, 58, 76, + 70,190,139,216, 3, 73,155,102, 52,185,223, 57,208,165,128,203,146,203, 30, 11, +236, 60,190,214,222, 5,230,245,115,174, 56,202, 65,121,192, 97, 15, 55, 70, 94, +205,241,109,232,153, 84, 38, 11,150, 73,112,115,186, 83, 72, 90, 84,225,243,181, + 82, 0,206,210,134, 31, 20, 84, 53, 15,187,192, 54,203,122, 16,172, 80,176, 89, + 97, 77,163,141,221,226, 23, 38,208, 51,229, 66, 95,210,227,114,250,159, 77,212, +248,131,144, 5, 5, 0, 95,110,115,217, 17,160,149,227, 66, 0,209, 50, 11, 0, + 37, 13,250, 35,217, 7, 9,180,255,110,205, 89,255, 28,224, 57,223, 41, 31,142, +129,116,162,100, 31,189,128,236, 47,242,210, 51,236,120,122,253, 72,228,230,242, + 56,174,129,105, 73,248,175,197, 55,173, 45,231,230,157,243,243,237,115,167, 43, +137,107,229,157,223,150, 52, 11, 53,143, 31, 47,164, 81, 16,138,100, 37,170,253, + 47,150, 10,228,165, 81,165,148,191, 41,152,131,186, 76,246, 2,225,163, 87, 35, +135, 11,191,136,238, 71, 73,197, 17, 66,218,217,237,227,200,160,246,105,234, 24, +142, 39,161,170, 18,241,148, 82,178, 82, 16,237,206,188,251, 90, 18, 15, 83, 11, +175,132,252, 48,113, 78,170,204, 92,131, 6,151, 39,229,166,217,212, 96, 26, 42, +218,129,105,100,191,240,191,173, 67,109, 85,162,244, 0,242, +} ; + +// ../Source/Template/GB_add_bitmap_template.c: +uint8_t GB_JITpackage_118 [730] = { + 40,181, 47,253, 96, 8, 8,133, 22, 0,118, 39,118, 40,208,208, 88, 7, 52, 58, +177,179,237,158,184,159, 33, 99, 53, 92,195,156,189,136,209,149, 34,124,198,204, + 78, 68, 63,120, 64,181,116, 25,165, 30,120,192,242, 2,112, 0, 98, 0,108, 0, +191, 68,146,105, 18,225,236, 57, 90,157, 82,185,177,190,146, 97, 67,132,173,228, +215,154,200, 4, 6, 98,130, 12,170,108,185,115,123,179,138,238, 60,198,234, 18, +193, 68, 50,137, 28, 12, 72, 38,135,188,199, 37,219, 32,135,249, 84, 61,148,221, +169,117,196, 37, 79,165,177,100,212,213, 5, 10,219,234,168,135,111,111,158,232, + 10,150, 35,225,114,201, 34, 80, 85, 46,167,240,117,145,106,124, 47,234,180,219, +159, 11, 66,119, 89, 22, 78, 81, 81,132,162, 2,135,108, 45,191,231,126,167,188, + 88, 46, 85,199,230, 45,111,209,129, 32, 71, 40, 93, 6,177, 0, 36,235, 83, 62, +110,217,186,247, 9, 18,157,214,151,206,135, 98,116,175,239,188, 84, 11, 89,119, +174,238, 22,206,236,178,246, 24,221,227,161, 72,169,251,188, 87,114,191,198, 48, +134,210, 93,226,186,221,183,213,107, 31,186,109, 31,146,238, 12,114,217,165,123, +183,110, 97,157,118,206, 34,254,201,118,175,243,213,116, 37, 91,174,212,202,120, +240, 84,214,197,217,104, 50,155, 78,230,225,138,104,112,192, 24, 98,237, 64,184, +228,149,219,232, 64,242,253, 94, 5, 6, 87,246,180,209,221,150,248,185, 72, 35, +178,177,134, 83, 59,127, 46,191, 27,149, 77,225, 96, 56, 17,167,168,255,143,162, +140, 40,154, 56, 54,246, 10,217,112,139, 79,182,227,156,221,135, 62,135, 44, 27, + 99,232,192, 96,170,139,227,105,200, 94,103, 23,178, 47, 77,219, 88, 7, 81,180, + 17, 33, 60,133,200,229, 87,157,151,237,235, 16,141, 70, 98,243, 74,229, 86, 20, + 97, 13,229,246, 57,172,243, 18,219,203,162, 88,206, 95,235, 56,254,186, 95,202, + 15,131, 47, 93,167,213,137, 89,162,163, 36,200, 87,178,198,145,106,243, 85,166, +161,140, 98, 72, 39, 3, 65,193,112, 13,141,103, 60,157, 10,194,115, 89,143, 99, + 29,121, 35,224, 77,214,148, 1,231, 24, 55, 76,190,122,229,236, 54,111,178, 59, + 63,175,243,113, 75, 96, 32, 32,132, 16,162, 20,218, 13, 44, 67, 84, 23, 49,219, +182, 64, 10, 11, 90,151,186,151, 99,154, 13, 10,162, 75,192,106,130, 8, 40,143, +177,129,170, 3, 16,133,107,244,250, 34, 8, 44, 0,103, 9, 5, 8,130,228,110, + 1, 0,204, 5, 49, 31,205, 29, 24, 68, 39, 1,242,201,197,129, 17,144, 6,221, + 90,199,172,227,108,229,160, 30,131, 12,175,160,122,192, 7,130,236, 19, 54,108, +238, 34, 24, 44,232,155,176,149, 8,123,130,249, 5,124, 22,137, 22,100, 87, 43, + 69,194, 13, 9,176, 40,128, 64,108,225, 86, 20,206,200,113,145, 11,146, 74, 42, +163,128,164,240,152,135, 35, 64, 91, 33, 67,198, 64,132,127, 56, 87,205,225,150, +171, 44, 35, 8,112,144,161, 32, 18, 48, 27,141,180,138,210,200,139, 13,152,201, + 9,217,197, 7, 45,239, 93, 71, 69, 98, 34,225,224,129, 89,146, 26, 96,223,250, +121, 25,220, 98, 93, 55, 1, 17,172, 64, 74,227, 49, 32, 25, 27,218,210, 92,172, + 97,228, 61,126, 27,112,191,178,139,220,188,105,106,158,153,108, 91,188,154, 43, +128, 24,154, 88,192, 37, 43,138, 2, 55, } ; -// ../Source/Template/GB_select_bitmap_bitmap_template.c: -uint8_t GB_JITpackage_130 [637] = { - 40,181, 47,253, 96,108, 7,157, 19, 0,182, 31,100, 32,208, 92, 23, 3, 24,157, -249,214,174,223, 80,173, 93,212, 20,227, 78,144,226,143, 28, 38,210, 92,171,249, -194, 11,142,170, 89,129, 91, 0, 88, 0, 87, 0,176,212,106,235,185,222,167,234, -122,142,162,224, 13,140, 69, 98,225, 61, 20,137,197,187,146,187, 65, 95, 88,189, -252, 0, 94,118,110, 87,235,142, 55,124, 64,177,114,230,154,102, 34, 86,167, 53, -127,236,190,175,207,118,125, 15, 62,117,223,177,240,235,220, 6,144,251, 44,143, -216, 93,209,220,178, 59,215,214,190, 40,114,151, 22,181,154,172,100,142, 64,108, - 30, 2, 17,132,239, 51, 76,241,108,150,109, 59,187,186,117,205,239,216,162,176, -250, 77, 54, 28, 27, 95,201, 99, 20, 15,124,199,253,123, 12,252, 46,111,186,181, - 77, 9, 15, 59,164,145, 4,183,198,174,242,255, 55,218,182, 29,108, 90, 15,222, -196,245,150, 45,113, 88,120,246, 44,107, 6, 31, 73,237, 77,221,141,173,169,241, -172,198,182,188,162, 55,186,116, 14,166, 13,166,197, 55,101,205,167,110,224,148, - 75, 71,129,168,242,155,132, 32, 86,130,231,127,191,167, 21, 10,147,231,103,174, -139, 20, 56,236,186,187, 76,191,153,222,149,119,215,173, 57,139,190, 76,123,150, -250, 29,230,180, 89,109,122,110,178,245,194, 79, 93,169,163, 22, 69,107, 90,243, -115,203,245,218, 82,213, 52, 7, 18,255,174,209, 10,195,229, 13,185, 62,219, 86, -219, 36,223, 59,139,154,184,158, 36,129, 43, 88, 82,215,196,247, 82,198, 76, 40, -174, 68,142, 37, 81,184,163,240,178,209,136, 56, 30, 0, 6,195,249, 50,160,230, - 66, 1,221,127,147, 95,111,197,125, 48, 16, 53,158,209,106,212,214,254,119,249, -134,108, 45,139, 59,134, 67,134, 32, 17, 12,145,227, 39, 28, 81, 37,247, 84,119, - 15,103,180,132, 98,248, 33, 73,158,113, 19,114, 15, 99,160, 81, 49, 83,140,140, - 76, 32,162, 73,146, 44,107,112, 68,166, 10,171, 3, 79, 36,220,140, 52,174,203, - 84,172,108,145, 89,233,144, 34, 25,226, 85, 71, 93, 49, 8,233,160,209,246,117, -156,133, 44,222,204, 12,244,152, 69, 53, 52, 5, 20,212,139,212,105,162, 36,218, - 58, 79,216, 58, 94, 26, 77, 76,108, 4,152,146, 38,161, 73,153,127,164,122,205, - 0,155, 13, 17,114,198,193,183, 7,215,156,108,179,102,107,143,204, 55, 91,251, - 13, 27,249, 16,239, 77,100, 48,250,131,141, 75, 54,194,144, 31,138, 95, 47, 62, -219, 65, 12, 29,160, 81, 66, 56, 60,121, 88,208, 14, 88, 25, 24, 29, 53, 96, 42, -130,172, 7,180,159, 32, 28,191,245,106, 6, 51, 5, 8, 34,255,230,179,250,229, -202, 68, 41, 76,245,178, 32,107,158,134,106,238,193,230,224, 29, 2,123,240, 92, -233,153, 37, 95,115, 43,154,219,196,111,184, 25, 90, 51,151,223, 52, 63, 42, 51, -173,219,112,205, 53, 68, 29, 39,156, 18, 25, 39, 77,144,162,188, 9, -} ; +// ../Source/Template/GB_add_full_30.c: +uint8_t GB_JITpackage_119 [360] = { + 40,181, 47,253, 96,143, 2,245, 10, 0,246,212, 66, 33, 0,211, 28, 3,252,221, + 12,211,251, 17,189,170,182,177,209,110, 12,169, 23,232,203,178,125,135,104, 22, +133, 89,250,127,175, 15, 33, 57, 0, 58, 0, 55, 0, 87, 83, 21, 23,204,115, 56, +240,235,238,228, 18,155, 14,202,229,170, 25, 6,187,117,205,152, 5,111,136,197, + 91, 93, 79,191,121,245,243,242,250,129, 74, 51,113,221, 80, 17, 50,140,195, 75, +182,109, 53,163,140, 83, 84,156, 40, 42,160,125,252,255, 99,244,196, 74, 96, 77, +150,211,106,158, 55,104,123, 47, 23,244,236,214,152,236,246,172,118, 29, 83, 69, + 17, 17,108, 86,163,237,182,146,111,144,195, 92,201, 49,158,151, 4,171,178,166, +194,160,178, 30,105,208,229, 14,136,231, 31, 94, 61,241, 12,253,143,145,118,193, + 10,110,200,226,112,179,156,182, 31,121,217, 5,237,173, 90,205,129, 89, 23,122, +215,223,229,216, 98, 92,117,205,207,221,247,218, 97,170,206, 0,140,171,156,151, +219,199, 5, 49,126,226,135,242, 44,214, 60,240,124, 65,143, 64, 22, 88,131,178, +160,212, 2,157, 30, 30,125,251,102,243, 50, 95,110,230,101,230, 86,232, 51, 83, + 76,136, 35,163, 12,122,105, 62,241, 40, 35, 47,244,235, 30, 73,234,120,218, 3, + 32, 32,112, 34, 19,164,235, 1, 94, 2,223,109,198,216, 22, 27, 2, 28, 12, 72, + 58,135, 17,228,151,211,149, 53,104,140, 34, 59,251, 25,100,195, 99,136, 53, 91, +168,173,193,187,170, 36,216,235, 64, 33,115,197,168, 76,146,207, 53,163,112, 65, +114, 69,205,160,233,121,102, 90,219,128,171,185, 0,100, 18,175, 90,209,233, 6, -// ../Source/Template/GB_select_bitmap_full_template.c: -uint8_t GB_JITpackage_131 [607] = { - 40,181, 47,253, 96,127, 6,173, 18, 0,230, 30, 98, 33,208, 92, 23, 3, 24,221, -252,109,191, 67,231,188,177,160, 41,198,157, 32,197, 31, 57, 76,164,153,156,243, -133, 23, 28, 85,179, 2, 1, 89, 0, 87, 0, 84, 0, 39,234,118,142,241,247,194, - 66,129, 80,116,142, 4, 66,113,142,220, 94, 72,175,171, 90,110,248, 14, 59, 55, -107,117,197, 23, 60, 95, 72, 57,117, 69, 49, 16,155,162, 85,123,236,190, 45,143, -246,244,254,187,121,207,169,114,235,220,133,111,243, 42,135,216, 93,177, 94,217, - 61, 98,220, 50, 71, 93, 87,251,158,198, 77, 90,108,211,145,130,249,225,160,117, -135, 67,121,210, 89, 13,219, 54,118,211,213, 45,189,103,139, 93,245,123,100, 52, -118,190,145,191, 38,221,119,110,187,247,215,247, 77, 94,116,167, 22, 29, 28,228, -140,196,241,219,105,102,145,255,175,201, 52,205,112, 67, 69, 67, 24, 20,157, 61, -201,170,191, 67, 80,123,205,187,179, 45, 51,157, 77,179, 37,111,216,137, 44, 28, - 67,105, 93,168, 77,109,231,233, 14, 54, 95,211,150, 55,111,224, 68,126,143,143, - 67, 74,112,125,239,247, 50, 2, 65,114,125,189,113, 16,194,150, 89,119,147,232, -181,210, 57,242,238,186,211,205,226, 86,105, 79, 50, 61,151,183,180,172, 22, 61, -247,184,106,229,163, 44,243,216, 98, 92,209,170,175, 87,172,215, 21,170,162, 58, -128,184,247, 20, 87, 87, 38, 95,208,245, 3,239,177,154, 54,211, 34,222, 57,139, -203, 92,207,113,176,205, 8,222, 77,154,244, 83,197,188,101,190,119, 34, 98,192, - 48, 21,110, 42, 8,194, 21,129, 22, 77, 38,180,233, 0, 46,151,141,135,249, 50, -150,201,231,222,147,252,118,169, 45,204,116, 68,108,239,113,250, 5,109,173,106, -251,101, 51,130,159,240, 3,141,162, 7, 20,223,217,136, 21, 48, 4, 61,227,168, - 35,106,192,237,101, 90,160, 97, 53, 84, 21,136,144,148, 38, 5,133,106, 53, 96, - 68,166, 10, 89, 7, 79, 68,110,147,228,174,198,200, 73,202, 68,181,164, 9,181, - 86,231,248,173,234, 42,199,112, 1, 1,149, 40, 52,246,240,202, 73,109,116,230, -225,164,111, 52,133, 65, 15, 92, 45, 26,203, 75,253,232, 37,228, 20,203,117,140, -234, 16,164,139, 55, 52, 80,125,125,123, 36, 77,246,111,183,181,183, 0, 71, 43, -227,134,177, 66,148, 57,196,143,207,102,232, 79, 3, 82, 89, 56,214,192, 26, 80, - 27,179, 48, 48, 50, 52, 96, 44,198,177, 8,180, 27, 33,221, 95, 59,213, 13,177, - 1, 50, 52, 83, 51, 89,189,115, 69,146,212,102,116,178,160, 42, 49, 12,106, 88, -194,140, 1, 63, 5,230,240,201, 90,240, 70,178,252, 78,140,118, 7,117, 72, 54, -157,194,184, 22,103,161,213, 55, 77, 71,101, 38,239, 46, 88,113,203,177,195,178, -146, 69,176, 87,212,229, 1, } ; -// ../Source/Template/GB_select_bitmap_template.c: -uint8_t GB_JITpackage_132 [410] = { - 40,181, 47,253, 96, 93, 4,133, 12, 0,198, 83, 66, 33, 0,243, 54, 62,167, 5, - 18, 73, 57, 58,225, 4, 74, 85,224, 94, 42, 59, 16, 26, 55, 70,110,196,209,144, -199,168,170, 90, 16, 8, 16, 55, 0, 56, 0, 56, 0,229,103,102,139,215,230, 87, -118,191,241,217,209,156, 79,209,205,142,187,198, 94, 93,196, 78,216,144,231,184, -163, 58,104, 88,190,248,253,229,146,243,251,150, 31,103,227,204,221,224,231,215, -247,145, 57, 69, 81,137,162, 2, 34,222,228,135,154,244,154,124, 16, 91, 9,115, - 85,166,240, 61,230,235,231, 92,239, 81,131, 57,207,185,122,132,168, 12,149,148, - 56, 24, 42, 39,128, 3,143, 52,246,124,151, 79,213, 63,227,238,112,176,231, 81, - 87,237, 99, 12, 36, 22, 48, 60,227,144,170, 55, 60, 83, 11,190,175, 98,147,152, -162, 42,117,226,105,143,219,105,183, 90,140,194, 97,146,235,105, 17,241, 67, 17, - 11,220,221, 41,136,210,201, 39,139, 26,166, 74,250, 17,252,202,234, 11,243,113, - 20,179, 94,134, 89,187, 89, 24,236,162,104,151,141,131, 64,182,172,106,151,133, -219, 60, 11,179, 88,119,173,198,121,228, 41,160, 52,228, 78,176,214, 66,241, 6, - 96,224, 34,166, 34, 14,201,215,249, 67, 1,112, 10,248,135,103, 6, 3, 52, 32, - 64,134,136, 49,186, 14, 85, 56,160, 53,110, 91, 99,118,141,205,140,143,230,142, -224, 0, 77,166,175, 13,249,255,196,213, 78,131, 16,197, 64,213,116, 43, 7,229, - 16,133, 44,198, 13, 6,230, 43, 64,251, 12, 24,140,193,129, 7, 96, 6,181, 59, -241,182, 66,220, 5,246, 8, 64, 35, 65, 39,192,219, 69, 27, 20,137,128, 16, 65, -208,225, 17,142,135,117, 15, 71,102, 2,109, 0,111,124,240,134,217, 0,225, 0, -198, 33,151,179, 42,209,104,179, 25, 44, 54, 77,204, 51,147,219, 56,172,214, 55, - 66,135, 3, 14,105, 15, 68, 81,231, 6, +// ../Source/Template/GB_add_full_31.c: +uint8_t GB_JITpackage_120 [466] = { + 40,181, 47,253, 96,125, 4, 69, 14, 0, 54,152, 76, 33, 0,181,142, 1,106, 66, + 73, 74,224,238, 46, 83,220, 88,218, 9, 16, 29,140, 24, 98,150,168,230, 40, 48, + 58,204,210,255,187, 63,188, 66, 0, 68, 0, 64, 0,191,180, 21,209,198, 7,242, + 36,112,143,161,189,252,226,100, 68, 3, 49,205,143, 68,213,153, 98,174,110, 27, +226, 40, 76,195,109, 61,215,246,218,175,215, 76, 47,239,137,244,219, 21,154, 64, + 50,182, 39, 10,135,121,111,232,155,158, 71,167,246,120,150, 81, 88,150, 5,199, +225,120, 26,126,104,198, 0,133, 55,130,187, 74,254,255, 20,101,162, 8, 3, 3, + 86,193,142, 98,249, 68,174,246,179, 91,172, 30, 4,171, 90,172,157,141, 96,154, + 70,101,224, 85, 81,174,186, 90,174, 55,248,177,150,223, 43,127, 29, 12, 4, 3, +134, 40, 16, 12,183,186, 42, 17,237, 2,121,198, 45,208,101,171,111,239, 96,206, + 61, 90,245,207,158, 50, 9, 4, 37,177,251,226,248,138, 19,206, 56,174,254, 83, + 86,103, 55,221,186,170, 55,228, 85,176,211,183,196,185, 85,218,163, 53,131,123, +134, 33,241,121,252,126,235,189, 52, 83, 28, 20,117,250,172, 39,110,115,220, 83, +206, 77,133,178,101,122,105,167, 39,221,213, 51,161, 64, 38, 24, 14,242, 89, 64, +213,183,158, 50,177, 94,209, 3,199, 91,245, 10,197,193, 65, 50, 14, 77,243, 84, +215, 20,183, 70,109,167,252,133,127,141,228, 47,144,165,213,229,108, 72, 74, 61, + 32, 80,136,144,148,157, 7,177, 0, 76,225,200, 97, 28,178,115, 96, 74,225,162, +209,232, 24,192, 30,194,192, 10, 56,195,193,175, 12,232,129, 13, 92, 0,185,225, + 0, 69,144, 11, 21, 1, 26,173,193,162, 19,144, 97,173, 62,248,244, 96,122,192, + 89, 55, 81,113,194, 57,208,183, 95,204, 39, 49,254,130,165, 1, 81, 15,200, 96, +101,158,120, 95, 23, 11,220, 56,232, 24,125,246,139,230, 48,234, 66,190,161,251, + 64, 36,143,161,193,250, 88,232,110,131,145, 85,161,181, 31, 12, 13,112, 39,202, + 14,169, 52,163,236,130,228,128,154, 65,243,121,102,106, 91,227,213,114, 70, 68, +245,239,250, 20,189, 67, } ; -// ../Source/Template/GB_select_entry_phase1_template.c: -uint8_t GB_JITpackage_133 [1235] = { - 40,181, 47,253, 96,252, 16, 77, 38, 0,182,115,152, 39,208, 22,173, 14, 84, 95, - 81,123,110,255,103, 90,124,249, 35, 8, 46, 78,165,226,106,139,189,196,236,196, - 21,135,193,244, 28,176, 29,228,106, 56,128,223, 11,142, 0,134, 0,142, 0,147, -250, 72, 72,193,104,111, 47,124, 37,249,238,183, 63,255,255,202, 73,101,224, 66, - 48,245, 69, 49,117, 79,168, 13, 45,120,101, 87, 18, 83, 91,217, 20,172,152, 58, - 28, 50, 46, 85,143,212,182,205,185,189,215, 7,114, 30,163,123, 43, 32, 24, 32, -152, 16, 48, 3, 4,151,168,232,205,194, 17,118,248,197, 61,116,221,153, 65,207, - 91,199, 85, 48, 92,148, 43, 68, 66,219,202,180,211, 23,130, 58, 21, 9,147,160, -235, 54, 23,105, 26, 94,167,117,219,240, 87,130, 38,245,132,190, 28,105,214,247, - 97,218,242, 69, 95,168, 94,217,239, 82, 29,219, 62, 6,136, 11, 8, 84, 38, 1, -129,161,144, 14,121,136, 51,254,101,201,157,193,139,228,205,154, 29,146,129,228, - 59, 99, 27,138,215, 7, 52,235,229,188,149, 19, 94,219, 23, 68,179, 73,189,226, -174,215,253, 69,241,230,191, 72, 88, 68, 27, 42, 71,166,108, 95,247,243,190,106, - 10, 84,117,189,133,151,176,150, 16,185,143,252,186, 88,143,192,120,107,246,229, -169,243,215, 80, 61, 34,101,199, 17,134,240,186, 28, 93,152,168,203,156,224, 1, -149,175,165, 22,179,124,165,133, 99,230, 15,235,231,174,121,187,119,109,133, 22, -246, 75,193,122,109,215,128,223,103,112,112, 37,252,181, 50,145,132,105, 20,204, - 88,134,170,168,227, 69, 89,249, 92,244,104, 54,207,217,135, 43, 5,136, 29, 35, -195, 75,146,217,125, 78,196, 81, 80,190,233,112, 92, 70,231,117, 36, 50,151, 36, - 23,157, 2,227, 57,108, 42, 24, 44, 52, 38, 60,156, 77,167,227, 50, 88, 45, 76, - 77, 67,151,255,251,218, 4,218, 18, 41, 42,217,100,120,120,158,171, 92,218, 71, - 66,146, 25,227,180, 26,198,194,145,227, 5, 51,205,123,140,229,253,145, 44,225, - 49, 27, 35,223, 90,104, 89,243,157, 77,251, 89, 77, 27,217,222, 25, 29, 51,213, - 9, 43,125,119,100,120, 43,211, 10, 94,233,151,150,178,235,204, 30,149, 74, 74, - 37,115,169,181,214,104, 67,116, 76,127,106,103,175,227,249, 31, 9, 45,232,214, -172, 36,223,148, 55,112,228,216, 54,182,230, 41, 22,139,100, 65,137,118, 99,209, - 61, 56,158,139,205,123,192,120, 27,141, 10,183,241, 60,157,141, 7, 94,225,142, - 62,115, 19, 41, 66,129, 96,166,203,229,114, 71, 63, 36, 4,193, 88, 26, 8,246, -113,218, 90,107,173,146,253, 28,125,115, 52,227,121, 54, 16,153,183,203, 69,119, - 47,130, 1,226,154,139,204,107,205, 74, 66,235, 10,199,158, 57, 71,230, 32, 31, -154,200,191,124,172, 78,146, 79,121,219,179,146, 11,183,224,137, 69, 33,243,129, -107, 2,129, 8,168,113,177, 67, 67, 51,129,136,130,130,164, 32, 73, 99, 81, 8, - 98, 16,244,210, 65, 62, 98,128, 64, 81,132, 32, 2,149, 34,138,137, 36,144, 56, - 9,100, 70,146,100,148,206, 3,127, 75,199,215, 15,101,158, 93, 61, 1, 76, 23, -187,177,126,245, 17, 82,182, 42, 16, 41, 66,189, 88, 11,165, 15,209,173,209,252, -118,122,170, 32,137, 61, 18, 35,214,108,107,201,100,250,142,103,188, 80, 45, 70, - 85, 41, 29,150, 45,234, 58,160, 91, 9, 62, 26, 3, 55,245,115,123, 71,164,191, - 75, 23,118,222,146,239, 46, 88,197,237, 19,156,129,142,164,105, 87, 44, 85, 65, - 8, 19, 92,180,213,181,125,124, 70,198, 73, 28, 58,164,199, 18,216,161,235,246, -211,128, 80,193,135, 99, 82,252,200,103, 90,127, 82,253,232, 58, 52,198, 29, 60, - 3,119,108,207,160, 79,162,212,165, 57, 37, 33, 48,244,234,174,199,172,162,212, - 91, 10,129,177,243, 81, 99, 18, 29,115,181,160,164,106, 74, 12,248,114,191,225, -132, 96,199, 68,179,202,172,238,208,115, 75, 43,168,247, 83, 28, 84, 81,223, 25, -169, 49, 43,208, 64,214,220,201, 94,240, 21,244,240, 25,119,135, 82,160,159,199, -138, 4, 5, 6,107,132,242,197,240,211, 84,184, 25, 63,236, 8, 3,205,230, 81, -151, 12,221,126, 58, 22,214,237,196,120,192, 72,247, 80, 41,205,195,125, 80,206, -183,224,155, 12,230, 36,105, 0, 79,208, 76, 58,196,115,152,184, 12,152,122,188, - 99,236,175, 44,219, 28,117, 34, 87,203,150,158,130,199,145, 99, 40, 46,147,111, -141, 92,138, 49, 6,119, 0,131, 47,209,156,231, 97,219,115, 4,208, 13,206, 40, - 70, 73, 69,102, 90, 48,147, 86,156, 0,190,145,218,241,178,232, 82,171, 19,137, -130,144,182,253,241,148,173,144,209,207,110, 30,199,147,189,142, 52, 36,158,136, -231,189,165, 13, 39,128, 16,145, 41, 84, 66,160,128, 32,167,150,169, 75,203, 97, - 14,120, 33, 24, 48, 54,203,162, 28, 6,144,143, 56,242,170,174, 80, 25,174,234, -175, 82, 31, 45,151, 36, 59, 75,116, 16,100, 12, 78,152,232,127, 73,139,194, 39, - 46, 52, 88,195, 79, 12, 16, 18,104,205,149,143, 13,189, 7, 52, 98, 99, 6, 39, -141, 76,204, 23,250,242, 99, 82,131,255, 9,140,239,201, 39, 95,103,155, 70,138, -136,103, 6,159,173,192, 37,102, 49, 50,242,154, 81, 60, 4,246,167,211, 1,117, -230, 20, 0,127, 82,160, 70,137,244,202,229, 87,157,161, 71,170, 47,163,230,157, -241,110,141,115, 19, 27, 8, 8,165, 85, 86,142, 72,217, 30, 58, 64, 64,100, 37, -177,157,205,160, 97,159, 12,133, 27,133,143, 36,106, 43,200, 70,194,222,225,124, -203, 56,182, 17, 2,236,138,190,124,156, 73, 9,110,110,113,208,160, 9,127,102, - 98,118, 80, 96,231,196,124,253,249, 1, 64,165,194,181, 9, +// ../Source/Template/GB_add_full_32.c: +uint8_t GB_JITpackage_121 [784] = { + 40,181, 47,253, 96,252, 7, 53, 24, 0,134,100,110, 33,224, 90, 23, 3,212, 55, + 98,221,119,225, 94,213,220, 59, 84,155,121, 81,254, 23, 3,155,192, 90, 1, 5, + 29,195, 24,131, 48,194, 11,103, 0,101, 0, 99, 0,133,171,199,235, 97, 75, 1, + 20,209, 24,190,171, 42,175,190,155,235, 29,150,240,230,162,200,125, 46, 20, 8, + 69,193,145, 64, 40, 46,240,178, 79,141, 85, 54,114, 3,119, 86,184, 73, 20,238, +124,114, 56, 11, 13,179, 45, 39, 15,206,221, 56,197,193,202,155, 89,225,225,234, +210,102,125,141, 79, 63,127, 75,123,238,223,104,223,125, 82, 2,183,117,255, 67, +177,168,162,152, 2,235,247,217, 74, 39, 63, 28,176,194,225, 16,166,137,179,119, +119, 97, 50, 21,140, 71,194,169,124, 36,149, 83, 1,177,139, 64,104,141,222, 33, +207,215,142,248,246,156,253,199, 4, 30,222,118,235,236,138,169,239,134,158,190, + 96,172, 93,166, 63,123,203,112, 87, 84,106,124, 73,130, 23,175, 40,218,210,230, +103, 20,121,139, 42,217, 50, 3, 94,146,215, 62, 50,220,247,242,255,199, 48, 23, +134, 48, 40, 10, 55,244,108,230,254, 40, 47, 6,241, 30,239, 87, 9, 84,187, 98, + 80,218,173,179, 62,105,187,199, 74, 79,176,162,246,210,136,235,233, 86,250,237, +215,195,162,166,117,235, 18,131,167,193,119,101, 52,246,136,191,245, 72,122, 24, +136,191,177,171,228,174, 92, 13,105, 50,221,213,226,125, 29,198, 43,170, 30,120, +254, 44,173,104, 61, 93,187,236,154,140,118, 1,169,113,229, 62,243,231,138,251, + 52, 97,155,157,171, 17, 46, 99,177,251,146, 78,224,190, 93, 16,216, 11,123,153, + 62, 49,165,164,227, 19,182,211, 44, 58,198, 16,237,223, 78,115, 73,110,239,170, + 30,238,211, 20,152,174,202,150, 91,251,224,166, 46, 39, 8, 89, 51,231,156,243, + 27,239,103,165, 57, 59,167,169, 29,201,228,244, 25,210,236,180, 82,232,228,219, + 77, 26,135, 91,112,154,143,140, 30, 36,191,111,184,255,141, 24,132,252,116,237, +215, 62, 18,125, 59,228,195,137,233, 97,148, 29, 89, 95,128,141,168,177, 41, 67, + 68, 34, 34, 90, 80, 82,144, 66, 26, 3, 48,132, 32, 83,102,230, 1, 98,152,112, + 20,101, 64,138, 96, 98, 4, 22, 5, 35, 83, 25, 41,163,164,164,232, 1,145, 64, + 89,129,123,161,172,110, 74, 12,184, 13,189, 4, 23, 36,210,244,101, 68, 36, 68, + 1,165,227, 78,231, 1,240, 5, 48,101,108,197,146, 83,246,109,125,126, 62,185, + 89, 79,249,188, 66,179, 39,178, 7,172, 26, 60,183,223, 79,101,201,143, 54, 6, +159, 21,232, 2,131, 56,141,165, 20,104, 96,126,127, 76, 20,144,253, 78,102, 82, + 36, 69, 0,162, 26,202,253,218, 58, 3,217,152, 10,236, 39,204, 8, 58,235, 34, + 71, 35,159,223, 14,242, 75,238,114,108, 61,137,104,150,135,155, 43,151, 7, 30, + 9,230,237, 18, 88, 50, 81,168, 62, 64, 99, 24,248, 84,209,146,146,203,235,157, + 70,248,100, 0, 78, 61,183,207,249, 14, 20, 25, 20,226,124,142,132, 30,104,249, + 74, 72,252, 31, 41,120, 69,166, 71,134,188, 62,229, 14,185, 80,101,108, 29,184, + 15, 60,212, 74,168, 6,136,144,215, 64, 33, 92,125,111,112, 20, 18, 5, 71, 77, +181,119,129,239, 63,165,149,229,168,178, 43,246,185,126,183,212,158,109,188,142, + 52,235,212,191,201,237, 37, 76,173, 18,193,137,183,214,121, 39,204,141,246,173, +122, 66, 31, 41,204,172, 54,188,100,130,164,173, 90,229, 14,106, 31, 96, 33, 40, +205,156, 28,194,230,160,201,254, 96,210, 74, 5,166,176, 19,124, 50,249, 0,230, +149,210,128, 19, } ; -// ../Source/Template/GB_select_phase2.c: -uint8_t GB_JITpackage_134 [1500] = { - 40,181, 47,253, 96, 44, 27,149, 46, 0, 38, 58,172, 40,176,146, 85, 29,170, 38, -139,138, 75,130, 61,172,200, 6,243,136, 8, 45,127, 75,155, 91, 3,244,133, 30, -235, 74,242,196,141, 13,154, 59,165, 63, 77,239,142, 75,159, 0,160, 0,155, 0, -184,177,212,158,113,253, 78,231,179,230,167, 88,249,229,249,249,109,143,166, 81, -100,125,163,242,112, 90,135,214, 58,150, 31,121,180, 62,211,198,125,109,158,207, -161,207,225,109, 59,234,126,235,241,241,188, 37,169, 80, 46,147,238, 52,105,227, - 19,110, 79,110,102,218,155,102,210,152,182, 54, 55, 19, 11, 6, 14,101,107,143, -219,184, 59,199,185,227,152,157,123, 94, 60, 44,184, 84, 46, 19, 4, 75,229,242, - 73,147, 14,241,244,144, 12,167,196,143,186, 92,191,137, 29,122,226,102,161,179, -242, 58, 36, 52,190,210,122, 58,207,144, 71, 50,129,104,168,203, 48, 74,149,245, -132, 75, 99,217,217, 44,107,237, 53,206, 22, 28, 78, 64, 32,153, 16, 16, 4, 22, -131,176,204,148,146, 30,230, 28,116,102,160,206,180,233,225,152,101,124, 39, 7, -226,230, 70,251,155,205, 68,195,179,109, 77,212,199,189, 85,205,214,123,176, 35, -129, 89,215,230,242,100, 92,111,148,155, 1,211, 20,165,115, 34, 4,166, 89,200, - 60, 26, 0,233, 88,231,242,120,226, 38, 59, 99, 58,191, 53, 14, 29,143,228,135, - 39,111,125,119,249,144,155,223,220,104,123, 30, 82, 97,146,229,115,214, 32, 19, -139, 38, 73,116,113, 46,176, 44,206,217,117,152, 91,133, 73,124,117, 27,159,181, -121, 51,238, 59,240,231,204,224, 32,211,249,140,105,213,226,115,115,252,255, 37, - 33, 18, 9,197, 33,106, 24,126, 43,119,207, 11,113, 31,125, 42,246,228,105,211, -122,221,176, 76, 78,161, 80,158,177, 81, 41,237, 87, 53,204,167, 13, 80,198, 45, - 20,156,108,148, 30, 51, 78,102,173,195, 67,120, 8, 58,132,150, 61,220,104, 31, -102,209, 74,183, 56, 25, 67, 68,204, 34, 39,195, 46, 7, 60, 71,159,211,250,173, -179,188,109,235,251,243,154, 63,129, 96,130, 20,207,213,231,141, 78,238,153,131, -142,121,205,216,227, 95,189,220,105,157,152,111,100, 84, 89, 30,116,235,199, 43, - 61,238,186,157, 42, 60,132,162, 50,152, 87, 94, 73, 22,168,205, 79,210,209, 38, -181, 23,218,186,211,240, 39, 9,111,178,111,151,179, 47, 68,251, 74,123,251,213, -203,143, 67, 94,187,205,252,234,214,229, 3, 87,102, 28,146,107, 51, 17, 10,200, - 88,168,145,202,226, 98,136,208, 52, 52, 72,216,195,169,177,228, 74, 33,236, 79, - 28,221, 76,251,158,164,149, 67,206, 13,211,143,250, 44,187,201, 35, 52, 53, 95, -155, 9, 57, 32,146,152,184, 58, 0,169, 79, 75,250,200,106, 95,127, 25,234,182, -203,245,243,190,242,175, 92,193,126, 82, 29,132,142, 62, 40,221, 34, 66,104, 50, - 91, 51,198, 49,135, 10,137,142,198, 69, 68, 62,125,163,233, 96, 94, 75, 70, 40, - 74, 20, 69,150,104,190,250,134,101, 89,168,204, 45,123, 1,129, 87, 10,183,236, - 57,219, 13,146,222, 32,145, 93, 19,155, 72,145, 97,158, 11,219,152, 17,175, 0, - 62, 99,204, 96, 94, 61,218,238,161,122,199,244,139, 14, 22,113, 73,223,154,206, - 63,129, 89,168,161,173, 51, 66, 35, 34, 18, 36, 73, 82, 72,107, 97,136,192, 40, - 40,153,244,204, 3,130,192, 44,149, 81, 36, 66, 24, 33,198, 56,129, 33, 2, 67, -130, 34,129,136, 72, 32, 35, 18, 69,129, 40, 29,144,224,146,127,198,252,216, 10, - 77,130,142,224,155, 8,120,216,247,106,212, 23,191, 87, 83,241,112,149,227, 98, -228, 67, 35, 21, 10, 99, 88, 34,173, 23,152,242, 16, 77,186, 42, 48, 51, 61, 21, -110,122,204, 25,234, 15,151,255, 0, 35,158, 49, 99,131, 17,195,143,180, 56, 31, - 1, 56,218, 77, 13,117,127, 31,220,110,193, 84,113,141,143,243,106,245, 35, 31, -104,163, 19,218, 46,140, 64, 60, 20,227,210,115,175, 34,115,234,121,247,132,125, - 79,149,175, 84, 91,191, 45, 97,215, 2, 54, 17, 32, 73, 41, 82,221,131,237, 60, -179,196,165, 23,226,169,214,203, 75, 19,155,142, 57, 90, 85,251,211, 39,246,101, - 71,134,245, 26, 69,145,134,197, 86, 14,185,124, 39,197,200,239,189, 50,164,204, -244,249, 76,219, 97, 4,253,235,131, 20,146, 44,191, 21,190, 61,249,189,123,167, -188,162,199,245, 22,248,232, 74, 98, 23,172,187,223,144, 8, 8, 93, 26,164,237, - 61,152,205,137, 28,145, 12,192,198, 95,144, 65, 98,227,149,207, 33,227, 54, 44, - 2,195, 33,252, 84, 92, 50,183, 62, 63,134,244,250,102,156, 97, 65, 40,190, 21, -116,218,156,164,106, 30, 44, 61, 36,213, 61,195,200,120, 38,254, 84,136,251, 75, -211,155,187,139,143,147,128,125,150,142,146,229, 78,192, 31,122,140,129,207, 3, - 97, 64,187, 47,239,252,197,182,151, 10,149, 79, 40,224, 39,206,144, 39, 40,193, - 71, 25,184,149, 97,171, 64,201, 0,177, 34, 42,123,160,122, 30, 38,189,211,132, - 4, 72,180, 25,151,156, 1,118, 32, 82,131,233, 80, 39, 62,254,122,230,148, 1, -170,195,229,207, 45,198,162, 54,102,234, 90, 21, 33, 38, 14, 69, 86,130,125, 27, - 97,184,151, 86, 61, 30, 81,228,148, 8,125, 34,106,196, 83, 43,252, 99,175,119, -166, 21,207,122,211,113, 95,149,250, 82,198, 37,253,244, 39, 16, 76, 60,169,138, -243, 85,158,110, 9,236,242, 78, 72,214, 94, 43, 9, 63,184,190,103, 36,208, 34, - 94, 74, 15,188,109, 5,242, 85,155, 25,220,221, 97, 68,142,206,236,154,182,207, - 75,184, 17,163, 13, 74,141,158, 39, 14,127, 36, 92,157,138, 92,149,195,218,194, -120, 97,100, 80, 26, 21,167, 95, 83,185,196, 0,131, 53, 38,226,209,127, 30, 74, - 68,136,121,173, 5, 28, 27, 6, 98,194, 2,237, 38,165, 33,101,214,160,242,209, - 27, 18, 46, 21, 81,220, 64,170, 24,227, 7,228,135, 35, 32, 98,126,200, 11, 2, - 3, 83,207,133,108, 56,252,185, 73,106, 2, 69, 45, 66,133,188,242, 72,172,236, - 89,231,143,232,194, 1, 81,141, 78, 51, 74, 59, 50,180,136,103, 75, 75,248, 6, -123, 61,129, 69,157, 91, 48, 32,188, 29,219,194,160,179, 23, 77, 10,104, 28,201, -153,162, 15, 59,115,219, 18,219,101,131, 79,186, 84,130,125,137, 40,196,153,217, -162,247,142,125,253,129, 49,159, 91,192, 95,129, 6, 54, 9, 67,195,142,138,237, -220,238, 85,152, 23, 83, 83, 51,152, 98,131, 9, 4,195,253, 95,119,180,190, 72, - 68, 11,145, 11,104,120,140,246,126, 11,220,140, 14,186,216,100,193, 18, 67,161, - 21,115, 26, 4,200, 12,237,179, 8,239,188, 66,102,211,245,124,131,181,237,250, - 72,213, 26,148,161, 68,220, 94,211,111,169,144, 65,173,100,194,135, 18, 40, 1, - 92,153,224,168, 36,207,141,123, 64,253, 80,176,197, 37, 26, 73, 63, 33, 76, 89, -196,213,208,166,169, 80,153, 9,231, 81,175,190, 99, 60,180,152,106,101,117, 2, +// ../Source/Template/GB_add_full_33.c: +uint8_t GB_JITpackage_122 [467] = { + 40,181, 47,253, 96,128, 4, 77, 14, 0,118, 24, 77, 33, 0,181,142, 1,106,162, +134, 21, 44,222,168, 50, 88,220,147, 1, 16,141, 12, 90,165,150,168,230, 40, 48, + 58,204,210,255,187, 63,188, 66, 0, 69, 0, 65, 0,191,246, 21,213,198, 7,242, +164,111, 20,193,123,249,181,201,200,252,114,213,143,132,221,186,230,205,142, 55, +180, 81,185,130,227,245,124,223,203, 95,183,186,126,190, 11,235,181, 43,166, 64, + 50,180, 63,113, 56, 80,140, 67, 30,237,186, 74,231,227, 89, 70, 97, 89, 22,249, + 25, 20, 95,193, 79,213, 25,160,232,196,111,180,146,255, 63, 69,153, 40,194,192, +128,217,143,171, 89, 62,161,237,245,238, 24,218, 14,130,217, 29, 90,238, 70, 48, + 77,163, 50,232,172, 72,219,109, 45,223,227,247,185,150, 99, 44,127, 29, 12, 4, + 3,134, 40, 16, 12,183,184, 42,146, 18,153, 23,200, 51,110,129,174, 91, 93,123, + 39,115,238,145,213,189,123,202, 36, 16,148, 66,238,139,231, 43, 78, 56,227,185, +250, 79, 89,220, 29,235,184, 43,139, 67,157,253,184,125, 43,164, 90,181,187,106, +245, 55, 82, 48, 20, 94,139,222,177,197,184,234, 26, 20,117,242,110, 23,106, 84, + 28,233,164,155, 10, 69,251,212, 21, 87,110,211,250,101, 92, 39, 20,200, 4,179, + 65,188, 11,176, 27,219, 83, 22, 90, 44,122,224, 89,171, 94,161, 56, 54, 72,198, + 49,167,167,250, 84,220, 18,247,165,242, 87,254, 53,146,191, 64,183, 86,151,180, + 17, 60, 32, 80,134,144,152,153, 7, 73, 0,168,230,200,129, 53, 88, 5, 39,184, +126,250,130,105,101,162, 64, 2,105, 92, 0,192, 12,248,119, 43,113,193, 28, 53, +248,158, 8,110, 0, 70, 89,213, 96, 14,139, 85, 64, 40,180,202,193,231, 5,115, + 7,156,113,147, 21, 39,144,163,125,251,197, 92,137,177, 23,172, 13,216,122, 64, +134,149,121,249,157, 93, 44,112,226, 0, 99,244,217, 47,152,195,175, 11,226,134, + 54, 3,161, 60,134, 6,235, 99,161,186, 13,126, 86,117,107, 63, 56, 26,231, 78, +180, 24, 84, 9, 70, 57, 3,201, 1, 53,131, 38,230,153,233, 54,199, 87,203, 27, + 65, 5,176,181, 40, 90,220, +} ; +// ../Source/Template/GB_add_full_34.c: +uint8_t GB_JITpackage_123 [793] = { + 40,181, 47,253, 96,255, 7,125, 24, 0, 22,228,109, 40,224,176, 88, 7,248,157, +220,153,122,131,216, 76, 64, 6, 11,134, 41,119,105, 46,152,247,217,218, 79, 62, +167,183,121,246,197,147, 34,101, 48,195, 48,140, 23, 2,101, 0, 99, 0, 97, 0, +141,107, 95,147,225, 49,145,128, 25,144,221,185,141,251,225, 56,103, 24,243,225, +148,190,187, 2, 73, 68,242, 64, 32,136, 72, 30, 93,208, 29,158,157,152,240,129, +119,141, 44,111,155, 9,113,151,121, 12, 85,102,227,173, 76, 50,157, 39, 39,243, +220,182, 26, 25,164,241,141, 22, 31,207,191,187,247,141,175, 46,107,188,245,169, +146, 30,101,253, 19,131, 2, 72, 41, 7,131, 82, 70, 88, 85, 14,129, 60, 15, 8, + 36,145,198, 77,232,214, 57, 28, 46, 22,135, 8,133,140, 69, 66, 1,102, 44,216, +228,144,164,141,122,157,114,251,233,145, 83,183,208,255, 39,186,102,142, 25, 67, + 77, 57,178,179, 11, 63,170,208,130,176,140,125,179, 12, 55,156,138,157, 54,165, +241, 70,123,187,217, 30, 55, 24,241, 90,128,223,237,147,220,178,220, 13,255,255, +231,225,120, 34, 3,146, 71,103, 87,180,239,147,219, 19,155,185,182,180, 60, 2, + 26,242, 77,151, 8,220,152,177,197, 26,142,185, 74,145, 78,199,168, 19,106, 13, +223,169,247, 53, 41,126, 48,227, 59, 49, 77,224, 25, 26, 28,228, 58,159,113,221, +174, 7,155,178, 90,112,203,176,130, 20,152,139,245,170, 49,237, 14, 72,109,218, +121,192,237,221,141, 52, 94, 24, 90,208, 49,151,233,209,134, 39,180,119, 25,213, +157,102, 94, 64,175, 96,194,187, 48, 84,151, 30, 51, 75,227,169, 7,207,211,209, +161,185,155,127, 47,206, 75,212,159,173,248,156,210,163, 76, 63,245,103,239,150, +175,238, 60,203,154,139, 52,221,137, 55, 79, 23,184,198,178, 4,146,197,184, 63, +206, 57, 39,107,223,193,103, 49, 16, 66,161,162,221,101, 15,250,131, 11, 85,229, +212, 53,120,102, 57,210,220, 4,122,199,182,231,206,242,101,157, 24,229,218,167, +127,186, 69, 5, 69, 78, 2,119,205, 77,172, 1,128,146,168,145, 45, 67, 84, 34, + 34, 82, 80,144, 36,149,198, 48,132, 24,164,174,204, 3,146,128,128,146,101, 36, + 68, 20, 49, 4, 82,129, 76, 77, 82, 82, 30, 37, 69, 15,153, 6, 92,130, 0,143, +192,108,143, 45,156, 82,133,166,196,121,166,132, 6,202,199,166,221,147,237, 11, +181, 2, 5,200,253,154, 7, 88, 11, 32, 32, 99, 56, 54, 42, 43, 85,159, 96,157, +194,122,138,231, 21, 52,171,128,124, 32,180,137,120,253,151,149, 30, 39, 89, 76, + 61, 43,232, 5, 18, 77, 34,165,164,106, 64,226,221, 49, 33, 67, 8,118,164, 9, + 33, 20, 39, 49, 25,170,252, 9,181,199,108, 31, 5,182, 75,210,107, 54,108,110, + 37, 11,185,243,224,146,187,156,236, 65,211,199, 68,106,214, 2,187, 41, 63, 9, + 78, 18, 12,248, 37,235,146, 60, 33,221, 16,238,240,124, 70,233,182,164,220,239, +119,154,206,147, 65,104,253, 97,191,186, 3, 73,100,200,164, 16, 11,134,196,123, +194,243,116,144,212, 64, 34, 80, 17,142,143, 60, 60,232,147,135, 28,101,242,255, + 3,164, 76,130, 99, 22,106, 43,213, 44, 9,234, 26, 62, 12,213,215,228,197, 19, +126,217, 49,201,132,220,140,146, 44,238, 78, 73,201,168,216,232,224, 45,150, 23, +116,207,204,164,209, 73,246,242, 89,210,248,130,114, 79,109, 64,233, 91,228, 12, + 19, 58,140,166, 80,249,132,118, 40,243, 81,249,171,192,123, 73,233,148, 69,107, + 26,218, 96, 40, 84, 71,131, 77,164, 92,130,228,126, 48, 7,205,251,131,105, 43, + 53,157, 34,111,240,137,152, 2,244, 85, 74,187, 77, } ; -// ../Source/Template/GB_select_positional_phase1_template.c: -uint8_t GB_JITpackage_135 [1796] = { - 40,181, 47,253, 96,176, 36,213, 55, 0, 70,187,176, 40,176, 86,117, 14, 20, 56, -163, 9,104, 20, 95, 66,172, 50,227,177, 72,160, 20,174, 11,111,178,224,100,179, -230, 36, 87, 51,165,119,252,160,255,160,243, 83,130, 11,161, 0,164, 0,164, 0, - 89,215,107,185, 14,252, 98, 7, 8, 87,246,175,149, 51, 19,201,206,218,179,183, -183,175,201,120,248,203,162,255,127,165,114, 82,201, 96, 10, 40,230,178, 72,225, - 55,149,123,235, 43, 89,179, 40,182,146,179,246, 80, 25, 15, 31,140,198, 34,149, - 45,131,110, 47, 39,106,208, 61, 15,126, 50, 40,200, 20, 80, 9,154, 76,193, 45, -153,244,201,182, 72,124, 56, 6,190,132,187,115,212,161, 79, 23,244, 52,112, 52, -214,136, 13,219, 26,233,197,183,191,171, 98,233,228,199,221, 9, 74,149,195,235, -220,110,185,235,149,252, 43,191,153,125,195, 55,122,116,196, 23,211,176,141, 28, -197,188, 40,103,223,182,147, 98, 55, 99,143, 45,214, 16,113, 2,130, 10, 69, 64, - 16,149,187,216,232,147, 30,123, 94,172,145,158,142,230,227, 72, 20, 43, 13,232, -234,188, 25,139,156,203, 34, 95,246,185,172, 70,182, 47,169, 81,246,199, 55, 31, - 72, 17,178, 26, 0, 48, 58,229, 71,162, 53, 22, 1,173,135,170, 58,107, 51,163, - 83, 2,117, 62, 26, 18, 71, 65,121,231, 2,193,207,133, 93, 22,231, 22, 11,148, -254,208,241, 52, 80, 92, 76, 0, 72, 15,129, 58,215, 5, 45, 3,222,204,126,167, -252,253, 62, 62, 13,140,204,186,109,243,147, 40,182,246,233,235,122, 63,121, 93, -175,116, 58, 95,101, 44, 34, 37,123, 34,177,155,227, 32, 93,160, 40,228,188,224, - 3, 53, 94, 75,109,103,227,149, 24,252, 37,122,156, 99, 29, 99,240,213, 25, 98, -215,214,222,186,223,150,231,115,105,234,161,165,251,213,133,115,254,234,213,110, -187,162, 92,231,198, 31, 11, 41,253,202,119,139,231,209,204, 46,219,243,226, 79, - 20,222, 91,107, 18,164,251,196, 73,128, 64, 64, 88,124,250,116, 49,121, 44, 80, -136,109, 40,162,227,241, 56,160,169, 87,183, 28,100, 17,114,232,120, 58, 23,150, -209,121,168,176, 48, 44, 64,210, 53,150,189,177,246,173, 3,168, 79,109,117, 75, -240, 37,204,221,204, 23,164,111,156,179,245,226,246,234,154,252,230,252,160,162, -137, 4,201,170,107, 46,191, 38,121,234, 62, 81, 40, 29, 98,159, 99,144, 90,186, -105, 35, 93, 46, 10,239,206,121,230,213, 59, 73, 99,173, 63,145,196,222,167, 49, -151,217, 91, 36, 6, 37,171, 69, 14,149,139,141, 53,249, 5, 68, 47,229,178,185, -230, 12,167, 23, 16,176,109,229,200,252,141,220,167,140,244, 12,232,113, 5, 15, -205, 69,122,133, 69, 97, 97, 10, 30, 28,213,141,239,234, 28, 57, 79,109,225, 10, - 90,223, 95,217, 21, 76,157,178, 59,140, 58, 92, 36,251,102, 95,189, 86,106, 92, -251, 11,169, 30, 26, 10,131,201,112,216,232, 97, 96,156,239, 71, 83, 28, 60, 58, -142,211,141,219, 93,239,179, 92, 69,211,171, 96, 46,173,113,170, 46,109,111,214, -143, 41,185,116,196,156,107, 63, 16,234,159, 44,153, 87, 11, 18, 5,192, 17,201, -150, 29, 79,153, 44,219,152,157,187,243, 99,100,202,203,133,106, 46,211,214,217, -188,167,167,204,221,116, 9, 7, 16,236, 92,152, 6, 8, 86, 88, 13, 88, 40,129, -198,168,193,161, 66,102, 68, 68, 68, 68, 36, 73,146, 12, 7, 65, 12, 66, 16,115, - 88, 66,106, 7, 50,136, 28,143, 66, 12,138, 80, 12, 2,209, 16, 65,132, 16, 98, - 4, 68, 96, 4,226,136,140, 80, 32, 97,130,106, 14,136, 98, 60,242, 43, 5, 15, - 63,243,240,209,209,252,192,130,185,241,127,131,219,178, 43, 37,243, 19, 44, 49, - 82, 38, 64,166, 97,111,211,207,125, 64,191,225,103, 99,233,193,154,201,129,232, -107, 14,186, 54,195, 4,161, 19,205,234, 47,249,166,215,139,141,197,224, 49, 40, -181, 48, 55,216, 62, 40,199, 56,216, 5,189,212,130,208,135,202,122, 23,150,249, - 92, 13,101,213,189, 1, 37,127,161, 48,157, 26, 54,197,207, 11,247,243,245, 42, -245,241,230,176,193,246,219,207, 76,114, 68,118, 48,161, 7,184,196, 29, 40, 34, -249,126, 18, 94,173, 89, 51,154,118, 97, 45, 0,250, 35,234, 12,160,109,148,225, -244,120,105, 0, 88, 10,205,254, 2,140, 85, 38, 70,104,247, 6,211,240,147,138, -183,100,211, 37, 63,182,110,147, 32,212,156,196, 30,142, 99,126,188,201,150,217, -197,236, 72, 53,115,121,207, 54,212,163,194,181,131,192, 11, 12, 95, 5,103,224, -160, 85, 64,244,208, 49,188, 98,212, 12, 99, 68,180,138, 0,114,141,169,199,186, -219,146, 62,182, 47, 59, 42,103,116,198, 8, 68, 48,237, 43, 48,193, 55,126,120, -197, 16,104,153,177, 19, 88,171, 9,165,190,220, 48,161,195,146,157,118, 41,121, - 75, 84, 28, 26, 8,168,218,236, 82,254,101,192, 15, 62, 92,156,141, 64,149,142, -124,237, 91,164,177, 30,164, 92,141,236,252, 71, 68, 67,129,101,150,202, 68,103, -243,195,206,160,190,188, 52, 78,104,233, 64, 68,204,213,142,106,123,129,156, 57, -205, 57,148, 81, 7,214, 51, 88,217,125,123,114,173, 13, 85, 35,116,239,180, 57, - 15,243,217, 80,255, 97, 23,179, 81,183, 56,132,235, 71,199,123,225,106,215, 11, -206, 19, 71,169, 42,116, 81, 67,237,148,204, 38,234, 15, 39, 68,198,126,161,194, -214,206,210, 4,220,225,113,185, 52,129,167,173,121, 34, 71, 63, 85, 88,201,237, -179,196, 83, 42, 35,222,166, 10,198,227, 56,240, 13,234,129, 1,219, 11, 31, 27, - 27,194,188,101,200, 98, 63, 73, 95,128, 29, 46, 65,177,125,236, 13, 1,180,121, - 89, 31, 61, 90, 24,252, 22,147, 55, 25, 74, 46, 82,111,189,242,126,221,197,182, -237,210,196,183,152, 69,213, 28, 34, 36,205, 56,233, 17, 45,132,107,201, 33, 44, -109,248,194,202,132,105,151,157,104,199,239,162,223,216,193,171, 42, 95,116, 34, - 64, 20,153,130,132,192,228,132, 13,126,144,244, 21,174, 27,177,169, 93, 51, 27, - 87,120, 12,109,148, 77,161,181,119, 74, 12, 87,239,117,121,169,216, 10,224,144, -167, 60,220,103,169, 62, 17, 76, 90,168, 58,237,231, 14,100,183, 8, 54,232,195, - 49, 39,123,169,197, 34,186, 28,234, 8,212, 60,157,172,151,177,116, 59,110,243, -118,142,185, 65,252, 14,248,214, 67, 11, 84, 83, 20, 99,163,226, 92,238, 96,128, -171, 11,180,112,200, 75,193, 65,133,215,165,240, 87, 28, 38,120, 41,216,236, 77, -186, 88,130,254, 79, 72, 71,104, 11,227,205,247,235, 77,128, 66, 33,193,214, 75, -137,124,199,225, 96,193,122,139, 84, 50, 50,184,157, 44, 72, 21, 82, 37,146, 12, - 50,221,229,156,246,121, 17,128,231,206,200,219, 40,196, 13,239,235, 22,145, 72, - 61, 70,218,155, 92, 40,176, 69, 33, 64,125,231, 40, 67, 52,194, 10, 9,184, 68, -107, 7,248, 16,103, 10,255, 43,211,124, 69, 95,247, 99, 72, 93, 46, 10,184,181, -167,203, 30,206,108,141,197, 98,120, 15,248, 32, 92, 22,251,134,157,206, 68, 63, -142,151,146,112,198,183, 69, 38,231,229, 59, 77,105,111,143,112, 95,181,188,242, - 30,176,161,146, 11,150, 77,242,201,112, 71,143,233,143,175,204,117,200, 97,192, - 17, 5,182,206,167, 96,129,213, 80, 48,130,119,175, 23, 24,250,211,202, 71,255, - 64,217,182, 69, 80,129,148,162, 70, 67,143, 40,150,114, 12,102,156, 45,170, 80, - 2, 41,213,176,127,174, 14,190, 38, 77,124,227,171,245,177,209, 45, 91,124,125, - 91,212,174,203, 23,170,250,222,145, 26, 11,172,157,199, 67, 79,193,255,233,171, -232,253,171,113,122, 58, 19,196,177,222, 57,201,175, 16,116, 25,187,119,165,191, - 86, 82,196,222, 18, 9,134, 92,150, 94, 76,202,173,159,105, 17,196,239,164,135, -216, 68,251, 42,116,212,116, 45,146,127,228,196,101,142, 50, 17, 98, 44,185,246, - 56,242,106, 38, 77,216, 60, 69,241,172,113, 90,207,200,136, 74,249,254,211, 18, - 25, 97,140,155,117,227,109, 23, 25,110,112,121,229,192,113, 42, 52, 96,202,114, - 15,217,229,136,237, 78,134, 41,236,243,216,196, 32,148, 34, 19,219,166,211,249, - 98,111,102, 28, 9, 66, 64,124,168, 67,240,152, 40, 21,146, 72,206, 93, 31, 52, - 79, 63, 51,133, 69,102,206, 67,130,187,107, 53, 74, 29,107, 19, +// ../Source/Template/GB_add_full_template.c: +uint8_t GB_JITpackage_124 [667] = { + 40,181, 47,253, 96,161, 11,141, 20, 0, 22, 93, 89, 32,224, 88,231,136, 23, 28, + 41, 58, 98,173, 45,214,108, 48,104, 98, 82,102,252, 48,229,250,192,247, 12, 74, + 25,204, 48, 8,230,189, 81, 0, 78, 0, 77, 0,109, 26, 27,183,231, 56,123, 35, +235,249,189,243,150, 34,113, 72, 24, 26,136, 67,226, 4,110,112, 11, 91, 19,149, +252,154, 71,121, 57,252,236,231,150, 54, 51,153, 39,210,177,226,104, 60, 82, 81, +235,108, 75,154, 60,182,143,252,145, 21, 38, 36,242, 59, 58,211, 43,126,157,183, +123, 75,221, 86, 43,221,178,202, 49, 76, 26, 48, 44, 53,244,114,127,111,220, 94, +126, 23,254, 34,136,244,203, 86,244, 49,252,216, 34,202,179,240, 91,244,122, 75, +225,233,145, 91,141,237,105,236,193, 51,216,184, 71,241, 57, 4, 53, 39, 97,250, +189,189,207,127,201,195,149, 48,180,199, 81,113,222, 49,182,237,108, 6,187, 90, + 12,141,193,230,108,198, 16,146,116,174, 26,158,137,166,205,199,197,231,109,193, +200,160, 77, 73,137,100,110, 28,205,210,117, 5, 59, 27,144,242, 10,235,195,252, + 17,104, 61,234,189, 49,245,196, 99,235,229, 91, 21,164, 15,177,237, 44, 87,246, +194,231, 33,143, 28,195,254, 95,202,235,210,207,102, 49, 60,234, 94,202,217, 28, +102,241, 67, 97,250, 30,233,113, 82,118,182,130, 29,144, 43, 57,255, 11, 4,157, + 93, 40,230,204, 26,119,182,130,137,198,136,206,212,124, 44, 25,182,207,254,152, +183, 87, 0,238, 58, 40, 0,239, 90,186, 28,120,111,102,205, 91, 17, 66, 38, 16, +156,178,205,193, 83,153,201,198, 51,193,108, 31,203, 37,187, 74,181, 97,187, 77, + 66, 38, 3,218, 28, 2,185,102,240, 79,128,133,160,241,173, 35, 50, 34, 34, 41, + 44, 40, 72,105, 56,112, 70,132,134,174, 27,240,201,202, 13,133,191,244, 56, 61, + 0, 77,107,154,171,193, 38, 32, 77,251, 7,187,210,238, 93, 49,200,116, 26,246, +207,225,158, 51, 44,186, 65,147,136,196,135, 89, 1, 14,146,176, 7,205,113,162, + 33,254,247,126,140, 13,189,153, 45,134,243,178,253,172, 12,140,139, 64,229,200, + 30,188, 57,115,199,136, 33, 22,184, 3,156, 82,226,118, 88, 64,116, 24,155, 15, + 70, 59,118, 54, 0,158,208, 41,183, 5,143, 31,223,221,193,113,255, 16, 51, 54, +249, 70,140,107,104, 58,164,105,142, 57, 83,226, 33, 36, 2,114, 33,236, 76,201, +158,100, 54, 27, 5, 36, 76, 56,100,238,181,166,130, 22, 11,199,176,125,175, 26, +203,224,149, 17,241, 16,217,116,129,154, 1,126, 48,112, 68, 64, 35,178,220,108, + 22, 42,219, 38, 84,123,146,236, 6,164, 50,217,181, 99,234,116,172,245, 5, 8, + 79,210,201,168, 44,108,190,147, 72,148, 29,156,236,210,225,160,112, 44,104, 32, +230, 83,232, 98, 27,203,234,197,143,240,225,174,225, 60,203,214,167,109,129, 13, + 90,152, 54, 12,155,198, 64,123, 92,143, 96, 20,104,234, 78,129,166,115,203, 45, + 84, 64, 75,181, 10, 19, 29,178,176, 93,147,166,206,207, 76,119, 64,173,240,255, +184,252,185,254,138, 2, 61, } ; -// ../Source/Template/GB_split_bitmap_template.c: -uint8_t GB_JITpackage_136 [585] = { - 40,181, 47,253, 96, 81, 5,253, 17, 0,198,155, 87, 32,224, 26, 29, 3,212,159, - 96, 2,110,167,154,216, 43,110, 92,212,176, 94, 82,243, 32,143,234,249, 7, 95, -141, 24, 35, 69, 6,135, 78, 0, 77, 0, 79, 0,162,252, 32,129, 48, 32, 58,198, -193,128,248,246,105, 31,104,203,162,148, 19,228, 93,225, 86,141, 22,244,193, 71, -106, 38, 33,166,217,226,168, 58, 83,252,169,219,174, 62, 89, 21,237, 86,237,107, -223,178,121,211,241,167,191,163,110, 42,226,177,110, 15,211,113, 91,147,183,173, -136,181, 55,177,188, 80,200,186, 66, 33,146, 78, 62,242, 91, 69, 22,253,246, 20, -139,125,173,166,178,241, 84, 50, 30,232,130, 57, 85,240,100, 1,242, 53,220, 7, - 47,253,252,174,168,255,127,150,193, 50, 3, 1,209,213,240,163, 88,222,145,171, - 61,217,125, 43,120,233,170,190,245,179,154, 46, 68,233, 16,192,202,202, 85, 87, -207,245, 14, 81,214,115, 49,215,155,154, 6,105,205,225,246,198,213,125, 86,157, - 46, 86, 81,164,153,226,227, 81,117, 58,162,104,198,134, 71, 62,241,156,115,182, - 54,173,210, 17,129, 60, 9,186,104, 58, 31,143,243,185,220,147, 5,111, 5,204, -105, 50,201,239,207,230,173,107, 22, 52,182,190,170,239,187, 32,242, 22, 29, 95, -119,180,224,252, 30, 1,153, 92, 1, 34,215, 34,101,221, 44,198,113,155,196, 31, -136, 58,156, 86,107, 30,182,105, 63,149,100,105,226,209, 77,147, 94,112, 41, 45, - 78,177,236,185,239, 76,183,182,244,145, 75, 91, 72, 61, 2,145, 91, 24,199, 65, - 38,214, 54, 7,167, 93,149,221, 95, 38,125,251,236,166, 91,107, 85, 92,129, 53, -252,244,183,100,160, 33, 69,199, 8, 13, 73, 10, 10, 10,146, 74,107,112, 68,166, -204,186, 1,211,154, 92, 75,100, 32,145,252,177,148,189, 4,166,225, 45,143, 64, - 72, 20, 6, 8, 6,175,205,168, 5, 39, 64, 52,105,217, 23,136, 27, 62,163,202, -159, 37,179, 81,198, 22,100,179, 52,130, 41,154, 28,145,101, 96,246,131,166,150, - 76, 69, 25, 95,150, 35,180,172, 60, 76,100,250,140, 75,244,186,234,249,160, 45, - 1, 15,106,168,206,139,124,173, 29,244, 97, 45,173, 70, 58, 96, 54,248,216,176, - 80,247,179,106,133, 32, 20,242,190, 32,143,193,252, 28, 69, 9,137,110, 4,131, - 57,192,218,179, 82, 13,108, 62, 70,181,131,173,173,253, 89,213, 95,104,157, 5, -240, 41, 87,105,177,227, 24, 13, 0,220,225,200, 38, 35,201,162,107,129,217, 85, -231, 22,238,186,253,165,188,221, 95,100, 93, 45,244,195,133,150,198,137,169,100, -147, 28, 81,115,208,236,168,204,180,110,131,149, 92, 83, 84,226, 32,242,208, 81, -111, 95,209, 59, 6, +// ../Source/Template/GB_add_sparse_M_bitmap.c: +uint8_t GB_JITpackage_125 [1607] = { + 40,181, 47,253, 96, 93, 54,237, 49, 0,214,250,170, 40,176, 84, 85, 29,228, 88, +159,138, 65, 82,179, 28,203, 38,133,217,193, 66, 60, 66,189,254,137, 20, 5,120, +173,109, 3,134,230, 39,252, 83,250,211,228,236,120, 6,164, 0,149, 0,159, 0, + 37, 81,100,225,178,197,222, 87, 62, 66, 42,239,151,179,239,102,252, 81, 9,186, + 86,229,169,108,235,175,189,214,185,118,215,212,235,108,246,198, 30,146,221,115, +231,183,224,121, 43,194, 88, 10, 42,205,101,210,131,207,220,158,219,204,181,181, + 78,165,113,237,108, 78, 84, 54, 30, 44, 44, 90,131,110,227,190, 56,206, 28,200, +188, 56,165,240,148, 65, 1,166,160,162, 64,128, 41, 56, 37,147, 78,225, 9,146, + 15,183,192,135,184,108,187,137,113,202, 3, 39, 34,231,201, 11,145,241,116,158, +159, 39,186,117,234,182, 23,226, 46,175, 78,197, 9,110, 28,172, 6,202,135,202, + 72,213, 51,158,236,242,196, 46,235,106,124,165,135, 47, 77,147, 87,132,248,229, + 18, 85, 46,151,159,146,245,220, 32,207, 72,116,172, 11,131, 3, 17, 89,242,231, +229,207,190,218, 87,223,236,155,100, 98,220,217,167,245,125,158,221,205,204,101, + 87, 54,190,188,121,164,111,235,177,166,201,247,109, 14,164,206, 60, 45,245, 70, + 56,191,165,251,178,236,218, 58,127, 59, 75,122,173, 39,245, 60,105, 49,149,207, +248,235,222, 92,126,109, 80,111,243, 90,227,239,141, 29,135,164, 8,149,215,232, +103, 57, 28,130,101,247, 80,149,185,246,204,230,182,245, 67,183, 65,199,243,154, +229,114,119,199,147,195, 0,248,255,248,233,240,155,191, 2,176,143, 83,245,219, + 92,158,253,107,183, 83,148,126,219,255, 71,209, 3,148, 15,239,211,161,215,241, +249,233,115,154,222,112,239,154, 99,190,185,244,140, 37,141, 51,227, 59,183, 11, + 78,236,155,205, 73,234, 71, 94,158, 65, 32,176, 94,178,213,166,160, 15,252,243, + 77, 20,227, 77, 76,142,231, 5, 47, 56, 30, 15,180, 80,176,107, 47,141,107,107, + 82,122,174,141,251,122,199, 61,111,174,125, 74,229, 27, 36,185,119,155, 61,190, + 54,103, 13,162,242,211, 38,104,106,117, 62,127, 24,165, 1,160, 92,155,230,148, +238,212, 8,134, 7, 86,150,128,192, 41,150,119, 10,179,164, 91, 87,220,252, 51, +187, 83,107, 49,205,231,167,231, 43, 51,190, 54,183,188,231,235, 32, 33,215, 25, +121,156, 50,165,174,243, 91,107,245, 11, 16, 9, 81,116, 18, 99,140, 16, 66,152, +109,189, 38,111, 77, 31,127,237,225, 73,140, 49,198, 24, 29, 14, 61, 8, 33,140, + 80,122,211,201,137, 52,200,237,238, 25, 76, 1,140, 12, 48,206, 72,240,110, 44, +179,208, 0, 97,110,153, 27,131, 16,194,248,140, 2,118, 82, 93, 54, 95,241,226, +176,168,168, 30, 79,174,164, 50,195, 23, 69, 69,135, 34, 67,114, 30,149, 84,252, +184, 26, 30, 67,217,235,250,120, 38, 96,162,232,100,154, 42,111,155, 90,165,124, + 78,205, 83, 85, 37,221,162,130,227,233,104,112, 98,140,152,165, 78,141,192, 83, +159, 41,165,195,235, 1, 86, 76, 84,120, 58, 85,213,152,182,230,211,148,157,128, +227,129, 17, 22,215,195, 3, 12,136,159,224, 55,175, 46, 61,198,129,119,168,113, +185, 50, 36, 34, 34, 35, 34, 73, 82,144, 52, 6,145, 12, 65,138, 49,232, 32, 44, + 15,130,112, 68,142, 97, 12, 67, 33, 8, 69, 64, 16, 33,132, 16, 43, 32, 2, 34, + 64, 2, 34, 32,132, 48, 33,137,148, 92, 29, 33,136, 88, 98, 60,251,199,249,188, + 14, 44,133, 76,245, 61, 65, 32,199,201,187, 42,124, 83, 78,136,167,199, 5, 83, + 90, 68,248,210, 84,120,213,182,231,187, 79,252,233,143, 79,203, 29,213,233,143, +202,160,220, 7,222,244,199, 39,154,254,155,251,113, 85,251, 66, 85, 57,134,138, + 66, 72, 67,155,158, 43, 53,164, 90, 82,233,157,132,248, 44,129,157, 96,246,231, +153,100,216, 18, 95,238,252,116, 69, 25, 89,156,111,156, 85, 73,120,242,134, 4, +103,124, 67,233, 99, 8,162,235,202,206,189,226,188,127,135, 82, 17,186, 1, 71, +193,243,255, 43,131,233, 82,240,243, 5, 69, 57,138,244, 27,228, 39, 66,136, 10, + 50,235,112, 8,208,201,220,217,156, 69,159,209,229, 71, 87, 91, 72, 6, 20,105, +193,225,208, 79, 20, 87,198, 2, 33, 10,104,201,184, 89, 44,198,211,163,123, 21, +110,101, 39,249,211,200, 87,200,171,189,120, 94, 34,120,222, 0,250, 49,239,164, +154,106, 58, 36, 0, 4, 59,113,170,169,209,208, 5, 67,252,251, 11,103, 0,131, +179, 51,143,240,135, 18,254, 15, 1,157, 54,108,171,154,116, 1, 95, 27, 68, 7, + 43,206, 81, 24, 10, 60, 46,202, 65, 88,220, 27,236,100,206, 21,113,158,220, 91, +157,143,192,107,231,230,205,125, 19, 40,111,166,255,107, 58,215,174,161,233,250, +242,222,236, 40, 27,225,114, 51, 75,131,205, 43, 79,138,246, 1,164, 80, 14,242, +210,115,120,224,173, 8, 73,221,236, 13,177, 51,118,192,192,204, 53, 96, 95,241, + 14,251, 55, 85,127, 0, 72, 11, 79, 98,168,184, 12,118,227, 27,126, 47, 94,214, +138,160, 30,194,136,250,169, 17,169, 4, 63, 58, 23, 91, 93,114,226,123, 80, 51, +173,152,250, 91, 64,207,248, 38, 74, 55,249,207,229,105, 46, 32, 72,132, 28, 13, +172, 0, 18,208,207, 88,136, 51,124, 91, 29,199, 14, 8,155, 91,234,252,234, 99, +216,253, 89, 39, 8, 8,108, 90, 46, 4, 59, 23,212,206, 45, 78, 9, 16, 18,117, +106, 33,156, 37,141,120,242, 40,137,160,213,166,175,119,188,210,181,164, 81, 63, + 96, 76,135,221,213,168, 35,226,198, 2,171, 41,242, 61,150, 92, 82, 79,246,120, + 50,141,143, 23,198,196, 52, 64,245, 17, 46,133,162,142,106,138, 14, 54,102,120, + 13, 79,136,102,163, 87, 29, 4,124,227,133, 30,138,190,225, 13, 22, 41,114,182, + 90,249,134, 37, 18,254,189, 40, 64, 58, 53,216,174,225,214, 24, 73, 17, 0, 46, + 35, 28,200, 19,154, 43, 72, 33, 10,254,100,152, 48, 19, 45, 95,188,109, 4,220, +236, 46, 69,162, 26, 10,207,180, 64,152,216,167, 2, 50, 19,138,134,192,154,117, + 57,207, 51,199,176, 17, 10,215, 42, 91, 0, 42,156, 85,251,135, 16,248,216,195, +148,152, 36,192, 54,105, 41, 16, 53,209, 78,243,222, 83,155,220,135,127,220, 16, +238,183, 83, 54,228,164,126,170,154,134,244, 76,180,122, 86,166,176, 80,144, 5, +199,235,172,126, 32,218,145,252,135,195, 46,208,128, 69,176,186,116,225,129,222, + 77, 13, 76,109, 8, 38, 52, 2, 11,199,103,147, 17,149, 72,235,171, 91, 43,114, + 90,167,212, 30,176,133,105,168,187, 95,208,212, 11,148, 6,210, 46,230,195,158, +228,236,186,226,231,110, 64,225,145, 13, 27, 4, 55,142, 57,216,162, 2,213, 82, + 0,128, 91,144,226, 82,200,243, 55,233, 32,209, 9,168, 23,226, 27,249,231, 52, + 97, 79,175,249, 33,128,195, 5, 7,125,202,138, 47, 24,163,194,179, 29,144, 31, + 49, 35,244,172, 41,216,185,172, 85, 54, 97, 31, 19, 52, 83, 66, 12, 6,181,133, +124,154, 59, 57,154, 59, 73, 46,152, 53,150, 19,236,108,105, 94,132,193, 71,145, +204,187,199, 61,155, 97, 99,176,202, 20,212,128,242, 62, 31,177, 40, 85,211, 7, + 62, 34, 0,107,141, 94,198,108,183,133, 50,174,248,236,113,181,203, 26,149, 75, +108,206,166, 89,249,131,169, 95,209,120,209, 87, 61, 68,141, 44,219, 60,163, 43, +193,188,127, 95,237, 43, 30, } ; -// ../Source/Template/GB_split_full_template.c: -uint8_t GB_JITpackage_137 [538] = { - 40,181, 47,253, 96,101, 4,133, 16, 0,246,156, 89, 33,208, 90,231, 64, 7, 28, - 75, 96,220,125, 44,237,204,237, 32, 4, 97,104,189, 17,129,135, 39,245,162,116, - 25,165, 30,120,129, 82, 2, 81, 0, 76, 0, 82, 0, 57, 52,213,207, 69,113,222, -192, 88, 36, 22,135,135, 34,177,248,192,203,110,192, 53, 69, 43, 71,204,179,194, - 76,142, 53,116, 3,104,110, 40,225,165,229, 5,210,184,164, 23,212,185,162, 64, - 88,139, 53,147,217,214,175,106,153,233,248,211, 31,210,153,138,119,236,220,137, - 34, 10,236,114, 21, 47,238, 40,151,107, 26,118,208,180,253,129, 53, 48,255, 89, -122,238,185, 77,255,127, 12,115, 97, 24,130,196,245, 93,210,227,246, 58,204,183, - 29,170,254, 53, 70, 61,147,246,184,254, 35,195,220,227,113, 13, 67, 88, 2,177, - 56,116,232,209, 59, 15, 41,187,130, 53,219,254, 48,135,198,182,189,186, 57,136, - 42, 30,196,215,169,178,113,127,142, 3, 36,120,177, 69,145,150,244,254,142,228, -233,104,162,229,229,238,128,196, 21,144, 61,244,177,128, 64,147,227, 56,110, 53, -200,190,125, 53,159,113,151,132, 91, 60,163, 80, 55, 51,182,164, 7,214,207,118, -192, 59, 97,123,203,142,245,227,188,200,228, 48,191,221,182,152,162,207, 93,195, -145,109,221, 88, 56, 31,139,166, 11, 97, 50, 96, 24, 6,246,103, 81, 1, 12,123, - 97,175,193,188, 55,140, 60,157,210,156,223, 94,226, 46, 73,211,232, 9,159,179, -222, 83,170,190,240, 92,210,140, 43,253,246, 89,181, 83, 68,176,189,222, 85, 40, - 72, 34, 79,124, 59,119,179,129, 87, 51,205, 56,107, 17,245,117,232,225, 15,108, -199,101,248,163, 93,134,185, 27, 81,246,101, 72, 32,128, 2,153, 42, 43, 15,242, -204, 64,222, 96,152,219,187, 83, 15,208, 14, 40, 13, 8, 9,220, 7,135,107,128, -225,181, 14, 26,102, 49,147,152,206,124, 5,135,233,101, 93, 7, 70, 52, 37,136, -126,159,214, 65, 32, 3,189, 97,115,136,126,199, 70,247,130, 91, 71, 21, 32,209, - 16,110,100,130, 58,209,185, 31, 86, 11,144, 39,112,220, 71, 97, 17, 34,188,125, - 66, 80,194,161, 62,212, 23,235, 70,124, 28,207,209,215, 35, 29,195, 18,227,138, -178,100, 7, 22,148,141,245,236,178,112, 39,246, 23,120,117, 7,147, 85,213, 2, -120, 88, 8,137, 39,225,111, 64,138, 25,152,147, 32,134, 45, 97,111,211,244, 60, - 51,177,173,146,213, 58,197, 72, 27, 63, 41,215, 0, 17,156,162,124, 8, +// ../Source/Template/GB_add_sparse_M_sparse.c: +uint8_t GB_JITpackage_126 [2495] = { + 40,181, 47,253, 96,125, 47,173, 77, 0,170, 82,244, 14, 40,192, 20,217, 28, 36, +173,112,153,132, 78,254,107,212, 6,235, 0, 32,210,171,103,177, 75,227,173,186, +221, 63,186,114, 94,232,211,167,223, 85, 20, 4, 69, 1, 8,228, 0,225, 0,228, + 0, 20, 91,220,188,112,189, 56,235,163,113,215, 39, 28, 90,221,120,198, 53,130, +226,213, 4,175,205, 89,135,188,185,252,205, 62, 55,198, 66,124,202,101,149, 19, +153, 56, 44, 21,138,162, 38,184,241,145, 57,213,249,207, 30,119,166,246,127,124, + 73,244,129,105,190,250,171, 27,244, 77,251,250,194,220, 82,121,245, 9, 62, 95, + 9, 10,249,171,184,126,206,231,238,232,219,156,200,165,191,250,181,219,193, 48, + 55,254,255, 83, 40, 37, 20, 10,245,107,143,189, 47,165, 24, 80, 7,149,230, 50, + 10,198, 95,110,215,173,230,175,181, 77,165,241,215, 89,141,168, 96,100, 58,148, +214, 33,183,113, 79, 28,103,174,163, 78,188,235,226, 39,132, 3,131,131,202,130, +197,224,224, 81, 6,125,194, 53,132,102, 78,197,127,184,108,189, 74,241,201, 19, + 35, 36, 7,210,251,224,233, 92, 67, 15,229, 54,248,225, 10, 62,175,125,244,214, + 39, 41,197,170, 97, 50, 68, 30,211, 5,178,126,153, 87,227, 75, 65,124,105, 26, +189,228,195, 11, 10, 40,149,130,130,150, 87,213, 53,158, 8,209,185, 50,153, 40, + 16,125, 66,223, 43,213, 73, 62, 15,111,186,246, 83,215,133,219, 47,165, 91,141, +195,219,252,207,237,144, 75, 99,154,189,163, 53,107, 16, 71, 17,195, 38, 38,143, +164, 70, 33, 72,202, 8, 48, 63, 48,240,107, 82, 29,197,108,215,113,154, 81,159, + 92,187, 61, 63,133, 43,166,216, 43, 31,172, 66,255,105,207,184,167,214,152,214, +142, 70, 8, 81, 30,200,175, 30,196, 93,111,254,250, 93, 71, 31, 89,160,139,214, + 89,238, 25,135,222, 49,194, 27,247,103, 39,144,122,185, 98,217,126, 31,205, 46, + 35,213,209, 27,230, 44,188, 25, 99,183,249,243,184,111, 13, 65,250,254,179, 53, + 87,237,179,217, 3, 62, 48,245,254,193,180, 3,222, 28,197,137, 69,250,186, 11, +249,244, 9,156, 87, 71, 62, 24,188,106,248,229, 30,119,184,108,190, 62, 26, 42, +243, 85,117,142,143,141,137,121, 20, 17, 81, 33,241, 10,224, 20, 19, 26,143, 39, + 70, 31,208,102, 7,187,181, 83,232,220, 60,166,111, 47,218,197, 79,125, 62,234, + 61,196,174,125,252,109, 46,215,254,151,193,206, 70,250,249,235,154,213,109,235, +123, 82, 68, 0,253,151,132,156,115, 70,130, 99,105, 60, 87,135,211, 89,189,153, +122,239,190, 92,190, 92, 16,162, 41,103,148,191, 28,108,213,195,130,222,225,104, + 60,155, 11,141,148,152, 29,137,159, 60, 42,205, 68, 78, 4,199,179,217, 90,251, +166,132, 46,107,189, 52,213, 8, 61, 94,155, 40,154, 70,166, 39, 90,179,206,106, + 89, 24,233,146,196,128,185,193,171, 67, 26,141,205, 4,135,194,210, 88, 92,153, +185,241, 92,113, 62,196,137,206,244,248,139,197,162, 89, 46,247,188,148, 50,227, + 91,183, 43,214, 87, 98,227,109,179, 87,140, 34,232,155,109,146,138, 79, 48,205, +249, 73,122,181,160,204,107,111, 78,204,171,231, 75, 51,190, 44,208,186,253,110, +231, 76, 65, 76,214,209, 26, 82,111,198, 97,254, 66,155, 61,171,157,197,188, 15, + 62, 37,165, 75, 27, 4,105,231,143, 94, 26,118,112,249, 95,205, 95,223,226, 79, +209, 3, 20,202, 73, 87, 7, 82, 82, 14,236, 40,118, 98, 93, 54, 95,241,202,232, +112,172,147, 75, 59,154,225,139,230,198, 36, 56, 27,137, 10, 73,178,192,250,234, + 28,150, 37, 73,191,181, 85, 22,134,125,146,152,148, 18,147, 82, 74, 12,147,209, + 39,232, 30,205, 38,162, 51, 55,211,116, 8,107, 34,102, 76, 68,137,141,180,100, +174,163, 94,144, 82, 24,119,247,133, 23,177, 29,174, 17,147, 21,186, 20, 65, 48, +252,176,182,251, 71,134,249, 66,187,209,136,121,135, 95,205, 17,128, 71,245,222, + 89,139, 93, 94,138,181,132,225, 19,234, 16,202, 61,146, 28,224,198,177, 8, 77, + 26,237,140, 65,175,243,149, 96,112,121, 93,112,225,100, 56, 18,206, 93, 72,143, +227, 79,245,116, 59,211,238,211,181, 86,179,214,114,119,116, 84,220,119,218, 54, +212,167,198,247,237,231,208,118, 14,165, 20, 43,203,106, 93,104, 57,252,137, 41, +247,249,173,210,236,153,158,203, 46,109,250,225,182,218,163,107, 55,104,226,198, + 52,111, 10, 60,155,105,253,117, 84,220, 1,130,165,168,226,195,144, 57,132,102, +100, 68, 36, 73,146, 66, 99,194, 40, 4,163, 96, 32,232,114, 10, 31,178,104, 84, + 18,197, 32, 8, 98, 26, 67, 8, 33, 2, 66,144, 64, 68,100, 36, 18, 25, 73, 18, +180,176,205, 1, 27,212, 22,172, 54,146,112, 78, 95,116, 10,157,194, 84,191, 59, + 49, 38,130, 48,127,116, 94, 82,222, 28, 36,130, 49,208, 99, 42,216,224, 13, 81, +138,229, 27, 22,218, 65,138, 46,209,224,173, 37,102,167,127,102,100,214,248,180, + 98,158, 26, 92,238,143,108,149, 18,127,164, 62, 77,117, 38,111,196,127, 64, 81, + 6,244,173, 92,147,172,118, 84,244,203, 18, 40, 38, 3,233, 17,237,154,241,139, +246, 18, 43,208,255, 98,238,141, 64,185,226,192,234,234, 11, 51, 42, 31,141,255, + 71,212,153,156,124,121,255,105,151,181,218,153, 63,240,204,110, 38,200, 50, 82, +125, 52,160,211,127, 8,139, 58, 35, 93,130,159,191,247, 48, 30, 90, 24,142,170, +106,121, 34,148,198, 71, 32, 8,111,203,184, 61,135,208, 16, 31, 48,109,217,132, + 78,203, 11, 58, 59,144, 31, 18,120, 2,224,188,120,141, 15, 74,195, 62, 33,113, + 4,224,197,255,131, 15, 48, 35, 64,122,215, 81, 67, 75,159,199,245,155,164, 95, +179,225,172,110,135,167, 0,252,189, 24, 28, 11,223,184,110,121, 1,110,246,191, +229,205, 73,124, 16, 23,174, 74,123,218,128, 77,104,186,209,185,111,227,223, 78, +241, 45,128, 78,110,174,229,120, 8,151,209,115,161, 82,185, 74,114, 17, 61,230, +249,164, 93, 20,170,170,173,165, 18,233,145,114, 65, 60,245,238,112,150, 8,101, +131, 92, 93, 67, 49, 34,181,137, 99,141,165,158,179, 6,168,133, 7, 18,247,246, + 8, 13,104, 18,194, 20, 90,199,236,186,100, 55,221, 60,173, 36,230,111,226,254, +144,193, 27,115, 41, 89,252, 62,122,242,111,210,116,153,178,232,136, 62, 32,110, +244,138,116, 15,170,224,208,169,113,179, 73, 72,118, 47, 71,246, 38, 8,186,124, + 24,196, 25,116,134, 57, 62, 97,210, 3, 37,254, 14,136,211,167, 4,119,248,154, +213,187,136,190,150, 6,166,220, 84, 1,220,182, 60,184,178, 66, 75,195, 47, 12, +229,215,190,252,206, 28,147,104, 67, 1,180,213,252, 11, 60,126, 84,124,159,210, +189, 72,125, 93,112, 94, 85, 79, 14,142,228, 81,183,244,253, 47,114,217, 16,112, + 52,249,184, 60,161, 88,119,202, 99, 98,230,212,246,124, 46, 80,126,188,137, 76, +198,246,240, 46,172, 50, 88,229,228,142,159, 96, 37,167,240,251, 71, 88, 58, 53, + 22, 52,210, 64,154, 53, 57,207, 43,142, 72,164,229,126,128,194, 74, 81,242,164, +248,105,215,250, 20,217, 87,191,168,162, 62,164, 99, 8,251, 1,239, 2,214, 22, + 56, 11, 17, 62, 43, 72,200, 36, 6,167,167, 16, 65,238,125, 76, 82, 49,168, 82, +249,227,164, 9, 1, 91,183, 49, 59, 89, 72, 44,152,174, 11, 32, 47,205, 97,226, + 48,153, 15, 2, 29,244,138, 25, 72, 23,176,167,182, 22,130, 5, 87,165, 48,106, + 31, 47,162, 39, 98, 2, 32,145,231, 28,113, 98,118,154, 73,215, 20, 72,207,104, +189, 73, 86,111,166,153, 47, 55,235, 15, 42, 87, 82,157,101,203, 58,213, 16, 20, +100,216,102,228, 57,106,236,230, 69, 95, 27, 46,129,254,198,142,103,168, 25,193, +177,116, 52, 52,185, 16, 50, 31,174,205,152,184, 57,233, 12, 55,118, 89, 56,122, + 19,173,188,134,210,153,136, 60,241,166,117,171,142,153, 66,150,129, 43,112, 32, +158,173, 81,180, 72,118,241,248,214,183, 20,239,164, 29,170,220,176,131,234,194, + 1,167,179, 45, 36,180, 3, 55,236, 69,194, 92,121, 65,130,203, 18, 97,106,114, +137, 97, 82,228, 5,235,194, 93, 24,230,189,197,207,114,204, 77,218, 5,145,162, +102, 56,136, 61,160, 60,207,156, 33,200,120,187, 58,251,141,228,235, 0,131,187, +235,108,173, 69,104,100, 12, 37, 81,242, 78, 40,108,132,146,208,189, 48, 69,105, +129, 7, 37, 28,230, 98,240,183,141, 10,218, 59, 25,103,169,200,192, 86,124,114, +220,109, 11,150,156, 22,124, 32,128,131, 49, 53, 78, 24,168,183, 9, 40,191,221, + 58,109,177,231,192,193,208,229,165, 99,183, 41, 42, 37,181,211, 92,113,100,123, +112,156, 64,177,129,142,234,115, 70,136, 41, 56,100, 50,189,213, 63,111, 95,168, + 77, 52, 53,254,159,195, 74, 76,145, 53,168, 32, 29, 7,152, 25, 34,161,191,121, + 12, 99, 28,201,219, 19,237,242,178,182, 59,113,155,247,112,174,178, 65, 90,140, +183,150, 0, 81, 90,190,120,245,181,246, 53, 27,223,210,140, 53, 82,213,156,153, + 44,220, 18, 10,237,162,215,217, 17,218,229,166,193, 42,217, 87,155,102,237, 26, + 82, 74, 96,243, 97, 38, 83,170, 84,198, 67,119,225,250,127, 46,199,183, 13,109, +136,255, 12,227,164, 18, 34, 96,138,104, 66,175, 24,240, 61, 80,225, 55,173, 47, + 34, 46, 21,178, 87,137,138, 30,166, 71,255, 83, 72, 89,207,148,253,198, 25,137, + 76,117, 17, 87,103, 81, 92, 18, 68,216,232,126, 72,223, 97,183,147, 0,205, 69, +102,149, 22,178,184,119, 4,144, 7, 75,195, 37,174,193, 69,244,186,190, 19, 58, +226, 92,176,198,131,231,197, 38, 98,206, 35,223,211,196,192, 45,221, 10,197,190, +223,241, 27,226,102,127, 34,203, 55, 57,199,242,185,231, 81, 79, 55,193, 46,112, + 39,210, 71,167,239, 30,146,196, 94,167,186, 14,252,150, 65,110, 20,142,251,252, +177,121, 58, 61, 17,132, 39,201, 69, 73,186, 66,134,214,217,164,139, 5,187,188, +128,126, 11,225,143, 69, 75,194, 1,187, 1, 58, 95, 58,227,158, 66, 95, 4, 27, + 66, 25,247, 70, 68,225,240, 9, 2,181,146,231, 41,217,139,168, 48,191,237,201, + 61, 35,158,185,204,135, 30,243, 38, 13, 51, 84,235, 62,211, 80,126,126, 53, 0, +131,237, 49, 21,157, 16,161,101,142, 99,112, 7, 6, 53,220,138, 36,109,246, 12, +139,154,176, 37,144,231,166,198, 48, 74, 85, 8,158, 76,154,184,250,214, 4, 39, +153,172,215,129,229, 96,148,148,115, 71,192, 42,205, 90,126,135,230, 26,218,185, + 90, 34,159,229,146,109, 9,201,221,198, 52,197,233,136,102, 44, 17, 9,215, 99, +119, 30, 47, 71,226,236, 56,177, 45,132,243,109, 14,159, 32,232,248, 26, 26, 15, + 23, 79,145, 42, 20,209,129,248,209, 97,109, 7, 66, 29,134,146,162, 80,139,134, +230,240, 28,198,131,156,239,186,216,255,212,177,132, 19, 47,162, 5,117,113, 66, +172,181,218, 45, 76,212, 35, 78, 9, 34,237, 39,226, 17,165,174,101,221, 79,234, +115,229,197,186,224,213,171,192, 92,225,216, 13,184, 19, 93,162, 80,144,213,115, +177, 93,133, 50, 65,186,200,104,155, 29,158,220, 57,241, 94,160, 62, 9, 8,171, +213,107,220, 93,143,160, 89,101,103, 37,240, 64,137,133,213,114, 24, 32,210,241, + 67,161,204,195,228, 26, 47,220,209,166,205, 61,177,147, 41,161,105, 10,182, 25, +202, 2,162,114,224,211, 13,194,205,166, 89, 15,192,244,215, 38, 82,158, 68,171, +119,182, 23,203,181, 74, 35, 58,248, 78,171,182,162, 63,129, } ; -// ../Source/Template/GB_split_sparse_template.c: -uint8_t GB_JITpackage_138 [803] = { - 40,181, 47,253, 96,167, 8,205, 24, 0,198,163,108, 32,224, 88,231, 24,203, 4, -119, 25,145,215,107, 59, 67,106,120, 21,143,129,176, 1,154, 44, 51, 74,240,205, - 25,204, 48, 76,243,112, 99, 0, 99, 0, 99, 0, 89,227,219,157,205,100, 33, 9, -135,224,117,170,108,220,157,227, 12,150,108,231, 97, 72, 63, 19, 8, 3, 34, 99, - 28, 12,136, 7, 58,236, 19,219, 84,149,156, 64,191, 2,243, 40,218,207,167,135, -102, 34, 32, 89, 75, 74,195,211,217,162, 60,151,202,150,185,138,127,189, 56,150, -223, 59,180,249, 29,150,174,197,175,127,163,115, 13, 73,177, 51,215,184,172,217, -134, 36,230, 34,148, 23, 10, 87, 86, 40, 4, 32, 73,102, 78,177,200,215,102, 38, -154,206, 4,195,125, 44,151,207,122,183, 1,219,182,109,191, 28, 87, 65, 50,250, - 0,118,237, 42,250,220,217, 50,227, 46, 5,159,112, 68, 31,142,102,124,199,238, - 99,201,112, 60,220,198, 99,249,218,187,159, 5,108,255,198,151,174,237,108,136, -223, 96,158,219,189, 91, 79,159,187,244,255,191, 46,214,101, 32, 32,178, 6,187, - 74,210, 55,202,182,159,205,183, 61, 75,218,169,233,225,248, 73, 35,237,172,193, -224,225,184,225, 26, 22, 56,204,206,138,245,174, 60,172, 67,148,215, 96,135, 31, -184,220,134, 97,175,118, 9,102, 78, 68,221,151,227,247,176,195,176,150,149, 60, - 41,142,175, 98,169,150,164,103,243,243,181, 99, 62, 5,243, 87,228,216, 33, 46, - 40,107,198, 36, 62,225,154,239,160,134,220,169,185,222,184,140, 75,251,157,200, -109,211,126, 59, 76,117,214,130, 1, 23, 69, 1,174,171,117,181,166,136,179,177, -245,153,118,210,182,153,166,197,174,245,110,253, 44,136, 41, 57,186,165,214,145, - 13,180, 83,211,164, 22,163,255,198,171,218,187,246, 15,199,175,125, 35, 95,142, -185,235,212, 7, 7, 53,254,190,145,163,164,195, 96,206, 57,231,244,110,127,114, - 27,201,225, 62, 19,202,105,164,221, 64,222,107,175,251, 62,143, 55,112,170, 19, -164,216, 41, 87,137, 80, 30,128,157,168, 81,193, 66, 52, 67, 34, 73, 10, 82,200, -178, 6, 80,132,204,148, 29, 61,226,184, 84, 74, 98, 28, 66, 84, 96,136, 21,136, - 4, 34,129, 72,152,168, 41,111, 7, 14,135, 80, 28, 61,225,160, 41,203,110,126, - 98,162,185,113, 77,124,219, 13, 72, 64,204,124,149, 56, 56, 66, 30, 43, 43,182, -130, 82,194,143,200, 8,155, 33, 64,129,149,128,155,111,176,196,133,197,188,226, -199, 72, 94, 5,225,247,245, 80, 48, 89, 91,215,233,235,145,247, 9,200, 93,196, -204,122,175,138,149,174,147,168,150,155,226, 43,229,100,186,127, 62,184,115, 35, -202, 6, 32,226,175, 2,206,130,107, 24,197, 28,203,113,204,161, 12,236,199, 27, -131,172,186,148,218,178, 28,187, 40, 98, 84,221,147, 40, 90,142,135,185,134,115, - 79, 40, 76, 22,188,125, 12,236,240,145,121,131, 85, 2, 92, 4,248, 67, 40, 46, -141,101, 26,229,130,100, 24, 28,208,144, 70,179,192,141,209, 17,100, 26,164, 96, - 66, 61,169,118,150,232, 2,169, 51,149,248,237,126,229,205, 56, 83,183, 70,133, - 43, 10, 51, 73, 52, 35,147, 38,114,185, 10,205, 85, 79, 16,197,171,151, 64, 17, - 56, 95,211,201,243,180,112, 3,165,245,139, 3,221,168, 77, 49,182, 56, 35,112, - 27,130, 19,160,181,216, 53, 88,200, 65,107,186,160, 18, 40, 42,151, 15, 21,193, -189, 64, 75, 12, 38, 94,166, 0, 12,110,250, 96,140, 29,188,141, 30, 24, 34,109, -212, 87,148,206,232,233,193,171, 12, 1,223, 3, 83, 9,166,100,144, 92,104,115, -208, 68,213, 96,178,186,134,108,216,128,107, 74,188, 71,248, 21,227, 71, 6,105, -184, 52, 1, +// ../Source/Template/GB_add_sparse_noM.c: +uint8_t GB_JITpackage_127 [2031] = { + 40,181, 47,253, 96,118, 63, 45, 63, 0,234, 70,236, 12, 40,176,148,177, 14,180, +145,158,138, 11,149,130,216, 47,240, 78,183, 38, 21,184,176, 27,178, 30, 64, 24, + 71, 39,113,155, 6,104,126,194, 63,165, 63, 77,239,142, 75,194, 0,191, 0,200, + 0,179,203,213,252,110, 62,238,219, 81,213,176,207, 55, 42, 95,253,214,121,229, +241,212,250,102, 57,250,253, 42,119,207,147,231, 60,148, 59,179,244, 62,109,238, +240, 1,104,176, 60,158, 58,252,230,214,188,179,251, 54,219,179, 86,230, 47, 59, +192,111,125,149,233,196,243,218,231, 74,143,251,159,255,255,100, 50, 50,185, 88, + 50,149,217,105,210,194,107,238,108,174, 51,157,155,167, 50, 49,157, 90, 75, 84, + 48, 56, 20,150,109,130,220,137,103,232, 56,119, 29, 29,186,231,193, 87, 5,153, + 75,166,146,128,185,100, 78,209,166, 87,184, 65, 36,231, 22,248, 82,151,235,168, + 69,175, 46, 40, 17, 59, 43, 47,132,230,154,185,191,107,242,129,229,232,149,190, +186,211,150, 58,130, 91,175, 34, 5, 55, 20,143, 74, 51, 89,215,124, 42,197, 38, +190,210, 98,108,219, 36, 22, 33, 78, 64, 48,169, 16, 16, 4,215, 96, 46, 31, 1, +129,115, 1,222, 44,201, 78,201,111, 46, 66, 61, 52, 11,204,199, 37, 73,242,184, +122,122,103,206,210,126,118,162,223, 2,127, 43,119, 60, 61,251,229,119,208,222, +232,180, 92,125, 8,238,139, 78,186,136,130,199,157,214, 29,233, 85,110, 73, 42, +101,223, 75, 30,173, 31,161,100,218,213, 3,247,134,205, 43,177,136,109, 84, 98, +240,152,111, 54,239, 92, 48,130, 2,227,112,224,116,174, 3, 98,100, 56,229, 36, + 36, 24,110, 12, 78, 23,133, 58,215, 5, 41,217,111, 37,192,116,110,114, 58,158, +125, 51,157, 19, 68,118, 31,113,245,248,214,172, 77,144,123,242,219, 26,164, 55, +218,149,231,125,156,149,163,220, 89,151,107, 22,161,165,203, 77,250, 54,243, 23, + 41,184,177,126,139,132, 68,197,196,177,252, 86,187, 60, 71,199,221,229,215,124, +218,223, 38,198,210, 62,189,125,249,194,109,113,167,215, 33, 25,203, 2,230,180, +223,241,101,151,199,119,118,116,244,205,115,171,218,185,250, 73,219, 35, 85,207, +171,156,102,163, 95,189,242,227, 86,210, 23, 48,151, 12,102, 93, 31, 44,212,145, +240, 80,124, 40,217, 89, 79,198, 44,203, 10,178,238,238,238, 74, 51,100, 22, 86, + 51, 6,177, 12, 10,144,117,165, 39, 53,140, 81,148,204, 51,155, 0,121, 38, 42, +112,149,241,120,213,150, 53,157, 2,212,185, 60, 23,157, 24, 99, 54, 61,214,234, + 85, 8,124,229,209,114, 58,196, 56, 16, 36, 1,186, 60,220,220,104,140, 20,216, +223,156,195,158,186,101, 55,222,214,169,219,142,167,224, 55, 61,221,162,168,134, +219, 51,252,242,205,237, 51,102,128,144,105, 79, 29, 13, 79, 8, 36,178, 58, 22, + 24,231,227,185, 48,248,129,128, 33,138,103, 44,189,216, 25,223,230, 48,216, 27, +105, 29,127, 93,190, 38,147, 73,201,196, 44, 75,101,151, 24, 51,104, 39,153, 43, + 61, 67,230,166, 23,127,235,161,101, 99,140, 49,118,140,209,225,176, 33,132, 25, + 74,132, 2, 2,211,167,215, 29,169, 71, 18,231,175,102,242,130,137, 49, 70, 8, + 33,140,215, 44,200, 74,165,170,122,122,132, 21,130,157, 11,203, 8,193, 9, 79, +228,238,213,154, 97, 94,129,246,155,107,105,191,191,209,230, 54, 58,177,104,223, +240, 56,161,181,179, 54,241,157,153,182, 8,165,175, 80,217,105,223, 72, 97,224, +153,130, 59,192,152, 0, 99, 83, 25, 99, 62,111,229,102,118, 60,175, 65,104,144, +242, 21,132,241,154, 3, 14, 10, 87,167, 72,227, 15, 84, 49,190,178,218,154, 94, +178,218,104,142, 74,217,224,210, 29,101,140, 22,250,137,171, 29,205, 92, 73, 12, +127,139,188,211, 86,206, 4,200,234, 92,153, 2,235, 1, 19, 93, 33,207, 67, 85, + 3,129,249,168,129,181, 50, 52, 34, 34, 34, 34, 73, 65,146, 52, 6,161, 12, 49, +134, 57,166,180,179, 14, 34,120, 56,154, 34, 34, 4,193, 16,194, 16, 66, 4, 74, + 64,168,128, 16, 33, 34, 70, 40, 50, 34, 34, 82,101,115,213, 13,208,120, 61, 87, +243,102, 19,147, 8, 54,251,251, 77,188, 12, 39, 34, 85,231, 50, 82,246,190,185, +252,235,213,231,148,180, 71, 31, 20,102,165,186,160,237, 90,173,107,190,108,173, +114, 45,214,233, 57, 76,180, 57, 7,128,137,129,198,144,220, 42,107,197, 27,181, +210,143, 90,173, 38,243, 22, 13,214,101,224,139,194, 3,202,151, 62,165, 3,255, + 84, 60,212,110, 16, 7,199,252, 69,208,177,115, 49,163, 92, 63,232,174,178, 19, +174,129, 93, 39,178,160, 21,169,226, 32,125,102,106,197, 96, 48,214,159, 75, 83, + 79, 56,205,105,116,106, 4, 35, 36,111,111,191,230,242,187, 80,182, 87, 53, 78, +152,205, 22,249,223,138, 52, 63, 91,100,170, 42,217,105, 23,158, 22, 20, 15, 71, + 29,183, 77, 79,156, 41,142, 3, 95, 39,140,197, 54,164,223,224,200,209,237, 0, +120, 82, 28,147,121, 67,130,221,144,227, 1,100,156, 50,208,172,210,226,110,241, + 71, 75,186, 3,212,243, 3,180, 7, 68,112, 53,145,175,129,173,152, 63, 26, 67, +169,191,172, 62,195, 65,227,228,121, 78, 8,184, 81,152,240,195, 53, 85,181,162, + 15, 33,182,194,182, 14,196,231, 39, 13,199, 77,157, 80,161, 71,128, 84, 43,189, +114,232,147,178, 41, 9,134, 90, 25,255,205,235, 96,217,100, 23, 60, 24,122, 11, + 9, 9, 9,131,113, 7, 48,108, 41, 9,212,214, 25,143,236, 70, 8,139, 49,248, +100, 19,148,150, 58, 56, 38,175,110,132,152, 71,119, 98, 84,174, 16,172,128,135, +238, 74, 77,112, 9, 73, 57, 46,189, 98, 22,161,251, 52,114,246, 48,172,159,167, +167, 40,201, 65,114, 83,133,141, 12, 75,207, 18,144, 30, 95,251,207, 78,136, 89, + 74,115,222, 84, 61, 76, 16, 74, 93, 28,163, 63,104, 42, 57,117, 25,172,147, 48, + 40,102,188,106, 3,236,114,255,232,151,173, 76, 26,221,157, 0,221,229, 28,124, + 28, 20,188,140,111,187,129,234,201,139, 53, 84,255, 1,188,219, 43,204,175,239, + 56, 28,104,167,224,132,206, 20,163, 20,247,251, 23,203, 29, 1,140, 27, 59,249, + 56, 19, 26,194,169,189,211, 71,218, 44,224,165, 11, 60,180,143,186,165, 50,193, +150,171, 47, 0,238,177,220, 35,160,220, 55, 63,236,238, 47, 48, 10,225,248,112, +157, 55,192, 87,235, 84, 2, 13, 53,144, 59, 13,102, 53,159,205,208,140,127, 52, +111,140, 99,130,218, 0,254,115,240,183,157,198,104,125, 97, 27, 48,164,150,197, +192,128, 88,220, 38,130,210, 58, 36,249,147,166, 33,148,217, 66, 58,180, 57,108, +192, 52,140, 60, 65,244,241,177,116,141,232,133,135,221,168, 63, 57,173, 69, 18, +220, 5, 13,118,166,180, 4,187,124,229,248,209,152, 2,212, 0, 55, 0, 77,158, +111,233, 82,207,116, 58, 49,187,109, 24, 4, 4, 88, 60,232,145,101, 64, 14, 58, +224, 50,184,107,167,187,253,148, 3,142,131, 19, 42,205,120,159, 34,233, 27,116, + 11,168, 69, 17,162, 40, 79, 71,217,116,209, 12, 88,174, 14,178,176,129,169,196, +175, 45,187,177,248, 7,223, 53,186, 21,194, 69,149,116,236, 44,160, 3, 63,125, +110,249,173,115,141,115,125,122,205,232,170,220, 78,227, 6, 99,134,177, 23, 23, + 10,125,248,239,152, 94, 34, 69, 72, 45,145,109, 62,191,164,169, 52,128,210,106, +111,135, 82, 88, 52, 45,103,110,139, 46, 58, 10,160, 91, 49,187, 36,184,184, 59, + 87, 1,220, 95, 8, 73, 2, 47,151,188, 37, 0,187,232,124,127,118,207, 83,203, +137,181, 23, 19,215,210,251, 89, 31,188,168,108,187,160, 60,163,253, 18, 97, 23, +124,182,188,130, 87, 42, 7,110, 96,101,103, 1, 13, 33, 67,144,211,246, 60,234, +113, 42,117, 11,239,171, 35,161,149, 5, 4, 51,218, 26,197,100, 67, 87, 64,122, + 47,136, 48, 7,180,201,210, 16,150,181,176, 89,102, 46, 58, 76, 50, 68,128,114, + 4, 29,117,197,105, 37,236,208,205,200, 11,141, 52,197, 80, 81,217,180,161,201, +115,210,185, 9,127, 28, 99,238, 9, 26, 31,156,139,241, 42, 79,220,193,154,182, +221,203, 78,227,151,171,203,128,207,137, 7,152,193,154,164,198,144,205, 36, 39, +239,152, 42,135,158,146,160,178, 21, 18,180,242,107, 77, 51,237,126, 35,145,240, +182, 24,247, 83,156,147, 34, 27, 72,187,229,119,189,201,168, 46,141,188,230,231, +135,148,152,219, 55, 34, 19,140,212, 14,130, 10,130,242, 38,116, 27,103,115,128, +108,211,200,135, 70, 61, 28,236,126, 37,175,184,148,165,177, 97, 93, 66,220, 25, +111,181,151,104,166, 50, 64,113,207, 45,122,116, 9,150,180, 96,164,130,101, 32, + 88,191,143,116, 52, 39,242,119,125, 35, 44, 94,140,109,235,202,197,197,229, 38, +198, 49,128,145,160,188, 66,157, 76, 50,210, 21, 53,166,156,240,177, 94,128, 73, + 55, 74,101,114,141,206, 28,109,238,108,131, 40,219, 45,125, 15, 60, 72, 73,198, +164,238, 24, 77, 85, 90, 16,146, 40,244,143, 27,242, 58,105, 58, 53, 55, 57,238, +215, 14, 84,136,118,226, 86,141, 83,136, 43, 20,179, 59,246, 4,214,224, 54, 56, +147,219,114, 20, 53,200,214, 16, 79,142, 73, 68,241,146, 26, 39,252, 86,129,217, +169, 36, 53,203, 74, 14,182, 28, 52,235,255, 96,194,170,217, 97, 38,235,224,152, +106,116, 88, 23,103, 22,156,106,191,109, 2, } ; -// ../Source/Template/GB_subassign_05d_template.c: -uint8_t GB_JITpackage_139 [1166] = { - 40,181, 47,253, 96, 56, 15, 37, 36, 0, 54, 49,153, 41,176,148,117, 14,100,161, -216,231,123,124,194,197,117,107, 15,192,171,196,169,118,156,102, 12, 33, 19,162, -209, 66, 24,219,129,249, 9,255,148,254, 52,249, 15,118, 1,143, 0,141, 0,140, - 0, 26,118, 97, 50,113,244,181, 1,211,179,236,162, 24,166, 65,220,235,238,150, - 2, 38, 11,193, 65,165, 63,174,138,215, 47, 99, 91,207,230,219,157,167,210,248, - 54,103,179, 10, 6, 7, 68,208,117,200,216,184,181,227,252,121, 88,237, 32,120, -221, 66, 56,176, 28, 84, 24, 12, 44, 7,175, 56,234, 22,182, 33,149,115,130,235, - 36, 95, 14, 73, 54,116,107,187,178,205, 39,214,177,115,105, 60, 86,113,235,108, - 75,219, 4,130, 37,239,216, 94,190,199,254, 68, 62,242,204, 53,211, 65,254,210, -185,130, 34,169, 51,237, 20, 44,244,122, 88,140,171,168,132,233,166,243,130,130, -169, 82, 80, 16, 33,143,103, 3, 66,108, 53, 21, 9, 80,125, 40, 7,203, 54,179, - 66,130,122, 72,195,182,237,154,239,110,189,124,110,143, 91, 92,135, 92, 77,101, -158,242, 91, 13,183, 38,245, 9,237,115, 65, 49, 60, 90,232,154, 20,147,158,108, -171, 58,176, 63, 90,114, 47, 39,195, 34, 40,232,196, 93,237,241,179,240, 8,215, -124,233, 60,166, 93,153,196, 56, 24,251,208,187, 30,186, 25,241,232,150, 62,238, - 93,151, 88, 92, 1,107, 9,164, 31,206,247, 47, 96,131, 96, 29, 43,232,147,201, - 52,157, 96, 94,101,154,176,144,175,189,229,113, 45,103, 65, 76, 71, 77, 39,117, -208, 7, 68, 39, 2,239,216,152, 52, 3,130,245,185,126, 52,134, 34, 15,239,113, -135,221,237, 47, 87,112,116,205, 51, 30,173, 55,186,103, 41, 20, 7,204, 45,207, - 80,149,129,197, 89, 82,189, 36, 29,213, 96,169,235,143,195,175, 40, 74, 42,221, -143,161,119,241, 34, 41,124, 37,121,212, 81,236,172,228,164,148,242, 54, 24, 50, - 71,168, 95,158,101, 21, 20,127,160, 94, 81, 35, 24, 40, 35,100,237,247,137, 68, - 13,162, 56,109,143, 3,159, 60,219, 93,140,166,210, 34, 73,206,156,244, 76,159, -241, 13,185,198, 96,135,100,133, 22,218,232,196,118,101,174, 52,102, 92,103,134, - 81,104,216, 4, 13,211, 73, 21,218, 46, 89,137, 54,222,116, 98, 73,241,214,136, -164, 46,105,152,233, 88,193,202, 97,154, 1,250,112,207,188, 67,138, 27, 31,177, - 30,138,188, 3,230,207,124,138,152,134, 71,251,132, 36,102, 65, 57,211,179,209, -107,118, 46, 13, 68, 77, 68,243, 2, 2, 25,234,222, 7,102, 32, 83,125,200, 48, - 31,231,107, 67,241, 82, 52,160, 88,149, 8,178, 44,171,187,125, 43, 99, 58, 69, -234, 23,136,134,176,206,173,111, 82,159, 52, 98,211,249,192,150, 68,244, 27,190, -235, 92,199, 22,195,183,232, 97,126,117, 47,124,238,174,245,238,240,209, 49,175, - 46,214,133,194, 4,128,236,168,113,189, 66, 51, 34, 50, 34, 41, 40, 72, 82, 24, - 14, 64,132, 24, 83, 69,214, 13,194,216, 48,138,242,156, 34, 76, 17, 34,193,136, -144, 4, 18, 72, 32,161, 4, 18, 69, 73,230, 24,216, 20,136,204,121,220, 50,191, - 56, 69,109,116, 85, 23,224, 19,112,100, 68, 25, 66,141,103, 76, 56,104,190, 72, -178,133,169, 38, 65, 54,101, 30,100, 96,145, 39,209,125,247,132,210, 11, 18,210, - 84, 28,200,116,235,145, 86,140, 64,147,114, 22,109,179, 89, 22,138, 48,214,154, - 96,142,160,193,202,129,104, 78,170, 14, 81,140,227, 46,196, 50,128, 53, 74,134, -233,143,109,248, 85,128,212,241,196,224, 4,141, 23, 3, 63, 44,172,240, 60,185, - 40, 99,248, 68,244, 53,133,126,232, 12, 11, 79,138,177, 97,100,111, 59, 67,223, -137, 68, 61,192,245,135,141, 96,196,101,221,248, 82,140, 46,142, 61, 11, 54, 83, -151, 14,187, 17, 59,195,184, 35,120,224, 93,184,165,146, 68, 39, 34, 70,183,170, - 0,158, 58, 63, 14, 40,221, 99,249, 47,134,245,168, 26,209,232,223, 24,155,155, -124,196,203, 27,168, 76,174, 4,126, 77, 13, 27, 44,140,197, 39, 14, 68, 68,205, -206, 15,150,210, 15, 49,245,171,160,167,115, 80, 96, 11,153, 94, 48, 10,252,173, - 6,151, 48,199, 36, 0, 83, 67, 93,199, 22,196, 43,194, 47, 55, 84, 58, 77,234, -169,137, 42,143, 21, 42, 86, 22, 12,176,204,109, 1,110, 10,216, 85, 8, 11,204, -166,178, 37,167,194,239,160,183,129,222,198,135,137, 65,102,187,102,229, 69,111, - 15, 87, 69,235, 32, 72, 47,236, 70,241,172,229,199,247,129, 21, 36, 88,250,100, - 78, 87,135,201,110,127,192,105, 58,150,150,110, 80,198, 51, 73,151, 12,224, 18, - 91, 5, 62, 58, 5,180, 56,176, 37, 13,127,137,128,141, 22, 89, 54,119,122,232, -117,114, 5, 83,195,213,166,221,133, 64, 57,169, 23,235,127,143, 5, 12,127,162, - 22, 6,129,241,192,220, 45,157, 55,176,218, 88, 49, 33, 79,211, 42,149,228,234, -231,130,191,150,141,221, 52,108,140,220,101,116,126, 29,229, 55,196,114, 91,216, -255, 99, 26, 8,236,212, 71,250,109, 78, 15,135,140, 84,244,166,193,139, 22, 25, - 8, 18,148, 85, 33,121,116, 19,143, 8,242,193,126,200, 47,204,186,190, 80,122, -193,113, 6,181, 41,156, 89,128,230,251,244,209,246, 38,106, 83,241,245,166, 16, - 86, 93, 62,102, 58,184,128,153, 91, 12,160, 65,211,255,153, 41,207,120,133,209, - 23,181,149, 58,128, 19, +// ../Source/Template/GB_add_sparse_template.c: +uint8_t GB_JITpackage_128 [1707] = { + 40,181, 47,253, 96, 89, 34, 13, 53, 0,246,252,178, 40,192, 84,177, 14,104, 89, +224,245,150,180,253, 21, 50,184, 48, 63,135,107, 27, 45, 32, 65,240, 5,178, 83, +169,100,104,165,248, 80,102,183, 77, 81,232, 40,206, 5,169, 0,159, 0,167, 0, +157, 55, 59,170, 88, 7,149, 45, 58,150, 0, 26,235,145,194, 79,125,225,113, 99, +242,102, 56,250,221,106, 6,159, 77, 0,104, 62,231,150, 89, 56,202, 82, 84,157, +250,179,220,189,178, 78,161,100,126,235, 41, 6,212,193,165, 53, 12, 90,247,204, +109,153,201, 76, 59, 78, 92, 26,211,198, 36,231,162,241,128, 65,197, 6,185,141, +219,115,156,181, 14,233,249,156,238, 19,194,129,193,193,101, 1, 99,112,240, 10, + 38,125,194, 18, 4, 62,156,114, 31,209,114, 29, 73,208,167,143,227, 60,205,194, + 27,145,249,116,150,219,135,114,219,142,104, 5,199,242,214,105,107, 33,111,232, +104,172, 79,207,226, 42,235,207,116,134,211,142, 58, 95,141, 47,180,248,138, 17, + 94, 47,226, 5, 5,148, 75, 65, 65,114, 4,233, 72,148,122,110,177, 53, 12,191, + 66, 47, 75,194, 17,246,213,242, 53,218,232,236, 57,225,133,246,135,163, 14,120, +173,128,245,131,138,199,148,145,172,107, 24,236, 83,121,220,242,102,218,207,116, +171,216, 51,152,151, 80, 40, 21, 41,211,183, 94,241,167,251,166, 53,102,110,133, +160, 70, 68,143, 88,106,217,250,173, 89, 99,219,205, 56,207, 13,247,125, 86,143, +111,141,141, 55,128,169, 49,196,222, 51, 82,168, 61, 87, 90,227, 67,234,140, 85, +203, 61,122,107,160,159,106, 60, 97,246,129,225,232, 26,153,214,194, 99,122,183, +220,247, 35, 89, 82, 4,141,161,102,107, 62,135,147, 97,113, 12, 79,229, 99, 99, + 12,109,231,180,181,252, 41, 6,180, 55, 42, 51,173,216, 43,151,208, 79,197,219, + 32, 77, 53,208,192, 64,165,121,232,131,227,214,146, 14,242,108, 62, 31,135,177, + 88,150, 10,253,183, 44,142,180,175,201,178, 36,212, 3,171, 28,179,249, 56, 9, +140,235,225,193, 9,124,124,210, 44,233,214, 37,241, 34, 94,221,195,210,242,199, +228, 81,105,168, 60, 8,174,183,142,104,197, 23, 86,172,241,236,147, 99, 13,242, +158, 89,125, 99,114,226,195,211,122,220, 25,222,182,245,240,210, 51,218,179,130, +185,188,170,164,171,169,204, 62,107, 21, 61, 99, 56, 25,168, 16,199, 51,150, 28, +208,171,103,124,101,246,241,124, 37, 40,100, 42,111,205, 86, 94, 12,119,204,185, + 59, 44, 22,124,205, 25,110,240,234, 81,102, 9, 51, 97, 1, 20,202, 73,117,203, +146,178, 58, 33,149,217,201,175, 91,177,188, 58, 37,141, 59, 21,207, 6, 99, 67, +226, 38, 38,223,124, 60, 14,227,115,125, 38,174, 78, 0, 70,117, 42, 13,120,199, +109, 98,180,226,227, 58,215,133, 5,103, 99,225,217, 84, 92,160, 9,138,172,227, +173,239,150, 87,111,152,144, 86,153,109,213,188, 39,122,239,137, 68,239,189,247, + 68,239,189,247,222,123,239,189,247,222,155,228,123,239,157,200,137, 23, 97,240, +134,203,201, 72, 37,108, 76, 59,194,124, 97,198, 87,118, 42, 29,196, 88, 42,147, +179, 78,194,104,120,230, 30,119,120,197, 93, 53, 95,150,244, 43, 51,237,144,115, +207,185,177,104,195,242, 26, 38,181,144, 79, 33,204,133,162, 40,103, 57, 46,226, + 38,233,166, 59,235, 50, 25, 3,129,183,168,129,181, 66, 51, 35, 34, 34, 82,144, + 36,133, 52, 6,209, 12, 49,200, 65,233,164,121,130,144, 40, 79, 98, 24,194,224, +136, 17, 24, 66, 32, 65, 4, 9, 70,130,145, 64, 68, 98, 70, 68,134, 60,169, 1, +122,194, 61,137,232,172,140, 74,218,144,168, 62,234, 64, 89,114,124,100,100,134, + 18,198, 72,149,218, 51,239, 40, 35,235,212, 68,233,226, 93, 37,202, 82,255, 6, +121,225,127,118,189,166, 21,204, 64,172, 44,232,224,254, 71,118,132, 60,197,118, +160,114, 12,176,108,117, 10,160, 22, 67, 46, 79,194,169,130, 65,191,182, 94,233, +250, 66, 46, 1, 34,250, 78,201, 21,101, 25, 11, 68, 58,194,252,248,240,114,149, + 95, 74, 24,175,199,194, 82,176, 38, 74,115,150,133, 71, 84,224, 19,220,165,148, +237,254,125, 13,142,219, 35, 55,248,191,133, 54, 63,129,138,230,147,138,246,241, + 12, 95, 19,241,215,201,110,108, 44,141,221, 85,168, 17,107, 49,180,109,111,143, +102,211,166, 59,154,111,181,189,102,185, 95,119,150, 93,175, 59,150,209, 28, 38, +166,103, 96, 53,102, 10,244, 26,243,130,152,199,197, 46,251,143, 50,175, 74,186, + 1,116, 80, 57, 15,142,186,229, 70,200,206,172,202,219,167, 77,201,246,222,172, + 90, 58, 53,223, 87,228,106, 71,203,146,173, 16, 21,241,138, 12,175,229,109, 77, + 88,117,219, 12, 19,146, 95,235,250, 72,151,153,240,253, 17, 20,251,230, 64,125, +132, 52,240, 84,182,159, 13, 18, 73,177,208, 83,104,244,226,252,152,196,215,190, +131, 2,127,219,216, 63, 43, 66, 43, 8,136,188,105, 84,198,194,215,106, 8,242, +245, 47, 19,149,178,103, 80,217,123,119, 29,226,234, 20,151, 9,101, 25,153, 24, +112,102, 14, 35,240, 51, 86,100,227, 49, 32,161, 72,219,236, 85,142, 89, 39,176, +142,176, 33,101,235,173,215,126,167,167,224,116, 98, 16,158,135,100, 36,143,248, + 4, 34, 72, 89,201, 54,159,107,105,114,255,223,198, 82, 94,156,102,173,172, 67, +144,228,244, 31, 29, 73,152,188,128, 91,201,152, 8,119,117, 19,105,211,231, 79, +252,249, 97,219, 7,231,140,197, 46,134,208,157, 3,120,177, 28, 32,115, 35, 82, +178, 40,156, 83, 29,244, 30,249, 91,113, 25, 21, 14, 33,185, 61,228, 63,183, 20, + 96, 48, 34, 3, 28,168,227,189, 9,222, 34,164,124, 3,223, 84,216,240,111,187, + 22,206,246, 4,208,161, 43, 0,102, 94, 66, 48,235,162,236, 42,195,204,212,206, +237,173, 57,218,114, 78,153,183, 12, 54,226,252, 22,131,137,179, 16,137,120,155, +147, 45,162,190,228,116, 9,109,189, 72, 12, 35,114,150,165,172,201, 27, 52,241, + 89,160, 42,198, 52, 0,212, 29,150,252, 87, 1,120,223, 77, 77,169, 97, 88,131, + 59,103,109, 89,218, 98, 12,196, 94,111,205,189, 71,239,208,193,159,211,101,125, + 44, 99,123, 62, 86, 78,165, 56,250, 6,252, 98,222,237,248,239,127,116,148,195, + 4,196, 74, 68,119, 9,236,121,232,122,133, 92, 6,107,167,135,144,217,226, 90, +250, 77,180, 48, 4, 55,251, 90, 12, 19,104,247, 75, 41,248, 18, 5,134, 71, 27, +170,158,136, 13,184,200,137, 70,171, 11,252, 56,227,182, 47,165,112,247, 86, 4, + 45, 10, 79,122,254,189, 2,223, 69, 63,171,243, 73,174,114,184,127,219,172, 9, +240, 62,130,217,217,149,253,230,227,237,149,139,112,184, 21,114, 66, 88, 91,147, +206,139, 6,110, 76,125,151,123, 67, 8, 83,189, 92, 1,188,207, 72,225,180,203, + 32,249,109,208,182, 10,149, 79,250, 66, 81, 3,216, 48,200, 4,113,153,236, 31, +179,154, 12,153,188, 39,241,149,126,115,182,100, 88,239,141, 0, 9,147,178,232, + 86, 4,254,165, 5,143,193, 12, 68,226, 74, 46,200,185, 48,167, 8,185,217, 62, + 2,129,165, 48,154,141, 2,157, 84, 88, 73, 16,194, 78,250, 16, 11,152,147,193, +253,177, 98,121,164,167, 86,140,247,203,173,167,130, 22,163, 84,138,144,147,197, + 55,175,199,193,248, 5, 33,122,241, 33, 1, 42, 69,119,111,221,204,178, 38, 33, +250,188,111,178,115, 6,202,209, 68,239, 89, 17, 78, 28,205,117, 16,248, 66, 65, + 15,240, 10, 23, 27,231,144,132,209,227,169, 42,139,158,132,141,156,107, 22, 56, +202,143, 43, 98, 69, 18,133,183, 39,124,177,110,218,236,189,184,229,228,106,105, + 73,167, 13,255,107, 25,232,104, 34,193, 35,113,128,143, 75,150,140, 70,215,163, + 70,231,140,157, 52, 73,127, 48,121, 43,137,230,209,208, 59, 98,253,144,242,161, +243,104,171,210,202,213, 4, } ; -// ../Source/Template/GB_subassign_06d_template.c: -uint8_t GB_JITpackage_140 [2482] = { - 40,181, 47,253, 96, 36, 80, 69, 77, 0, 26, 74,220, 13, 40,176, 86,117, 14, 84, -114, 79, 19,104,134,208,160,171, 26,251, 89, 97, 43, 12,243,105,120,183, 22,226, - 76, 23, 78,137,212,133,129,227, 7,253, 7,189,159, 18, 92,215, 0,214, 0,201, - 0,191,231,133,156,148, 30,201,201,176,136, 9,194,166, 5, 82, 82,174,161,137, -235,180, 50, 11,227,147,129,166, 5, 72,114,178, 22,222,140, 41,103,115, 93,124, - 46,139,153, 97, 21, 92, 13,192, 57, 4,109,125,119,249,185, 69,159, 78,166, 41, - 5,243, 42, 79,133,133,108,235,163,200, 86,173,122,120,142,122, 74,234,158,142, -103, 90,124, 46,141,255, 39,211,199,219,214,128,105,179,145,243,186, 62, 18,231, -122,179, 97,192,100, 64,128, 96,233, 78,163,160,252,229,118,229,106,182,189, 97, -150,198,182,181,186,177,108,104, 60, 4, 91,143,220,198,253, 57,206,157,168,126, -238,121,242, 49, 1,193, 0,193,194,112, 96,128,240, 74,163, 30,113, 29,161,154, - 19,200,151,186,252,145,106,246, 8,146,155,136, 14,164,119,226,210,248, 82, 16, -212,185,134,160, 73, 62,243, 7,233, 96,253,210,153,122, 32,169,243,220, 22, 12, -166, 21, 85,140,105, 40,196, 51, 98,226, 5, 5,147,165,160, 32,119,224, 19, 23, -152,230,226,242, 88,116,166,230,218, 68,112, 48, 36,117,208,133, 69,112, 58, 29, - 0,242,155,149,242,216,240, 40,169, 91,124, 58, 26,115, 3,251,100,146, 51, 47, - 11,219,128, 82, 6,222, 64,253,242,131, 67,188, 58,120,134, 42,161,164,249, 24, -169, 47,255,179,211, 79,184,219,162, 75,189,211,227,173,219,254,219,215,229, 38, - 97, 6,142,144,160,245,136,173,252,153,143,238, 71,242,246, 66,225,183,225,141, -246,237, 34, 30, 97,154,237,148, 55,177,148,186,102,115, 81, 92, 76,215, 71,110, -172, 75, 51,178, 97,167,125,179,120, 52, 20,233,127,242,253,139,215,158, 71, 47, -245, 84, 22, 10, 10,245,236,115,129, 64,146,171,155,197, 60, 88, 26, 44,229, 60, - 31, 44,159,148,152, 87, 22,245,140,247,125,161,103,108, 63,173,177,215,127,172, - 74,228,171,129, 95, 30,142,108, 82, 20,245, 12, 36,173,170, 77, 42,166, 81,130, -177, 68, 82, 27,157,111,179,193,144, 8, 22, 60, 72,250, 78, 73, 34,122, 65,155, -109,227,190,224,113, 87,207,163,191,120,244,134, 24,139,253,108,135,110,169,118, -249,190,221,145, 60, 86, 90,238, 71, 11,206,242,123,171, 35,117,251,229,210, 55, -204,161,133,193, 54, 26, 60,198,249,229, 25, 82,233,228,240,116, 38, 16, 3,143, - 74,251,228,185,239, 29,122,116,228,211,168, 91,150,101, 89, 37, 85, 9,192, 5, - 4,222, 84, 83, 7,109,100, 6, 65,149, 97, 21,241,126, 89,163,220, 99,219, 22, - 81,247,218,222, 30,189,180,117,174, 37,239,214,173, 20,250,214, 56,180, 95, 99, -170, 29,215, 46,251, 9, 42,210,253,184,127,182,116,179,237,183, 39,162, 47,121, - 61, 82,179,214, 28,215,191,223,111,109,235, 98, 2,155,150,102, 89, 27, 15, 7, -203,141,111,187, 67,199,180,139, 29,222, 72,194,182,226,219,246, 70,104, 40,212, - 80,107,215,129,160,124,214,234,205,184, 3, 83, 24,240,204,100,107,135, 68,159, -151,146, 34,155,163,190,117,232, 25,135,164,148,171, 3,251,116, 50,235,202,144, - 82, 86, 75, 74, 25, 43, 22,134,230,250, 76, 13, 7, 3, 77,201,153,144, 31,143, -149, 25,120,200, 51,150, 5, 30, 84, 98, 5,122, 98,140,210, 51,179,107,226,177, -147,212,229,164, 8,233,145,119,121,244, 88,133, 56, 96, 62,170, 46,241, 66, 97, - 14,226,145,201,244,179,199,253,109,249, 15,231,170,195, 65,212, 42,137,218,210, -118,132, 15,128, 21,234, 97,254,140,156, 25,223,202,141,168,117, 76, 5, 41,174, - 23,185,157,152, 11, 77,185,193,245,241,126,143,248, 54, 88,234, 14,158,169,132, - 50,167,126,209,193, 50, 44,251, 72,207,140, 49,223, 41, 29, 46, 21,202,126,247, - 91,205,143,211,193, 99, 40, 55, 38, 53,105, 74,145,143,224, 99,137, 5, 2,254, -164, 82,113, 56,120,204, 13,168,154,105,198, 84,123,225,214,157,134,169, 73, 10, - 3,130,148,168,162,172, 20,161,153, 17, 25, 73,146, 82,161, 49,114, 24, 4, 34, - 81, 26, 72,121,180,119, 30,146,160, 40, 15, 66, 24, 66, 65, 40, 66, 12, 33,196, - 16, 66,140,192,145, 9, 39,144, 64, 68, 68, 36,184, 77, 58,133,129, 65,123,218, - 2,106,135, 86,180,202, 86,174,243,116,154,144,217, 44,188, 87, 85,161,186,135, - 58,179,255,247, 11,241,248,105,239, 60, 34,235,172,136,130, 31,212, 45, 38, 87, - 55,144,158,208, 22,201,171,167, 16, 7,102,234,239, 50, 9,250, 3, 74,104,132, - 84,162,212, 90,253,244,207, 97, 8,208, 66, 15,144,151, 21, 84, 56, 37,124,163, -227,171,105,165, 49,106, 33, 66, 67, 89, 63, 83,166, 56, 45,238,173,130, 30,220, - 94,133,104,140, 61,104,186,152,171,189, 51, 24, 18,231,180,219, 49,101,173,188, -231,241, 35, 22,254,212,149,221,188,209,125,143, 45,129,153,177, 32,185, 20,200, -209, 6, 48,219, 93,123, 53,126, 3, 31,205,249,162,236,238,118, 44,156, 60, 55, -123,179, 61,142, 38, 49, 80, 23, 53,194,221, 78, 84,215,105,124,226,245,253, 46, - 65,190,248,145, 39,137, 46, 67, 99,142,235,254,234,235,107,125,177, 99,241,237, - 86,243,147,134,228,182,161,210, 18,134,143,253,112,212, 0, 27,189, 0, 30,251, -223, 69,253, 35,214,184,178, 6, 88, 67, 0,151,109, 10, 73,128, 87, 29, 0, 64, -157,255,199,225,207, 23,232,135, 11,126,147,194,190, 38,160, 47,143,157,128,192, -255, 1,247,195,192, 0, 75, 65, 0, 23,245,191, 9,180, 9,246, 35, 63, 30, 13, -176,140, 89,115,187, 31, 87,188,241,252,187,114,108,206,199,242,232,114,108,188, - 40,248, 45,241,157,224,177,249,163, 5,223,248, 19, 20,191, 39,170,122, 44,253, -118,108,210, 26, 11, 3,164,217, 98,254, 76,210,238,175,183,170,106, 33, 21, 30, - 6, 9,106,177, 4, 15,114, 98, 18, 14, 44,165,141, 78, 15,119,187,248,101, 98, - 61,138,183,196, 11,158,222, 54,134,139,227,148, 44, 19,107,158,105,183, 23,173, - 78, 33, 83,220,192, 74,189,140,128,140,147, 23,255,247, 66,172, 81,113, 93,103, - 53,247,224, 7, 80, 63, 5,199,135, 28, 42,150,129,251, 62, 44,101,114,117, 18, -182,131, 20, 49,133, 53,152,112,163, 63,109,169,236, 85, 2, 12,106,179,141, 97, - 29,131, 68,183, 71,253,174, 56,148, 56, 35, 15,147, 24,155,133,227,139,247,254, - 7,174, 70,144, 5,169, 16, 57, 50,229, 32, 92,161, 72,149,121,167,102, 98, 15, -115, 95, 36,212,209, 53, 35,195,126,100,171, 79,250,215,199,235, 3,112,173,147, -104,212,151, 70, 94,250,190,111,137,200, 29,194,234, 62, 35,199, 77, 96,172, 28, -236, 54,167, 13, 41, 93, 81, 89,146, 96,254, 39, 17,184, 39,177, 2, 50, 47,133, - 39,218, 24,194, 28,135,212,220,188,146,120, 71, 25,130, 92, 92,104, 23,131,186, -163,225,216, 19,221, 34, 51,166,188,235, 10,223,145,155,215, 32,186, 12, 99, 81, -254,185,152, 46,193,137, 10,198,171, 37,144, 89,238,237, 97,174,228, 21, 9,160, -179, 28,124, 62,182,148,238,183, 39,148, 3,125, 44,102,103, 44,128,131,157, 55, -170,141,210,190,221, 23,139,214,230,200,103, 79,253, 23,121,129,202,104, 93, 67, -115, 18,206,165, 52, 94,147, 11,207,242,207,153, 61,101,230, 89,231,200, 65, 70, -142,203,136, 80,164,198, 92,111, 2, 91,182,108,199,112, 40, 27,254, 0,207,123, - 83,150,156,238,198,229, 83, 89, 48,214,207, 14,186, 41,247, 34,165, 65, 67,202, -178, 51,121,243,197, 22,246, 89,246, 55,216, 11,196,141,126, 97,126, 82, 14,188, - 31, 20,175, 43,246,194, 49, 18,147,120, 23,180, 95,140, 19,186, 24,154,230,177, -164,116, 93,137, 76,139,201,244, 94,254,255,152,253,204,221,104, 60,253,161,113, -157,252,188,219,116, 52, 73,203, 45, 99,206,241,190, 16,248,109, 14,112,209,223, - 14,216,245,197, 99,133, 90, 72,111, 67,199,160,180,191,249,246, 66, 31, 74, 58, -207,199,176,210, 77, 88,212,148,148,116, 24,234, 17, 0,227,173, 2, 83,231, 80, - 0,139,134,140,250, 56, 25,233,116, 20, 37,198,232, 15, 50, 92, 26,176, 15,139, -169,209,233, 51,157,234,221, 68,158, 40,112,148, 75,152,226,209,190,145,201,148, -188,106,116,239,247,116, 3,147, 47,122, 47,200, 90,118,189,163,173,220, 50,128, -193,179,178, 11,140,184, 22, 83, 51, 2, 58,216,166, 19,238,211, 21,252, 90,209, - 82, 10, 0, 74,224,120,192, 0,170,215,231, 2, 95,200,201, 50, 87,185, 58, 49, - 5,233,246, 98, 21,233,181, 64,255,135,164,234,205, 15, 65, 90,134,247, 95,168, -182,161, 92,177,200,130,195, 11,141,124,117,229, 10,101,158,246,104, 85,181, 30, -165,243,218,239, 17, 64,121, 49,156,155,225,130, 97,113,231,157, 8, 64,169, 49, - 31,207, 8, 83,172, 44,212, 58,135, 57,234,230,197,158,146,107,238,104, 99, 49, -142, 41, 80,152,245,181, 4,182,104, 76, 58,101,219,175,128, 35, 99, 98,117,161, - 40,172,205,175, 7,149,204,169, 96,151, 72,104,246,220,248, 34,134,208,159,236, - 10, 91,127,184, 66,116,145,218,124,144,147, 46,130,169,139, 35,231,167,202,242, - 60, 3, 0, 11,183,127, 44, 25, 82,248,223, 50,126,155, 0,227,141, 73,180,129, - 47, 58,165,250,148,151, 72,220,140, 9, 19, 86, 64,219, 77,193, 48, 7, 82,115, - 27, 12, 27,143,110,149,213, 98,192, 17,157, 87,223,112,178,196, 51, 63,194,193, -170, 40,190, 68,113,140, 57,229,205,222,159,157, 0,180, 32,243,188, 64, 73, 62, - 38,168, 53, 81,104,148, 34, 16, 32, 49, 60,138, 60,206,255,136,217,162, 91,210, -188, 97,108,115, 74, 16, 20, 6, 83, 95,184,135, 25,218, 19,201, 33,222,255,140, - 19,168,166,221,127, 92,174, 8, 32,224,184,117,154,116, 65,180, 10,214,136,169, -102, 59,173, 15,144, 50, 33,118, 89,103,153,207, 4,233,128,191,146,124,234, 51, -136,164, 76, 32,124,159, 5, 21, 10, 0,103, 99,211,198,183, 10, 90,224, 99, 7, - 81,198, 37,204,112,108, 30, 63,116, 52, 8, 95,185, 62,130,211, 32, 47,176,251, -121,142,254,254,108,250,202,100, 91, 99, 68,211, 86, 10, 83, 36, 88,120, 3,138, -203, 41, 54,131,119, 41,149,159,206, 5, 40,114,170,160,113,133,246, 80,237, 1, - 56,231,241,161,139,137, 51,243,115,154, 42,218,202, 87,218, 71,108, 61, 13,205, -165,219,134,127,197,143,114,215, 95,232, 65, 76,188,170, 19,101,202, 40,106,171, - 45,194,240,119,230,160, 85, 24,235,236,208,239,255, 93, 4,168, 54,146,200, 37, - 42, 1, 15,205, 23,128,192,255,145, 55, 68,228, 70, 57,204,174,187, 37,187,234, -152, 61, 19, 33,168, 4, 13,236,112,106, 63,160, 47,126,220, 38,187,172, 29, 53, - 37, 93, 28, 20, 72, 31, 19,128,159, 91,128, 11, 49,100, 0, 12, 65, 51, 38,241, -115, 31,151,201, 8,199,211,188,245,160, 23,153,227,112, 61,217, 61,102, 87, 94, - 81, 59,160,184,132,195,255,145,234, 21,113,225,253, 81, 86, 22, 24,201, 42,156, - 9, 21, 94, 72,241, 23, 1,176, 52, 40,192, 55, 90, 73,100, 96, 42,107,232,213, - 89, 10,101,246, 37,217,173,231, 42, 66,127,217,227,122,170, 76, 98,176,217, 78, - 75,170,193, 45, 81, 55, 26, 52,133, 7,102, 90,242, 40, 23,248,206, 79, 83,206, - 84, 18, +// ../Source/Template/GB_add_template.c: +uint8_t GB_JITpackage_129 [1639] = { + 40,181, 47,253, 96, 9, 26,237, 50, 0,118,125,182, 40,192,146,117, 14,106,182, +112, 62,191, 53,181,167,215,237, 25,162,165, 19,187,149, 16, 12,163,199,247,180, + 98,147,102, 17, 90,159, 62,253,174,162, 32,200, 6, 51,168, 0,173, 0,167, 0, +167,125,203, 13, 94,202,231,234, 5,206,221,189,189, 52,180, 97,199,111,152,189, +226, 60,182,183,111, 93,251,173,244,150,235,246,202,132,214,166, 23,223,182,200, +182, 49,184, 2,171,229, 27,126,161,106, 73, 7, 19,138,132, 59,109,126,241, 21, +144,155,235, 75,121,203, 72,216, 82,214, 90, 35,201,184,116, 38, 27,139, 64,182, +236,185,189, 29, 71,123,238,121,241, 85, 2,229,128, 34, 97, 64, 56,160,156,210, +166, 87,182, 69,243,242, 73,252,168,187, 53,212,160, 87,159,168,145,221, 55,193, +137, 10, 91,112,126, 31,190, 29,126, 36, 0,136,235,193,122, 37, 11,162,197, 58, + 88,185, 83, 54, 58,143,192,118,118,223, 95,225, 59,189, 47,196, 23,219,182,137, +201,137, 27, 24, 72, 18, 3,131, 92, 39, 94,160,140,252,102,232,118,134,249,120, + 98,231, 99, 61,152,142, 6, 69, 60,200,223,168,195,108, 99, 81,210, 96, 54, 30, +140, 5, 6,202, 84,112,188,113, 45, 64,217, 19,117,103, 89, 67,215, 57,252,131, +144,124,241, 87,107,240, 90, 6, 9,126, 49,133,133,107,105,213, 28,190,245,165, +109, 93,175,228,171,248,203, 28,151,164, 16, 73, 58,152,151,179, 23, 72,249,130, +123,243, 22,235,149, 75,217, 50,248,245,169,142,170,167,120,174, 17,190,225,100, + 54, 23,152, 79, 6, 3,131,125, 50, 76,155,227, 77,160,194,141,178,111,161,173, + 80,182,129, 80,104, 67,161,118, 6,231,237,245, 66,203, 96,197, 30, 7,109, 59, + 89,107,207, 30,108,235, 97,231, 61,211,150,248, 39, 22, 88,175,198,162, 78,155, + 28,175, 40,148, 79,182,218, 93, 14,253, 78,238,171,218,153, 86,176,218, 87, 96, +189, 19,228,239,159,119,110,148, 63,222,110,143,178,143, 60, 90,191,177, 13,111, +251, 8,150,214,190,125,202, 71, 32, 36,151,162, 62,166, 87, 34,166, 83, 83,119, +150,117,221,117,233, 33, 0,191,166,115,109,185,174, 11,100, 93,120, 64,159,171, +133,224,181,157,139, 99, 97, 22,159,136, 81, 34, 34,159,192,138, 93,215,117, 93, +215,117, 29,132,126, 49, 6,105,251, 1,194,174,190, 54,151,148, 82, 74, 41,165, +148, 82, 74, 41,165,148, 82, 74,201,245, 70, 29,106,181,125,206, 62,154,161,203, +248,238, 86,215, 11, 67,204, 30,237,209,208,225, 84,156,110,241,106,205,216,122, +204,169,154, 11,137,223,243,194,146, 36, 73, 26, 10,140, 84,219,212,244, 83,242, + 99, 2,179,216,122,108, 89, 33,217,116,249, 8,194, 76, 60, 98, 60, 81, 99, 97, + 46, 27,151,149,148,217, 36,169, 42,126,213, 71,156, 34,118,137, 28,205,229, 12, +156, 22,203, 94,117,244, 28,160, 95,229, 96,154,184,225,100, 64,153, 15,167,227, +205, 80, 72, 95,161, 72, 1,218, 36,224,188,133,158, 70,169,131, 44, 98, 58,177, +237, 91, 90,123, 53, 11,141, 44,194,109,203,118,106, 79,120,197,154,190,121,220, + 97, 32,148, 30,132,106,211, 47, 26, 12,197,166, 59,203,186,206,250, 44,203,178, +164,148, 50,198, 24, 45,128,233, 32, 15,230,243,137,212, 41,183, 88,166, 83, 30, + 41, 58,216,229, 18,233, 68,107,144, 41,115, 84,214, 99, 10,178,199, 71,147,251, +108, 81,129,173,168, 97, 73, 66, 35, 36, 34,146,130, 36,169,180, 6, 33, 9, 33, + 8, 74,167,206, 60, 98,144, 32, 21,145, 24, 2,129,136, 38, 48, 68, 17,162, 72, +137, 68, 2, 33,145, 96,164, 48, 73,218, 41,151, 35, 84, 98,207,148, 52, 37,209, + 0,253,205,142, 63,195, 35, 93, 0, 51, 43, 15,252,224, 66, 43,205,229, 66,233, + 64,168,235,166,196,173, 7,228,122,132,120, 26,184, 91,210,180,215,229, 7,124, + 34,232,191,122, 16,100,215,130, 88, 35,248,187,210, 65,116,195,242,244,143,175, +120, 86, 46,162, 2, 31,160, 98,252, 29,155,188,151,196,109, 0,194, 90,201, 74, +156, 52,191, 7, 77, 31,121, 63,134, 21, 14,114, 84,226, 88, 85,235,248,208,177, +192,211,211, 66,123,132, 32, 4, 75, 65,208, 92, 7, 97,122,177, 52,162,139,166, +116, 33,202, 21,220,209,199,210, 0,196,186, 17, 34, 12, 90, 34,170,215,208, 82, +107,247, 96, 92,233,107,116, 28,149,249,172,142, 66, 12,226,239,130, 77,124,235, + 38, 29,221,235, 43,132, 28,217, 14,196, 82,145,231, 42,211,190, 54,184,176,136, + 81,121, 16,189,104,134,208,155,205,117, 97,134, 67,240,220,251,189,172, 19, 91, +210,151,198,155, 48, 2,212,208, 64, 37,237, 4, 87,138, 82,147, 55, 88, 6, 2, + 20, 67,106,212,148,155, 94, 27,100,237, 78,219, 45, 83, 47, 29,176,125,148, 16, +203,215,188,150,176,181,144, 30,222, 8, 37,219,110, 54,216,255, 23,190,168,126, +179,137,186,210, 70,131,208, 58, 13, 51, 64,176,228,218,117,196, 51,226,204, 99, + 24,113,173, 29,198, 15, 98,180,152,233, 2, 38, 50, 58,135, 4, 92,240, 11,155, +194, 35,121, 30, 67,194,114,237,230,248,212, 94,116,204,105,119,187,254,108,179, +227,226, 76,192, 46,113,244,173, 29, 14,101, 68, 18,103, 17, 65,231,144,131,143, + 46,180,234,198, 67, 7,154,156,251,245, 68,213,176, 64,110,212, 15,112,174, 26, + 88,178,208, 13, 5, 69,223,153,220, 29,181,221,240,212,169, 17, 80, 21,232,205, + 44,241,230, 62, 50, 85, 29,171,167,137, 23,204,170, 20, 93, 35,205,108, 14, 20, +102,138, 70,170,199, 15, 68,177,152, 47,165, 69,227,115,178,198, 87, 16,145,172, +113, 74, 63, 84, 74, 25,106, 27,169,173, 11, 55,205,127, 77,119,154, 40,211, 37, +113, 3,144,218,160, 61,243,245,169, 88,197, 88, 68,105,189, 39,243,199,135,188, +201,171,223, 12, 67,229, 61,218,246, 77,237, 83,219,147,234, 26, 54, 81,232,134, + 5,189,147, 64,116, 94,159, 56,210,104,186,180,209,243,127,157,253, 98,100, 82, +162,116,166,254, 57,104,141, 36, 71, 34, 88,239,136,231,106, 99, 39,111,189, 24, +214, 40, 89,156, 61, 96, 6, 55, 53,101,127, 10,219, 28,113,128,239, 40, 58,192, +149, 65,250, 32,187,220,174, 70,213,248,116,212, 22, 23,168,147,191,191,234,174, + 89, 40,251,230,222,165, 87, 27, 28,158,133,108, 74,148,204,148,191, 7,237,176, + 86,247,168, 50,215,243, 41,207, 36,134,238,164,196, 23,129, 28, 33, 41, 2,249, +136,128, 1,116, 7,153,140,145,151, 52,252,110,246,118, 33,210, 29, 16,223,197, + 49,121, 88,244, 48,142,170,237, 41,114,183,135, 43,112,214,198,191,216,244,113, + 81,168, 65,201, 14,217,213,149, 89, 30,129,102,194, 77,104,100, 38,112, 58, 78, + 23, 14, 76,111,197,193, 10, 80,147,144,173, 18, 97,211, 9, 32,217, 56, 8, 7, +252, 71,220, 52, 28, 6,114,119, 21,207,164, 73,254, 81,152, 97,213,186,117,232, +253,185,254,222,117, 17,200, 44,138,234,193,239,154,194, 4,153, 81, 28,203,120, + 87, 80,231,169, 69,134, 65, 59, 84,242,188,110,198,199,117,238, 80,119, 26,139, + 94,201,171, 36,149,123, 38,209, 36, 51,157,176, 69, 45, 86,140,201,139,144,129, + 48, 75,160, 6,152, 27,186,217, 29, 7, 57, 79,103,108,162, 17,117, 50, 12,128, +220,237, 20,192,132, 87,174,159, 96, 0, 30, 75,179, 33,128, 65, 73,219,159,243, + 41, 7,109,179,150, 75,184,251, 35, 72,211, 96, 77,210,217, 24,233, 41,218, 52, +221, 42, 51, 45,109,230,230,154,102,109, 57,111, 92, 31,142, 85,122, 88,157, } ; -// ../Source/Template/GB_subassign_22_template.c: -uint8_t GB_JITpackage_141 [578] = { - 40,181, 47,253, 96,145, 5,197, 17, 0,102, 30, 94, 32,240, 24, 61,208,133,145, -136, 47,145,124, 48, 47,150, 42, 43, 50,238,192,245,239, 45, 28, 36,253,232,202, - 5,158,129, 52,135,191, 85, 0, 84, 0, 82, 0,135, 77, 99, 32, 14,155, 11, 40, -230,153,174,167, 57,241, 2,231, 42,112,139, 97,229,120,214,113, 23, 9,136,103, -174, 52, 94,231,137,187,223,117,236,174, 60,237,164,218,167,202,191, 59,221,218, -145,228,186,186,244,207, 15,162, 92,229, 16,130, 75,111,252,158, 22,135,191,189, -109,243,110,169,106, 61, 71,163,246, 36, 21, 55, 24, 46,205, 96, 8,250, 51, 14, - 71, 74,231,211,105,241,103, 79,126,159,197, 91,170,222,216,116,204, 91,191,182, -147,132, 67,145,122, 38, 61, 47,151, 78,198, 27, 95,182,109,254,137,224,126,204, -117, 40,108,218,131,116, 98,206, 27,249, 43,169,238,251,159, 69,123,125,159,214, -139,246,153,104, 10,223,159,242,235,223,184,222, 96,169,110,220, 90,206,179,196, - 22,155,214,188,245,231,129, 83, 52, 32,142,244,253,165,212, 12,189,204,116, 71, -144,122,118,125,235, 43, 82,137, 93,136,251,246, 20,139,125,171,187,195, 5,171, - 75, 49,239, 46,156, 39,227,201,215,163,139,219,245, 55, 63,131,219, 73,162,231, - 31,133,227,245, 7,183,255,173, 97,254,253,159, 95, 23,235,186, 10, 87,188,157, -115,251,126,215,213,186, 90,153,196,158,165, 36,230, 81, 56,220,165,131,233, 72, -201,153,178,136, 18, 73, 28,242,148,179, 8,132,135,195, 15, 14,113,137, 49, 1, -173,123,110,141,189, 29,191, 7,169,118,193,197,188, 44,146,220,190,181, 51, 79, -236, 56, 20,125,134,165,153,113, 64, 98, 81, 87, 0,230,156, 13,165,235,184, 84, - 68,147, 46,192, 28,226, 41,233, 1, 73, 32, 32,132, 16,197, 84,157, 7,222, 32, -224,117,112,246,203, 14,140, 12,111, 35, 15, 18,149,128, 8,252,197,230, 13,186, - 23,147,104,215,211, 78,162,129, 35,175,192,186, 54,129, 46, 56,199, 26, 0,118, - 61, 67,154, 77,200,152, 2,155,120,224,183,113,112, 77, 56,144,125, 78,227, 4, - 7, 69,185,108, 26, 44, 97,152,212,162, 52,161,136, 37,135,197, 19,110,196, 50, -164,103,208, 98, 98,164,105,111, 27, 12, 5,144, 1, 99, 13,154, 18,196, 27, 39, -152,156, 89, 21, 43,252, 5, 70, 79,197,133, 68, 2,130,232,181, 54, 16,129,225, - 25,132,222, 14,141, 35,117,138,160, 33, 95,183, 6, 4,161,227,239, 88,133,154, -170, 7, 28, 17,195,205,120, 35,244, 68,230,224,184,204, 57,231,108,173, 50,156, - 77,179,243,204,132,182, 77, 87,235,154,226,209,152, 43, 84, 20, 12, 1, +// ../Source/Template/GB_apply_bind1st_template.c: +uint8_t GB_JITpackage_130 [394] = { + 40,181, 47,253, 96, 63, 2, 5, 12, 0,102,151, 74, 33, 0,181,142, 1,202,145, + 96,116,103,248,176, 11, 75,176,143,166,171,186,195,164,118, 60,130,136, 70,112, + 23,243,255,127,175, 15, 33, 66, 0, 67, 0, 62, 0,135, 79, 77,126,210, 55, 84, + 33, 39, 88, 23,113,219, 3, 93,204,167,139, 53,161, 92,174, 95,132, 97,245, 87, +243,197,238, 11, 94,226,164, 83, 40,159,189, 63, 30, 94,103,216, 93,187, 12,178, + 59,219,218,176,225,203,201, 68, 93,206, 53,163,145, 23, 10,145, 42, 20, 2,215, + 52,190,193,188, 65, 47, 11,175, 79, 41, 56, 86,217, 96,178,235,127, 36,197,138, +112,160, 44,167,213,108,157,241,217,219,185, 27,219, 77, 66, 89,141,173,118, 39, +148, 6, 82, 33,108, 54,244, 89,109, 45,215,155,243, 92,203,187,206,250,132, 56, + 84, 7,106, 97,168, 2,141, 87,127, 60,203,255,113,106,119,215,173,165,237,192, +205,114,154,254,196, 82,111,213,126,220,206, 64, 32,254,231,117,222,217,174,171, + 95,205,207, 32,239, 21,228,169, 95, 14,228,239, 44,161,216,248, 82, 74,233,156, + 27,204,248,102,161,148,130, 7, 49,150, 98,169,250, 20, 94,242, 21, 10,118,145, +100, 48,171,187,218,249,148, 63,133,244, 19, 6,139,204,207,229,200, 83,204, 98, + 77, 46, 12, 98, 65,124, 55,246,180,207,153, 63,113,168, 60,205, 40,141, 0,228, + 59,247,241,164,193, 96,132, 57,119, 60, 63, 34, 32, 96,130, 49,166,243, 78, 8, + 80,184,246, 29,199, 1, 73,233,106, 63, 12,175, 84,235, 29,160, 98,206,177, 35, +131, 17,107, 91,164,182,102,194,189,217, 29,220,129,212,221,105, 38, 70, 4, 48, + 95,251,168, 8,220,111,208,112,204, 70,144,167, 53,230,147, 23,157, 98,189, 65, +147,134, 48, 19, 58, 2,172,161, 14, 56, 90, 20,117,110, } ; -// ../Source/Template/GB_subassign_23_template.c: -uint8_t GB_JITpackage_142 [1589] = { - 40,181, 47,253, 96, 52, 27, 93, 49, 0,166,184,172, 41,176,148,177, 14,180, 64, -128,155,185,229,142,112, 94,128, 59, 82, 73, 16,216,154, 94, 73,180, 8, 34, 37, -222,203, 16,232,157, 37, 74,127,208,127,176,191,177, 43, 1,163, 0,161, 0,161, - 0,148,195, 50,164, 37,164, 14,250,128,100, 69,232,202,248, 95, 66,241,120, 87, - 42, 64,233,116,160,188,174, 80,196,181,206,234, 23,176,225,175,126, 1,239,236, -227,176, 74, 5, 40,151, 2,140,165, 55,108, 94,248, 6,175,169, 70,115,237,140, - 99,105, 92, 27,163, 29,139,198, 6, 84,144,181,201,107,220,161,227,188,129,208, -208, 57, 14,222, 66,192, 92, 48,150,133,131, 11,230, 21, 70,221,194,212, 52, 55, - 47,128, 63,109,217,118,116,116, 75, 4, 59, 16,219,157,158, 68, 67, 99,111, 94, - 81,103,250,137, 40, 28,247,105,199,244,241,237,245, 38,114,120, 77,229,241, 13, -157, 39,119,187,206, 18, 1, 35, 43, 8,197,120,146, 62, 44, 33, 36,110, 96, 64, -177, 24, 24, 4,109,178,239,252,221,206, 98,183,249,157,177, 19,139,107, 52, 31, -133, 46,145, 40,243,203,200,236,100,253, 54,236, 22,229, 89,248,236, 37,149,137, - 9,117, 13,107, 83,173,104, 30,226, 89,145, 55, 71,250,108,150,113,189, 73,146, - 90, 79, 82, 39,245, 77,231,154,176,192,217,108,111,179,112, 8,158,185, 74,248, - 43, 4, 59,241,218,140, 80, 47,207,238,240,189,229,183, 70,179,154,121,176, 64, -155,113,181,152,134,179,150,212,152,235,143,237, 92, 68,252, 32,232, 25,113, 32, -164,136, 35,225,157, 93,166, 36,137,169,132,157,203, 34,116, 85,200, 17,135, 66, -163, 2, 56,127,183,210,231, 6, 57,165,132, 66, 57,201,188,202, 50, 65, 33, 87, -122, 11,164, 82, 44, 29, 8,207, 5, 5,214,222,222,252,150, 45,233,214,141,212, -175, 17,236, 92,120, 46, 98,220, 50,173,124,164,191, 74,115,245,113, 59, 0, 42, - 21,135,223, 75, 85, 24,205, 51, 99,170,185, 47,235, 13,195,175, 40,217,125,245, -158,213,206, 53,199, 77,111,222,223,206,126,118, 32,211,187, 2,151, 68,202,146, -161,246,231,229, 91,151, 91,150,180, 89,150,232,148, 27,160, 79,252,184,116, 84, -167,141, 60,177,190,167, 12,175,217,247,199, 77,211,109,117,162,190, 17, 49,172, -170, 98,140, 49,142, 84,212, 53, 31,129,207, 24,245, 50,110,143,224, 23,104, 99, - 20, 1, 34,192, 45, 12,194, 45, 72,189, 34,244,201,144, 26,156,208, 8,122,228, - 21, 57, 29, 17,188, 23,148, 19, 10,127,114, 2,255, 67,250,202,227,189, 69,115, -234,144,249, 53,135,247,226,224,132, 62,163,120, 97,200,141,135, 35,146,208, 35, - 1, 67,160, 99,122,128, 15, 12, 16,188, 20,171, 82,180,249, 56, 87,106,239,227, -197, 42, 11, 69, 93,243,198,181,179,210,188,101, 89,214, 45,121,234, 64,114,116, - 73, 28, 84,222,214, 5, 73,120,111,109,144, 58,148, 19, 37, 10,166, 91,142,149, -102,159,179, 74,181, 59,100, 94, 53, 88, 13, 84,230, 31, 29,243,121,218,122,220, - 54,171, 15,215, 40,197,225,192,194,104, 55,235, 41,203,232,189, 91,153, 92, 6, -202,140, 61,170,133,100,205,145,186,175, 20,177,218,156,105, 82,186,109,247,126, -228,230, 10,129,133,168,113,185, 82,102, 68, 68, 68, 36, 41, 72, 65, 50, 28, 97, - 12, 98, 20,148, 16,106,230, 1,146,120, 80, 20, 5, 41,144,193, 4, 17, 68, 24, -145, 64, 68, 68, 66, 17, 17,145,160,156, 77, 7,176, 64, 48,165,157, 92,226, 77, -180,100,153,206,226,137,220,161, 42,211, 77, 20,222, 88,215, 64,168,211, 17, 14, -217,255, 73,127,224,232,164, 2,222,156, 68,198,183,174,253,242,230, 26,189,131, -218, 31,237,105,228, 0,151,199,224,107, 27,229,203,213, 35,121,132,160, 69,113, - 17,178,160, 41,138,153,185, 26,251,115, 91,194, 85,159,125, 43,124,204,183, 90, - 17,251,125,100, 58, 42, 4,156, 72, 33, 38,151, 29,109, 46, 1, 40, 0,124,157, - 65, 99,125,150,140,254, 17,164, 62,144,211, 48,229,248, 87, 49, 42, 80,124,107, -191,248, 56,213,232, 18,160,247,216, 16,204, 48, 0,237, 71,160,255, 77,104,144, -164,153,143, 31,182,124, 64, 37,121,161,106,140, 69,206, 2,162, 32, 16,143, 62, -120, 25, 6,206, 26, 75, 78,131, 36,255,133, 6,153,175,188,239,191,203,146,246, -189,252,174, 0, 60, 67, 4, 27,181, 33,156,231,255, 45, 44,157,115, 5,247,176, -136,124,140, 30,115, 97,135, 79,177,102,163, 86,106,226, 71,116,116,157,145,225, -190,148,113, 2,138,143,190,178,153,141, 16,130, 56,240,124, 18,154, 24,180,163, -221, 42, 0,175,120, 20, 38,160, 97, 13,129,202, 91,141, 39, 20, 67,138, 70,245, -126,169,186,234,152, 33,133, 44, 79, 41, 49,219,160,225, 0, 55,243, 64,165, 33, - 50,130, 63, 36, 26, 2,193,196,139, 98,144,171, 48,208, 10,140,191, 0,148,192, -193,102, 63,112,179, 11, 96,223,218,100,254, 79,196,146, 95,219,152,237,213,208, - 72, 45,247, 0, 29,204, 90, 36,172, 36,177, 5, 42, 18,194,229, 14,209, 7, 18, -152,225,104,184, 31, 24, 88,177, 35,149,242, 81, 49,142, 37, 92,145,197, 97,196, -203,113, 47,145,195, 13,226, 11,100, 51,188,119,244, 99,153, 68,138,185,153, 16, - 3, 0,201, 53,103,120,144,246,170,193, 1, 80, 64,203,129, 0,237, 10, 22,169, -189, 64,197, 20,159,165,156,129, 57, 45,121,224, 68, 92,110,182, 2, 60, 10,102, -128, 23,195, 38, 65,127, 69,168,237, 99, 56, 78,158,156,143,187, 86,121, 92, 96, - 77,126, 73,114,148,183,100,160,148,193,102, 67, 0,213, 62,166,148,214,193,217, -233,143,139, 61,218,234,147, 56, 20,253, 12,132, 3, 88,205,204,235,228,130,237, -130, 9,103,165, 2,222,213,233, 5,154,161, 66,104,202,181, 42,131,190, 16, 21, -123, 64, 26, 96, 40,155, 64,178,195,139,103, 51, 27,105,111, 97, 97,190, 62,141, -153,248,136,216, 29,138, 76,163, 53, 65,214, 21, 72, 48,237,238,179,236, 9,100, - 25,105, 71,168, 74, 86, 1, 50,133,121, 73, 67,175,116, 93, 77,250, 85,196,151, -144,151, 18, 76, 85,103, 22, 21,239, 68, 94,143, 44,130, 89, 6, 7,110,218,154, -102,189,208,165,228,189,253, 59, 12,233,252, 20,210, 5,147,209,133,121,167, 95, -237,173,187, 56,213,243, 80,232,170, 55,152, 91,109,147,238, 68,194,130,176, 46, -142,184, 98,238, 33,131,254,217,184, 14,122, 39, 53,125,248, 63, 50, 94,163,210, - 35,243, 2, 0, 1, 39, 24, 99,210,105,157, 37,250,104, 16, 50, 73, 40,195, 20, - 89,253, 84,129,122,220, 84,157, 35, 17, 28,245, 83,212,118,158,214,122,197, 89, -206,245, 75,119,225,193,159,188, 85,105,160, 75,120,212,239,188, 85,150,204, 31, -245,182,119,246,160,103, 87, 20,150, 29, 22,198,168,175,200, 85,149, 90,119,238, -187, 56, 29,198,238, 17,159,232, 39,140,112, 44,150,122,196, 38,222,240,126, 17, -213, 91, 26, 13,190, 29,228, 1, 62,109,221,117,119,147,142, 66, 12,166,173,129, -227, 67,115,155,204, 41,178,170,204, 39, 15,101,173,139,137, 45, 56, 88,187, 2, - 22,222,196, 66, 1,205, 10, 27,175,174, 46,210,191,223,209,155, 99,125, 67,211, -206, 25, 47, 55,130,195,174,253, 8,137, 77,174,197, 41, 26, 52,159,159,153,154, -137,116,184, 28, 81,165,138,182,198, +// ../Source/Template/GB_apply_bind2nd_template.c: +uint8_t GB_JITpackage_131 [392] = { + 40,181, 47,253, 96, 63, 2,245, 11, 0,134,151, 74, 33, 0,181,142, 1,166, 20, +101,120, 35,252,169, 19,156, 81,183,187,103,176, 51,198,100,132,156, 9,137, 81, + 99,243,255,127,175, 15, 33, 66, 0, 66, 0, 62, 0,213,103, 38, 79, 63, 28,178, +144, 19,234,195,109,119, 32,140, 57,189,212,201, 99,211,214,139, 44,238,231, 89, +125,185, 27,131,151, 56, 67, 90,229,117,119,199, 69,214, 23,119, 91, 78,131,238, +198,180, 92,105, 25,115,176,144,211,218, 98,143,200, 11,133, 56, 21, 10, 1,181, + 50,190, 65,189,193, 14, 19, 89,159, 82,240,171,178,193, 96,214,255, 72,138, 20, +161,154,238,150, 89, 93,191,240, 46,238,224,157,175, 38,153,238,151,111,134, 39, +147, 6, 82, 33,104, 55,228,221,239, 90,254,237,205,131, 45,231,184,122,122,168, +168,106, 82, 24,168,103,156,186,227, 90,254,143, 51,195,219,238, 79, 94, 14,212, +238,150,125,159, 89,126,154,189,222,182, 49, 16,152,239,117,157,115,151,227,172, +103,245, 53,168,187, 5,121,172,167, 3,250, 27, 67, 36,118,198,115,134, 82, 10, +194,127,147, 49, 38,170, 53, 49,150, 98,137, 58,165, 78, 67, 75,190, 66,185, 46, +146,204,117, 63,206,118, 78,245,169,168,158, 98,174,200,252, 96, 43, 95, 47, 75, +157, 88, 23,228,130, 25,239,220,101,159, 83,159,114,170,124,197, 30,143, 8, 64, +190,131, 31, 79, 26, 12, 70,217,190,113, 29, 33, 32,112, 2, 25, 91,121, 14,217, +236,130,195,128,164,187,218, 14,195, 95,170, 22, 7,168,124,231,208,145, 33,136, +181, 45,178, 90, 51,225,222,236, 14,237, 80,134,121, 34,219,123,198,195, 24, 46, +236, 81, 10,147, 8,249,138, 33, 79,107,204, 39, 47, 58,197,122,131, 38, 25,194, + 76,232, 8,176,134, 58,224,104, 81,180,184, 1, +} ; + +// ../Source/Template/GB_apply_unop_ijp.c: +uint8_t GB_JITpackage_132 [743] = { + 40,181, 47,253, 96, 68, 8,237, 22, 0,118, 35,106, 32,224, 26,231,144,114,132, +156, 16,101, 12, 86,110,108,163, 35,248,168,179, 79,154,173, 57, 2,155,140,146, +132, 25, 82, 98, 76, 8,100, 0, 92, 0, 96, 0,180,189, 12,161, 49,237,110,106, + 8,160, 10,167,224,181,234, 54,238,206,113, 6, 75,179,243, 48,220, 30, 21,137, + 67,130,208, 64, 28, 18,215,186,236, 17, 79,149,172,188,176,189, 5,230,138,154, +159, 71,207,166,153,128, 86,222,139,163,241,149,214,211,121,166, 60,152,233, 37, + 58, 61,218,182,189, 71,109,203,110,235, 35,167,220, 97, 77,147,179,149,166,184, + 86,104,173,228, 38,151, 27, 12, 24,193, 96, 8,143,188,187, 25,226,141,203,248, +206,239,244,220,205,155,113, 95,193, 51,183, 96,100, 58,159, 49,253,143, 97, 46, + 12, 43,220, 14, 67,217,189,193,124,186, 29, 85,239,119,175,167,173, 29, 73, 66, +160, 60, 90,137,202,147,244,190,242,148,123, 84, 78, 74,197,143,120,126,251,151, +249, 67, 18, 42,101,122,147, 78,101,247, 13, 59, 20, 18,132, 6, 59,105,183, 59, +110,207,111,230,142,232,200, 30, 31,137, 34,207,242,167, 91, 87,175,244,184,171, +119, 42,249, 55, 7, 3,200,227,135, 71, 50, 68,236, 38, 74,210,150,151,117,152, +242, 26,236,240, 53,202,109, 25,246,100, 95, 48,115,168, 20,253,173,223,195, 43, +237, 45,170, 94,162, 74,242,218,128, 55,243,185, 80,210, 58,243,196,213, 62,114, + 22,229,143, 39, 46,184, 50, 99,139, 79, 88,102, 58,144,225,131, 59, 53,183, 5, + 24,246,181, 71, 83, 1, 12,123, 97, 47,155,157,179,225, 66, 26, 14,103, 27, 89, + 81,167,232,204,154,102, 31, 73,147,201, 5,144,253,155,135,220,254,113,171,153, + 16,131,168,209, 14, 85,210,114, 98,140, 49,122,180, 31,185,205,114,184,143,229, +242,120, 4, 55, 14, 51,185,152,240, 4,243, 91,164,211,122,175,179,188,109,235, +155,244,154,207,210,254,213,103,143,206,239,144,159,254,184,166, 5,128,128,168, +113,181, 66,166, 70, 68,130, 4, 73, 10,147, 66, 99, 48, 66,130, 16,179,236,226, +192, 76,136,243, 16, 18, 64, 67,232, 36, 94,137, 68,242,199, 7, 61, 52,206,188, +214,118,135,196,127, 85,251,172,225, 91, 29,184,165, 73,137,180,254, 76, 84,208, +144, 88,166,218,236,226,113,139, 14, 27,151, 73,192,134,198, 90, 11, 69, 10, 82, + 1,137,121, 13,143, 13,223,171,143, 36, 15,219,136,201,249,126, 92,166,183,150, + 73,198, 78,145, 74,217,146,114,170,109, 26,166, 17,123,253, 60, 70, 32, 3, 29, +172, 50,174, 48, 67, 97,219, 78, 14,136, 1,175, 82,250,144, 11, 12, 99,147, 66, +204, 96,104, 27,237, 22, 96, 10,234, 24, 49,110,185,176,218, 24, 40, 64, 3,211, + 78,200,136, 59,236,183,162,241,138,163,118, 84, 51, 82,129,173,166,220,239, 31, +184,142, 55, 36, 17, 44, 9, 17, 68, 37,128, 50, 98,224,191,138, 49,177,172,206, + 17, 70,128, 73,146,144,180, 67, 70, 0,206,102,217,130, 58, 64, 53,131,229,186, + 52,186, 75, 36,118,249,114,243,174,196,177,132,204,182,137,183,247,142,227,132, + 81,241,123,121, 2,236, 86,130,114,228, 38, 75,159,130, 2, 27,133,150,151,140, + 8, 23,143, 88,207, 9,111,128, 14,133, 65,165, 46,205, 63,214, 9,165, 0,165, +150,254, 50,238, 84,143, 36, 54,210,166, 9,253,204, 52, 30,104,240, 93,144,174, +212,113,155, +} ; + +// ../Source/Template/GB_apply_unop_ip.c: +uint8_t GB_JITpackage_133 [372] = { + 40,181, 47,253, 96,136, 2, 85, 11, 0, 6,151, 72, 33, 0,181,115,106, 8,156, +239, 98,247,240,113,109,199,218, 70,187, 99,124, 64, 81,255, 6, 0,172,160, 66, +225,164,255,223,254, 67, 9, 63, 0, 64, 0, 60, 0,144, 91,243, 34, 46,127, 94, +197,156,186,204,201,197, 93, 10, 70, 22,141, 65,122, 47,157,107,120,137,245,246, +187,168,179,223, 61,182,106,182,111,107,167,166, 41,127,191, 59,254,248,226, 86, +236,126, 54,196, 68,221,189, 20,187, 34, 31, 12, 98, 53, 24, 4, 90,119, 29, 47, +252,188, 59,183, 52,251,140, 4,203, 80, 53,151,209, 59,191, 0,187,110, 53,219, +214, 36, 85, 99,219, 89,157, 84, 25, 72,197,210, 26, 4, 54,110,203,113,230, 60, +213,242,174,155,167, 14, 6,130,161, 82, 20, 8,134, 79,153, 60,133, 43,136, 6, + 25,203,238, 66,173,185, 12,127,178,216,148, 88,163, 13,114, 25,243, 66,123,240, +219,222,117,215, 81,144,222, 95,239, 59,245, 60, 20,188, 1,198,239, 51,134, 72, +100, 91, 67,143,255,127,140,164, 24,173,199,135, 79,225,250,249, 77,242, 91, 1, + 49,110,173,217, 48, 16, 99, 41,150,166, 43, 95,161, 96,154, 73,165, 50,177, 43, + 50, 77, 31,170,202,115,238,166, 67, 91,179,253,178, 79,211, 61,213,153,242, 19, +187,174, 8, 64,126,171,143, 39, 9, 4, 35, 75,223,248, 61,227,132, 59,126,101, + 86, 51, 13, 25, 0, 69,113,207,171, 92,137,150, 77,177,100, 32,118, 3, 46, 38, + 59, 92, 38, 67, 13,214, 18, 75,245,192,149,105, 11, 46,174,204,200, 84,120,237, +159,136, 44, 51,233,161, 48, 3,217,120,232,101, 46, 98,205, 59, 54,205, 31,194, + 76,209,161,176, 53,152, 39, 12, 10, 21, 5, 67, +} ; + +// ../Source/Template/GB_apply_unop_template.c: +uint8_t GB_JITpackage_134 [420] = { + 40,181, 47,253, 96, 45, 3,213, 12, 0, 6, 25, 79, 34, 0,213, 22, 3,106,132, +109, 87, 58,203, 2,207,174,120,108,139,249, 81, 66,108, 6,232, 64, 66, 1,239, +157, 96, 46,253,175,255, 80, 2, 71, 0, 70, 0, 67, 0,244, 87, 2, 97, 64, 96, +140,131, 1,113, 11,172,126,233, 43,170,145, 23,232, 73,226, 46,201,155,249,133, +161, 29, 68,204,213,156, 52,172, 54,107,198,216,125, 79, 12,101,209, 42,151,223, +206,189, 1, 22,236,174, 99, 38,237,254,114,137,207,143, 52,230, 92, 63,200,228, + 89, 70, 97, 89, 22,249,251, 83, 44, 54,190,248,126, 35, 74, 41,213,190,207,242, + 27,113,183,170,111, 31,113,131, 75, 60, 78,230,227,254, 83, 38,202, 80, 64, 96, + 86, 4,107,166,111,152,246,130,238,198, 54,164, 96, 86, 99, 11,222, 14,219, 68, +188, 66,104, 69,166,213,246,114,189,197,208,189,124, 28, 3, 35,238, 89,118,202, + 68, 32,148,112,189,227,249,218, 13,223,158, 43, 11,188,187,110, 93,217,241, 12, +173, 8,234, 91,184,210, 97,181,166,184, 63,242,196, 55, 75,208, 71, 59,142,213, +172,249,153, 44, 95,201, 80, 53,115,224,212, 77, 86,215,105, 42,223,182,127,104, +117, 80, 20,117,210,110, 79,124, 55, 46,193,127, 40,128,123,185,241,125, 40, 32, +101,144,180,228, 73, 99,253,231,129,209,107, 86,151, 89,227,106,238,151,248,151, +213, 21,124,174,228,190, 31,171, 71, 75,157,180, 91,249, 87,174,238, 89, 62, 78, +231,121,180,250,183,123,114,231, 1, 35, 32, 80,130, 65,202,172, 60,165,196,241, + 25,108,243,203, 23,184, 9, 83,208, 13, 75, 93,132, 55,103, 0, 24,132, 4, 27, + 35, 43,203, 15,129,249, 5, 98,122, 40,201,149, 88, 28,231,128, 85,108,173, 2, + 88,148, 4, 51, 50, 97,153, 29,155, 26,190,211,238, 20,154,129, 8,249, 58, 16, +132,104, 42, 73,129, 30, 52, 61,207, 76,108,227, 95, 45,124, 23, 90, 20,189,110, + } ; -// ../Source/Template/GB_subassign_25_template.c: -uint8_t GB_JITpackage_143 [1745] = { - 40,181, 47,253, 96,136, 29, 61, 54, 0,198,190,188, 41,176,148,177, 14,180,128, -192,141, 72,117, 36, 16, 19,131,205,214, 96, 4,104,153,188,130,232, 17,196,244, - 12, 38,227,151,160,191, 8,255,148,254, 52,189, 59, 46, 1,174, 0,182, 0,175, - 0,213,235,123,226,238, 52,101, 58,186,103, 15, 97,215,125,164, 99,176,211,181, -218,179, 54, 71,250,117,146,236,171,215, 57,207,219,156,232,199,192,110,122, 95, -214, 62, 15,211, 99,135,243, 56,123, 51, 99, 74, 6, 83,112,105, 78,155, 55, 94, -227, 53, 37,209, 92,123,187, 46, 26,245, 92, 48, 58, 32,204,214, 33, 94,227,206, -142, 51,231, 65,179,119, 93, 60, 52, 40,200, 20, 92, 20, 8, 50, 5,175,104,212, - 33,166, 33,179,115, 76,252,137,203,214, 68, 69,135,161,232,113,224,238,244, 32, - 52,141,189,121, 67,157,233, 23,162, 52,174,189,197,111,117,254,148,143,233,171, -183,215,156,200,227, 57,111,192, 24,170,107, 58,207,238,154, 58, 75,132, 2, 89, - 61, 40,198,115,244, 97,233, 0,241,129, 1,202,101, 96, 32, 19,217,231, 66, 98, - 92,153, 40, 98,210,170, 46, 79,168,178,117,205, 73,146, 90, 59, 30, 43,130, 66, - 98,184,132, 39,196,219,108,143,203, 85, 98,183,178,232,169,172, 78,169,126,156, -246,173, 73, 40,190,116,243, 3,233, 91,236,125, 77,215, 93, 55,189, 9, 50, 49, -241,120, 42, 30,168,139, 50, 43, 20,138, 36,186,213, 77,195,197, 70,234,156,206, -218,209, 27,119,253,177,160,136,137, 46, 7, 25,186,100,148,152,202,232,177, 40, - 50,107, 66,138, 46, 9, 18, 13,192,249,187,149, 62,183,199, 41, 37, 20,202,201, -230,149, 44, 15, 18,114,165,135, 30,149,106,180,195,178,212, 18,163, 14,250,128, -228, 68,102, 93,252, 47,161,112,188, 43, 13,160,120, 60, 81, 90, 86,246,112, 82, -111,245, 11,160, 80,240,108,211,196,111, 46,159,203, 84,228, 91, 7,175, 80,210, -244,213,123,150,244,251,107,178,159, 38,143,233,221,128,141,230,111,158, 57,167, - 86,157,103,123,218,123,244, 58,181,227,166, 35,147, 37, 57,129,153, 67, 40,109, -150, 31,116,202, 12,208,199,234,124, 42,217,137,152,231,134,253, 60,185,252, 74, - 43,139, 15,237,245, 99,182,198,223,189,246,168,182,187,173,199,148, 19,117,100, - 54, 42,154,205,207,120,106,125, 79, 57,246,215,205,144, 18, 25,169,147, 74,158, - 21,209,168, 87, 85, 85,141, 84,168, 17, 17, 0, 5,196, 37, 57, 85,156,163, 81, -252, 66,237, 46, 4,163,148,227, 46,231, 23,155,248,200,142,229,113,192, 42, 36, - 50, 11,148, 17, 17,202, 34, 40, 84,157,115, 90, 61,107,212,203,184, 61,129, 87, -135, 90,135,212,134, 11,118,203, 15, 23, 14, 3,148, 47,128, 94,150,198,149,125, - 68,149,101, 33, 59,216, 21,146, 17,131,136, 25,200,155,125,239,124,215, 81,145, -122,139, 57, 22, 74, 29,116,121, 30, 42,139,229,243,184, 77, 86,235,209,201, 33, -188, 35, 21,245,170, 82, 74,189, 99, 68,111,121,196,238,198, 41,195,230,231, 28, -187, 2,255, 56,167,181, 74,241,179,205,199,185, 82,123, 31,239, 49, 31, 4, 22, - 88,185, 32, 8,183,218,135, 18,187,212, 35, 72,138, 44,136,210, 33,135, 81,199, -100,196, 71,254,105,244,106,189,190,214,230, 87,242, 86, 41,233, 12,155, 87, 52, - 80, 67,201,205, 59, 54, 48,201,121,158,109,183, 87, 60,187,210, 27,158,177, 71, - 73, 37,139,133,129,170,104, 44, 84,181, 52,107, 94,133, 0,106,212, 52,235,105, -163,186,251,182,230, 52, 28,129,174,168,225, 45,154, 33, 17, 17, 73, 74,146, 66, - 97, 56, 65, 8,194, 80, 32,118, 82, 50, 31,146,144, 56,151, 65, 12,163, 40, 68, -136, 33,142, 24, 19,136,136, 72, 32,209,196, 72, 36, 19,206, 3,133,177, 98,222, -210,233, 61, 38, 34,173, 70, 86,220,154,146,130, 11,245,161,173,198,158, 6,199, - 40, 78,250,225, 11,253, 21,196,107,136, 0, 83,114,144,112, 84, 54,143,202,141, -198,116, 40,107,164,150, 13,228,208, 10,104, 69,249, 39,194,226,206,235,199,134, -114,163, 23,251,108, 63,249, 36,121,247,188,253,234,153, 89,195, 8, 40,152, 7, - 79, 1, 22, 20,248,185,154,247,142,219, 95,240,105,215,142,143,250,238, 15,251, -199,161,215,207,108,179, 79,114,150,154,119, 15, 78, 65, 77, 7,129, 43,232,157, - 0,124,106,171, 10,237,207, 14, 9,160,180,205,167,144,255, 39, 4, 52, 65, 89, -190, 58,198, 89, 51,222,110,207, 42, 15, 45,234,201, 35,160, 28,140,129, 89, 16, - 88,205,162,190, 64, 35,212, 78,183,224,139, 64, 72, 85,181, 86, 61, 16,154,240, - 21, 28,139, 67, 95,217, 4,186,226, 41, 30,252, 39,167,190,190,251,216, 40, 1, - 75,155, 42, 41,147, 9, 65, 81,236, 61,177, 17,203, 24,239,193, 1, 60, 77, 37, - 64,164, 2, 25, 22,140, 24,118,194, 2,127, 12,176,175,143,217, 2, 99, 92, 72, -171, 96,105, 28,104, 24, 46,243, 61,217, 50,186,189,145,220, 49, 57, 98,100,226, -120, 95,197,162, 35, 58, 54, 35,111,161,227,240, 29, 37, 55,107,141,148,162, 36, -236,240,121, 94,137,233, 63,117,251,169, 50,191,167,135,125, 72,221, 95, 3, 32, -197,213,231,113, 12,238,220, 24, 89,210,165,214,220,153,157,235,109, 32, 47,170, - 59,166, 27, 85, 37,104,237,226, 35,118, 48, 49,232, 81, 44,240,186, 41,162,165, - 34,177,208,247, 50, 62, 59,137,211, 98, 49,238,178,207, 47,153, 31,249,138,247, -123, 76,208, 23, 67,190,203,216, 54, 73,109, 11,142,164, 29,234,247, 49,254,195, - 34,169,103, 1, 93,188, 15,152, 23,197,132,196, 93, 97,192, 54, 50,127,202,238, - 93, 37,239, 25,139,194,217,185,207,190, 64,176, 21, 27, 11, 76,173, 34, 2,189, - 72, 98,211, 44, 86,114,173,101, 40,234,101,234,139, 69, 60,252,133,132, 26,241, - 51, 66,160,147,175,145, 32, 86,152, 59,199,102,182,139,174, 13, 30,110,190, 19, -174,218, 72, 74, 87,163,242,147, 26,119,181,102,164,146,103,126, 0,125, 95, 89, -250,125,140, 79,198,246,193, 33, 23,244, 98, 4,190,250,238,149,198,111,158,131, - 72, 16, 35,227, 31, 4, 74,115,149, 42,134,127,225,214, 13,104,243,129, 51, 99, -159, 8,181,151,181,243, 49, 28,170, 62,171,182, 64,209,242, 80, 30, 38, 75, 3, - 68, 94,140,129,187, 26,128, 61, 99,223,137, 2, 32, 93,180,113, 88, 71,111,164, - 9, 33, 9,152, 33, 23, 27,228, 92, 13, 45,128,237,171,247, 5,170,186,102, 62, -159,175,217,157,164, 45, 86, 95, 62,210, 50,141,247,146, 97, 1,154, 93,188, 23, -148,171,233,208,139,101,208,107,163,122, 21,197, 92,127, 97,111,185, 48,186, 29, -203,101,178,229,121, 4,137, 46, 27,219, 89, 95,130,181, 53,246,229, 21, 98, 53, - 28, 27,134,199, 46,122,252, 78,195,230, 68, 79,129,185,101,180,155,228,199, 94, -140,196,167,150,233, 59,229,250, 55, 2,249, 18, 27,161,138, 0,116,239, 83,130, - 36, 28,236, 91,199, 82,251,251, 82, 36,241,195,129,186,250,111, 85, 39,169, 16, -166, 75, 50, 20,182, 89,210,157, 11, 97,208,188,136,196, 68, 40,159,120, 69, 41, -185,115,101, 74,177, 86,162, 43,105, 17, 60, 28,122,194,119, 50, 69,109,165,195, -169, 50,230, 95,152, 13,145,227, 79,143, 45,232, 42, 48,133,226, 23, 19,100, 59, - 81, 66, 94,146,236, 98,125, 4,174, 7, 90, 32,238, 88,246,126, 5,152,179,224, -106,172,162,237,148,173,219, 22,245, 52, 62,209,178,187,174, 75,165,114,143,178, - 60,232,226,130,239,169, 71, 49,159,158,185, 85, 38,169,196,169,200, 9, 91,133, -210,128,223, 57,203,132, 1,183,127,236,192, 64,149, 52,120,179,135,202,145,222, -215,189,196,116, 9,254,219,142, 59, 72, 87,232,240,238,245,229,213,156, 75,178, - 60,166,220, 56,216, 71, 57, 80,177, 46,242, 65, 19,207, 46,118, 77,227,103,110, - 0, 17,100,154,147,243, 92,168, 36, 56, 29,173,119,178, 91, 62, 61,119,169,129, - 75, 2, 46,164,169,169, 26,216,100,166,243,230,154,185,198,182,139, 33, 18, 0, -139,210, 10,144, 7, +// ../Source/Template/GB_assert_kernels.h: +uint8_t GB_JITpackage_135 [986] = { + 40,181, 47,253, 96, 43, 14,133, 30, 0, 54,172,134, 40,208,206,108, 14,116,121, + 77,128,239,142, 86,102, 45,172,211,208,220,132,208, 82,163,158, 68,175, 41,230, + 96, 97,122, 44,178, 78,121,145,171, 25,120,225,124, 1,122, 0,124, 0,119, 0, +231, 79,223,211,176, 94,187, 26,206,221,109,218, 28,207,119,104,119, 58, 33,135, + 39,100,224,128, 52,184,147, 17,164, 30,169,220, 92, 95,202,243,106,176,165, 44, + 27,107,108, 42,140, 99, 50, 69,101,203,217,237,237, 58,157,221,243,168, 79, 8, + 16, 3, 72, 35,225,192, 0,114, 73, 70,159,108, 83,196,234, 14,234, 22,221,253, + 62,173,125,202, 80,152,164, 3, 99,165, 68,216,214, 8,102,248,118,152,129, 44, +253,250,145,206, 97, 61,166,149, 61,219,173,108,109,220, 36,148, 63, 30, 80,227, +241, 8, 23,134,105, 44, 91,118,217,104,191,192,225,178,113, 61,233,100,143, 19, +109,179,245, 56, 35, 67, 65,225,146,229,194,166, 0, 26, 49, 7,188, 7,124,219, + 44,236, 90,216,182, 7, 60, 50,217,235,200, 61, 32, 58,166,162,169, 36,128,232, + 92, 95, 68, 92,218, 68, 28,214,123,219,223,252,241,248,127, 8,162,104, 36, 86, +197,181,150, 89,153, 12, 5, 41,252, 81,112,233, 81,193,227, 44, 0,105,217, 69, + 66,157,227, 73, 67, 1, 40, 34, 57,237,253,243, 85,238, 22,222,149, 92,123,254, +214,143, 19,207, 54,124, 92,195, 27,114,175, 31,247,201,181,195, 9,174,125,182, + 81, 94,144, 61,119, 92,202,181,134,210,134,244,243,254,209,223,144,115,238,187, +125,253,186,130,149, 41,190,203,177,247,105, 70,158,183,240,188, 72,249,210,190, +237,223,200,243,147,183,158, 26, 63,151,172,234, 50,217, 42, 42, 58, 87,102,120, +100, 66, 6,172,204, 98,160, 24, 38,218,133,226, 32,136,157,188, 95,135,160,114, +167,211,245,254,126,244,223,188, 38, 73, 19,209, 49, 48, 46,129,210,196, 4, 70, + 25,235,194, 48,149,208,140, 40, 34, 42,178, 17,253, 62,145, 6,252, 34,169,130, + 19,127, 34,157,110,132,185,178, 73,198,170, 40,140,154,100, 15,155, 43,211,168, + 10,197,114,101, 87,165,186, 46,150, 75, 69,155, 88,152,149,209,104, 54, 86,101, +185, 48, 23,136,140,178, 92, 18, 11, 3,161, 57, 60, 50,114, 60, 47, 74,218,175, +145, 65, 48, 74, 26,114, 44,105,219, 79, 52,172, 92, 35,219, 43, 89,130,243, 93, + 54,215,146, 65,235,145,220, 73,131, 75,243,195,245,204,249,244,194,175,226,151, +242,135,111,188,118,234,100,119, 21,180,163,128,185,168,225,153, 66,104,104,100, +164,160, 32, 41,100, 88, 3, 48,134, 8, 72, 29,209, 57,114,152, 48, 2, 34, 92, +133, 56,132, 9, 8, 33, 70,128,168, 48, 5, 34,161, 84, 32,129,146,212, 3,211, +178, 97,205, 2,100, 18,253, 45,113,126, 28, 25,138,127,175, 49, 93,216,113,254, +172, 31, 54,136,193,206, 16,186,111,114,178,247,201,212,167,163,165, 33,231,164, + 42,219, 67,221,121,250,176,215, 28, 49, 36, 75, 80, 37,204,238,146,232, 6,170, + 96, 8, 80,219,139,232, 92, 26, 65, 65,130,111,197, 61,240,101,135,116,195, 42, +251,199,134, 34, 14,213,139, 88, 31, 63,240,224,197,171, 16,111,107,253,117,143, +131, 92, 60, 44,221,215, 87, 3, 8,160, 96, 0, 83,172,236, 22, 23,230,110, 67, +180,177,249,138, 57,247,147, 31, 29, 21,163, 12,105,229,101,194,192,174, 86,126, +139, 38,202,161, 46,251,106,149,230, 73,214,118,109, 58,144,152,142,168,210,138, +121,196,204,226, 30,212,209,205, 92, 99,143,229,154, 42,220, 60,116, 40, 62, 84, + 38, 15, 5,120,181,240, 14, 33,231, 73, 67,185, 9,130,104,227,195,126,136,220, +227,148,108, 79,226,181,138,104,209,181, 20, 45,253, 69,218, 87,156, 17,200, 89, +188,101,182,148,198,152,143,110,240,102,151, 6, 6,181, 87, 89,217, 67,183,132, +252,147, 52, 48, 7, 37,202,228,161, 23, 45,177,212,192, 53,217,136,215, 33, 61, +157,184,252, 9, 84, 89,196,154,223, 16,159, 93, 82,223, 92,139,135, 11,169,205, +226,108,183, 2, 20,168,152, 78,206, 9, 98, 44,107,202,224,164,125,125, 20,216, + 71, 72,173, 9,176, 86, 81,102,211,120, 7, 50,188, 2,235, 8, 10, 15, 25, 21, + 5, 52, 1,141,167,155,223,139,246, 71,121,166,131, 21,152,141,176,241,214, 18, +159, 86,253,120, 48, 43, 2, 64,124, 60, 66, 90,202,212, 86,183,187, 7,170, 46, + 96,197,135,137,211,254,100,108, 97,210, 68, 85,102, 10,227,143,236, 55, 56,158, + 42,242,215, 29,104, 2, } ; -// ../Source/Template/GB_task_struct.h: -uint8_t GB_JITpackage_144 [1044] = { - 40,181, 47,253, 96,110, 12, 85, 32, 0,150,172,131, 40,224,178, 56, 7,200,165, - 49,196,246,110,149,114,175, 91,232, 44, 85,172,126,117, 78,221, 61,125,223,139, -118, 3,195,191,163,235,155, 51,152, 97, 24,198, 11, 1,127, 0,116, 0,113, 0, - 43, 35, 64, 4,113,105, 48, 24, 23,154,204, 37,145,161, 52,217, 66,153, 69,128, -104, 96,178, 72,171, 97,143, 82,191,212,141, 89,108,185, 48, 66, 90,150,139,197, - 9,105,195, 96, 49,193, 5,213,229,189, 56,183,198,137, 23,223, 54,234,142,192, - 50, 96,145, 14, 42, 3,150, 79, 48,201, 29, 71,208, 99,248, 68, 61,164,245,244, - 68,205, 93,134,154,168, 52,250,234,195,101, 57,179, 29, 63,153,168,206,166,177, - 98,188,240,223,118,219, 94,125,244, 23,109,106,236, 83,155,175, 14,191,190,170, -135, 83, 40,145, 68,161, 4,147,226,159, 22, 20,249,179, 97, 50, 94,100, 60,215, -217,216,130,126,230,183,117,174,144,240,230, 26,179,206,221,196,254, 94,167,195, - 63,101,243, 12,101,236,124,126,244,214, 14,199,179,101,124,167,206, 15,173,207, -145, 17,139, 27, 63,212,113,184, 33,113,235,123,232,211,164,186, 59, 37, 57,157, - 87,248,130,149, 48,241,112, 23, 9,102, 39, 29,126, 30, 40,223, 93,111, 31,207, - 58, 8,159,228, 44,103,236,215, 31,234,153,216,151,227,135,212,114, 61,187,237, - 87,211, 4, 95, 26,106, 14,189,143,183,220,186, 89, 22,225, 67,242,121, 28, 38, - 63,217, 37, 39, 50,191,217, 19, 7,140, 26,151,174,240,229,237,183, 81,207,246, - 5, 25, 78,173,215,163, 97,111, 63,161,156,148,183, 86,199,150,202,249,105,205, -113, 66,195,203,159, 79,222,222,179,173, 29, 31, 6,193,184,136,113, 32,150,139, -150, 53,105,185,188,149,158,227,173,103, 81, 82,185, 88, 85,244,253,238, 64, 40, - 23, 41,138,118,243, 59, 98, 55,126, 87, 36,142,239, 9,119,101, 81,148, 69, 40, -183, 34,128, 32,185, 69,245,144,213, 5,173, 92,222,118, 4,225, 27,122,133, 83, - 2, 62,217,188,203,121,222,126,117,233,164, 30, 64, 17,249, 68,242,108,227, 19, -185, 27,104,211,185,163,155,187,120,119,109,168,132,146,253,181,220,150, 19,235, -229,252,114, 81,161,193, 52,100, 92,154,134,135, 40, 66,120, 52, 18,105,205,201, -230,119,131,242,105,114,183,170,170, 42,138,162, 40,203,178,172,138, 4,229, 94, - 28, 24,170,113, 16,204, 49,116,226,168,117, 60, 66, 95, 5, 6,255, 35,145,128, -232,168,177,169, 51, 53, 35, 34, 73, 10,146, 82,107, 80,132,200,144, 93,213, 1, -226, 0, 77,199, 66,144, 32,130,140, 68,129, 4, 34,129, 68, 19, 74, 26, 41, 40, - 72, 65, 27, 0, 72,128, 88,158, 32, 71,107,114, 21, 91,129, 54,246,137,216,191, -182, 59,137, 84,168, 36,165, 82,114,250,215,177, 37,193,240,186,115,218,147,115, - 17, 31, 5,236, 61,109,125,206,238, 21,168,115,227,180, 70, 43, 6, 35,185,252, - 18, 46,115,226, 80,152, 57, 66,129, 85,180,202,139,121,212,131,164,103, 68, 23, -101, 53,106,255,152,103,234, 56, 43,102,205, 41,252,226,159,130,234,163,227,213, -175, 54,201,207,104,184, 75,244,153,233, 80, 54,136, 72, 37,165, 17, 51, 68,196, -108, 31, 78,132, 72,154, 54, 79, 30,155, 4,151,209,193,226, 30,128,240, 71,252, -125, 21,133, 89,119,148,246, 7, 71, 46, 39,104,200,114,237,146, 94,176,233,114, -162,241,179,212,206,159, 86,192,116, 79,158, 48,177,222,184, 73,198,131, 9, 20, -164,247,156, 40, 50,167,161,184,251,239, 26,211, 80,196,208,178,144, 26, 14,191, -249,208, 24,226,177, 65,208, 57,131, 44,226,215,113, 22, 13, 7,116, 1,117, 53, - 23,221,242, 37,169,110,188,140,232, 30, 29,244,213,147, 17,150,176,212,125,199, -100,211,246,229,186, 59,117,180, 60, 68,126,148,121,245,102, 73, 76, 19, 39,111, - 51,134, 58,144, 36,146,136, 38,158, 24, 98,247,140,227, 13, 30, 12,201,219,185, - 29, 48,211,200,142,119, 0,115, 24,115,181,205,102, 35, 94, 68, 35,186,148, 95, -176, 61, 15,244,207,254, 55,110,176,109,154,177, 99,111,168,185, 38,170, 50, 77, - 42, 63, 28,207, 64,164, 30,165,160,228,116,223,115,152, 29,182,247,206,242,201, -215, 61,103, 21,188, 52, 73, 19, 8,145,139,210, 98, 13,188, 80,151,100,224,254, - 90, 12,174,179,186, 77,120,252,227,222,201, 44, 62,184,244,160,127, 4,168,129, - 78, 58,102,243,124,150,153,131, 35, 64,190,133, 25,120,135,247,134, 64,145,143, -116,240, 29, 5,212, 6, 77,165,160,105, 16,172,167, 9, 72,209, 13,164, 23,220, -212,142,132, 72, 18,100, 52, 10,223,101,100,249, 55,249,237,195,174, 84, 56,206, -201,224, 75, 97, 68,131,166,170, 14, 19, 94,239, 53, 16, 50,187,224, 64,223,232, - 95, 15, 96, 12, +// ../Source/Template/GB_atomics.h: +uint8_t GB_JITpackage_136 [3783] = { + 40,181, 47,253, 96, 28, 73,237,117, 0,218,118, 0, 21, 44,160, 18, 25,231,228, + 12,253, 91,129, 94,138, 7, 25,170,124,217,114, 39,149, 21,153, 26,229,191, 59, + 77, 77,177, 59, 94,202,254,127,141,229,145,195,235,240, 58,242,228, 56, 67, 59, + 1, 78, 1, 71, 1,219, 45,181,179,126, 52, 42, 86, 65,167,179,180, 77, 5, 64, + 64,168, 56, 22, 23, 76, 6,163,114,169, 21,175, 21,144,201,126, 38,249,210,143, +204,148, 67, 60, 79,161, 40,111,115,187, 54,237, 61, 34,201,184,114,181, 52,174, +155, 29,121,101, 5,193,173,149, 63,159, 50,203, 23,247,146,246,130,228, 17,180, +187,156,183,212,178, 28,232,179, 95,197, 65,251, 82,132,138, 80, 6, 62,103,233, + 96,130,194, 82, 25, 79, 53, 66, 48, 74,236, 45, 6,138,222, 32,105,197,173,240, +185,157, 41, 34,121,148,151,107,109,147,115,232,182, 94, 10,159,151,108,201,111, + 49, 18,132,162,232,201, 82,211,182,254,116,216, 60, 43, 92, 45,147,239, 16,136, +197, 47,156, 8,149, 71,119, 86,108,174, 94,179,173,219,105, 43,134,193,172,151, +178,246,222,179, 78, 7,207,242, 15, 42,114, 13, 38,170,150, 81,184,215,123,177, +249,184,103,167,154,230, 30,234,220,210,222, 14,241,160, 38, 38,197,158,211, 42, +167,176,238,181, 51,170,117,153,180,163,190,189,152, 44, 52,208, 80,150,126, 88, + 91, 55,239,137,121,118,115, 8, 43,151, 40, 38, 30, 19,147, 1,200, 99,226,141, + 23, 93,234,253,184, 6,167, 42, 15, 97, 83,102,139,113,137, 83,185, 96,128,105, +142, 31, 80,180,217,105, 28,157,187,113, 32, 28,171, 38,127,150,215, 59,202,157, + 27,247, 82,235, 20,140,234,183,153,156,174, 98,240,224, 14, 7,196,228,112, 4, + 84, 70,245,147,150,195, 65,105,109, 78,140,162,202, 97,121,168, 51, 94,158,206, +197, 30,199, 16,116, 27,116, 31, 75,163,103,161, 99,173, 91,161,150,109, 95,138, +151,185,111,225, 1,199,132, 21, 36, 53,151, 48,155,138,165,234,136, 72, 42,201, + 36,227, 90, 43,174,212,208,201, 9,209,102, 9, 10,233, 6, 25, 79,129, 52,162, + 87, 48, 15, 42, 27, 13,229, 6, 30, 20, 21, 10, 14,213,130, 81,105,160,153, 80, + 77, 39,227,255, 67, 64, 52, 30,144,201,129, 3,144, 39,184, 7, 15,111, 52, 52, +152, 8, 22, 77,166,138,110, 29, 64,244,185,215, 23,183,111, 73, 28, 76, 35,227, +237,123, 30,205, 92,187,119,229, 34,147, 97,112,117, 10,165,108, 68, 36,151, 36, +144, 75,147, 87, 60, 35,154,160,208, 56,152,112, 41, 3, 35,194,229, 15,136,178, + 59,213,170,133,166, 9,119,235, 44,140, 82, 91, 43,163,204,190,201, 92, 72,155, +140,133, 6, 17, 42, 23, 22,204,101,194,133, 6,131,146,177,108, 41, 64, 0, 77, + 30, 58, 43,186, 63, 20, 40,120,130, 4,247,112, 13, 31,112,199,167, 71,156,210, + 44,181,167,105,154, 50, 36, 36, 36, 36, 42, 52, 25,183,243,140, 75, 94,163,188, +118,162,123,143,114,187,149,181, 12,237,108, 88,248, 94,105,110, 18,155, 91,225, +167,244,227, 48,149,214, 47, 81,154,123,146,206,101,208, 37,203, 41, 43, 43, 6, +202,112, 65, 0,165, 65, 18, 66,119,169,241, 54, 75,242,140,251,118,209,181, 55, + 7,223,221,177,185,160,189,203, 60,142, 53, 73, 97, 39, 10, 67,179,167,144,150, +225,250,113, 29,123, 38, 9,150, 8, 23,204, 37, 11,149, 57, 89,209, 77,202, 14, +242,233, 13, 11, 74,163, 84,235,218,153,189,101,178, 37, 36, 90,231,246,144, 64, +166,247,233,172, 2,164,251, 89,160,202,161, 88,234,137,171,157,203, 57, 31,121, +155,209,253, 18, 53, 83,126,113,167,217, 82,227,204, 38, 83,121,184,246,130,230, +118,248,147,201,100,242, 15, 8, 26,141,104, 64,244, 70,196, 21,238,116, 80,126, +162, 40, 34,193,240, 70, 20,145, 84, 22, 28, 76,181,177, 92, 92, 44, 42, 74,104, + 94, 90, 18, 92,247,113, 84,111,106,185, 76,203,116, 78,119, 49,235, 53,219, 57, +197, 71,245, 56,221, 76,192,208, 84, 44, 88, 78,147,246,219,142,203,154,246, 88, +177, 91,218, 89,126,173,150,229,116,118, 92,229, 23,183,235, 17,156,137, 80, 79, +116,216,203,176, 92,170, 75, 33,118, 1, 26, 66, 66,194,195,172, 38,179,138, 72, + 62, 28, 65, 5,130,138, 14, 18, 72, 66,137, 77,205,120,147,215, 41,247,158, 81, +179,237, 29, 85, 65, 83,217, 97,237,222, 32,141,172, 31, 57,161,123, 18, 78,238, +114,198,253, 84, 15,187,121,150,203, 90, 91, 78,194, 71, 8, 14, 42, 13, 38,115, +201,102,253, 96,189,193,171,113,217, 84,104, 80,177,108, 22,178, 83,150,146, 36, +153, 88,184, 39,110,247,134, 97,252,221,250,158,155, 20,118,220,178,251, 76,150, +110,120, 18,178,206,184,142, 23, 67,237,152,160, 0, 57,122,155,162, 58, 50,249, + 2,175,162,168, 82,128, 81,214,236, 4, 87,107,131, 47,246, 6,181, 87, 85, 81, + 62, 34,137, 62, 65, 33,129, 72, 32, 82,244, 73,244, 71,141,104, 82, 89, 30, 68, +168, 64,176,176, 96,169, 56,162,136, 72,218, 44,125,202,106, 69, 68,159,205,219, +202,150,229,102,187, 39,163,155, 78,121,190,119,158, 18, 97, 66,168,195,218,201, +182,216,145,213,163,106, 69,157, 49,110, 26, 37,167, 37,177,126, 20, 36, 33, 52, +160,139,235, 89,110,247, 90,103,128, 0,159,151,136,132, 85,210,118,207, 61, 4, + 99, 6,206,168,172,215,181,109,177, 8,205,133,110, 55,219,126, 67,192,108, 98, + 84,199,157,112, 55, 6,211, 85,224,241,168, 28, 26, 23, 70,233,240,176,164,182, +232,161,218,237, 71,178,118,200, 58, 53,115, 83, 33,235,188, 90, 89,126,246,110, +244,108,183, 59, 1, 2,188, 27, 7,229,158,244, 35, 59,174, 33,163,239,223, 54, + 26,186,235, 67, 69,197, 17, 52,174,188,193,117, 23, 6,199,162,146, 96,225, 84, + 18,171,197, 50,211,172,138,171, 27,207, 13, 78, 65, 82,251, 30,243,108,242,163, +151,120, 91, 45,201,210,249, 84,203,208,185, 73, 71, 68, 68, 41,236,108,210,154, + 78,194,107,130, 98,147, 64,182, 75, 82, 39,178,131,238,245, 35,146,179, 12,197, + 10,246,221,219,109, 85, 73,240,237,165,247, 60,111,175,125,170,245, 36, 21,110, + 18, 36,169,117,249, 41,247, 22,106, 59,225,150, 61, 99,121,186,236, 1,132, 28, +168,211,217,145, 20,102, 14,213,136,136, 72,146, 36, 25, 14,211,128, 24, 20, 24, +142,146,167, 83, 97, 89,240, 13,195,128,210,105,164, 36, 26,226, 16,142,161, 16, + 20, 33,142, 16, 67, 8, 65,196, 8,136, 0, 9, 36, 32, 34, 51, 52,198, 57, 36, + 77, 71,188, 5, 53,202, 27,216,180,190,243,235,243, 47, 61,122,172, 38,178, 77, + 47,188, 29,209, 11,127, 72,124,165,150,102,113,248,208,157,146,185,119,180,233, +215, 68, 19,250, 34, 0, 28, 46,184,136,113,181,144, 38,154,170, 62,151,110,188, +141,181,192,195, 19,106,190,179, 78, 79,149, 98, 90,233,184,180,162,140,229,231, +103,106, 39, 1,239,229,171,159,194,176, 49, 63,136,101, 60, 11,246,240,140, 72, + 17,148,208,234,255,187,175, 59, 89, 16,176, 34,178,160,154, 36,202,125,113,239, +229,152,238,114, 64, 86, 88,205, 70, 45, 46,193, 54,179, 77,183,206,124, 32, 93, +190,194, 83,219,138, 27,102,121, 50, 15,218,191,104, 29,142, 52,173,171, 52,107, +143,222,221, 8, 36, 2,160,165, 93,236,128, 45,253,103, 36,177,130,149, 51, 85, +118,127,156,106,123,164, 69,112,117, 53, 45,170, 80,193, 2,161,153, 91,237, 60, + 68,220, 74, 86,214, 16, 44,172, 42,177,112,206,157,252, 27,193,131, 5, 4,233, + 64,110,156, 4,163, 15,110, 54,155,122, 18,153,117,100,102,247,232, 75,109, 0, +219,131,128,119,146, 33, 68, 59,158,137,248,207,156,156,225, 3,117,155, 52,220, + 24, 65,209, 20,145,140, 97, 14,100,205,202, 78, 4,173, 77,116, 66,124,197, 19, +168,147,160, 95,226,207,138,155,174, 85, 59,138, 46, 11,232,193, 67,250, 9,243, + 1,165, 57,186, 14,171,134,179,145,211, 28, 28,251, 84,154, 15,190,128, 85,107, +246,164,105,212,179, 61,216, 60,128,194,152,101, 42,109, 60, 6, 88,136,249,190, + 61, 27, 71,126,219,198,148,203,116,233,184,226,112,149, 57,243, 73, 93,201,227, + 6,246, 57,220,243,101, 93, 5,220, 72,169,243, 42,234,105,210,170,120,104,178, + 36,193,223, 32, 20,116, 36,156,151,163, 14, 77, 81,168,188,107,166, 41, 52, 22, +154,130, 19,147,207, 61,227,253, 44, 47, 1, 48, 37,151, 93,240,234,115,114,117, +224,196,145, 37, 20,151,128,209,250, 1,107, 43,108, 95, 80,156,161, 71,140,106, +239, 88, 73,113,233,137,154,102,161,177,189,249,228, 56,117, 50, 93,137, 22, 37, +111, 51, 34,253,135,126,121,221, 79,224,164,131, 16, 59,161, 80, 40,161, 90,141, + 87,127, 74, 78,239,152, 2,227,123, 44, 40, 89, 93,233, 39,205,254,234, 3,208, +152, 79, 60, 1,171,196, 70,196,176,109,216,172,240,214,167,130, 84,195,103,137, +213,176,209,188,254, 44, 51, 62,223,110,144,175,127, 69, 36, 76,194,192,118,141, +174, 76,185,125, 28,190, 64, 89,121,251,136, 59, 37, 58,232,122,166,162,112,144, +157,178,246,242,184,131,242, 40, 21, 88,244,194, 48, 75,165, 67, 37,102,164,225, +114,250, 90, 92,136, 45,161, 37, 26,193, 76, 0, 24, 73,154, 13, 97,202, 24, 83, + 49, 10,168,123,129,239, 94, 18, 77, 31, 18,108,169,111,150,126, 96, 6,223,224, + 17,149, 11,160,234,248, 4,119,141,187,135,248,234, 54, 15,114,113, 52, 29,252, + 54, 22,142, 75, 27,188, 6,248,112, 49,208,242, 89,208,205, 51,118,204, 39, 61, + 54,146, 30,224,239,112,195, 22,228,133,166,118,168,232,244,220,194, 86,110,107, + 1, 85, 96, 75,179,132, 7,131, 76,142,194,100,176,212, 65,100, 94, 38,168,171, + 26,204, 64, 41,119, 54,203,238,239, 6,128, 87,120,146,107,140,167, 98,117,110, +191, 13, 31,190,218,181, 41, 64,218,164,161, 51, 58, 92, 70, 30, 80, 37,105, 20, +222,219, 56,138, 87,140,210,231,161,111,226,124,231,140, 86, 43,224,231,124,186, +230, 66,211,174,223,111,151,129,207,253,120, 78, 86, 99, 2,126,162, 49,174,161, + 54, 1, 61,239, 9, 87,102, 36,191,184,145, 68,201, 13,165,221, 8,181, 45,104, +229,217,104,248,186, 48,161, 35, 21,248, 18, 33, 27,158,204, 71,194, 29,203, 71, +228,213,108,170,173, 89,245,255,120,222, 92,142,178,229,169,127, 20,148,154, 50, + 48,210,111, 91,162,230,235, 84,111,115,160,148,154,248, 81,165,150,176,172, 8, +220, 96,127,151,229, 90,245,174,102,173, 89, 99, 50,229,219, 6, 37, 50, 87,185, + 74, 15, 91,224,230, 46, 9,146,170, 56,168,138,169, 53, 79,193,217, 82, 88,244, +188,113,120, 75, 48, 13,154,122, 26, 63,194,129,164,254, 61,202, 3,117,139,192, +131,157,231, 23,211, 11,237,135,207,110, 99,212,241,240, 35,124, 83,131,142,234, + 11,189,194, 45, 45, 23,165, 19, 17,254, 26, 82,230,170, 41,109, 63,194, 87, 18, +183, 61,191, 60,149, 30,244,182, 36, 75,181,182, 34, 1,195,121,141,124, 33,108, + 79,120,239, 72, 62, 10, 28, 51,130,120,203, 95,122,240, 85, 53, 92, 83,163,194, +253, 50,186,141, 35,204,247, 80, 45, 57, 37,145, 51,156, 48,145, 97, 28, 85, 64, + 17,155,207, 86,189,236, 43, 30,151,219,255,245,104,102, 11, 7, 47,126,209,146, +205,244,172,133,171,255, 68,192,174,124, 78,240, 87, 21, 34,168,111,208, 35, 82, +129, 11,102,145,203,126,184, 15,218,127,220,125,126,235,236,154, 24,174, 14,242, +102, 57, 38,136, 60,162,108, 19,198,184,158,155,174,229,188,250, 70, 69, 52, 64, +186, 33,153,154,238, 59, 9, 17,116, 30, 80,196, 80,238,234, 4,206, 24, 6, 22, +207,125, 33,199,201, 4, 11,132, 84,177,165, 35, 85, 79, 71, 18,183,100,210,220, + 85,158,136,117,167,201,217, 0, 99, 59, 80, 69,126,167, 36,226, 21,207,102,224, +112, 20,133,185,202,114,227,137, 54, 69,208, 9, 34,214,166, 14, 83,209, 85,172, + 40,246,203,114, 52, 43,149,139,195, 74,240, 30,228, 0, 4,143,216,144,117, 20, + 84, 40, 82, 24, 75,160,192,133,226,152,251,145, 24,161,211, 92,148, 45,193, 12, + 41,164,203,165, 88,156,166, 72,244, 97,224,137,195,207,202, 1, 79,181, 55, 36, +232,197,197,116, 49,240,111, 24, 16, 47, 40,121,162,193, 79, 16,143, 44,248, 68, +242, 93, 84,204, 69, 95,105,161,242,150, 6,114,114,115,124, 44,143,152, 46,208, +209,158, 86, 53, 52,141, 1, 68,194,221,231,120,134,103,222,147, 22,220,172,167, +153, 24,187,105,208,192,139,148,177,228,113, 1,202, 31, 37,138, 74,105,188,216, + 52,180,215, 72, 90, 85, 63,183,183,131,217, 29, 96, 83,234,188, 40,215, 40, 31, + 38,177,228, 58, 57, 13,177,175,242,205, 80,132, 26, 5,238, 71,237,244, 67,195, + 83,156,164,100,221,196, 43,190, 13, 63,123,116,186, 31, 92,232,168,135,100,195, + 94, 7,238,202,194,110,166,191, 9,251,128,150,246, 5,155,225,216, 17,230,146, + 81, 69,225, 45,137, 10,224, 90,144,223,186,226, 98,154,210,219,110,112,144,168, +144, 2,250, 83, 62,127,124, 30, 5,237,195,201,129, 29,228, 14,133,236,185,231, +100,110,170,110,144,162, 40, 70,237,190, 14, 11, 30,175, 24,163, 71,135,160,177, +114,161, 27,176,170,124, 10,151,167, 65,163,130,219,100,174,149,209, 60,120, 42, +172,176, 28,180, 15, 40, 79,208,107,203,230, 37, 80,222,128,181, 36,105, 83,255, + 51, 28, 16,255, 49, 79, 90, 0, 4, 81,137, 69, 77,135,117,128,162, 38, 34, 37, +112,197,132, 30,108,132,152,231, 40,169,163,222,111, 71,150, 87,103, 64,205, 93, + 97, 51,228, 78, 77,183, 23, 58, 46,187,213, 83,116,172, 13,216,130, 15,226, 37, +228, 21,195, 13, 89,168,211, 94, 93,220,231,165,102,117,240,119, 38, 7, 66,239, +207, 47, 37, 95, 33, 70, 33, 14, 63, 28, 30,169,101, 56,169, 51,127, 98, 79, 90, +101, 1,178, 5,179,145,107,239, 99,146,194,148,130, 74,179,208,125,169,112,158, +181, 99,159,132,214,170,247,106, 0,244, 28, 95,187, 85, 82,140,252,146, 16,147, + 12,176, 31,248,226,225, 1,178, 56, 74, 18,179,200,227, 73, 90, 33,234, 18,114, +182,169,214,112,172, 72, 7, 61, 75, 9,104,106,170,245,215,123,214,239, 96, 41, +109, 64,186,128,136,187, 53,249, 41, 49,242, 9,135, 38, 19,196,119,113,232,197, +152, 21,172, 12, 46,158, 40,197,168,251, 62,105, 21, 55,241,244, 72,130,168,179, + 34, 26,124,185, 54, 32, 72, 96, 24, 70, 28,150,206,196, 43,215, 22, 86,100,121, + 54, 20, 50, 7, 54,111,201,155,182,137, 10,107, 52, 63,248, 87,119,234, 72,170, +130,186,232,114, 43,154, 88, 85,227,173,108,194, 27, 78,212,120, 38,107,176,243, +156,116,155,197,206, 6, 91,247, 54,202,245, 29,120, 39,188, 14,119,100,154,145, +201,142,218,172, 44,107,136,171,100,110,120,248,129,240, 72, 38,105,176,253,151, + 54, 26,180, 16, 83,221,234, 30,118, 98, 47,127, 72, 39, 32,108,170, 31, 21,131, + 31,148,127,211, 40,228,254, 20, 11, 7,163, 14, 94, 81,126,159,142,163,122,246, +196,178,116, 98, 27, 53,138,112, 67, 82, 68,231, 73,180, 96,129,166, 88, 0,114, + 56,181, 93, 70,205,154, 61,127, 57, 24,164, 57,190,108,107, 76,197,114, 86, 42, +167,192,187, 54, 32, 83, 74, 40, 40, 89,222,253, 34,174,135, 27,190, 12,142, 80, +196, 28, 66,118,151, 16,115, 43,104,116,194, 18,168, 56, 71,193,165,227,218, 7, +160, 52,223,236, 8,177, 18, 99,143, 84, 71,223, 15,155, 13, 33, 76,133,154, 89, +116,251,225, 18, 53, 63,203,128,170, 2, 9, 39,223,250, 81, 87,177, 8, 71,168, + 7,138, 98, 22,203, 53,211,238,182,160,253,209, 58,238, 35,138,108, 41,243, 84, +192,120, 25, 8, 49, 4, 29, 44,232, 54,177, 75,193,159,155,252, 61,128,129, 44, +143,149,204,150, 28, 61,100,172,149,160, 20, 10, 95,127,122,228,196, 90,193,238, + 68, 2,240,222,217, 82,151,116,190, 38,213, 39, 39,125, 34, 44, 68,210, 83,121, +200,147,108,180,247,112,211,162,200,206,117,144,197, 64,249, 18, 85,163,113,208, +240,181,162,139, 92,255,190, 68,248, 34,215,170,109,188, 56,224,163,119,174,157, +194, 76,102,148, 79, 57,111,156, 77,134,209,106,253,112,145,169,248,133, 24,253, +135, 0, 79, 95, 43,181, 37, 8,206,177,221,169,152, 82,146,245,190, 90,154,218, +137,235,209, 11, 28, 44,122, 66, 68, 66,139, 44,222, 75, 46, 58,250,158,213,255, +111,235, 67,119,224, 93,238,254, 14,105,139, 35, 30, 49, 90, 98,224, 91, 61,241, +153,242, 3, 8,239, 75,253, 85,183,129,214, 30, 28,232,119, 13,204,120,236, 71, +250, 4,251, 90, 87,230, 93,129, 43, 46,142, 70,174, 47,233, 72, 47, 78, 74,156, + 76,202,247,121, 39,110,103,104,201, 28, 52,108,195, 45,168, 0,255,235, 16,173, +219, 11,157,204, 35, 71, 4,131,241, 12, 71, 63, 28, 81,226, 13,181,160,154, 76, +254, 17,229,199,149,193, 99,153,133, 90,197,203,198, 72, 1,224, 21,228, 48,183, + 62,208,226,155,171,190, 91, 6,215,106,241,196, 22,120,252,183, 92, 39,219,193, + 20, 63, 66, 73,190,248,242, 11,249,249,130,187, 18, 64,139, 8, 15,140, 90, 42, +247,154,161, 78,155,126,199,165, 86, 67,119,152, 78, 18, 7,203, 26, 63, 78,176, +194,188,176,105, 10, 47,152, 41, 71,168, 52, 63,200,208, 4,239, 89, 62,205, 83, + 11,163,253, +} ; + +// ../Source/Template/GB_binary_search.h: +uint8_t GB_JITpackage_137 [1194] = { + 40,181, 47,253, 96,213, 44, 5, 37, 0,214,168,121, 40,224,208, 56, 7, 58,199, + 12,161, 27,171,226,180,168,133, 78,196,187, 87,189, 99, 21,175,191, 45,253,101, +118, 56,248,103,240,230,140, 23,195, 24,131, 49,132, 16,112, 0,112, 0,106, 0, + 27,199,185,117,192, 52,169,172, 8, 75, 13,118,153, 87, 42,247,214,119,114,188, + 34,108, 39,107,189,137,120, 20, 36,170,200,162,202,150, 57,183, 87,126,154,115, +142,203,252, 17, 88, 19, 43,114, 64,153, 88,167,180,199,159,109, 17, 84,120,149, + 57, 73, 94, 10,234,206, 31,150,217,104,100, 7,107, 67,133,109,133, 29,198,183, + 67,216,116,109,115,143,124, 43,181,135,159,253,191, 34, 43,169, 85,200, 54, 35, + 85, 56, 59, 35,211, 52, 92, 34,153, 34, 18, 73,177, 65,221,111, 86, 96,112,103, + 31,225,113,230, 90,142, 36, 3, 27, 29,144,156, 99,186, 56,245,158,231,245,227, + 66,173,185, 46, 20, 89, 4,229, 73, 16,244,123,253, 85,229, 88,233, 63,179,227, +100,205,218,254,223,177,220, 25, 32,186,113, 58,111,193,168, 93, 85, 85,119, 99, +174,179,184,231, 44,239,103,191, 95,249,195,119,246, 43,221,152,235, 64,109, 95, +121,184, 56,157,137,103,111, 28, 3, 38,135,204, 33,129,147, 89,192, 50, 10, 78, + 6,226,210, 4, 28, 20, 93,222, 30,221,114,215, 59,121,163,231, 73, 79,154,240, + 85, 99, 76, 14,213,123,109,125, 13,141,165,246, 56, 97,201,114,234, 29, 29,151, +199, 59,156, 5, 12,203,144,110, 7,226, 56, 67,116,187,133,178, 82, 16,223, 62, +115,159,217,246,240,244,126,142,104,124,228, 17,173, 21,206,219, 46,177,229,184, +100, 57,229,144, 11, 5, 50,251,182, 66,238, 58,248,219,127, 91, 83,125,132, 99, + 60,190, 89,110, 93, 2,185,156,185, 24,211,180,117,156, 28,208, 37,139,178,176, +203,242,203,173,158, 28,115, 42,179,253,230,179, 80,148,196,181, 97,128,152,192, +188,181,201,150,107, 87, 89,184, 52, 15, 17, 21, 89, 9,242, 83,152, 55, 5,240, +119,121,253,254,165,243,149,178, 28, 61, 58, 61,180,111,223, 10,187,215,185, 54, + 18,152,128,192,197,242,231,249,169, 87, 85,122,132, 87,150,183,249,156, 17, 57, + 42,223,199, 80, 32,148, 72,198,193,217,159,174,244,103,203,193,173,226, 80,129, + 19,168,241,165, 50, 35, 34, 34, 18, 68,146, 36, 73,107, 97, 16, 66, 8,130,210, + 74,120, 7, 34,104, 36, 17, 50, 20,139, 32, 8,141, 24, 66, 4,134, 24, 33, 17, + 42, 34, 32, 2, 67, 4,132, 8,137, 20,156,174,198, 14, 5,242, 77,137,222,169, +181,214,210, 31, 59,255,100,231, 31,146,139,167,122, 49,222,139, 37,249,200,117, +125,239, 88, 19,205, 48,180,135,193,247, 55,192,157,245,155,172, 85,169,127,104, +255, 45,158, 92, 38, 64,243, 34, 7,254,182,111, 93,178, 57,241, 53,200, 89, 61, + 30,225, 12,227,172, 8,246, 30,121,164,107,121,195, 13, 79, 10,222,185, 61, 63, +212, 22,149,203,255,150, 0, 84, 11,176, 7, 19,156,170, 70, 75,172,159, 48, 73, + 8,243,250,186,122, 14,251,161, 27, 34,113,235,171, 63, 17,198, 76, 32,196, 30, +192,158,173,238,123, 5,227, 19,140, 26, 72, 19,202,185,133, 88,161,152,102,204, +130, 30, 64, 80, 81, 93, 61, 4,181,110, 22,238, 51, 23,114,240,176,175,242,232, + 75,223, 61, 68,104, 96, 62,132,225,203, 66,209,132,175,225, 66, 85, 55,216,164, + 9,144,210,106,128,130, 42,223, 58,237, 52, 38, 72, 11, 39,218,145,130,222, 84, +248, 30,191, 53,209, 31, 78, 52,111,191, 37,203,138,161,215,168,123,156, 88,137, + 39, 61,134, 78,254,176,233,160,164,211,131, 37, 92,154,120, 93,159, 3,202,141, + 8,109,255, 38,104, 99,165,100,215, 45,174,173,143,241, 48,196, 74, 41,205, 13, +157,183, 58, 71,200,254,202,196, 51,221, 28, 99, 32, 1, 12,178, 48, 88,140,109, + 73,207, 93,223,124,169,228,157,127,216,105,108, 63, 96,111,216,160,202,224, 96, +149, 84,141,140, 99,219,212, 6, 96, 87,155,232,227,254,205,143, 14,142, 40, 83, +237,110, 83,115,145, 16,136,109, 94,232,172, 83, 91,242,182,223,128, 3,105,247, +140,172,123,168,192, 98, 56,127,214,130,185,156, 25, 81,144, 56,109, 36, 10,254, +228, 2, 89, 99,244, 2,107, 83,136, 47,149,136,147, 73,202, 96, 59, 0, 9,157, +170,202, 14,186, 29, 32,251, 38, 22,174,140, 30, 71, 73,122, 55,253,191, 83, 51, +211,240,194, 54,101,100, 8, 71,135, 92,221,121,107, 83,194,246, 89, 69,123, 46, + 23,133,151,125,198, 79,168, 61,144, 95,135, 4,193,211, 21, 9, 7,169, 18, 55, + 71,237,240, 68, 58,197,100,142, 44,121, 90, 30, 14,255,182, 55,176,145, 11, 3, + 22, 49, 70,199,207, 72,250,133,102,213, 86,210,175,137, 64, 51, 60, 80,132,168, +210, 16,105, 24, 30,184, 76, 50,193, 35, 39,106, 37, 68,234,212,118, 53,212,167, + 89, 63, 35,139, 81,162,182,187, 65, 44,102,224, 62,170,219, 96,142,239,160, 8, + 43,226,243, 97,137,112, 8,177, 94,144, 34, 0, 2,246, 4,232,254,250, 45, 7, +173,248, 73, 63,223,192,190,120, 96, 17, 68,218, 86,129, 7, 64, 90, 6,147, 72, + 24,121,251,172,247,193,122, 50,151,149,150, 34, 3, 69,179,112, 85,118, 16,219, + 15,213,153,152,210,195, 7,248, 65,182,114,115, 30, 99, 37, 76,216, 14,225, 31, +107, 80, 56,191,109, 56, 32,117,215, 66,216, 13,169,214, 13, 26, 52,203, 42, 51, + 81, 23, 45, 24, 87, 52, 7,152,129,220,168,198, 2, 39, } ; -// ../Source/Template/GB_transpose_bitmap.c: -uint8_t GB_JITpackage_145 [789] = { - 40,181, 47,253, 96,184, 6, 93, 24, 0, 38,169,123, 40,240,206, 56, 7,136,136, - 56, 98,117,185,214,220,179,202, 27, 27, 33,113,188,145,237, 33,193, 44,236,201, -109, 34, 34, 86, 79,102,168, 88,224, 25, 72,115,248, 11,114, 0,113, 0,105, 0, -176,190, 75, 44,199, 45,246,100,173, 82,241,157,156,197,135, 74,130,225,226,208, -248, 99,249, 50,230,183, 57, 78,196, 92,202,119,170, 32, 2,137, 84, 8, 4,144, -200,167, 76, 58,117,227, 7, 50,220,241, 30,226,154,118, 81,115, 42,243, 30, 40, - 92,133,214, 65,194,215,194,154,225,142,158, 76, 84,233, 67,178, 86,120,109,194, - 83, 92, 67,167,166, 73,224, 73,125, 97, 38, 85,106, 93,151, 84,216,117,220, 96, -124,105,189, 19,218,198, 40, 14,127, 60,162,234,241, 8,125,203,125,225,118,222, - 92,147, 30, 10,122,199, 75, 44, 12, 22,205,117,109, 54,239,157, 69,219,151,237, -192, 27, 75,232, 59,105, 6,162,114,179,252,161,183,204, 97,182,116,114,226,100, -192,250,197,156, 44, 84,239,214, 27, 51, 56,232, 25,175, 79,186,168,125, 96, 21, -218, 84,147,229, 7,254,198,107,242,105,122,210, 47, 15, 66, 83,161, 96,153, 10, - 70,113,144,174,193, 52,100, 50,239, 92,211,205,217,194, 95,239,255, 31, 69, 24, - 17,196, 17,169,152,203, 2, 24,141,198, 21, 38,135,220,146,166, 44, 54,236, 43, -177,244,104,204,101,247,211,148,174, 6,217,114,141,117,158, 41, 89, 74,104, 97, -125,237,232, 97,199,129,182, 2,104,177, 31, 57, 26,110,109, 41,119,111,233,103, -228,186,170,164,132, 45,101, 4,253,186,124, 97,118,230,250, 27,125, 95,218,221, -179,129,221,153, 99,161,188,165, 27,117,103,231,145, 52,123, 92, 16,181,111, 58, - 79, 93,150,177, 31,218,252, 70,174, 79,181,211, 81,148, 17,109, 81,155,156,241, -234,169,139, 5,155,120,184, 92,158,197,147, 94,169, 5,134,244,173, 33, 99,185, -100, 34, 30, 70,131, 89,190,177, 54,183, 8, 96,189,226,186, 42, 94,165,176,126, -251, 70, 11,198, 58, 49,107, 72, 31,120,124,227,157, 91,127,245, 83,164, 58,210, -155, 52,118,188,180,106, 51,110,143, 78,192,173,199,169, 67, 69,233,122,200,246, -228, 78,124, 51, 71, 97,114,235,167, 40, 74,122,132,165,162,169,104, 48,239, 50, -153,106, 11,251, 98, 87, 13,123,168, 17, 49, 51, 8,161, 25, 9,102, 70,146, 20, - 20,210, 1, 64, 68, 48,200, 57,155, 7, 50, 8, 93, 75,147,198, 10, 12,209, 4, -243, 41, 40,255,122,217, 0, 56,147, 73, 47,158,130, 31,232,151, 85,110, 86,232, - 98,207, 47,226,158, 3, 6,220,220,162,184, 87, 93,129, 98, 68, 27, 18, 3, 85, -210,205, 53, 58, 20,165, 12,169,143,131, 25,100,213,226, 53, 1,170,136,179,179, - 4,123,129,147,207,204, 27,205,146,200, 45,248,101,122, 25, 86,148,166, 49, 10, - 72,122, 99, 90,206, 50, 81,178, 26,167,197,145, 90,148, 45, 64, 79, 81, 92, 84, -233,148,249, 30, 16,148,116,129, 48, 30, 48,155, 61, 0,166, 83, 72, 54, 24,221, - 1,163, 54, 39,140,157, 27, 18,250,114, 10,158,172,182,212,192, 1, 63,201, 78, -157,144,167,163,216,188,197,146, 36,141,175, 34,239,242,153,132, 4, 39, 25, 0, -245,160, 62,248, 2,206, 68,175,240,226,183,156, 7,137, 90,197,204,218,143, 94, -213, 94,119,218,196,199,203, 59,182, 72, 22,144,126,151,247,116, 57, 59,232, 56, -243, 10,180,128, 62, 4, 48,218,210,157, 23,242,216,154, 72,111,101,181,189, 13, - 4,134, 49, 94, 34, 56,210,200, 65,243, 40,102,194,125,192, 11,247,172,222, 74, -226, 77, 88,138,196,215,176, 3, 3, +// ../Source/Template/GB_bitmap_scatter.h: +uint8_t GB_JITpackage_138 [244] = { + 40,181, 47,253, 96,137, 1, 85, 7, 0, 18, 78, 45, 23, 48,219, 1,180,166,187, +130, 15, 21,106,167, 41,142,162, 60,156,132,113, 54, 88, 56, 26,192, 0, 96,230, +114,125, 70,210, 22,247,166, 78,201, 44, 44,113, 95,194,238,187, 54,236, 3,160, + 10,185,201,243,158,168, 11,183, 7,243, 44,200,252,114, 53,115, 0, 36,199, 98, + 60, 74,138,237,227,142,251,217,204,123,253,210, 50, 94,175, 79,230,203, 0,165, +237, 40, 31,118, 95, 63,231,122,163,103,230, 60, 77, 31, 47,152, 37, 89,140, 70, + 73, 22, 31, 72,193, 11,157, 97, 81,242,227,241, 24,221,172,154, 61, 47,186,231, +130,208, 86,116, 41,231,181, 43,182,221,239,252,118,128, 46, 89,116,191,234,196, +122,102,173, 69,151, 53, 93,175,108,222,121,205,230,151,238,160,135,251,123,139, +164, 14, 91, 81,221,121, 12, 33,202, 17, 4, 48, 16, 36, 18, 0, 28, 3,226, 93, +248, 65,193, 14, 94,199,189, 87, 41, 97, 36,117, 79, 40,237,128, 74,226,231, 47, + 51,234, 16, 68,235, 30, 52,127,158,153,162,237, 98,171,229, 22,131, 22,144,138, +139,162,192, 13, } ; -// ../Source/Template/GB_transpose_full.c: -uint8_t GB_JITpackage_146 [737] = { - 40,181, 47,253, 96,202, 5,189, 22, 0,118, 39,119, 40,208,208, 58, 7,120,199, - 49, 98,127,185, 12, 50, 71,203,102,156,207, 89,248,166,119, 59, 75,149,220, 5, -127,217,150,142, 76, 26,108, 59,200,213, 48,139,188, 18,110, 0,108, 0,102, 0, -150, 99, 23,123, 50, 87,169,248, 78,222,162,165,154, 96,192, 60, 56,254, 88,190, -156,249,109,143, 19, 51,151,242, 58, 85, 32,137, 72, 42, 4,130,136,228,211, 38, -157,186,241, 3, 25,254,184, 30,242,154,126, 81,115, 42,187, 44, 11, 94,133,246, - 97,194,215,194,154,113, 71, 79, 22, 85,250,144,172, 21,158,155,240, 20,215,208, -169,105, 18,184,164,190,112,147, 42,181,176, 79,164,244,116, 26, 95, 90,239,132, -182,181,133,135, 67, 32, 81, 5,129, 4,167,220,105,247,133,221,121,115, 78,122, - 40,232, 29, 63,185, 48, 92, 52, 32, 42, 59,203, 31,122,203, 28,102, 75, 39, 39, - 82, 6,172,103, 76,138, 66,117,221,122,107, 6, 7, 61, 35,118,202, 23,185, 15, -172, 66,155,106,178,252,192,223,136, 77,151,116, 7, 45,171, 80, 62, 89, 44, 17, - 16,183,172, 95,222, 96,189, 23,150, 74, 72,215,100, 26,178,236,186,215,116,115, -182,240,216,245,255,143, 34,141, 40,242,144, 84,236,109,176, 94,159, 4,236,109, -247,211,148, 46, 7,217,122,173,125,158, 41,217,194,250,250,209,195,143, 3,109, -165,156,139,253,134,236,130,201, 32,174,140, 70,187,188, 99,110,118, 17,224,209, -176,107, 75,189,123, 75, 63,171, 74, 74,216, 82, 70,208,177,203, 23,110,103,175, -223,209,247,165,223,103,124,123, 54, 91,180, 13,191, 51,199, 66,121, 75, 59,234, -206,207, 35,233, 6,185, 32,106,223,116,158,186, 44, 99, 63,180,249,141, 94, 7, - 81,180, 17,117,145,155, 12, 16,109, 76, 1, 14,136,116, 10,115,209, 40, 44, 24, -204,101,113, 93,210, 43,189,117, 11,172, 86, 28, 3, 27,120,188,227,157, 91,191, -234, 20,169,142,116, 77, 26, 59, 94, 90,185, 25, 59, 72, 39,224,214,227,212,161, -162,132, 61,100,123,114, 39,190,153,243, 4,202,173,159,162, 40,233, 16,151,138, -166,162,201, 92,152,255,147,169,182,176,175,134, 85, 13,135,227, 9,148, 71,110, - 73,211, 22, 27,246,149, 88,122,184,107,168, 33,173, 67,200,144,140,200,136, 72, -146, 36,173, 6, 48, 68, 96, 20, 59,237,162, 8,105,141, 82,103,102, 74,196,148, - 71, 73,249,207, 3, 73,106, 72,120,250, 3, 60, 3,204, 26,141,201,133, 98,235, -141,169, 56,191,136, 89,136, 3, 63,177,193, 82, 37,243, 67,179,149,224,112, 87, - 82, 94, 76,148,119,252,101, 2,182,124,198,118, 53,135,133, 19,164,161,203, 19, -228,200, 18, 99, 22,237, 41,148,139,204, 84,103,232, 15,178, 34,125, 65,144,227, -248,195,138, 17, 46,219, 32, 96,171,132,218, 33,205, 93, 57,225,125,143,130, 22, -214, 75,118,203,113,132,178, 89,135, 41,161,127,220,209,133,108,230, 17,213, 68, -194,148, 14, 67,204,244,180, 66,251,242,190,239, 16,125, 25, 0,101, 10,170,110, -165,234,143,211,127, 57,222,158,143,224,222,195, 69,242, 47,112,201,227, 20,210, -241, 22,114,204,228,132, 45,208,219, 11,171, 79, 98,103,226,129,123,123,158, 34, - 2, 66,101,104,130,184,244,131,221,106,129,195,152, 45, 8,174, 48, 25, 52,223, -207, 76, 83, 7, 64, 56,199, 72,207,105, 62,251,120,243,213, 1,150, +// ../Source/Template/GB_bld_template.c: +uint8_t GB_JITpackage_139 [1341] = { + 40,181, 47,253, 96, 78, 18,157, 41, 0,134,119,158, 39,208, 88, 77, 7, 4,234, +105,210, 29,109,119,143, 43, 13, 34,107,139,151,226, 73, 17,160,181, 98,173,100, +194, 7,138,104, 15,109, 7,185, 26,102,145, 87, 2,154, 0,142, 0,145, 0, 17, +162,156,224, 83,192, 78, 95,212,140, 81,132, 77,229,197,213,234,168,111,223,148, +179,159,215,242, 88, 12, 52, 8, 25,181,168,196, 36,222, 16,117,171,237,167,141, +147, 81,126, 74,173, 70, 6,164,162, 67,211,244, 36, 42,171,199,185, 45,146,245, +184,115, 18,159, 18, 16, 12, 16, 50, 12, 7, 6, 8,191, 80,210, 39,222,147,172, +184, 70,226, 35,171,225,181,158, 79, 29, 9,141, 9, 11,203,136,209,160, 28, 19, +235,104,111,214,177,176,246,181,147, 90,135,101,237,163,151, 87, 7,186,148, 57, +223, 94,126,186,136, 58, 82,115,155,129, 54, 34,207, 27, 40,141,118, 58,236,210, +254, 52, 7,250, 76, 96,188,160,192,146, 41, 40, 8,157, 93, 81,177, 55,103, 37, +240,253, 98,240,205,230, 79,122,181, 0,150, 6,224,218, 50, 23,208,175,224, 89, + 47,200, 47,123,232,255, 45, 22, 21,231, 50,151, 39,172, 20,149,239,129,199, 10, +219,123, 71,160, 55,117,237,165,245,134,207,243,107, 52, 52, 62, 54, 62, 25, 77, +223, 86,218, 42, 52, 56, 31, 19, 31,142, 14,103, 82, 78, 42,194,139, 95,147,121, +240, 29,242,170,213,171,215,232, 17,105, 98, 42,134,229, 89,159, 82,107,161,188, + 51, 8, 74,106,155,225, 35, 73, 76,155,251, 74,189,229, 79,172,212,198,206,139, +245,228, 86, 67,208, 35,172,174, 87, 50,175,134,163,134, 2, 43,151,158,250,147, +200, 35, 61,164,131,131,226, 83,161, 49,209,249, 69,177, 81,183, 52, 34,242,252, +225, 7,152,191, 61,117,248, 72,219, 22,185,242,103,243,142,217,220,239,143,194, +130, 10, 6,243, 7,135, 75,212,118, 54, 75,234,178,166, 22,197,191, 60,137,173, +254, 92,217,115,234, 92,198,196,142, 93,240,121,145,100,196, 2, 28,222,182,223, +239, 82,105,123,213, 6,120,154, 98,216,134, 88,212, 34,124,211,197, 32, 53,189, +253,212, 84, 22,155, 31,164, 96,191,169, 62,200,159, 22, 34,195,121,211,126,233, + 48,126, 25,123,212, 82,163,203,115, 90, 83, 63,101,141, 88,197,129,253, 86, 3, + 89, 0, 6,211,241, 81,209,148,179, 57,169, 79, 27,204, 69, 50,248,131,128,192, +249, 64,115,121,202,160,140, 73,222,118, 6, 58,236, 99,153,244, 11, 75, 45,210, +247,118,148, 87,239, 81,160,115,176,122,167,213,187,158, 80, 40,227, 13,239, 71, + 60,180,210, 61, 30, 22,157,142,196, 55,223,252,100,117,134,157,203,191,164,216, + 1,226,156,236, 13,165, 70, 80,191,149,228,161,192,204,100, 95,246,230,184,213, + 86, 41,175, 63,163,107, 84,193, 75,212, 84, 65,135,236,242,154, 8, 59,163, 98, +240,106,245,115, 79,222,244,186, 50, 62, 91,189, 40,159, 64,215, 39,174,182, 61, + 13, 80,118,106,177, 4,129, 36,168,161,161, 67,104,102, 70, 36, 73, 65, 82, 24, +214, 49, 12,129,161, 48, 11, 33,167, 7,194,160, 68, 72, 98, 36, 69, 64, 66, 4, +134, 24, 98, 68,100, 68, 36, 16, 9, 82,144,210,130, 98,214,113,229,215, 5, 49, +172,149, 98,161, 98, 19,177, 51, 81,160,158, 28, 98, 77, 67,109,122,228,144,112, +173, 49,168,157,134,100,132, 32,156, 19,109, 60,142,172,131,250,186,201,236, 79, + 80,236,121, 39,140,172,229, 81, 4,209,184,216, 47,242, 75, 67, 5,135, 60, 82, +100,194,106,195,224,119,234,114,169, 56, 65,200,164,185,176,181,195,234,236, 6, +155,244,193,131,181,111,162, 42,115, 27, 14,162,234,190,209, 69,170,179,184,177, + 62, 52,152,252,135, 35,102,133,176,209,126,112,213, 84,220,246,152, 71,253, 49, +255, 82,135, 31,135,120,147, 32,230,129, 77, 4,254, 33, 20,116, 45, 78, 26,206, +127,134,106,110,222, 20, 5,102, 32,225,168,118, 83, 7,251, 15, 85, 76,156,199, + 87,224, 81,189,147,226,127,189, 31,118, 47, 78, 35, 13,238,254,187,211,128,245, + 71,183, 81,201, 48,130,131, 54, 68, 28,124,231,153,123,154, 21,183, 63,177, 64, + 21, 48, 35,189, 41,204, 65, 15, 7, 1,104, 57,240,200,236, 14, 53, 75, 24, 65, +196, 72, 17, 22,133, 64,160,211,209,226, 69,224, 92,231, 71, 7, 3,208,225,121, +153, 48,193,115,152, 35,237,240, 23, 63,103,169,255, 65,140,151, 12,173,213, 49, + 30,115, 40,221, 4,124,168,205,174,113,226, 50,102, 25, 54,146,187, 84,206, 62, +180,168,153, 16,125,248,130,141,157,188, 22,207,136, 16, 31,169, 31,110, 80,146, + 67, 7, 30,214,245, 42,229, 44,138,102,109, 45,148,152, 22,149,160, 17, 18, 88, + 89, 51, 42,216,131,162,100, 73, 4, 47, 60,240, 24,119,133, 84, 43, 73,142,169, +101, 2,251, 11, 70,201, 5, 4, 54,219,168,176,212,225, 11, 8,192, 18, 68,106, +104,187, 89, 64, 50, 33,127,170,106, 64, 53,169, 18, 45,227, 24,248, 90, 93, 44, +200,110,242,141,182, 12, 79,232, 62,169, 33,210,158, 9, 54, 6, 71, 28,255,204, +133, 43,232,245,176, 54,223,203,243,111,117,165, 84, 77, 47,180,219,218, 2, 8, +242, 67, 51,166, 6,227, 97, 0,141,109,130,126,228, 16, 53,143,109,226,240, 45, +166, 14,106,217,211, 87, 93, 37, 42, 12, 15,166, 61,107, 5, 71,229, 20, 69,122, +236, 9,236, 61,166,232,229, 68,248,201, 23,188,137, 49,184,153,253,230, 16,180, +220,136,104, 66,216, 74,152,234,126,187,142, 73,169,160,126, 8,229, 13, 38, 99, + 22,249,178, 91, 2,207, 92, 83,134, 90,145,248,132,219, 70, 10,199, 87,150,158, + 5,113,196,106,177, 22,236, 45,119, 72, 6,209,102, 37, 24,117,102,217,217, 47, +127, 17,203, 10, 14,218,214,228,220, 6, 19,196,128,199, 93,211,102,172, 93,104, +213,133,110,227,186,153,119, 8,137,219,113, 8, 47,120, 80,101,196, 92,161, 14, + 63,198,162,232, 3, 78, 50, 65,142,217,107, 51, 2,230,180, 25,207,157,217,117, +137, 36,132,184, 83, 13, 67, 89,164,160,124,162,129,215,140,217,111, 5,255,252, + 99,209, 60,155, 38,165, 50,211,114, 51,247,114, 77,122, 19,244, 22,165, 52, 0, + 15, } ; -// ../Source/Template/GB_transpose_sparse.c: -uint8_t GB_JITpackage_147 [833] = { - 40,181, 47,253, 96,133, 15,189, 25, 0, 6,102,116, 33,224, 90, 23, 3,144,119, -226,106,206, 2,139,180,157, 49, 67,110,137, 91,178,143, 8,158, 82, 5, 26,189, - 29,195, 24,131, 48,194, 11,108, 0,103, 0,104, 0,151,116,183,105,199, 11,193, -106,211,138, 23, 67, 0, 77,190,194,104, 87,217,106,203,185,222,100,233,114, 94, -150,244,156, 34,113, 72, 16, 26,136, 67,226,155,168,157,211,119, 85, 39, 47,208, -187,200,125,162,110,231, 28, 72, 49, 18, 18,215, 92, 1,237,190, 42, 48,195,231, - 93, 37,198,245,163, 89,207, 89,236, 58,183,109, 1,170,109, 93, 69, 13,159,157, -119,135,213,185, 98, 29, 90,125, 98,109,214,188, 67, 73,229, 6, 67, 70, 48, 24, - 2,228,182,168,151, 85,149,178,250, 27,226, 93,119, 61, 86,155,201,109,106, 39, -121,158,104, 87,102,189,151, 36, 31,199, 17, 2,125,119, 76,191,197,155,183,182, - 89,240, 29, 46, 24,219,188,223,218, 60, 69,239,241,141, 67,249, 66,150,195, 96, -223,168,118, 10,200,161, 31, 24,130,151, 80, 82,209,222,225, 80, 64,144,122,127, -100,139, 93,228,243,249,235,123,250,255,207,178, 87,118, 40, 36, 8,150, 20, 43, -166,119,100, 27,164, 11, 48,189,251,200,243, 6,131,209, 21,117,247, 40, 22,253, -222,171,109,151, 51,105,222, 33,143,238, 20, 35, 6,163,105, 71, 39,209, 49,125, -247,157,235,214, 33,197,143,111,167,115, 36,213, 14,134, 22, 73,229,221, 77, 38, -206,161,209,155,247,218,222,188, 77,123, 75,238,103,187, 58,111,119,205,118,223, -215, 54, 24, 64, 30, 63,188,251, 73,123, 62, 73,143,143, 14,162,235,207,187, 91, -177, 98,125,202, 39,107, 60, 3, 89, 22, 35,152,167,185, 96,120,154, 75, 72,225, -120, 58, 31,245, 66,239,146,217,116, 60,124,135,171, 44,171,190,228,254, 57,142, -110,169, 67,122,200, 38,222, 93,183,214,108,169, 26, 45, 41,234,111, 33, 74,101, -150,182, 44,107,174,248, 24,117,190,162, 74, 53, 99,192,120,247,197,139, 58,119, -181,186,180, 89, 22, 35,221,209,180, 27,197,231, 60,172,253,219,132, 33,204,247, -209, 22,213,142,207, 22, 5,220,124,160,134,114, 58,225,134,100, 71, 51,128,142, -160,241,161, 65, 83, 52, 65, 65, 65, 65,146, 74, 26, 3, 48, 68, 96,144,178, 18, -221, 29,124,239,248,148, 66, 9,122,140,206,212, 93,194,206,235,208,206, 42, 81, - 3,197,249,164,189,105, 74,207,113,230, 52, 23,231,159,222, 4, 89,155, 71, 90, - 19, 68,154, 63, 34, 29, 9, 30,226, 10, 31,126,208, 33,148,126, 92,222,223, 6, -255,238,151, 12,245,118, 22,131,168, 34,104, 20,255, 66, 19,161, 39,113,232, 34, -130, 22,196,163,247,208,104,230, 95,131, 88,190, 8,222,206, 86,224, 80, 27, 78, - 84,130, 31, 80, 57, 62, 62,202, 40,219, 72, 27,114,207,244, 22,112,196, 75,202, - 76, 58, 12,243,233, 72,134,150,106, 49,141, 24, 60, 16,131, 66, 24, 43,137,187, -126,137, 49,146,102,171,242, 38,218, 81,238, 73,157,177,147,156, 73,162,216, 70, -132, 34,252,151,229, 51, 68, 64, 46,131, 64, 37, 78, 79, 59, 35,241,254, 49, 55, - 26, 7, 61,159, 83,125, 92, 59, 76,223,161, 37, 16,254, 24,253, 54, 20, 88,136, - 50, 10,181,211, 86,250,124,192, 68,164, 39,154,176,167,203,159,168,163, 32,223, -227,240,237,180, 99,163,213,151,112,179, 25,194, 10,248,155,104,109,133,127, 33, - 2,248,143, 56, 8,219, 14,111,153, 86, 8,198,139,113, 8,129,112,112,141,104, -108, 28, 6, 4, 19,166, 7, 71, 25,132,244,160,247,117, 3, 15,243, 24,179, 5, -113, 7,204,128,181,188,195,112, 96,201, 9,107,114,160,191,144,190, 32, 46, 19, -159,218, 7,136,153, 45,110,104, 52,104,114,126, 96, 82,171,203,241,207, 45,192, - 61, 71,212,186,118, 1,146, 98,133, 82, 20, 52, 1, +// ../Source/Template/GB_bytes.h: +uint8_t GB_JITpackage_140 [376] = { + 40,181, 47,253, 96,130, 2,117, 11, 0,134,214, 69, 32, 16,179,115,172, 60, 80, + 44,101,174,250,113,186,189, 36, 12,153, 32, 25, 99,192,236,172,239,255, 98,224, + 35, 2, 0, 64,224, 32, 61, 0, 60, 0, 60, 0, 3,235,130, 44,240,168,178, 39, + 50, 62, 41,254,109,221,113,184,242,136,162,136, 44,182, 78,164, 14,196, 86, 26, + 59,148,109,246, 40,176,110,231,235, 79,150,154, 99, 15,187,236, 94,247,195,245, +136,109,170,219, 31,166, 89, 56, 78, 81, 80,162,168, 28,218,205, 47,141,175,179, +227,230,201,114,181,111,221,173, 2, 7,147, 37,237,150,197,142,226, 8,186, 44, +185,231,106, 16,105,235,220,140, 35,146,133, 33,153,180,245,208,173, 59,121,237, +109,195,147,115,156,226, 17,193, 26, 88,146,161, 10,147,189,192, 95, 45, 0, 62, + 52,148, 70,229,178,144,171, 77,201, 0, 8,167,175,153, 99, 44, 54,237, 58, 95, +234,213,185,239, 90, 48, 77, 83,224,178,219, 76,174,222,219,195, 30, 93,213,181, + 25, 31, 29, 30, 21, 30, 89,143,170,127, 28, 23, 3, 16, 74,214,230, 2, 32,172, +252,195, 16,252,184,206,150,178,118,109,107,221, 44,139,239,110,158,162,158,120, +198,194, 92, 74,175,235,255, 31,130, 96,103, 30,237, 10,175, 10,235,184,171, 42, + 92, 7,139, 80,184, 42, 75, 32,104,205,161, 3, 33, 32,128, 68, 2, 42,229, 6, +176,110,243,216, 3,161,221, 85,100, 24,132,122, 4,243, 45, 65,159,238,136, 57, + 41,184, 3,148, 80, 33,188, 64,109, 97, 17, 60, 97, 35,141,137, 72, 65, 16, 9, + 67,184, 44,157, 28, 58,144, 59, 7, 22, 95,187,250, 60,251, 58, 40, 22,231,187, + 21,224,166,217, 60, 51,209,198,191, 90,248, 62, 90, 20, 45,110, +} ; + +// ../Source/Template/GB_callback.h: +uint8_t GB_JITpackage_141 [644] = { + 40,181, 47,253, 96,176, 8,213, 19, 0,198,156, 91, 33, 0,181, 30,214,212, 19, +205,178, 2,124, 60,111,130, 15,197,125, 54,148,140,214,162, 38,169, 85, 24,134, +113,150,254,223,235, 67, 8, 82, 0, 81, 0, 83, 0,175, 63,115,189,189,206,205, +252,251,166, 23, 24,139,196,194,208, 80, 36, 22, 62,176, 2, 47,232, 11,170, 17, + 63, 76, 31,121, 27,131,119,243,130, 54, 43,136, 39,214, 60,113,188,206, 85,212, +126,223, 81,147,218,191, 15,243,123, 60,227,206,117,247,220,139,163,237, 14,239, +224,177,149,243,125,213, 82,200,196, 17, 8,105, 64, 32, 2,174,243,239,240, 98, +209, 67,124,183, 13,199, 78,110, 59,230,173,169, 71,215,205, 24,137,162,170, 1, +222, 1,111,156, 69, 10,240,231,198,207,134, 31,222,128,164, 80,203, 52, 33, 85, + 53,167,238,185,176,187, 1,153, 56, 44, 12,239,217, 42, 78,119,228,191,221,221, +225,115, 21,195,235,240,237,173, 12,154, 8,118,224, 30,148, 3, 10,106,146, 81, +214,219,251,105,234,249,169, 82, 81, 22,127, 95,165,162,233,162,154,255,176, 23, +162,170,139,146,201,191,119,181, 90,172,224,190,156,140,218,182, 57,105,212,162, +216,180,182, 10,228,225,131, 65, 71,193, 81,131,163,165,162, 73, 16, 8,252,218, +174, 12,163, 22, 70,179, 48, 19,101,108, 48,205,212, 56,236,237, 7, 29,239, 82, +118,151, 11, 63,224,213,132, 92,213, 68,150,252,225, 54, 28,221,221,221, 37, 73, +230, 11,190,183,253, 65,183,163,171,232,213, 29,210,211, 35, 69,195,136, 88,164, +158,252, 33,236,194,168, 37,163, 50,116,103,172, 63,116,203, 46,237,178, 95,131, +191, 81, 26,104,141, 50, 6, 63,119,155,236,178,168, 76,162,248, 78,126, 48,113, +160, 17,146, 98,102,136,166, 36, 37,133, 44,107, 80,132, 8,161, 34,221, 79,129, +109,192,160, 57, 7, 52, 0,116,151,209,232,204, 43,134, 40,187,156, 47,146, 93, + 49,148,253, 16, 76, 3,100,191,172, 82, 58, 76, 23,100,127, 25, 87,210,226, 98, +170,248,101,155,146, 99,190, 32,251,203,102,100,152, 47,117, 17, 67,217, 15,160, +137,128,236,151, 89, 74,172,137,221,201, 30, 75, 99,177,216,148,137, 19,195,240, +237, 6,141,253,138,231,128, 47,137,253, 13,250,176,239,245,170, 27, 13,152,218, +183,100,160, 22, 43,241,186, 82,165,207, 42,111,214,208,144,134,103,233,154,208, +201,204,147,228,237,216,181,143,222, 14, 6,234,203,251, 58, 84,164, 55,171,248, + 72,125, 4, 67,165,104,223,176, 16, 15,190,102, 28, 21, 15, 60,121,104,132, 21, +120,143,148,129,150, 91, 4, 0,116,132,161,212, 46, 46, 64, 92,188,117, 68, 81, +183, 96, 6, 32,176, 99,122,164, 73,253,126, 1,113, 55, 16,232,131,140,103, 24, + 12, 4,205, 72,128, 23, 20, 15, 26,123,193, 74, 69,151,104,144, 8,129,165,140, + 60,218,131,161, 66,192, 15,154, 26,149,153,188, 23,182,170, 19, 66,204, 71, 94, + 85,244, 58, 1, } ; -// ../Source/Template/GB_transpose_template.c: -uint8_t GB_JITpackage_148 [761] = { - 40,181, 47,253, 96, 93, 9,125, 23, 0,198,226,104, 32,224, 26,231,208, 73, 35, -108,123,143,187,231,101,203, 18,149,110,132, 94,168, 31, 50, 55,107,180,120,168, - 70,140,113,136, 49, 14, 97, 0, 95, 0, 91, 0, 30,175, 44, 55,135,222, 23, 68, -205,208,195, 48, 59,214, 96, 40, 24, 7,199, 66,193,120,161, 35, 28,235,185,146, -148, 35,178,183,192, 91, 85, 83,116,108,203, 56, 19, 80,148,246,242,224,182, 82, -220,248,206,113, 3,136,245,173, 80, 20,229, 61, 42,143,177,216, 58, 86, 40, 12, - 50,194,109,217, 17,196, 26,209,254,224, 43, 67, 81,197,151,227,174, 98, 83,105, - 47, 55,185, 60,145, 0, 28, 18,137,246, 74,213,153, 85,146,158,193,139,182, 5, - 71,241,100, 38,223,172,128, 76, 34,110,227, 54, 14, 51,185,252, 99,143,142, 90, -246,203,168, 0,136, 8,156,189, 49,236,232, 20,188, 39,120,255,213, 55,247,120, - 86,213,190,173,223, 61,238,145,142,103,101, 79, 36,254, 31, 0,112, 1, 20, 8, -198,129,193, 78,138,217, 31,150,231, 55, 47,101, 47,115,224,166,220, 77,206,161, - 68, 1, 33, 2,158, 44, 36,226, 62, 91,230,155, 30,205,178,122,159, 97, 40, 58, -217,178,170,173,164,227, 49,143, 50, 60, 58, 79,220, 33, 79, 10, 41, 12,204, 8, - 76,167, 0,209,151,242,165,181,123,223,249,110,238, 58,249,122,207,167,223, 30, - 85,213,118,216, 13,199,102,123,249,206,126, 4,198,154,116,205, 41,121,127,231, -239,120, 58, 22, 50,181,156,170,247,116,182, 20,207,154, 1,163, 0, 0,120,253, - 39, 91, 95,240, 60, 18,121,115, 39,197, 78,217, 74, 34,252,155,218, 33,150,197, - 22,120, 91,223,239,201, 45, 74,213,157, 39, 80,214, 17,101, 38,175, 64,135, 8, -195,241, 59,120,235,233,108,229, 57, 35, 11,183,101, 92,156,138, 39, 84,217,112, -162,140,230, 23,235, 35,215, 52, 77,211, 14, 57, 75,114,200, 94, 32, 60,114, 86, -246,219, 77,123,155,173,225,246,246, 1,109, 1,128,137,160,193,173, 81, 70, 70, - 68, 68, 36, 73,146, 74, 99, 48,132, 16,163,212, 89, 7,123,167,231,239, 60,138, -159,162,214,104, 54,188,220,102, 44, 37, 99,203,101,188, 65,144, 18, 57,194, 6, - 79, 16, 94, 24, 5, 25, 25, 55, 6, 49,136, 28, 22, 34, 43, 71, 14,254, 56, 43, -106, 80,242,242, 33,128,114,123,100,183, 21,208,130,161,113, 19, 71,238,216,229, - 96, 27, 99,194, 9,252,192, 70, 6, 13,165,106,115, 78,102,196,151,214, 96, 26, - 64, 22, 8, 27, 5,141,145, 89,108, 57,200,161, 88, 24,158, 41,134, 96,132, 16, -244,165, 21, 34, 62,121,200, 18, 9,241,146, 15, 12,206,194, 91,200,194,172, 69, -184,187,104,114,165, 48,113,229,114,121,155, 56,110,187,203, 21, 31,241,163,251, - 80, 35,188,236,122,102, 42, 52, 73,136,151,249,214, 64, 18, 7, 80, 17,224, 16, -144,217, 5,217, 88, 26, 24, 65, 0, 34,211,211,233, 45, 94, 93, 36,185,117,108, -123,192,211, 14,191,239, 78, 84,211,151,154,231,135,238,149, 20,215, 79, 0,214, -179, 41, 69, 48,168, 15,192,179,162,208,117,237,212,131, 59, 20, 8,225,224,133, - 59,165,105, 62,116,108,168,181, 3, 4,236, 2,162,153,180,234,121,192, 20,206, -158, 12, 88, 16, 30, 13, 89,170,119,167,242,173, 44,131, 72, 73, 53, 24,127, 22, -209,217, 17, 65, 19, 19, 85,228, 15, 49,253, 33, 75, 29,156, 93, 77,133, 34,212, - 65,147,243, 51,211, 61,148,149,115, 16, 35,182, 90,155,224,221,193, 66, 21,189, - 99, +// ../Source/Template/GB_callback_proto.h: +uint8_t GB_JITpackage_142 [1746] = { + 40,181, 47,253, 96,226, 37, 69, 54, 0,170, 64,212, 11, 43,208,140,140,115, 91, +213, 38,218,213, 66, 53,231,117,229,247, 50,209, 82,213, 18, 49,120,192,128, 71, + 45, 11,102, 8, 98,229, 47,101,253, 50, 85,252,193, 21,158, 98, 16,191,172, 0, +182, 0,176, 0, 18, 58,205, 70,194,168,147, 90, 56,235,189,242, 75,189,211,206, +234, 47, 31, 82, 86,171,255,237,243,212,150,112,177,107, 36,148,208,181,220,215, + 47,155,205,119,167,148,217, 97,215,233,206,153,201,196,213,202,252, 15, 11,131, +225,225,224, 80,235, 57, 44, 58,196, 84, 88,193,150, 74, 77, 28,202, 82, 31,164, + 56, 30, 36,176, 60, 40,181,152,202,122, 57,183,165,129,151,199, 24, 29,122,112, + 96,112,112, 20,104, 96,112,120,227, 45, 28, 98,104,225, 18,252, 17,189, 99,245, + 94, 48,115, 8, 19, 81, 34, 44,204, 77, 9, 8,229,233, 48,140, 54,204, 48, 12, +126, 84, 57,117, 35, 23,246,147, 89,245,185,213, 89,177, 78, 31,194,122,108,239, +196,218,230,185, 41, 70,247, 90,132,196, 33, 16,134, 3, 2, 9, 28,165,228,164, + 89,238, 99,136,206, 22,210, 25, 38,225, 35, 95,169, 49,181,219, 61,198,220,213, +112,186, 72, 50,153, 40,130,105, 82,179, 68, 82,102, 18,209,248,102,106, 5,196, +148,211,105, 53, 31,218,200,204,122,215, 56,101, 75, 77,157,174, 76,202,183,132, +250, 28,198,155,185, 23,167,164,235, 87,251,102, 24, 33,206, 96,158,183, 13,187, +134, 60,199, 16, 56, 34,215, 10, 48, 58, 9,171, 63, 16, 40,114, 14,156,237,164, + 22, 49, 37, 22,126, 10,174, 5, 67,194, 27, 87,198, 87,246,218, 67, 7,227, 56, +110, 17,156,168, 61,144, 88,144, 40, 48, 18, 69,164, 61, 64,176, 60,136, 48, 42, + 33, 0,198,130, 86,201, 84, 46,150,198, 32, 18, 69, 80, 40, 81,164, 82, 74, 86, + 16, 64,132,216,181, 79,170,117,241,229, 7,187, 56,105, 38, 24,223, 28,202,217, +149,163, 30,130, 94,131, 64,222,216,206, 28,100, 42,214,177, 14, 44, 92, 59, 13, +121,198,152, 85,203,240, 12, 31,189,130,167,116,174,212, 24,160,226, 90,151,238, +177,194,217, 82, 33,142,187, 42,200,185,213,118, 4,121,174,187, 75,120, 14,132, + 38, 4,142,232,218,238, 91, 53,222,198,232, 26, 39, 82,105, 15, 26, 26,215,186, +104, 18, 74,101, 65, 69,131, 0,249, 0,105, 36,124, 48,114,219,104,147, 30,135, + 3, 1, 62,215,113,200,225,128, 0,185,176,221, 84,108, 31, 83,198,135, 46,118, + 54,169,129,204,142,210, 44, 58, 11,142,174, 58, 20,221,204, 46, 29, 66, 33,233, +113,119,218,254,134,221, 37, 77, 76, 76, 76, 76, 64, 19, 30, 34, 92,110,220, 55, +161, 36,220, 76, 62,145,239, 54,128, 0,252,100,242, 60, 12, 70, 5, 41,169,207, +133, 74, 57,179,214,217,176, 56, 91,128,161,184,118, 86,103, 8,191,121,174,185, +201,197, 48,171,159, 6,182, 88,219, 76,189,176, 84, 44,141,193, 69, 82, 33, 25, + 28,157,201,209, 16,189,227,230,116,111, 52,180,158,203, 20, 90,230, 82,193, 56, +224,140,227,174,111, 31,122, 18, 66,205, 74, 61,106,140,110,186,214,140, 4,243, + 88,207,181,106, 15,241,165, 13,229, 35,189, 19,163,203,250,185,179,118,103,162, +186, 65,158,237,106,191,121, 27,167,231,121,103,238,165,179,130,112,169, 72,146, +139,130,200,197, 22, 53, 79, 88, 85, 96,145, 8,183,204,246, 93, 94, 89,163, 65, + 53, 83,175,214, 32,145,184, 72,164,106, 15, 32,122, 63, 56,155,117,106,100, 66, +145,184,255, 45,162, 80, 40, 26,112,224, 12,129,164,168,225,157, 66, 34, 51, 35, + 34,146, 36, 73,134, 53, 97, 20, 98,148,130,208,113,214, 1, 66,168, 32,142,176, + 8,198, 64, 12,197, 16,132, 8, 49,148, 16, 66, 24, 17, 9, 40,146, 64, 36,176, + 48, 84, 29,111,137,106, 12,108, 85,106, 22,139, 74,204, 33,144,151, 18,175, 68, +107, 92,131,229,246,252,226, 92,132,155,152, 38,164, 1,113, 90, 47,198,171,135, +141,237, 34,221,223,229,195,150, 5,107, 31,112,217, 90,241,246, 79,112, 45,100, + 60,206, 59,133,168,139,215,180,149, 27,146, 98,243,250,213,255,166, 36,225,221, +120, 12, 69,186,193,152, 0,182, 37, 98,146,184, 47, 36,124, 24,171,216,157,230, +102,248,164,253,251, 72,119, 37,254,174, 20,214,200, 13, 3,198,202,245,223, 4, + 10,199,175, 38,211,200,106, 70,217, 7,251,122, 43,208,245,198,131,144,213,116, +222, 10, 5,118,120,180, 79,235, 31, 56, 20,240, 28,197, 13, 93, 98,231, 46,152, +151,208, 40, 52, 76, 98,233, 37,104,226, 97,117,223,165,148,165,254, 52, 15,239, +150,157, 21, 98,116,181,105,199,145,130,167,231,168,149,172,147,218, 60,133,198, +179,179,138,192,135,133,108,120,161, 64,172, 48,146, 19,208,217, 47, 97,213, 94, + 19, 24,123, 57,254,227,116, 90,228, 16, 94,188,214,167, 8,255, 60,227, 3, 70, +200,210,207,247,137,199, 86, 41, 31, 8,234,108,200,140,165,120,148,159,168, 5, +145,168,148,105,246, 33,137, 55,245,142, 84, 47, 51,103, 31,129,247, 97, 69,113, + 99, 81, 4, 8,131, 84, 0,217, 86, 65, 68,225, 9, 44, 31,140, 40,114,152, 35, +249, 60,170,121,146,233,120, 17,241,237, 19,242,130,128,241,201,182, 52, 62,141, +213,160,225,248,104, 50,247,104, 47, 36,214,225,158, 1,167, 10,178, 64, 11,194, +144,120,247, 22,171, 61, 28,232, 72,221, 97,169, 68, 61, 44,114,114,127,141,112, +163,116,208,149,141,167,248,106,127,198, 27, 52, 30,209,151,199,142,197,162,147, + 82, 99, 75,115,133,149, 18, 59,152,186,248, 28,176,198, 11,105, 59,238, 10,130, + 9, 5,180,135, 67,145, 34,228,136,247, 43,113,104,128, 99, 54,118, 46,216, 39, +229,118,204,181,250, 64, 63,182, 93,199, 79, 43,153, 15,253,102, 33, 1,229,249, +131, 87,239,247, 42, 28, 39,121,116, 58,201, 25,147,132, 96,184, 21,179,236,117, +114, 22,223, 11,189,210, 63,152,122, 46,209,164,233, 66,116,132,160, 9,188,122, +104,212,239,169, 18,113, 66,243,132, 14,177, 62,119, 16, 99, 34, 74,224, 10,219, +245, 44,208,197,141,134,159,197,184,114, 17,209,215, 66, 83,169, 94, 48,197, 37, + 34, 85,236,228, 77,242,203,125, 74,176,194,236,250, 30, 50,126,105, 90,159, 46, + 24, 87,191,228,218, 14,217,112, 8, 57,116,138,198,203,199, 76, 2,155,116,103, +187,133, 42,107,245, 61,150, 33, 60, 77,146,150,143,180, 76,189,240,254, 31,200, +131,125, 99, 19, 6, 46, 56,215, 33,234,243,255,226, 71,116, 32,158, 35,109,232, +211,215, 37, 74, 37,132,126, 58,158, 38, 69,180,213,253,239, 90,218, 11,127,214, + 50,103, 85, 86, 14,247, 43,229, 20, 16,108,202, 8,166,176,136,104,226, 40, 30, + 70,223, 18,115, 89, 2,204,245, 78,112, 5, 53, 85,164,106,153, 18, 42,209,163, + 15,222,115,235, 65,165,226, 74, 40,101, 89, 30, 66, 19, 14, 16,248, 49,154,166, +160,130,119, 84,155,132,147,248,140, 84,103,209, 73,132,247, 65,236, 80,125,255, +157, 58,128,182, 75,167,162, 71, 20, 87,240, 8,170,173, 64,225,180, 19,156, 29, + 10, 62,251, 98,136,167,163, 53,126,167,189, 26,221,149,241, 98, 73,170,226, 91, +103,194,128, 74,162, 96, 39, 83,244,147, 84,243, 80, 18, 3,215,221,219,202, 12, + 72,148,216,146, 62, 67,167,235,248, 9, 50,120, 21,109,112, 61, 46, 35, 83, 16, +108,204,227,216, 49, 98,139,180,235, 6,128,240,219, 57,228, 36, 30,235,200,164, + 79,113,117,168,239,245, 37,184,142,162, 89,152,146, 37,206, 25,123,227,251, 1, +196, 33,180,199, 82, 17, 45, 48,253, 36,207,174, 38,165, 10, 53, 62,162,217,135, +166, 30,212,158, 31, 88,232, 24,171,140, 48, 35, 2,253,132, 81,102, 66, 57, 3, + 1, 75,241, 41,197, 49,120, 71,243,132, 19, 46, 56,137, 17, 74, 43,184,167, 90, +200,147, 66,143, 78, 12,181, 37,230, 51,171,129,200, 25,149,193, 84,234,140, 66, + 65,135,226,171, 55,205,145,202, 76,252, 13,110,186,134, 48,228,176, 46, 94,250, +209,235,175,149,160, 9, } ; -// ../Source/Template/GB_wait_macros.h: -uint8_t GB_JITpackage_149 [437] = { - 40,181, 47,253, 96,118, 4, 93, 13, 0,118,148, 68, 34,224,150,205, 1,212, 44, - 4, 63,166,249,179,216,197, 92, 43,171,143,177,198,253, 50,148,102, 80,246,107, -110,202, 96,134, 49,140, 23, 2, 55, 0, 58, 0, 61, 0, 95,231, 58,250,170, 44, -203,234,167, 52, 81,191,112,147,231, 40, 63,100,107,104,251, 60,166,227, 77,245, -102, 90,158, 94,172,111, 91,203,219,185,195, 35,198, 12,155, 23, 68, 75, 48, 87, - 90, 2, 23,143,107, 90,133,105, 90, 88, 99,219,160,218, 97,155,198, 37, 11,155, -116, 27,183,119,156,199, 80,245, 78,146,220, 47, 67, 97, 43, 96, 7,194, 86,184, - 5, 26,252,194,149, 68, 27,207,184,159,198,108,150, 21,243,235,227,186,197,120, -210,251, 64, 52,190,244, 12,244,184, 90, 23, 5,118,129,224, 93,151,169, 60, 1, - 24,220,226, 6,143, 74,164, 81,113, 92, 70, 55,183,173,129, 10, 2,126, 22,143, -193, 81, 64, 76,132,211,136, 29, 90,177, 6,170, 45, 43, 96, 61,130,232,201, 29, -113,187,138, 53,219, 14, 35, 1, 85, 37,214,208,118,224,127,229,241, 44, 26, 78, -133,187,230,251,211,112,116, 11, 74, 70, 18, 54,249, 41, 71, 34,239,154,223,158, - 72,108, 87,220,126,142,200,130, 98,233, 88,128,167, 82,159, 88,192, 38,209,241, -102,126,216, 37,147, 36, 3, 60,160, 17, 30, 89, 36,161,162,148, 20,106,172, 1, - 48, 68, 64,156,177,180, 3,157, 71, 61, 22,160,211,192, 75, 37,138, 71,124,106, -111, 36,142,218, 30, 60, 65, 80, 5, 49,237,117, 9, 59,167,126,172,217, 76,125, -145, 19,174, 62,166, 98,100,195,170,174,143,232,213,100,141,161,216,218, 48,187, -192, 2,224, 36,179,129, 96, 90,101, 95,236,246,141, 34,220,107,198,212, 23, 97, -150,159, 40,112, 27, 27, 88,146,153, 41,194,228, 16, 70,246, 28,158, 42,251, 36, -221, 97,148, 9, 19, 10, 16,225,122, 40,134,149, 37,231, 57,121, 72, 56, 2,116, -208,124, 62, 51,213, 66,174,203, 65, 26, 99,193, 90,171, 40,104, 2, +// ../Source/Template/GB_colscale_template.c: +uint8_t GB_JITpackage_143 [1052] = { + 40,181, 47,253, 96, 48, 13,149, 32, 0,134, 46,140, 39,208,210, 86, 7,212, 93, + 44,124,187, 19,202,159, 23, 94,234,202,204,165, 47,170,161,137,245,115, 64,190, +170,112, 85, 57,124,196,186,140, 82, 15, 13,176,188,130, 0,121, 0,128, 0, 88, +102, 32,137,101,224, 82,233,236,130,214, 29,115, 91, 98, 50,211,142,156, 74, 99, +218,151,132,168, 92,188,206, 64,108,143,219,184, 61,199, 57,227,144,158,207,233, +222, 12, 46,150, 75, 37,161,192,114,249,228,154,222,176,244,128,239, 3,238, 33, + 89,174, 36, 9,122,251, 56, 8, 77,102,225,221, 96, 26, 95,104, 63,157,101,233, + 35, 1,145, 55, 67,210, 39,164,149, 3,202,248,190,176,212,129, 15,143,229,223, +251,118,246,241, 71,113, 11,212, 49,157,225,180,164,206, 86, 79,120,225, 89, 47, + 75,179, 57, 1,129,164, 66, 64, 16,148,103,235, 0, 33, 83,249,140,105,189, 94, +115,111,212,115,115, 84, 44, 25, 42,212,155, 14,224, 50,159, 76,168,233, 15, 19, +214,171, 32, 52, 17, 20, 14,211, 65,158,234,243,113, 56,151, 44,149, 31, 93,255, +127,137, 68,228,182, 71,211,138, 15,229,115, 41,244,246,254, 25, 34,149, 68,239, +208, 41,188, 34,133,119, 3,142,222,206, 25,218,119,150,143,213,135,216,122, 85, + 62,106, 6, 79,245,189, 94, 31, 59,118,103,152,229,207, 9,223, 23,149,248,173, + 98, 73, 29,227, 60, 54, 46, 61, 87,250,237,146, 36, 72, 67,226,212,179, 20, 59, +187,240, 39, 19,142,176,111,150, 45, 82,137,254, 86,236,179,231,132, 23,218, 91, + 82, 61, 36,113,192,107,163,204,191,156,114, 97,198, 22,143, 48,204, 84, 0,206, + 17, 7,149,214,168,173,190,228,196,206,202,248, 74,108,132,201, 72,223,203,204, + 90, 67,141,103,107,222,196,135, 83,177,180,220,155, 74,136, 74,194, 83, 61, 88, + 32,206,177,142,152, 12,160, 61, 61, 32, 69, 81,212,123, 26,144,201, 4, 82,117, + 48, 64,150,203,178,204, 45, 67,197,125,225,214, 61, 95,242,102,220, 55, 18,201, +136,100,132, 34, 45,212,244,206, 68,245,225, 88, 84,210, 58, 9,175,112,107,171, + 12,142,103, 2, 68, 85, 21,214,139,224,124, 44, 23,177,113,158,206,173, 55,144, +247, 38, 18,197,233,154,202,227, 32,168,234,137, 68,162, 2,129, 54,177,157,214, + 90,164,253,102, 57,219,177, 64,213,102,244,150,185,233,206,106,208,108, 68, 88, +134,132, 78,235, 99,103,120,219,214,119,232, 53, 79,176,250,124, 35,149,216, 21, + 50,159, 30,101,130,105,152, 41,243, 13,141,133,103,248,209,173, 31,239, 26, 79, + 25,142, 73, 1, 1,133,204, 45, 95,152, 38, 5, 1,128,223,168,161, 61,170, 33, + 17, 73, 65, 74,146, 44,107, 80,132, 8,149,149,205, 1, 66,177, 48,145,225,140, + 97,196, 25,130, 68, 2, 17,201,136,130,148, 63, 59, 81, 0,213, 30, 41, 21,157, +242,248,153, 23, 74, 34, 59,173,233,174,124,155,100,210,130,233,217, 4,149,125, + 44, 86,226, 53,140, 97,210, 59, 14, 49,161, 19,106,171,246, 92, 74,242, 40, 25, +188, 72, 60,178,218,217,173,158, 47, 74, 32, 34, 25,196, 92,167,105,175,154, 66, +192,176, 10,137,164,111, 9, 31,102,142, 47,153,171,247,235,130, 75,123, 51,130, +176,145,201,215,248,107, 46,169,227,198,143,124,120,161,242,147,149, 47,150, 1, + 18,204, 84, 34,233,239, 46,164, 93,216, 18,243,187,173, 82,181,118, 67,244, 65, + 95,251,100, 1,195,101,108,107, 16, 85, 74, 95, 26,100, 76,232,134, 53, 97,181, +173,144, 89, 26, 52,176,133,124,167, 84, 30,230, 21,237,161,185, 84,144,249, 56, +196, 48,101,113, 74, 5, 50, 74, 37,245,162,161,128,127, 56,215, 15, 57,205,222, +128, 78, 41, 45,239, 56,162,148,162, 66, 13,190,112,144,152,212, 84,203,206, 0, +228, 18, 89, 37, 80,196, 85,130, 44,152,198,196, 85,117,242,236, 54,162, 72,177, +144, 59, 67, 31,255,155, 49,218, 20,231, 8,169, 53,207, 43,202,101,115,185,109, +156,129,100,189, 82, 79, 80,153, 72, 60,215, 41, 40,217,189,242,112, 46,221,129, + 19,148,149,102,226, 37,201,188,137,232, 34, 18,251,203,208,117, 50,172, 89, 28, +213,252,224, 14,113, 24, 76,177,239,144,145,167,224,166, 87, 39,119,224,137,107, +104,214,241, 43, 61, 0,104,127,171,114, 76,222, 83, 94,181,192, 7, 15, 8,128, + 41,251, 5, 46,118, 32,226,182,165,253,175,131,164,169, 65,159, 60,179, 38,217, +154, 32,217,224,118, 60, 8, 54,131, 59,197, 51, 68,161, 75,107,191, 63, 39,116, + 31,224,234, 10, 7, 60, 58,164,124, 65,129,227,188,105, 8,181, 21,129, 14, 8, + 60,208,219,247,209, 55,141, 97,118, 56, 21, 48,178, 27, 0, 72,156, 96,127,133, + 66,134,166,183,130,217, 3, 96,116,209, 41,245, 76,102,111, 21,219, 55, 77, 94, +101, 38, 49,102,187, 18,126, 25, 42,221,129, 39, } ; -// ../Source/Template/GB_warnings.h: -uint8_t GB_JITpackage_150 [941] = { - 40,181, 47,253, 96, 34, 9, 29, 29, 0, 70,238,135, 30,240,220, 54, 80,217,107, -191, 87,158, 33, 17,200,178,198, 85, 91, 98, 53,109, 52, 51,142,140,173, 11,139, -195,160,248, 74,134, 0,121, 0,127, 0, 92,145, 80, 28, 11, 6, 51, 51, 3, 0, -170, 90,141, 53, 26,207,138,196,249,120, 70, 32,145,166,245, 3,192, 34,209,216, -220,139, 13, 98,184, 82,253, 91,127,167,115,158,205,237,244,248,159, 77,181, 25, - 37, 56,135, 85,183, 78, 98,123,189,238, 73, 44, 37,134, 17,142,198,162,177, 73, - 24,139, 6, 27, 98,129, 17,246, 97,189,225, 4,134,103,222,165,223,155, 24, 81, -194,124, 50, 30,216,181, 83,113, 91, 27, 44,249,253,176, 4,224,234,242,193,143, - 70,110,181, 40,207, 26, 94,174,120, 9,219,205,159,181, 99,171, 76,135, 21, 10, -192,166, 80, 4,181,193, 25, 82, 34,147,219,223,164,250,157, 79,193,191, 61,159, -189,251, 49,150,253,247,231, 63, 30,142, 1,115, 62,191,229,220, 12,185,210, 22, -115,110, 67,166,213,105, 14,235,178,155,237, 31,203, 14, 95,236,224,236, 50, 87, - 24,148, 70,108,227, 24,159, 13, 92,113,201,106,251, 92,129,251,235,186,130, 3, -218, 87,122,163,195,248,210,201, 32,165,146, 43, 13, 8, 4,194,121,108, 9,178, -215,102,123, 43, 5,189,242, 5,235, 5,105,226,192, 94,221,139,241, 13, 41,171, -217, 85,251,243, 26, 2,230,188, 62,199,191,150,206,174, 13,252,224, 11,175, 86, -154, 83,168,179, 90,113,161, 82,221,235,222,147, 37, 32, 28, 99,167,209,116,164, - 15, 0,156,251,100,219, 76,112, 46,148,113,254,128,103, 44,158, 73,135,253,141, - 46,221,242, 13, 89,140,224,102, 82, 54,139,202,206,107,179, 23,223,139, 49,194, - 65,129, 48, 55,155, 37, 18, 6, 35,188,132,123,105,118, 47,129, 64,120,118, 52, -122,157,225, 4,193,136,220,103,177, 91, 42,121,214,159,237, 8,105, 52, 98,148, -107,207, 82,188,242,109, 42, 91, 18,235, 95, 7,145, 7,227, 65,159, 11,111,137, -101,135,246, 81, 92, 2,149, 64,242,173,109, 65, 55, 91,198, 78, 8,243,209,208, - 75, 43,104, 3, 87,134,189,121,241,126,204,218,109,115, 43,235,181,155,223,175, - 49, 3,219, 80,130, 81,176,109,179,193,174,169,141, 63, 90, 91,207, 77,231,218, -165,253, 74,107,117,182,109,221,187,211, 5,246,254,247,114,243,186,144, 86,239, - 74,217,173,237,126,124, 9,126,207,205,112,115,150,101,210,191, 29,103, 88,239, - 38,184, 50,191,147,198, 77, 82,202,218,230,111,119,126,106, 11,128,158,168, 81, -165,114,134,134, 72, 36, 40, 72, 10,146,100, 56, 48,132, 16, 82,236,172, 3,194, -185, 28,164, 56,144, 33, 69, 4, 72, 48, 50, 34,129,140, 4, 18,200,100, 87,205, - 6, 21, 3,168, 45,241,118, 41,129,179,186, 32, 34, 4, 4, 70, 56,170,143,151, -201,193,210,253, 57,154, 46, 59, 40,202, 78,232,174, 53, 17,156, 62, 54,200,164, - 12,138,227, 48,154,194,132, 11,123,205,144,238, 23,168,245,177, 58,225,104,157, - 66,231, 29,112,248,249,201,108,130,254, 64,122,197,164,112,137,253,141, 54,180, -178, 39,164, 50,205, 15, 61,140,149,226,229,252,235,123,166,226,114, 59,213,227, - 0,143, 15, 24, 31,186,160,228,103,249, 49,180,138, 24,190, 91,236, 52,119,143, -144, 34,203, 95, 44,105, 27, 34, 42,157, 19, 84, 29,220, 98,157,194,175,176, 94, -158,249,186,133, 20,136, 93, 53,161,106, 49,175, 78,201, 66,128,245, 54,174,198, - 88, 81, 24,162,153,160,114,202,179,128, 62,238, 62, 98,210,150,221, 5,247, 53, -228, 1,156, 89,208,176,178,159,180,243, 47, 81, 12,120,137, 5,197,104,235,253, - 96,179,218,189,131,104,237,156,157,234,117,223, 86,193,108, 82,103,137, 61, 96, -112,154, 75,172,203, 0,206, 61, 91,217,192, 51, 12, 96, 46, 32,143, 16, 15,112, -225,162, 98,223,169, 30,229,114,217,220,170,237, 65,149,111,243, 27,232, 7,163, -139,196,213,232,243,218, 57,251,213,151,139,172, 55, 11,243,195, 38, 22, 72,128, -139, 27, 55,139, 98,185, 69,118, 62,220,206, 85,106, 94, 53,117,102, 65, 61,134, - 66,172, 72, 32, 97,252,234, 14,239, 85,124, 26, 96,223,130, 85,169,252, 60,182, -186, 9, 48, 51,104,166, 63, 51,221, 4,185,226, 1,222,209,160,202,171, 22, 48, - 1, +// ../Source/Template/GB_compiler.h: +uint8_t GB_JITpackage_144 [2493] = { + 40,181, 47,253, 96,109, 39,157, 77, 0, 74, 90,180, 16, 44,176,110,144,115, 8, + 17,189, 44,245,104, 56,100,186,164,109, 29, 78,116,238,161,240, 67, 39,195,189, +220,172, 66, 22, 10,221, 73,181,108,110,120,205,157,210,159,146,246, 99, 28, 2, + 1, 0, 1,242, 0,212, 31, 14, 88,119,176,116,162, 36, 73,210,164,109, 43,139, + 24,151, 44, 98,185,197, 11,185,217,149, 90,128, 33,208,132, 50, 82, 56,215, 36, + 35,241, 48, 44,190,135,137,200, 54,239,241, 32,197,190,228, 59, 51, 11,133,131, +201, 36, 51, 24, 63,229,114, 97, 38,150, 76, 2,226,135,144,216, 96,178,247, 38, +174,137, 4,246,222, 53, 17, 16,174,203, 2,210, 53,196, 40,154,191,178, 73, 54, +129, 89, 44,168,191,247, 62, 93, 59,219,238,179,111,123,139,189,141, 66,149, 47, +107, 11, 75,103,115,169, 84, 48,151, 5,195,222,193,178,199,255, 99,216, 4,134, +103, 55, 44, 30, 60, 13,197,146,101, 46, 17,216,135,181,249,233,134,197,163,178, + 28,188, 69,200, 93,151, 84,238, 79,223,201, 90,230, 96, 59, 57,182,197,209,153, +100, 42,141, 69,149, 45,107,110,239, 6,106,205,165,188,222, 40, 96, 61, 44, 7, + 2,200,195, 58, 21,167, 55,108,139,224,228,213,245,210,118,105,168, 57,111,108, + 46, 11,196,198,193, 90,145,176,173,144,219,240,237,110,179,176,147,246,133, 93, +161,232,103,169, 77,184, 93,178, 85,149,101,115, 33, 26, 31, 68,229, 14, 14, 11, +135,131, 67,204,177,166,149,224,168,243,188,193, 32,189,129,113,203, 33, 26,217, +115,138, 52, 93,151,202,165,201, 84, 88,120,111, 97, 8, 4, 43,247,204,101, 50, + 23,209, 96,193,231,172,117, 50,214,238, 46,112,141, 84, 74, 24,162, 40, 6, 13, + 40, 6, 12,166, 7, 8, 48, 85,180, 70, 24,186,237,237,158,222,107,172,105,240, +236,185, 38, 59,186, 89,207, 57,174,251,132,111,176,133,113, 98, 31, 90,249, 66, +169, 49,169, 63,236,185,148, 61,186,112,187,103,233,105,107, 41,119, 43,224,102, +127, 69, 61,172, 42, 2,185,157,236,136,231, 55, 23, 91,233,133,149, 57,250, 82, +133,179, 61, 19, 76, 4, 70,209, 38,188, 85, 0,115,240, 56, 27, 77,230,224,188, +221, 91,150, 30,104, 91, 59, 8,202,207, 53, 20, 10, 74,196,123, 27, 39, 2,234, + 60,167,159,107,179,163, 21, 86, 84, 74,241,105,109, 98,140, 71,229,237, 82,182, +142,199, 3,114,135,205,133,146,113, 58,109,173,187,155, 75,216,217,158,248,253, + 80, 75,107,236,203,230,242, 5,133, 51, 42,198, 41, 11,101,130, 98,121,128,113, +174, 12, 86,137, 32, 9, 76,133,226,108, 58,140, 95, 32, 50, 6, 53,192, 17,231, +216, 34,250,107,233, 86,145, 32, 91, 56,251,141, 55,168,200,244, 91,216, 76, 77, + 90,183,172,144, 15, 68,102, 59, 38,157,167, 28, 5,175, 64,154,112, 11, 13,175, + 53, 21, 73,224,233, 43,148, 48,218,179, 4,205,182,135, 28, 33,103, 43, 42, 29, +253,118,180,222, 81,154,240, 98, 89, 90,190, 37,207,166,115, 93,222,101,153,160, +247,140,161, 45,223, 14,181,100,174,116, 29,181,161,241,173,212,114,133,255,100, + 37, 88, 43,252,118, 65,147,165,131, 34, 33,211, 68,112, 48,202,196,162,162,182, + 42,118,229,201, 32,182,211,111,255,218, 46,100, 53,186, 93, 14, 53, 4,176,231, + 19, 70,206, 95,217, 59, 57,196, 23, 94,123,134,147,223,184,178,131, 37,207, 41, +202, 74, 56, 74, 77,103, 72, 8, 76,147,246,141,157,198,245, 22, 58, 54, 8, 76, +103, 72,254,233,138,211,209, 61, 95,200, 53, 54, 76,207,188,219, 6, 71, 39, 14, + 38, 49,161,104,222,228,146,109,222,108, 40, 27,138,160, 22,106,251,211,121,201, +123,183,108,187,198,157,176, 37, 4,130, 61,219, 96,174, 95, 58, 37,244, 86,155, + 1,156,139,226, 64, 34,131, 97, 40, 42,179, 47,141,218,119,114,136, 90,144, 21, +192, 18, 68,105,197,178, 44,203,178,172, 71,230,172,140,172,189,199,161, 84, 52, + 23, 71, 98, 71, 84,155, 77, 65, 77, 86, 1, 76, 70, 49,187, 15,169,114, 29,200, +159,215,113,241,175, 74,112, 84,154,240,236,145, 92,209,242,246,199,206,142,100, + 89,236, 97, 65,222,134,163,137,200,100, 34,143,244,102,249,254, 10,152, 44,130, +219, 51, 82,149, 96,210, 71,136, 8,189, 64, 21,177,212, 86, 6,129,186,222,223, +158,110, 81, 20,227, 67, 18, 65,198, 52, 77,127,143,111,231,233,122, 47,124,239, + 81, 29,168, 16,220,129, 5, 57, 96,117, 38,174, 7,100,194,208,173, 45,186,140, +112,114, 26, 11,246, 0, 24,120,120, 15, 9, 72, 47, 67,134, 83, 6, 30, 58,239, +242,144,160, 3,160,118, 55,242,237, 45, 86,248,203,160, 10, 13, 88, 15,136, 61, +101, 53, 30, 77,175, 98, 95, 24,162,183,131, 37,121, 35,215, 74, 35,107, 61, 58, +252,228,137,227,219,237,209, 53,219,175, 72, 64,100,149, 12,101,129, 60, 34,145, + 6,199, 38,156,205,123,211,130,186,237, 36,247,120,101,153,106,144,111,174, 7, +172,209, 24,130, 92,168,194,163,214, 41,167, 74, 72, 36, 41, 40, 72,210, 26,130, + 24, 4,225, 96, 22,168,131,164, 30,114,168, 68, 71,145, 64,101, 8, 81,136, 40, + 66,136, 33,134,144, 8, 73, 48,145,136,210, 20, 36,199,165, 42,136,117,149,222, +188,204,131, 84,149,162,171,205,189, 63,124,191, 50, 41,166, 4,232, 49,107,114, +199, 62,231, 63,168, 67,157, 51,176,209,110, 94, 37,117, 57, 70, 11, 89,115,195, + 53,232, 18, 35,135, 1,106,104,174, 6,129,235, 5,198,178, 8,143,150,150,110, +129, 66,247, 81, 23, 85, 29, 20,100,134,202, 63,190,115,129,250, 79,142,121, 68, + 21,124,234,140,239, 75,212,157,199, 24,198,197,162, 54,240, 96,190, 45,188,107, +223, 91,170,121,241, 2,131, 95,207,146,239, 27, 29,140,104, 96, 90,194,103,199, + 5, 45,209,100,132, 15,214, 55, 9,105, 45,103,138,249, 59, 26,240,165, 34,194, +110, 67, 44,225,111,195, 49,248,210,105,223,190,192,120, 75,242,119, 31,129, 7, + 9, 14, 3,202,176,134, 15,182,224,136, 2,132, 30,118, 92, 51, 72, 54, 26,176, +160, 83, 77,240,154, 34, 46,164,123,235,200,182, 95, 84,170,166, 19,205,161,171, + 92,186,198,129, 48, 97,130,110, 55, 28, 7,182, 72,239, 28, 0, 25,191,152, 22, +118, 26,121,175, 54, 26, 24, 56, 13,106,129, 30, 21, 22, 24, 23,247,197,196, 30, +230, 99, 93,132,206, 34,130, 11,201,212, 99, 37,141, 72, 50,144,119,250, 79, 18, +104, 75,158,226,142, 33,116,192, 57, 11, 28, 77, 43,112, 51,177, 12, 8, 10, 0, + 36,145, 47, 99, 90,238, 37,213,169,234,253,125, 39, 98, 55,206, 48,244, 8,237, +142, 58,149, 75, 85, 93, 92,229, 50,139,149, 81, 78,235, 13,177,185,159,144, 52, +159, 64,142,137, 84, 48, 13,197,120,120,203,178,103, 16,255,237, 19, 21,172, 71, + 34, 83,212,248, 0,244,151, 77, 38,119,226, 26, 19,225, 11, 57, 37, 79,128,104, +215,156,138,223,242,186, 96,104, 8,224,145,185, 84,158,150,224, 61,228,119,239, +117,201, 55, 12, 94, 26,186,190,172,211,210, 67, 18,174,217, 9, 26,103,183,213, +216, 50,112, 57,161,150,251,253, 83,212,255,245,222, 12,110, 67, 60, 21,245,105, + 55,138,232,181,152,185, 78,211,117,129, 65,123,193,195,128,187,186, 70,230, 82, +219,235, 42,215,252, 58,192, 88,105,246,147,214, 42, 21,177, 78,245, 28, 71, 36, +144,246,120,192,217, 0, 4, 20,242,212,134, 29,173, 20, 89,207, 37,136,149,119, +171, 35, 78, 6,129, 77,255, 66, 12,234,181,221,207, 40, 53,135, 18,172,227,162, + 5,207,159, 32,143,146,128,154,238, 70,210,166,205,187,245,183, 64,174, 44, 37, +163,103,146, 58,184, 59, 79,225, 31,119,242, 20, 68,207, 1,246,191,116,215,219, + 91,127,134,171,238, 27,139,235, 47, 96, 97, 94,151, 71, 95,213,239, 9,206, 79, +223,182, 79, 63, 3, 80, 34, 82,130, 60,246, 27, 57,241,237,223,110,204,160,139, +112, 94, 88, 91,136, 51,229, 81,150,151, 31, 92,166,131,222, 66, 61,172,229,189, + 1, 70, 83,238,212,128, 45, 89, 89,142,205, 92,186,235,143,170,186,132, 38, 59, +241,211,121, 6,204,205,108, 11,155, 38, 96,147, 72,227,248, 99,120,214, 19,151, + 63, 88,253,144,216,227, 48,232, 96, 4, 65, 38, 30, 87,231,228,171, 22,147,190, +161, 96,243,203,246,224, 30, 82,219, 78,132, 4,228, 48, 7,241,244,186,178,178, + 15,140, 6, 66,111,245,188, 38,143,171,238,142,196, 82,117,160,180,220, 52,248, +200,138, 22, 64, 96, 83,143,140, 91, 27,244,106,117,119,239,124,137, 36,249, 81, +220, 58, 54,140,188,133,224,133, 86,191, 18,158, 10, 91,130,188, 79,253,253,242, + 73,124,134,198, 12,143, 31, 96, 28, 7, 2,196,182,124,217, 33, 54,126,212, 48, +125,114, 50,110, 16, 13, 24,219,136,204,139,166,226,106,107, 55,211,195,171, 74, +168, 62,113,177, 1, 61,145, 97,184,121,239,152, 52,229,229,233, 86, 51,148,163, +188, 53, 18, 76, 15, 23, 11,218,132,196,113,164, 40,112, 0,182,178,221, 40,153, + 43, 52, 1, 19,246, 23,245, 49,142,143,147, 58, 93,206,204,113,172,138, 80, 44, +136,197, 44, 80,197,142,107,209,185,169,143, 16,194,104,234,233,244,247,158,253, +168,135,176, 60,203, 73,104,136, 15, 80, 78, 1,227,128,179,235,219,213, 0, 96, + 70, 64, 76,142,215, 92, 87, 22, 1, 88, 47, 22, 59, 80,254,215, 10,212,102,242, +116, 81, 50,219, 16,254,222,222,103,233,230, 73,143, 67,240, 68, 37,240,213, 93, +238,116, 2, 99, 84,200, 11, 93, 62,250, 76,239, 50,244, 89,151,209, 69,117,212, +149,134,131,182, 27,236, 75, 36, 63,121, 38,156, 90,147,157,144, 35,236, 16,236, + 17,225,159,186,176,173, 54,178,117,208,173, 53, 91,122,213, 42,244,146,171,149, +134,120,197, 80, 94,231,236,196, 16,156, 79,178,170,145,216,167,116, 53,147, 12, +205, 52, 43,189, 72,246, 75, 49, 58, 21,220, 1, 51, 63, 59,168,195, 34,118,235, + 26,149, 93,119, 22,212,164,105,188, 39, 78, 76, 49,248, 28,141, 35,240, 45, 89, +140,165, 79,248, 91,135, 73, 28, 70,232, 63, 49, 61, 82,127,230,184,163,192, 27, + 66, 42, 88, 5,180,245, 36, 8,227,209,193,241, 66,156,117, 44, 71, 3, 68,205, +202,221,112,167,249, 62,124,244,114,137, 29,167, 8, 39,107,209,105,185,206,249, + 33, 94, 16,167,214,151,206,164, 94, 63,139, 59,240, 86,246,183, 9,234, 15,185, +139, 38, 24,231,206,225,171,125, 47,210,251,231,130,255,224, 51, 94, 73,100,156, +121,187, 65,231, 24, 43,255, 3, 66,197, 23,114,212,178,187, 92, 92,177, 52,143, +208,204, 91,184,221,253,251,251,102,130, 87, 51, 88,219, 11,143,122, 67,212, 31, + 94,247,223,204,189,224, 91, 1,119, 24, 17,161,194, 75,201,243,141,135, 82, 88, +105,223,216, 7,113,224, 86, 27,110,177,172, 92, 24, 29,146,128, 26,237,245, 32, +236, 9, 46, 7,194, 37, 77, 30, 77,238, 18,178, 13, 13, 54, 71,183, 83, 52, 46, +162,132,198,144,199,248, 3, 64,140, 80, 35,109,225,108,240,147, 42, 29, 96,112, +240, 73,160,193,101, 34,242,129,251, 76,141, 96, 91, 67,203,251, 23,158,196,120, +181,239, 3,242,236, 18, 11,232,252, 32, 85, 49, 61, 83, 14,192,221,252,191, 59, + 31,134, 25,199, 94, 18,102,124,227,232,196,215,147, 96,117,245, 47,228,109, 17, + 38, 69, 46, 16,130,161,170, 49, 9,120, 50, 90, 68,105, 92, 7, 77, 92,203, 76, +183, 32,172, 61, 15,164, 11, 53, 16,144, 58,166,219, } ; -// ../Source/Template/GB_werk.h: -uint8_t GB_JITpackage_151 [1331] = { - 40,181, 47,253, 96,172, 15, 77, 41, 0,214,185,164, 38,208, 22, 85, 7, 20,152, -244,223, 10,216,237,161, 69, 75,209, 38,144, 26,134,215, 90, 74, 79,153, 26,195, - 89,207, 2,111,148, 95,228,106, 6,188,120,130,158, 0,145, 0,155, 0, 27,110, -176,188,189,165,202,249, 86, 44,187,117,147,176, 94, 30,123,139, 97, 80, 59, 67, -102, 61, 6,210, 10, 84,177,185,216,144,240,184,212,122,215, 86,160, 1,170,192, -162,153,195, 49,172,123,109,124,106, 89, 88,180,159, 86,155,177,124, 68,104, 80, -150,118, 88, 91, 55,222, 49,195,118,227,154,230,240,201,160, 96,160,192,146, 64, - 48, 80,112,169,138, 62,245,118, 50,226,148,195, 63, 89,132,219,114,124,210, 56, -100, 30, 50, 46,153, 2,163,205,201,105, 52,110,167,129, 72,170,140,125,143,107, - 22,255,224,227,211, 77,177,124,185, 93,171,228,250, 12,175,247,131, 27,247,237, -165,214, 49, 25, 69,194,234,217, 60, 80,252,114,129, 44,151, 75,111, 43,149,225, - 43, 81, 70,195,105,255, 73,230,188,101,177,180,100,175,220,250,249, 11, 94, 77, -182,247, 18, 32, 22, 26, 74, 25, 62, 76, 59,144,147,239,220,176,100,238,170, 29, - 61, 78,207,243,215, 52, 11,195,203,195,146,197,245,188,170, 48,206, 39, 45,159, -198,247,222,140,227,138,111,153,123,253,220, 78,116, 75, 99, 86,175,227,168, 87, -182,110,249,142, 61,168, 41, 95, 59, 85,212,100,229,224,167,214,103, 76,203,178, -176,118,119, 89,252,148, 4,241,143,166,101,181,220, 39, 70,103, 24, 43,237, 92, - 74,150, 99,110,143, 29,188,196,142,123, 11,227,123,159, 85,155,121, 62,169,150, - 5, 88, 7,159,198,253,181,175, 54,102, 28,223, 32, 95, 24, 73, 74, 40, 25, 72, -137, 14,112, 41,225, 2, 81, 4,227,251, 92,247,182, 94, 7,249, 82, 71, 10, 17, - 24, 29, 25, 27,170,113,242,243, 44,141,217,187, 24, 14,114,151,172, 59,110, 19, -176,129, 80, 32,200,106,242,233,130,231, 96,228, 30, 55,145, 33,167, 28, 96, 41, -115, 87, 85,176,122,221,245, 47, 92, 89, 51, 79,192, 57,179,234,193,234,114,249, - 23, 62, 18,114,107, 97,231, 63,116, 2, 65,208,129,130, 1, 2, 1, 68, 61,108, -185,235,167,135,241, 83,172, 58,142,205,123,221,210, 42, 53,238,173, 81, 5,141, -219,168,229,149,243,216,221, 70, 73, 82,147,116,198, 87,206, 48, 16,116,173,245, -180,146, 87,146,213, 62,177, 90, 12,159, 49, 97,145,121,208,186,218, 3, 53,214, -238,180, 56, 49,247, 91, 62,194,151,197, 15,107, 71,223,109, 89,187,169,242,196, - 79,125,180, 24, 55, 61,202,215,255, 17,105,100,112,240,130,211, 39, 41, 2,136, - 46, 45, 92,138,166,143,168, 66,211,161,241,105,160, 55,141,251, 22,174,173,229, -181,121,112,243, 74,229, 31,215, 32,228, 44, 60,147,233,192, 56, 67,172,150, 99, - 43, 7, 28, 18,185, 52,125, 68, 18, 27, 14, 25, 8,137,136,167,157,197, 62,242, -202,169, 85,106, 53,228, 74, 57, 77, 51, 10,198, 44,102, 84,115, 84,243,225,236, -181,215,195,154,197,140,159,218,236,100, 1,129, 35,168,193, 33, 83,166,100,100, - 20, 20,148, 20, 36,173, 1, 33, 12,130, 64, 32,207, 82,216, 3, 2,185,108, 14, - 34, 67, 40, 34, 66, 66, 34, 18, 35, 18,136, 40,163,160, 32, 37,121,142, 57, 4, -156,224,221, 71, 13,191,107,144, 6, 0,142,132,111,248,122,119,245,136,144,199, - 87,132, 32, 1,209, 81,171, 17, 56, 39,164,201,101,136,217, 3,131,189, 29,154, -227, 12,102,178,211,236, 90, 67,218, 37,140, 10,231,142,103,111, 26, 89,252,233, -122,160,132, 55, 85, 18, 70,170,248, 98,159, 94,129,101,191, 38, 51,207,232, 13, - 89, 10,102, 42,137,140,114,184,200,253,180,215, 19,246, 82,191,182,216,181,138, - 58,158,213,235, 63, 12,108, 23,135,149, 96,236,221,178,142,251,176,133,236,147, -162,243,101, 15,102,236,226,157, 18,175,112,211, 24,211,244,163,187,168,174, 29, -108,249,128,175,105,112, 65,201, 93,167, 77, 51, 78, 34,203, 72,129,219, 50,191, -188,122, 22,106, 36, 56, 4,128,229,172,160, 72, 3, 57,139, 96, 75, 37,104,137, - 14, 36, 34,135, 85, 51,115,124, 24, 58,219, 4,153, 38,209,105,135,214, 64,230, - 27,223,120,243,180,136,200, 50, 24,137, 40, 72, 3,143,145,247,225, 71,251, 46, - 58,124,202, 33,228,150,138, 35, 97, 52,167, 72, 94,175,160, 45, 5,188,211, 19, - 68, 72,105, 90, 85,142,181,189,110,163, 0,115,174, 20,187, 71,143,151, 57,226, -230,164, 29, 97, 44,229, 36,132, 7, 39,189,115,206,190,125, 87,221,210, 77, 3, -154,124,201,127, 55, 79, 24,238, 29, 79, 6,121,108,134, 71,133, 36, 76,158,217, -184, 13,212,173, 27, 17, 9,102,176, 61, 92,105,119, 32,205,142,182,251, 67, 4, - 69,128, 84, 57, 34, 67,178,210, 50,219,117,175,176,205,104, 28,187, 70,106,184, -130,197, 8,169,125, 49, 35,159, 27,116,151, 76,244, 39,155,152, 58, 24,205, 99, -193,226, 66,188,175, 29, 91,243,131, 13, 36,160, 17, 73,250,174, 65,122, 1,159, -244, 12,118,141,243, 95, 98,170,254, 8, 90, 50,112, 73, 64,193, 3,181,116, 1, - 30, 7,199,171, 53, 61,194,140, 37,109, 47,227,123, 14,220,178,207, 63, 4,136, -217, 51,212, 98, 27, 17,193,135,160, 34, 86,216,152,172,236,114, 63, 60,155,242, - 37, 84,155,158,193, 60,229,131,128,105, 88, 5, 12, 64, 63,154,160,251, 95, 9, -164,153,199, 5, 63,116, 48,103,118, 59,148, 49,224,166, 41,166,137,167,148,168, -117, 69, 94,144, 50,236, 40, 7,157,181, 48, 51,130, 17,227,183,160,211,170, 10, -105, 99,254,119,108,137,253,234,138,130, 65, 26,181, 31, 37, 51,176,212, 91, 33, -164,161, 79, 40, 9,186, 32,178, 85, 57, 37,190,212,101,227,168,139, 4, 19,227, -255,226, 30, 19,225,233, 10,148,234, 94,137,223,248, 36,243, 28,186, 20,252,113, -197, 71, 9,135,115, 5,224, 74,129, 65, 93,216, 6,108,103,140,190, 64, 83, 60, -146, 54, 86,149,208,194,121, 90,166,129,102,104, 70, 70,138,153,150,154, 97,220, - 51,214, 81, 47, 81,239,101,125,117, 0,120, +// ../Source/Template/GB_concat_bitmap_bitmap.c: +uint8_t GB_JITpackage_145 [432] = { + 40,181, 47,253, 96,254, 2, 53, 13, 0, 38, 90, 80, 32,240, 24,231,240,113,107, +181,191, 37,164,147, 34,164, 20,115,105,245,243, 95,138, 33,166,120,242,191, 58, +197, 97,145,196, 83, 47, 72, 0, 72, 0, 69, 0, 95,188,150, 64, 24, 16, 4,198, +193,128,120, 54,177,107,184, 81,146,242, 66,188,202,203, 33,216,156,107,155,120, +153,120, 86,222,138,131,226, 43,237,134,230, 62,109,174, 84,223, 44,193, 48,215, + 62,253, 58,255,242,149,222, 97, 37,152, 59,212,101, 57,107, 56,187, 73,229,219, +118, 17,182, 45,141,199,179,148, 4,187,107,166,122,242,230,181, 85,149,216,164, +242,200,177, 72,210,235,229,218,197,231,218,207,184,134,243,255, 47,214,101, 40, + 32, 8,212,155,210,198, 59, 46,237, 81,231, 74, 69, 22, 2,197,149,206,190, 16, + 58,148, 76, 65, 68, 81,151, 98,170, 57,206, 30,169, 53,255, 2,172,193, 96, 85, +229, 33,143,246,143, 27, 30,121,180,216,255, 43,155,157,101,198, 24,253, 78, 34, +234, 77,252, 12,235,192, 83,253, 13, 71,255,232,247,201, 43,237, 45, 24, 94,130, + 36,121, 45, 32,218,231, 78,177,200,181, 67, 18, 66,124,228,161,248, 60,251,102, + 76,175,224,185, 11,215,213,186, 90,135, 16,151,133,184,187,120, 45,218,107,156, +197,238,201, 96,184,110, 82, 73, 69, 16,103, 63, 79,113,223,182,121,193, 57,174, +109, 9,213, 31, 60, 95,153,113,207, 71,206,245, 86,122,188,210, 15, 37, 31,120, +180,143,188,207,202, 64,209,126, 30,138,216, 71,253, 43, 41, 32, 96,100,198,208, + 14,249,192,214,176, 68, 68,155,238,196,220,118,190, 22, 27, 64, 60,169, 11, 2, + 11, 24,171,248, 78, 85, 8,158,128,219, 61, 98, 12,250,131,149,112,107, 20,140, + 91, 18,229, 97,110, 48,127, 1,109, 19,154, 64,209, 10,231, 72,135,170,221,118, + 92, 26,185,247, 15, 97, 55,104,106,158,153,210, 6,202,106,253, 3, 50,214, 33, + 50,216, 88, 0,167, 12, 76,207,152,162, 96, 8, } ; -// ../Source/Template/GB_zombie.h: -uint8_t GB_JITpackage_152 [925] = { - 40,181, 47,253, 96, 81, 7,157, 28, 0,182, 44,129, 38,208, 22,113, 14,160,213, -107,191, 81,124, 81, 30,181,176,233,138, 20,116,172, 8,213,179,144,148,125, 13, -251,243,244,148,222, 44,245, 48, 88,193,193, 11,128, 0,113, 0,108, 0, 76,114, -189,228, 99,100, 52, 17, 11, 64,153, 16,129,200, 52, 84, 92,120, 92,235,250, 98, - 0,138,101,186, 72,139, 89,170, 81, 71,136,203, 23,207, 94,151,145, 86,246, 90, -172,145, 58, 30, 48, 38,183, 37,113,229,102, 92, 78,108,195, 25,127,143,122,100, -112,177, 92,164,131, 2,203,229,144,245, 60,146, 92,162, 15,159,168,119,176, 9, - 51,222,120,164, 65,105, 26, 48, 77,163, 4,194,202,168,154,198, 78,222, 52, 40, -242, 17, 94,151, 13,121,114,243,181,238, 8,216,180, 92,101,240, 68,164, 65,226, - 4, 4, 20,137,128, 32,157, 56,123,223,212,212,129,174,183,157,219,131,178,210, -183,126,211, 76,162,243, 89,112, 96, 48,206,119,211,138, 89,159, 2, 45, 23,186, - 71, 5,210,163,221,158,150,188,242,184, 43, 95,108,131,143,193, 28,130,248,217, -146,230, 55, 7, 94, 78,142,190, 36,172,233,221,234, 82, 49, 5,183,154,198,239, -250,132, 61,249,189,216,188,229,152,133,243,175,140,201,186,230,187,149, 90, 73, - 48,238,201, 21, 42,144,158,207, 13, 86,250,138,110,182, 43,191,224, 93, 7,242, -233, 39, 59, 28,206,102,206,246, 59, 15,246, 53,104, 29,179, 24,227,156,194, 64, - 20, 81,230,113,120, 52,123,179,222,176,148, 90,109,242,157, 74, 55, 90,223,232, -241, 79,155,241,212,109,168, 59,101,243,163,181, 26,126,234,123,122, 56, 63,123, -217,226,235,218,111,132,217,165,192,228,149,155, 90,219,185,219,173,218,183, 78, -177,217,167,254,169, 82,209,187, 37,137,154,125,171,183, 90, 55,225, 56, 53,187, -190,249,208, 72,196, 15,245, 20,202,197,174, 23,130, 66,180,143, 63, 15, 56,164, - 61,143, 70,195, 97,193, 20, 5,164,247,149,104,164, 69, 76,101, 16, 24,110,185, -194,243, 0,129,161,145,129, 46,146,244, 80,166,201,202,169, 92,107,111, 25,140, -215, 97,212,145,155, 65, 7,150,174,249, 26, 16,105,136, 18, 81,223,182,217, 24, -225,148, 27, 35, 14,140,209,198,133, 69,220,169,239,110,157, 83, 56, 47,167,228, -247,125,218, 54, 93,175,118, 75,159,150,208,209,136,122,212,213, 52,213, 79, 14, - 44, 55,106,239, 56,221,248, 84, 6,128,179,168,161,169, 82,134, 72, 36,136, 20, - 36, 41, 40,164, 49, 32,132, 16,163,220,149, 7, 66, 96, 73, 16,114,230,208, 85, - 82,148,122,237,207, 1, 70,112, 39, 89,104,148,222,182,142,207,210, 17,171,204, -100,152, 69, 82,160, 56, 16,207,170, 74,203,142, 47,197,137, 65,210, 68,208, 20, -156, 37,240, 46,115, 71,195, 78,121,224, 13,109,249, 54, 83,230, 90,143, 65, 92, -182,173, 24, 88,115,142, 35, 22, 82, 25, 88,241,194,179,247,237,142,130,111, 65, -180,198, 10, 49,190, 85,153, 64,104,217, 47, 65, 9, 25,181,107, 31,106,215, 78, -201, 14,243, 6,124, 41,106,150, 32, 46, 97, 13, 33,187,184, 9, 24, 57,210, 77, -162, 73,171,193, 99, 46,195, 48,193,178,148,203, 49,147, 56,142, 38,221,197, 92, - 99,195,108, 37,170,108,110,196, 12, 42, 5,226,145,162, 87, 34,245,161,165,173, -247,214, 47,105, 2,135, 81, 89,249, 30, 50,193, 74,124,231, 15,161, 85, 74,204, -185, 64,248,194,208, 46,129, 0,206,110,233, 2,116,110,221,142, 8, 18,243, 38, -230,248, 99,126,134,133,128,179, 91, 58, 91, 69,128,124, 10, 73,107,143, 36,211, -103,157,162, 48, 90,196,134, 37,121,143, 27, 75, 92,246,126,202,207,190,239,166, -245, 68, 73,151,109,114,200,241, 42,248, 93, 56, 34,166,201,124,154,209, 4, 4, -231,239, 74, 30,140,112, 43,105,128,205,152, 68,140,244, 80, 86,245,227, 3,224, - 45,101,146,159,224,142, 57, 30,143,192,201, 92,106, 46,225,139,215,226,194, 29, - 36, 91, 76,122,102, 28, 2,170, 58, 88,176,255,134,186,176,210,143,140, 84, 35, -209,166, 2, 60, 50,189,230,232, 42, 72,103, 41,152,172, 47,159, 87,122,167, 12, -238, 97,199, 65, 3,158,137,146, 57,104,182, 63, 51,121,191,124,157, 79,217,105, -222,126,213, 2, 60, +// ../Source/Template/GB_concat_bitmap_full.c: +uint8_t GB_JITpackage_146 [401] = { + 40,181, 47,253, 96,138, 2, 61, 12, 0,246, 87, 74, 33, 0,151,115, 22,190, 38, +235,218,246,129,244,186,203, 44, 29,116, 84, 31, 58,169, 15, 47, 41, 62, 98,237, +179,255,255,123,127, 8, 1, 64, 0, 66, 0, 63, 0, 24,166,164,142,156, 16,111, +234,242,231,209,204, 49, 76,164, 64,186,219,160,132, 49, 49,216, 23, 51, 51, 13, + 49, 85,137,130,185,189,191,255,101, 75, 63, 43,205,127,223,206, 51,106, 13, 65, +220,109, 47, 83, 15,151, 91,218, 79,114, 16,201, 53,173,202, 52, 45,159,158, 96, +151, 45, 23,159, 45,125,198,246,147,255, 95,161,170, 2,225,144,205, 78,246,141, +103,128,147,130,104,182,243, 51,201, 38,182, 83, 82, 74,166,137, 88, 8,159, 73, + 2, 39,158,151,227,220,133,232,229,181,198, 99,136, 67,225,144, 45, 12,133,195, + 47,105, 61, 47,252,241,120,173,255,213, 37,105,238,140,173, 89,195,207,236, 36, +254,101,113, 94,104, 15,126,160,215, 89,107,131,125,127,189,239,237,133, 26,188, +128,120,159,185,132, 34, 91,218,248, 85,106,143, 59, 54,178, 97, 39,143,157,108, + 91, 16,201, 31,199, 1, 85,149,170, 82, 6,207,118,125,152,114,241, 88,188,199, +182,107,125, 99,169,108,157, 24, 59,219,229,188,180, 93,211,228, 5,223, 54,122, + 69, 36,250,193, 51,216, 25, 83,249,199, 55,170,137, 26,183,179,146,250,129,199, +233, 81,131,193,201,246, 29,143,247,141, 38, 32,112, 38, 32,202,243,121, 22,129, + 4, 43,217,120,176, 0,196, 23,187,197, 8,116,184,214, 1, 67, 90,172, 36,211, + 25, 92,193, 1,189, 95,199,192,136, 35,159, 88, 71, 8, 91,217,176, 25, 98,190, + 5, 20, 33,230,111, 17,209,236,168,137,142, 54, 35,251,253, 99,176, 27, 52, 55, +207, 76,109,227,236,106,125, 3,226,222,224, 23,214, 24,128, 63, 14, 67, 81,224, + 6, } ; -// ../Source/JitKernels/GB_jit_kernel.h: -uint8_t GB_JITpackage_153 [562] = { - 40,181, 47,253, 96, 31, 5, 69, 17, 0,118, 28, 89, 32,240,182, 30, 12, 8,146, -156,149,114,253,188, 89,180, 32,243, 52, 16, 18, 84,205,240, 96,113, 46,253,204, -133,197, 97,128,230,189, 81, 0, 78, 0, 80, 0,122,123,158,123,113,140,165, 31, - 26, 12, 5, 3,225, 88, 40, 24,110,176, 5, 63,232, 59,170, 16,167,164,151,188, - 13,134,238,230, 7,140,196,166, 23,214, 28,121,188,206, 53,196,252,190, 34, 76, -212, 24, 87,207, 96,231,207,137,176,253,174,192,125,187, 38,238, 15,143,194,255, -229, 7,209,125, 63,116, 70, 60,145,136,136, 68, 34,191, 43, 14, 67,191, 5,226, -127, 87, 16, 37, 20,179, 42, 23,139, 66,187,231,190,238, 10, 98,164, 50, 90,229, -239,109,255, 64,215, 24, 87, 7,247,119,157, 35,232,235,143,111,231,250,122, 91, - 84, 80, 12,196,123,182,134,210, 31,249,111,119,247,247,220,133,120,253,189,189, - 24, 98, 3,209, 40,238, 71,249,245, 95, 60,181,131,113,181,159, 53, 43,187,182, - 74,230,210, 93,238,123,141, 95, 16, 13,190, 51, 24,146, 30, 99,206, 11,110, 63, -212,216, 62, 71,169,127,249, 55,233, 29,147,211,130, 69,220,221,163, 33, 82,145, -216,233,132, 93, 90,102,169,182,202, 69, 11, 0, 31, 12,220,112,177, 52,180,194, -100,180,224,156,131, 27,204, 33, 13,120, 84,113,195,200,202,210, 56, 91,150,101, - 89,150,101,217,156,115,206, 57,167,148, 82, 74, 41, 37, 4,179, 36, 24, 76,106, - 42,180,162,155,121, 73, 42,170,137, 4,209,243, 93,173,223,218, 74,145,110,222, - 53,228,246,118,158,173, 31,122,211,197,245, 58,184, 75,157,207,254,185,186, 6, -179,173, 33,127,253,222,214, 32, 27, 90,160,241, 92,163,148,144,136,104,138, 82, -144, 66, 99,176, 36,144,170, 49, 15,150, 82, 40,141,139,205, 35,122, 26, 3, 87, -142,220, 57, 38, 89,112, 30, 51, 55, 7, 92, 57, 38, 95, 56, 19, 35, 55,199,220, - 28, 72,110,224,196, 41,228,114,227,206, 81,190,224,110,174,114,198,103,139, 69, - 14,236,184,104,176, 62,254,189,134, 54, 0,186,177, 91,201,175,171,239, 88,112, -184, 71,108, 50,187,180, 53,129,136, 2, 85,120,181,129,196,197,115, 59, 45,222, -214,170, 52, 51, 10,104, 57,208, 86, 70,116, 48,216,131,110,155, 75, 60, 26,212, - 37,128,180,180, 85, 57, 96, 16, 92, 2, 27, 95, 91, 8,235, 17, 0,240, 75,238, - 54,156, 6,240,178,144,165,228,106, 22, 40,160,231, 16,208,100, 72,103, 52, 61, - 18, 5,186,105,254,252,204,196,206,129, 21,123, 3,136,185,115,147, 50, 70,138, - 2, 49, +// ../Source/Template/GB_concat_bitmap_sparse.c: +uint8_t GB_JITpackage_147 [717] = { + 40,181, 47,253, 96, 35, 6, 29, 22, 0,214, 98,107, 32,224, 28, 23, 3, 24,151, + 69,201,197,185, 35, 73,201,157,162,130,246, 0,119,100,178,249, 21,177,195,187, + 19, 49, 70,230, 24,227, 98, 0,100, 0, 97, 0, 3,171,177, 13,175,102, 32,154, +120, 8,162,117,149, 86, 91,240,122,143,168, 11,158, 36,231,187, 4,194,128, 24, + 48, 14, 6,196,185,112,123,167,175,171, 78, 78,152,135,141,155,181,186,160,119, +159,169,145,140,185,150,149,143,221,183,245,209, 94,183,220,117,245,215,179, 54, +190,183,228,221,127, 61,182,111, 88, 93,214,172,105,174,171,125, 77,116,215, 16, +179, 66, 42,169,188, 80,208, 6,133, 66, 31, 78, 36,237, 72, 99, 24, 79, 52,159, +133, 67,167,227, 90,165,107,167,197,106,203,113, 99, 58,127,186, 34,182,158,142, +199,226,171,209, 76,250,125, 32, 5,183, 28,231, 54, 85, 44, 54,190,239, 80,248, +134,151,212, 84,101,233,220,254,129, 83,227,125, 19,154, 1,191,144,230,227,128, + 95,134,130, 46,152,147, 21, 79, 23,240,255,154, 38,211, 12, 4,196,192,142, 97, +205,243,141,210,222,211,221,216,138,151, 91, 87,210,241, 18,233,118, 82,200,183, + 46,239, 73,117, 77, 38, 16, 60, 28, 55, 28,178,113,225,221,117,235,205,146, 45, +209,142,161, 62,183,209, 85, 11,191,100,157, 78, 90,146,172,101,205,207, 43,214, +235, 10, 85,203, 44,222,125,239, 56,102,200,243,252, 14,111,185,181, 45, 3,223, + 26,179,194,119,161,117,225,200, 96, 94,240,119,135,119, 25,176, 19,162,162, 11, + 8,154, 27,250,121, 23, 77,154, 54,155,105,179,131,201, 59,199,210,215,203,219, + 71,158,142,247, 42,121, 47,239,133,194,189, 0,242,153, 73,191,127, 56,126,200, +103,158,108, 46, 31, 58, 55,149, 9,122,184,131,160,227,234,179,167,187,214,189, + 19,177,125, 55,243,246,233,161,160,175,130, 45, 25,184,119,169,151, 83, 23,124, +151,117,107, 87,232, 57,206,169,222,141,115,251,164, 22,200, 83,143,171,238,120, + 37, 31,121,168, 49, 45,132, 2, 27, 25,145,180, 32, 41,181, 6, 64,132,144, 98, +118,117, 2,217, 36, 21,177, 44, 21, 16,145,161, 0,149,164,124,237,103, 3,192, +164, 33, 39,233,202,148,194,233,150, 7,227,145,105,109, 65,232,122,249,185, 60, + 47,238,109,253, 49,158,234,155,208,173,118, 90,237,202, 55,105,154,238, 67, 86, +200,179,177, 76, 98,201,208,163,148, 49,104, 17, 49, 18,214, 86, 55, 36, 82,123, + 17, 93,130, 35,112, 62, 55,191,129, 38,146,232,216,130,233,106,185,131,150,221, +200, 1,104, 38, 44,118,157,217,161,112,227,221, 40, 60, 91,253,150, 83, 32, 93, +227,164, 81,133,216,242,102,169,171, 7, 75, 91,253, 0, 55, 74,192,102,160, 65, +136,114, 69, 75,112, 65, 70,218, 88,149, 12,177,151, 97, 50, 42, 39,190, 6,135, +148,219, 35,101, 86,221,139, 31,204, 28, 93, 10,201,151, 44,204, 6, 33,148,191, +128,232, 71,130, 54,255, 22, 38, 23, 61,182,224,165, 16,121, 0, 58, 90,242,234, +164, 97,241,215,191,101, 49,202,111,249, 99,214,209,179, 82, 29, 68,214,155,169, +221, 44, 83,162,139,149, 96,161, 24,227, 83,183, 32, 58,104,162, 85, 96,218, 74, +201, 0, 45, 10,255,240, 56, 69,167, 64,251,186, 12,243,122,112, 76, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_dot2.c: -uint8_t GB_JITpackage_154 [308] = { - 40,181, 47,253, 96,165, 1, 85, 9, 0,230,209, 60, 33, 0,243, 54,238, 78,242, - 32,143,127,186,137, 18,168,232,192,189,172,128,254,165, 22,246, 61,177,180,201, - 33,170,170, 22, 4, 2, 4, 51, 0, 52, 0, 50, 0,111,106,175,228,126,231,147, -163, 31, 9,238, 23,221,109, 65, 80, 25,141, 73, 96,113,185, 38, 51,238, 29, 36, -226, 22,158,170, 77,126,215,122,234, 13,127,212,207,185, 59,111,174,197,156,162, -168, 68, 81, 1, 56,103,210,197, 81,153,190,239,232, 55,127,115,115,131,154,188, -121, 24, 86,143, 16,149,161,146, 18, 7, 67,229, 4, 60,240,200,204, 29,207,225, - 83,245, 15,184, 73, 49,119, 30,113, 53,179, 96,233,105,204, 10,148,237, 33,241, -172, 90, 45,195,238,181, 24,141,194,240,204, 80,165, 39,238,140,113, 51,251,229, -209,198,231, 71,234,210, 45,106,152, 42,233, 65,236,149,213, 45,253, 57,147,247, -248, 31, 68,122,115,252,148,134,168,194, 9, 28,247,184, 46, 11,119,173, 30,245, -185, 95, 3,240,228,237, 23, 47,192,255, 59, 67, 60,230,128,187, 59, 5, 81,133, - 19, 6,174,117,218, 86,185, 85,167, 57,174,189,212,155, 61, 2, 18, 0, 66,128, - 82,212,229, 11,130, 8, 1, 88, 0, 66, 26,141,215,105, 49, 25, 31, 36,128,156, - 69, 55,116, 40, 72, 14, 25, 96,210,252,121,102,138, 54,140,173,214, 47, 6,185, -162,214,146, 78,236, 41, 10,134, +// ../Source/Template/GB_concat_bitmap_template.c: +uint8_t GB_JITpackage_148 [586] = { + 40,181, 47,253, 96, 64, 7, 5, 18, 0,182, 89, 81, 32,240, 88, 55,208, 69,138, +162, 47,207,144,131, 73, 49, 47, 49, 84,161, 40,212, 33, 68,125,249, 62, 43, 63, +136,195, 34,193,162, 66, 69, 0, 72, 0, 73, 0, 93,200,246, 68, 41,109,152,173, + 2, 95, 12,237,214,133,208,220, 76,192,145,146,151,135,103,146,142, 33,127, 91, +134,174,148, 37,159,134,221,180,197,199,182,253,218,111,218,254, 20,123, 63,252, +233, 29, 67,127,110,164,225,219,142,123, 90,177, 88,185,201,165,179,236,194,178, + 44, 26,110,195,100, 62,247, 62, 27,152, 14,126,123,152,182,214,239,165,238,238, +190, 46,214,117, 48, 36, 48, 7, 43, 29,103, 63, 72,183,159,125,236, 30, 6,243, +140,189,218, 13, 54,162,124, 12,158,159, 72,207, 14,234,252, 96,201,130,250,222, +217, 5, 69,226,144,192, 26,136, 67,162, 7, 85, 16, 14, 77,211, 82, 3, 65, 71, + 58, 53,251,171, 37, 63, 59, 73,232,202,135,180,109, 83,235,120, 52, 14,127,214, +195, 87, 20, 59,207,215, 3,180, 9,145, 94, 97,170, 85,236, 23, 34,193,102, 71, + 58,180,222,137,246,115, 11,198, 99,219,159, 61, 33, 12, 55,197,108,185,217,142, +237,166,210, 1, 85, 2,215, 44, 3,215,213, 34,125, 84,129, 77,138,253,183,164, +159,123,144, 54, 81, 39,187,206, 89,214,143,158,164, 46,237,153,214,193, 96, 10, + 90,245, 22,172,111, 81,185,149, 61,127, 38,103,195, 76,174, 3,170,225,222,242, + 3,180,123,229,173,120, 35,178,112, 44, 77, 53,138, 21,210, 93,247, 92,107,160, +241,169,161,161,161, 73, 81, 81, 10,173, 1, 80,132,204,212, 25, 55,181, 4, 81, + 6,189,145, 66,146, 57, 73, 14, 25,200, 36,119,176, 33,239,128,225, 59,120, 54, + 57,198,249,209, 28, 52,194, 50,135,194,158,146, 99, 19,151,132,217,214, 97, 33, +163,194,226, 27, 92, 89,250,105, 62,102,142,209, 96,220,194, 93, 69,229, 66, 5, +158,110, 35,200, 87,145,115, 95, 44,208,103,201, 93,140, 96,212, 29,251, 35, 58, + 9,172,144,114,116,157, 26,204, 7,197, 52, 70,188, 0, 28,211,209, 4, 8,175, +160, 56,146,166,211,104,251,166,135, 18, 10, 18,255, 57,100,252,225,225,220,134, + 7,224,201,226,176,102,214,197, 8, 67,127,172,131,128,182, 9,216,104,232,112, +132,160,108, 88, 61,183, 37,182, 96, 6, 11,252, 88, 1, 45,219, 82, 22,232, 24, +229,135,241,117, 83,230, 24,143,158, 21, 1,112,225,193, 54,134, 28,251, 90,163, + 5,161, 69,255,234, 99, 87,250,160,229,159,249,130, 80,245,226,195, 66,161,168, +177,148, 89, 36, 7,244, 28, 52, 25,149,153,210, 55, 92,177,107,134, 36,206,112, +250,126,248,138, 22, 39, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_dot2n.c: -uint8_t GB_JITpackage_155 [328] = { - 40,181, 47,253, 96,200, 1,245, 9, 0,166,147, 65, 33, 0,145, 55,238,114, 98, -128,176, 60, 70,153,234,234,188,106,113,127,144, 94,234, 79,122, 57, 48,107,232, - 17, 85, 85, 11, 2, 1, 2, 56, 0, 56, 0, 56, 0,119, 60, 63,141, 81,143,234, -239,236,126,231,180,171,161, 57,238,199,184, 95,130, 93, 48, 32, 1, 69,229,218, - 20,221,189,134,195, 41, 48, 42,167,109,134,248,106, 44, 38,191,212,127,193, 59, - 91,240,197, 92,146, 42, 36, 73, 1,159,197,188,203, 15, 27,208,163,229,131, 57, -131, 38, 86, 36, 10, 63,163, 31,125,206,209, 61, 86, 50,231, 36,105,253, 57, 76, -133, 9, 66, 24, 10,147, 15, 64,129, 63,104,206,124,150, 71,214, 55,227, 54, 49, -217,243,167,179, 89, 3,129,111,222,198, 69,176, 54,121,155,133,239,196,226,236, -210,184,235,225,153,189, 91,134, 97,124,177,250,144,100, 42, 74,231,135,217,153, -226,104,246,202,159, 13,166,161,169, 79,167,106, 33,154,160, 31,193,239,180, 78, -233,181,118,106,194, 7, 93,119, 85,149,164,195, 87, 99, 2, 47,117,186, 95, 3, -192,232,219,143,193, 23, 3,248,135, 41, 9,150,217,186,186, 45,210,105,150,243, -176,183,105,216,126,153,197, 15, 3,238,238,149, 83, 19, 30, 18, 0, 69, 9,174, - 67, 20,111,168, 89,190, 6, 42, 65, 72, 3,228,117, 70, 76, 22, 7, 9,200,103, -145, 12, 29, 98,146, 67, 48,152, 52,127,158,153,162, 45, 99,171,117,140, 65, 92, - 81,162,110,231, 64, 20, 5,110, +// ../Source/Template/GB_concat_full_template.c: +uint8_t GB_JITpackage_149 [561] = { + 40,181, 47,253, 96,179, 4, 61, 17, 0,134,221, 90, 32,240,218,230,224, 56,132, +148,154,154,216,142,137,118,121,144, 25, 12, 16,180,167, 14, 39, 9,240, 9,167, + 56, 44, 98,161,149, 10, 82, 0, 78, 0, 81, 0,161, 83, 26,111,104, 48, 20,140, + 3,100,161, 96,124,192, 9,110,192,147, 37, 47, 71,196,187,190, 28,130,115,116, +131, 40,118, 44,159,149, 55, 19,105,124,165, 21,117,158, 43, 81,214,154, 55, 75, + 48,204,117,190,233,204,191,124,103, 89,251,145,206,146, 90,176,243, 70,233,202, +219,178,228,106,200,109,150,204, 19,137,236,144, 72, 4,156,109,164,217,120,221, +121, 19, 16,251,203,185, 83,255,255, 44,131,101,120,245, 28,214,227,249, 46,252, +114,131,199,243,203, 55,132,120,190,175,124,124, 87,229,181,123,154, 76,129, 96, + 28,250,227,164,141,143,220,158,222,204,181, 59,205,161,113,109,110,118, 14,164, + 11, 8,209, 53,235, 54,238,208,113,254, 82, 51,222,105, 83, 42,175,180,183, 96, +120, 9,166,228,181,209,106,154,166,181, 6,130, 83,222,138,207,220,188, 25,247, + 37, 28, 3, 42,141, 50,111,118,149,134, 33,170, 49,109,128,198,201, 19, 40,127, + 85,112,118,146,202, 33,158,242,218,148, 37,159, 55,199, 35,215,249,140, 63, 34, +205, 22, 67, 60,183,248,174,179,131,241,132, 48, 1, 89,230,117, 87, 87,128, 44, +139,101,177,129, 33,218, 27, 52, 43,120, 9,244, 57,197,147,102, 77,137, 4,119, + 66,225,218,180, 42,214,124,225,249,202,140, 39,119,202,181,153, 80,201, 7, 40, +159,135, 21, 10, 19,201, 21,167, 60, 90,193,128,155, 89,102, 44,104,186,234,250, +227,240, 7,117,139, 2,220,201,190, 95,222,192, 85,253, 13, 3, 80, 32,112, 68, +134,206,234, 1,226, 28, 64,100,192, 44,219, 11,100,150,207, 65,137,178, 37, 36, +186, 15,235,188, 65,178, 8, 48,172, 30,112,163, 89, 71, 98,146, 24, 95,192, 17, +122, 89,231,192,196,167,101, 2,199,131, 53, 8, 99, 32, 52,108, 14,209,239,144, +218, 94, 48,235,168, 2, 36, 21,194,141, 76, 34, 39,141,124, 25, 63,196,198, 81, +152,132, 16,111,159, 16, 52,224,232, 92,194,192,118,205,129, 63,214,123,127, 3, + 50, 34,132,158, 1,126, 30, 36,106,168, 15,155,207,196,218, 26,209, 25,169,192, + 0, 26,230,192, 95,197,221,117,178,192,187,122,124, 61, 37, 0,216, 12, 10,147, + 80,194, 14,224,240,208,141,150,120, 80, 38,106, 25,200, 6,144,167,213,181,108, +154, 29,194, 76,235,224, 96, 13,190, 41, 50,212, 71,224,139,151,196,156,162, 96, + 8, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_dot3.c: -uint8_t GB_JITpackage_156 [320] = { - 40,181, 47,253, 96,178, 1,181, 9, 0, 22,211, 63, 33, 0,243, 54,238, 78,242, - 32,143,127,186, 97, 87,225,121,226,111,118, 64,255, 82, 11,251,158, 88,218,228, - 16, 85, 85, 11, 2, 1, 2, 54, 0, 55, 0, 53, 0, 96,137, 53,102,189,169,113, -201,253,206, 39, 71, 63, 18,220, 47,186,219,130,160, 50, 26,147,197,229,154,204, -184,119,144,136, 91,222,132,216,228,119,173,167,222,240, 71,253,156,187,243,230, - 90,204, 41,138, 74, 20, 21,121,143,255, 65,164, 55,199,247,114, 38, 93, 28,149, -233,251,142,126,243, 55, 55, 55,168,201,155,135, 97,245, 8, 81, 25, 42, 41,113, - 48, 84, 78,240, 6, 30,153,185,131, 29, 62, 85,255,128,155, 20,115,231, 17, 87, - 51, 27,219, 67,226, 89,181, 90,134,221,107, 49, 74,245,151, 31, 80,147,110, 58, -184, 73,140,191,198, 62,241,111,196,126,121,180,189,243, 35,117,233,223,115, 76, - 44,186, 69, 13, 83, 37, 61,232,225,178,186,165, 63,103, 2,148,134,168,194, 9, - 28,247,184, 46, 11,119,173,198, 6, 62,234,115,191, 6,120, 19,222, 47, 94,128, -255,119,134,222,152, 3,238,238, 20, 68, 21, 78, 24,184,214,105, 91,229, 34, 58, -205,113,237,165,222,236, 65, 9, 18, 0, 69, 9, 38, 33,136, 16,128, 5, 32,164, -113,122,157, 22,147,113, 72, 10,144,204, 12,240,127, 14,104, 45,227,236, 22, 38, - 77,155,103,166,104,187,216,106,221, 98,144, 35,106, 85,233,196,136,162,192, 13, +// ../Source/Template/GB_concat_sparse_template.c: +uint8_t GB_JITpackage_150 [1015] = { + 40,181, 47,253, 96, 35, 13,109, 31, 0,166, 44,133, 39,224,178, 86, 7,228,235, +235, 61,178,179, 77,125,124,249,229,130, 91,145, 3,119,239,157,115,174,103, 65, +181,177, 13, 68,249,136,151, 38,204, 16, 37,198,132,123, 0,120, 0,119, 0, 52, +132,221,246, 27, 99,156,168, 66,185, 76, 24,171, 32,109, 63,168,220, 87, 95,201, + 86,102,194, 86,114,213, 18, 19,140, 5, 13,197,226,142,202,150, 45,110, 47,230, +105,139,199,216, 62, 13, 92, 42,151,137,129,165,114,121,164,146, 62,217,238,128, + 11,167,180,135,176, 59, 63,205,249,180,105, 18, 10, 24,133,213,225, 96,195,183, + 65,155,232,163,235,133,159, 31,126, 94,217,231,216,247,240,124,161,228, 31,240, +133,145,126,248, 62,182, 21, 82,251, 46,172,228,172,158,130,195, 5, 4,162,137, +128, 64,153,147, 28, 59, 96, 55,134, 81,234,244, 62,130,130, 43, 91,130,129,194, +130, 33,226,113, 50, 16, 87, 91,146, 1,156,115,238, 17,230, 31, 9,147,246,136, +116,234, 31,237,183,234,122, 45,215,128, 51,104, 50, 56,175, 93,203,105,142,162, +194,189,138, 77,230, 98, 75, 94, 13,224,126,217,243,255,143, 34,144, 40,162,112, +101,236, 22, 55,157, 21, 87,120,203,160, 8, 59,110, 73,248,169, 77, 43, 25,187, +159,166,109,247, 43,243, 83, 40,252,220,222,248,157,242, 83,140,160,235,117,126, +170, 28,183, 36, 79,141,222, 54,118, 35, 28,211,129,212, 94,231,173,184,227,216, +205,174, 73,251, 58,135,198, 47,158,163,145,236, 19,214,164,183,247,160,224,112, +234, 28, 8,207,142,249, 59, 26,212, 65, 36, 18, 4,204, 43,167,164, 72,213, 23, + 94, 43,113, 4, 89,140, 85,246, 17,201, 90,144, 43,118,223, 7, 36, 95,231,245, +200, 49,194, 10,233,233,103, 30,126, 60,176, 82,171,239, 93,232,242,128, 10,175, +165, 54,179,240,202,215, 46,129,209, 35,251,101,252,184,234,104,219,187,182,246, + 21, 81, 3, 1, 76,219,175, 57, 42, 61, 67, 83,209,218,135,235,174, 78,189,227, +220, 68,226, 28,237, 52,170,241,110,157,105,137, 4, 1, 67,189,209,133,137,204, +230,181, 9,135,102,161,153,148, 66, 75, 36,179, 92,251, 74,126, 5, 74,192,200, + 54,114, 72,199, 34,153, 44, 84, 58, 69,102, 34,243, 78,157, 98,177,244,136, 17, +246,198, 67, 81,206,135,224,231,152,134,131, 68,168,103,210,175,182, 72, 44, 19, +213, 84, 58,153,198,105,133, 78, 27,225, 47,104,227, 83,163,239,178, 39,180,113, +150,211,186,133,152,128,203,168, 33, 61,135, 12,205,136,140,164, 36, 73,210, 26, + 64,132, 24, 83,101, 85, 7, 66,240, 52, 16,161, 32, 5, 13, 17, 32, 42, 16, 9, + 68, 36, 16, 9, 38, 16, 17, 81, 80, 78,118, 23,139,112, 6, 97,187,168,196,175, + 87,224, 75,218, 81,175,152, 10,188,202,195, 97,141, 41,202,174,214,234,239, 78, +249, 1,235, 66,227,169,217, 70,224,145, 40,114,186,236, 22, 24, 93, 72, 71,237, + 85,250, 61,145,200, 80,111,235,208,169,131, 92, 28, 25, 4,224,155,183, 65,250, + 71,127,222, 77,254,229,248, 75,219, 98, 67,144,247, 57,244,148, 56, 35,168, 16, +156,235,243, 32,253,181,177, 19,186, 44, 59,227,116,167, 48, 94,190, 87, 56,235, +187,113,124,237,157,205, 65,222,223,193,254, 74,248,159, 24, 81,142, 93,182, 8, + 48,126,191,195, 65,208,195, 40, 91, 20,140,208, 36, 5,115,210,112, 5,140,186, +207,136, 99,223, 67,240,126,226,141, 53,253,114, 89,130, 45,112, 76, 19,154,177, + 77,154, 77,117, 22, 25,191,136, 0,214, 32,107, 74,237, 19,164,122,239,130, 67, + 25, 2, 72,202,129,135,213, 39,145,158, 64,242, 60,134,168,102, 48,111,161,198, +239,121, 88,232, 78, 10, 82,208, 23,181,150, 88,128,133,122, 58,111, 12, 49,175, + 33,178, 83, 49,180,160, 79,167,205, 9,164, 15,208, 55, 84,117,165, 22,255,144, +137, 64, 92, 3, 1, 13,105,116, 59,177,193, 59,144, 82, 32,135, 17, 90, 35,219, + 61, 82, 28, 73,144,138,187,216, 58,253,133,100,185,165,129, 22,153,242,222,232, + 5,232,229, 69, 54, 82,179,207,144,214, 15, 3,208,215, 85,101, 15,101,138,162, + 46,145,229,178,126, 56,240, 95,131, 48,110,226, 91,213, 90,134, 5,238, 89,131, + 81,213,224,217, 20, 23,199,131,140,236,234,245,250, 26,241,118, 45,238, 5, 84, + 70, 93,198,139,208,123,187, 17,186,205, 7, 56, 71,215,185,121, 83, 84,232, 24, + 95,241,169,100, 31, 54, 64,110, 87,226, 73,202,211,206,109,233, 7,128,131,152, + 26,102,162,100,106,219,185,169, 14, 9, 28,232,182,217, 52,169,106, 48,205,117, + 93,111,150,130,107,186,157, 35,250, 47,186,175, 52,208, 4, +} ; +// ../Source/Template/GB_convert_s2b_nozombies.c: +uint8_t GB_JITpackage_151 [709] = { + 40,181, 47,253, 96,117, 7,221, 21, 0,102, 98,101, 32,240, 24,231,208, 90,236, +139,181, 45, 17,235,197,206, 46, 48,183, 86, 94, 12,189, 95, 68, 14,150, 66,112, +192, 51, 48,105, 17, 94, 97, 0, 87, 0, 92, 0,181, 55,138, 33,120, 38,154, 2, +215,225,109,220,155,227,220,145,232,230,158, 39, 31, 21,137, 67,130,208, 64, 28, + 18, 15,108,216, 35,166,225,156,188, 32,175,234, 50,248,209,206, 35, 71, 98, 34, +157,157,183,226,224,116,166, 39,206,101,231,151,169,232, 96,126,227, 59, 45,254, + 7,222,209,229,239,192, 77, 69, 31,184, 2,171, 38, 74, 96, 45,223, 14, 43,184, +105,145,202, 13,134,139, 96, 48, 4, 94,123,222,188,211,222,126,224,231, 71,154, +215, 2,178,115, 52, 63, 87, 26, 56, 88,177, 27,254,255, 98, 93, 87, 33,207,239, +130,163,207,231,218,184,175,237, 27,229,241,124,126,127, 19,191,187,252, 14,103, +119,145, 60, 87,231, 81, 93, 83,242, 47,220,182,170,238, 23,196,244,242, 58, 20, + 18,132,238,182,105,229, 29,183,233,136,230,218,220,133,208, 56,177,147,216,165, +102,137, 84, 14,121,233,152,118,249, 42,209, 43,120,174,243,188,109,193,119,160, + 20, 29,152,252, 8,124,230, 42, 29,253,113,211,179, 63,227,233,101, 15,129,222, + 27,245,176,212, 32,207,248,210,145,233, 89, 91, 48, 6, 3,108,194,243,143,236, +135, 67, 48, 68,220,232, 55,171,138,195,218, 59,113,221,109,248,129,170, 73, 12, +115,179,111,151,181,239, 84, 31,215,213,186, 90, 8,145, 12,196, 71,236, 31, 77, + 70, 2,121, 8,212,219,244,236,113,166, 29,130, 95, 54, 56,181,217,169,164, 33, + 11,122, 74,190, 79,222, 12, 31,233, 83,205, 85,122, 60, 59,138,201, 63,110,159, +221,102,175,237,133,243,130,151, 14,169, 52,135, 16,131,144, 9,116, 43, 31,227, +175, 24,185,218,143,249,206,140, 53,105, 53, 90,135, 82,201, 30, 48, 61,123,168, +193,161, 82,136, 40, 16,145,130,146, 36, 73,107, 48,132, 24, 83,117,230, 1,162, + 8, 61,204,148, 8, 9,148, 64, 80, 32, 34, 21,148,148,255,187, 3,153, 9,101, +115,212,219, 42, 32,102, 14,118,117,136,254, 19, 36,202,220,150,238,190, 94, 81, + 80,140, 5,171,194, 16,164,208,202,187,152, 80, 54,186, 18,241,100,173, 94, 84, + 59, 23, 65, 54, 29,188,253,249,184,186,144,156, 51, 86,248,223, 29, 84, 55, 80, + 6, 50,226, 98,205,226, 3,121, 64, 8,173,254,173,243,117, 92,133,247, 82,138, + 63,207, 21,232,179, 73, 5, 5, 85,246,139,183, 74,144, 25, 8,232,149,184, 51, + 59,223,140,169,235,209,160, 44, 76,157,117, 47,158, 81,103,237,157, 63, 58,165, +157,209, 25, 78,118,118, 61,123, 33, 86,207,215,244,217, 81,148, 38,208,230,242, +134,146, 72,177, 44,193,168, 76,242, 57,108,224,160, 24, 48, 95,184,227,174, 22, +111,102, 26, 95,249,135, 65, 73,247,136,109, 60,183, 30, 11, 51,237, 92, 23,147, + 34,254,218,114,126,219,223,121, 97, 57,125,166, 40, 8,187, 31, 26,170,133,207, + 40,117,134, 72, 3, 26, 64, 46, 5,192, 36,128,164,188,172, 36,178,232, 31, 98, +238, 38,243, 62,123,249, 37, 8, 28,213,124,211,188,212, 96, 82,148,107, 75,208, + 33,143, 56, 41, 85,233, 53, 12,240, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_dot4.c: -uint8_t GB_JITpackage_157 [386] = { - 40,181, 47,253, 96,116, 2,197, 11, 0,182,149, 71, 33, 0,213, 54, 86,202,107, - 21, 76,190,213,101,130,244,224,112,163, 64,194,227,210,238, 57,128,113,138,226, -140,252,255,223,186, 4, 16, 61, 0, 62, 0, 63, 0,223, 30,195,204,249,180,209, -172,126,160, 78, 99,140, 39,117, 7,218,126,231,114,155,222,248,237, 15,221,107, - 65, 64, 29, 6,136,235, 17,187,115, 19,138, 51,110,165,216,163,103,171,136, 90, -240, 69,253, 31,187,179,199, 86,204, 45,107, 82,150, 21,163, 6, 57, 99, 30,170, -139,250,239,118, 32,234, 12,253, 25,231, 45,190, 55,161,158, 20,255,230,140,218, - 68, 50,149,247, 33,253,228,107, 78,238,175,147, 53, 7, 65,234, 83,226, 58, 92, -212, 2,113,184,156,112, 7, 62,145, 57,212, 69,188,162, 62, 10, 29, 7, 4,187, -235,251, 59,110, 89, 18,203,132,187,104, 52,252, 30,206, 1,119,247, 73,154, 13, - 39, 12, 28,195, 97,180,140, 85,112,152,136,173, 27,106, 51,201, 69,147, 84, 60, -163, 21,147, 97,214, 86,108, 78, 32, 88, 98, 39,179, 67,124,218,183,244, 2,115, -150,102,195, 9,219, 38,129, 64, 52,155,173, 26, 27,184,168,203,253, 26,112,171, -110, 87, 12,224,239,149,224, 21, 39,206,158,248,129, 59,134, 13,127, 80,118, 20, -186,195,177, 29,233, 49,252,208,254,107, 76,138, 99,222, 87, 44,177,127,110, 33, - 32, 32,130, 71, 93,121,165,160, 55,131, 96, 46, 5,125,147,153,180,131,209, 3, -160,105,176, 29,240, 21,168, 2,140,129,250, 49,176,146,142, 63,137,130,234,167, - 45, 20, 98,163,109, 91,247,253, 0, 40,141,185,156, 22,203,184, 93, 1,226,137, -227,155,133,179, 17, 17, 38, 77,205, 51,211,219, 42, 88,173, 83, 66, 78,188,190, -244, 98, 79, 81, 48, 4, +// ../Source/Template/GB_convert_s2b_template.c: +uint8_t GB_JITpackage_152 [550] = { + 40,181, 47,253, 96,120, 6,229, 16, 0, 22,155, 83, 32,224, 26,231,148,119,132, +182,223,245,238,121,217,178,100, 28,104,133,255,172,116,101,107,172, 15,195, 57, +131, 25, 6,193,188, 23, 76, 0, 70, 0, 73, 0,243, 6,133,134,208,176, 70, 2, +161,125,192, 9,110,192, 53, 69, 39,207,230, 89, 95, 22,195, 26,186, 1, 52, 53, +146,111,164,183,226, 0,117,174, 40,144, 28,105,152,107,233, 98,126,227, 75, 71, +252, 80,188,222,231,239,232, 76,193, 49,236,188,149, 52,188,229,219, 41, 43,114, +155,164,242,195, 65, 98,135, 67,184,239,216,215, 48,143,233,243, 59,164,248,253, +229,119,138,126, 47,205,119,150, 94,213,118, 53,255,236,246,200,250,126, 69, 92, + 63, 37, 34,211,176,254, 56, 58,206, 59,110, 87,175,102,219,221, 5,107,108,155, +171, 26, 76, 52,241,100, 93,167,110,227,254, 28,231,207, 84, 63, 7,193, 91,232, +130, 57,120,181,179, 29,216, 86, 95, 13, 4,171,193, 41,158, 81,104,155,130,119, +109,171,215,221,189, 26,120,216, 6, 83,180,214,239,123,124,140, 96,243,144,143, +243,153,171, 55,227,190,132,231,109,193,200,182, 62,227,249,220,166,255,191,148, + 46, 41,179, 76,195, 43,122,167,207,182, 3, 82,122,221, 89, 84, 64,202,215,235, + 31, 32, 30,185, 21,220,171,162,109, 12,246, 11,192,101,184,107, 41, 20, 91,128, +119,135, 2, 57, 11,162, 92, 36,155, 14,105, 3, 77,139,118,194,165, 25,143,248, +132,105,182, 5, 10, 62,110,178,117, 59,245,214, 92, 5,241,220, 50,190,213, 59, +185, 52, 20,206,135,146, 9, 83,160, 97,185, 49,166, 42, 24,153, 9, 75,138,218, +106, 80, 70, 32,133,144,232, 1,174,185,105,150,184,218, 72,178, 76,216, 14, 29, + 34,232, 74, 28, 82, 56,122, 8, 3,103, 4, 86, 46,196, 80, 85,148,244, 77,231, + 42,120,108,233,187,222, 4,224, 6,107, 36, 8,214,223,218,232, 27,130, 59,191, +168, 33, 41, 49, 16,196,130, 55, 19,232, 25, 28, 66,217,130,192, 17, 23,157,100, + 55, 27,182,150, 65, 56, 8,255, 7, 58, 95,208, 90, 18,108, 47,238,123,201,224, +222,153, 1,204,211, 7,250,250, 16,182,101,239,101,235,147,119,181,247,141, 2, +134,201, 77, 55, 48,184,112,100, 45, 64,122, 86,119, 73, 7,252,231,161,226, 1, + 67, 88, 20,191,184,171,172,252,161, 8,234, 46, 49,139,129,230, 31,156,233, 70, +162, 85,207, 8,146,124,108,156, 39,196,166,249,252,193,116, 43,151, 66, 68, 3, + 34,135, 12,249, 50,110, 82, 20,220, 1, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_saxbit.c: -uint8_t GB_JITpackage_158 [377] = { - 40,181, 47,253, 96, 70, 2,125, 11, 0,214,213, 70, 33, 32,179, 27, 83, 56,173, -253,220,102,234,232,185,216,213, 22,152, 64, 2, 96,167, 25, 44,241, 51,167,202, -226, 50, 32, 4, 7, 0, 2, 59, 0, 62, 0, 64, 0, 30, 56,239, 35,225,248, 78, -112,243,252,225, 22,239,127,142,219,235,198, 62,238,217,215,211,117,168,130,159, -107,248, 53,232,111,158, 95,119,130, 78,249, 53,160,137,229, 5,178,100,117,123, -189, 35,243,115,228,245,104,138,138, 18, 69, 5, 30,157,160,213,137,235,223,125, -182,206, 65, 36,199,214,233,103, 82,198, 97,153, 56,255, 92,199,174, 53,206,222, -230,181,174,213,106,194,161, 42, 84, 18,194, 80,168,122, 64, 5, 77,192,255,153, -142,158,172, 14,121,217,243,253,165, 9,155,149, 93, 1,216, 4,114,161, 96,180, -206,185,238, 3,221,221, 81, 20, 21, 61, 16,116,229, 82,209, 44,155,188, 50,150, -204, 48,138,134, 73, 58,179,174, 74,246,144, 23, 72, 36, 70,128, 55,121,158, 21, -252, 60,203, 67, 8,188, 30,128,118, 46,172,212,126, 32, 22,166, 74,242, 49,142, -162,162, 7,219,134, 53, 26,152, 77, 94,215,222, 48,251, 5,208,216, 61,103, 93, -209, 12, 73,134,190,142,139,238,228,245,156, 39,197,114, 34,193,249,229,215, 96, -235,249, 76,109,216,117,135, 78, 77,173,147,118,246, 77, 83, 84, 30, 32, 48, 2, -162, 36,179, 30,108,160, 44,191,248, 45, 62, 0,224, 20, 10, 46, 81, 54, 29,208, - 28, 8, 68, 62,142, 16, 25,152, 17, 57, 58,232, 96, 11,222,232,182,237,247,253, - 18, 32,141,221, 15, 43, 0, 0,128, 20,101,190, 55, 88,103, 33,210,160,217,121, -102, 90, 91,136,171, 57,136, 40,155, 11, 8, 90, 3, 81, 20,184, 1, +// ../Source/Template/GB_convert_s2b_zombies.c: +uint8_t GB_JITpackage_153 [738] = { + 40,181, 47,253, 96,213, 7,197, 22, 0,118, 99,105, 32,224, 26,231,148,119,132, + 76,207,234,246, 76,236, 36,105, 59,154, 22, 69,107, 45, 81, 73,139,143,120, 78, +196, 24, 41, 50, 56, 4,100, 0, 90, 0, 96, 0,253, 97, 10,141,107,123, 52, 83, + 0, 81, 56,134,175, 87,183,113,119,142, 51,120,162,157,135,161,252,182, 80, 32, + 20, 5, 71, 2,161,184,192,211,190, 97,186,154,148, 27,228, 93, 96, 30, 69,250, +249,230,145, 25, 9,104,231,181, 60, 60,157,169,202,147,217, 41,102, 90,250,152, +223,248, 78,139, 47,142,215,116,249, 63,112,211,146, 56,190,186,146, 2,119,249, +246,170,142, 94, 39,177,252,112,200, 10,135, 67, 96,238, 68, 85,125,216, 97, 56, +239,180,183,226,248, 41,158,230,181, 1,238, 31,205,207,149, 10, 14,102,202,210, +126,248,255, 44,131,101,153, 33, 79,241,142,166,207,231,218,184,175,237,187,201, +227,249,252, 22, 39,126,131,249,189,154,224, 75,242, 95,157,103,117,109,201,223, +112,219,186,192,223, 17,211,203, 12, 97, 80, 20, 26,244,166,149,127,220,166, 38, +154,107,156,238, 83,177,112, 23,164,190,129, 82,187,236, 46, 18,203, 35, 71, 29, + 83, 48,223, 85,122, 29,255,117,158,183,237,248, 22,160,182,135, 38,111, 26,159, +191, 74, 77,135, 60,117,238,207,120,134,220, 73,163,183, 71, 67, 44,187,200, 51, +190,212,148,122,238, 24, 13, 24,129,128, 83,120, 30,194, 29,241,136,150,216, 60, + 42,206,234,250,180, 14, 85, 95,131, 30,190,160,118, 82,195,223,236, 27, 89, 22, +203, 98,137,146, 20,108,223,180,135, 56,155, 73,228,164, 81,123, 51,180,199,153, +246,106, 20, 9,167, 23, 80,237, 21,140, 68,179, 17,117, 30, 12, 64,187,137, 59, +149,148,100, 71,111,201,183, 42,156,171,111,244,173,254, 42, 61,158, 32,213, 36, +228,246,220, 45,247,218,225,106,126,112,212, 35,149,102, 82,130, 64, 74,141,110, +229,183,237,217,182,125,181,191,229, 59, 51,238,164, 13,128,129,168,177,157, 82, +136, 72, 68, 68, 97, 73,146,164, 53, 32,132, 24,195,212,153, 7,178,216, 60, 9, +134,200, 8, 24, 33, 82, 32, 37, 18,145,242,191,119, 41,180,156,133,174, 59, 25, +191, 51, 64,137,115,251,105, 15, 65,107,129,151,163,111,128,237, 77, 31,206,132, +139,189, 40,176, 42, 45,153,165, 81,232,243,139, 18, 79, 75, 81, 62,160, 60,251, + 60, 50,127, 87, 14, 55, 66,144, 43, 5,136,210, 12,126,195,243,173, 97, 93, 64, +205,197, 42, 64, 71,203, 48, 80, 14,131,225,102,206,198, 18,160,128, 72, 89,253, + 27,246,245,174, 34,190, 90,251,231, 89, 81, 31, 4,165,206, 14,229,248, 39,154, +138, 5, 51,200,211,203,113,191,118, 38,142,160,235,173,157,108,189,206,103, 47, +230,227,177, 45,158,107,157,114,249,120, 21, 39, 78,187,234, 94, 58,246,165,107, + 64,224, 40, 77, 23,232,231,194, 36,165, 75, 17,149, 96,160,153,248,179,216,128, + 96, 47,128,190,144,232,213, 44,144, 58, 19,205, 92, 22,249, 37,142,193,111,100, +245, 0, 50,164,114,111,150,180,243,120, 75,129, 54,249,130, 23,214,205,231, 70, + 77,252,252,152, 86,196,123,199,170,109, 48,250, 0,100, 18, 88, 0,245, 3,164, + 20,195,152,197,131,254,169,230,205,100, 7,205,162,126,145, 25, 28, 6,103,211, +236,213, 96,162,203,101, 66, 38, 68,254,224, 40, 80,197, 87, 7,184, 3, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_saxpy3.c: -uint8_t GB_JITpackage_159 [466] = { - 40,181, 47,253, 96, 70, 3, 69, 14, 0, 54,219, 86, 32, 0,151, 30, 27, 67,185, - 80,252, 66,160,155, 55,227,224,188,158, 88, 11,124, 1, 57,211,207,202,120,144, -103,233,255,189, 62,132, 75, 0, 77, 0, 79, 0,151, 84, 33, 94,144,110,250,108, -145,119, 55, 39, 76,105,185, 62, 96,205,145,197,235, 92,193,249,251,134, 51,230, -235,189,246,199,158,239,106,175,158, 69,157,155, 48,120, 55, 14, 61, 47,221,188, -171,231,190,176,133,132, 9, 44, 85, 77,175,146,164,248,191,252, 33,186, 47,136, - 94, 17,183,172, 88, 89, 86,219,220, 54,204, 91,103,151,204,131, 86,166,188,184, -131,158,200,210,144,174, 23,255,239,118,207, 5,162,161,128,168,254, 99, 43, 40, -125,145,255,118,119,127,207, 77,170,215,223,219,107,169, 54,144,172,192, 61, 41, -191,126,205,245,254,120,174,230, 24, 75, 39, 36, 16, 6, 68,165, 56, 24, 16, 62, -176, 2, 39,232, 95,216,121,200,214, 14,198,213,250,126,143, 91, 22,118,153,108, - 24,141,214, 61,215,221,128,187,123, 60, 69,134, 15, 4,158,217, 50, 90, 70, 19, -156,108, 35, 39,189, 54,146, 90, 48,140,134, 85,220, 34,175,140, 37, 66,183, 9, - 37, 70,192,167,240,187, 98,208,251, 77,175, 8,192,159, 11,177,253,110, 32,110, - 15,141, 22, 49,166, 34,195, 7,115, 98,143,135,102,210, 43,127, 57,220,159, 1, -118,160, 97, 25, 71,226, 40,148, 15, 30, 2,199,166, 38,179, 73,231,100,211,176, - 57,101,236, 46,247,125,160,163, 7,186,179, 72,143, 26,222, 81, 43,194,184,210, -210,237, 48,220, 81, 81,147,231,177,225, 29,245, 66,237,133, 86,127,162,187,109, - 41, 32, 48, 2, 98,160, 82,122,228,160, 44,113,161,130,112, 32,191,203, 66,253, -142,235,104, 91, 57,130, 1,113,232, 8, 16,242, 0, 50,206,168, 12,142, 3, 56, -200, 88, 56,222,140, 48, 37, 8, 6, 31, 79,135, 12,204,136,206,199,216,202, 80, - 88, 70,255,110,127,226, 75,184, 52,250,247,140, 64, 54,123,128,186, 42, 38,188, -128,132, 68,230, 35,107, 7, 77,135, 48, 19,116,132,186,134,131, 30,189, 51,131, -135,242,240, 20,189, 67, +// ../Source/Template/GB_coverage.h: +uint8_t GB_JITpackage_154 [241] = { + 40,181, 47,253, 96, 36, 1, 61, 7, 0, 66,142, 46, 21, 32,223,161,167,221,197, +173,152,155,244,117,174,169, 93, 51,240, 19, 66, 32, 51, 52, 0,160,250,244,237, + 16, 47, 73,254, 77,166,249,175,231,175,220,191,221, 1, 4, 65,146,133,143, 19, +103, 74,172,241, 95,159,254, 57,226, 61,165, 91,244,237,175, 87,123, 26, 0,153, +121, 97,211,119,137, 93,165,246,244, 85,125, 0, 32,134, 82,116, 22, 61,227,137, + 63,114,247,170,255,111, 79,181,162,207,111, 71,253, 86,140,150,103,164,189,150, +251,220, 63, 62,127,118,245, 31,111,219,137, 19,139,130, 40,133,147, 32, 10, 31, + 80,129, 19,179,175, 79,139, 27, 19,191,217, 15,187, 62,228, 4, 56,109, 20, 27, +159, 50,246,244, 89, 62, 99,176,127, 79,131, 64,200, 95,207,231, 63,247,207,185, + 12,171,252, 97,141,190,158,114,175, 97,212,164, 48,126, 28, 64,113, 28, 1, 15, + 0, 88, 0,131,169,193,205,174,156,183,217, 78,197, 66,197, 2, 57, 18,162,136, +221,131,230,207, 51, 83,180, 9,108, 53, 15, 24,148,217, 4,243, 76, 66, 40, 10, +220, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_saxpy4.c: -uint8_t GB_JITpackage_160 [306] = { - 40,181, 47,253, 96,186, 1, 69, 9, 0, 6,210, 60, 33, 16,179, 30,230,109,130, - 35,245, 18, 31,103, 47,136,106,246,246, 35,165,110,240, 40,235, 51,162, 5,175, -224,136, 0, 0,170,110, 6, 50, 0, 51, 0, 50, 0,217,245, 58,219,144,254,190, - 30, 26,187,142,183,255,115,159, 4,201, 40, 96,158, 59, 25,247,202, 3,226, 23, - 71, 37, 66, 33,200,234, 58, 65,178,226, 7,243,115,234,190,155, 58, 51,175,170, - 56, 85, 85,224,115, 87,155, 46, 13, 10,213,253, 39,191,254,205,245,246, 52,119, -115,140,165, 75, 8,203, 96, 77,138,131,193,242, 1, 39,112, 73,223,143,109, 56, - 37, 61,228,237,206,119, 43, 46, 81,169, 77, 47,180, 57,114, 78,180,172,198, 8, -240,168,223, 22,135,223,239,138,152, 25,192,191,243, 96, 14,188,129, 40, 97,236, -201,184,190,142,249, 21, 13,148, 53,189,199,217, 80,250,149,255,102,238, 6,191, -123, 76,175, 3, 49,142,226,194, 7,148, 58, 48,204, 66,235,204,153,192,193,236, -217,159, 1, 28,101,247,127, 53,225,238, 30, 69,113,225, 3,129, 79, 42,147,141, - 82, 19, 24,202, 69,210, 58, 47,178,106, 14,201,230,136,184, 22, 17, 0, 71,133, -163, 50,197, 72, 8,105,116,189,206,136,201, 2,146, 2,171, 15,168, 7,105,251, - 67,212,243,134, 6,176,105,254, 60, 51, 69, 27,198, 86,235, 23,131,248, 80, 56, -145,231,240, 20, 5, 67, +// ../Source/Template/GB_defaults.h: +uint8_t GB_JITpackage_155 [412] = { + 40,181, 47,253, 96,226, 2,149, 12, 0,182, 25, 80, 31, 0,183, 58, 39,127,117, +183,143, 17, 36,162, 88,107, 94, 62, 86, 73, 46,128,127, 11, 24, 79,204, 56, 12, +253,255,187, 63,188, 72, 0, 69, 0, 71, 0,155,131, 96,227,132, 67,134,101,214, +194,128,101, 23,112,129, 19, 42,151, 36,228, 87,227,168,175, 41,137, 57, 39,104, +141,139,227, 11,165, 56, 97,108, 21,101,168,109,243,168, 85, 85, 52,185,123,235, +197,237, 37, 73, 81,134, 63,227,187,106,131,163,244,182,219, 28,147, 23, 10,149, + 85, 40, 4,178,116,143,190,231,246,164,220,247,235,215,173,251,113, 38,229, 14, +105,181,147, 1, 21,101,211, 56,151, 78, 67, 18,129,120,219, 77,143, 1, 21,118, +101,214,126,156, 12, 27,103,136,203, 30,247,220,174, 98,109,157,203,241,197,250, + 64, 52, 87,183, 37,113,235,110, 94,251, 19,113,255, 56,185,223, 18,139, 78, 64, +133, 4,137, 76,129, 93, 88,224,148, 7,167,226,209,182, 77, 68, 3,162, 92,130, +141,246, 8,220, 68,197,163, 66,175,252,150, 36,145,122, 87,111,221, 50,131,205, +113,154,156,246,107,143,225,228, 87,249,110,235,184,161, 79,201,189,229,215,175, + 59,130, 1, 85,229,113, 55, 23, 80, 85,138, 68,118, 78, 5, 83,217, 38,152, 10, + 4, 19,209,212, 5,195,177, 47,154,220,205, 13, 61,250, 77,113, 61, 40,185,121, + 50, 34,195, 12, 3,132,194,130,233, 80, 30,180, 59,237,143, 68,106,170,205,115, +188, 5,161,120, 87,185,224, 91,190,147, 43,126, 29, 28, 32, 48, 66, 66, 4, 44, +125, 77,172, 84,104, 21, 5,239,211,166, 93, 24,149,168,125, 19,194, 84,247,160, + 77,164, 91,243,134, 90,192, 57,105,104,220, 8,144, 37,227,145,155,135,182, 71, +176, 77,216,141, 88,161, 44, 39,145,213, 13, 32, 69, 17,152, 65,243, 60, 51,209, + 38,112,181, 60,160, 17,123,119,131,162,192, 13, } ; -// ../Source/JitKernels/GB_jit_kernel_AxB_saxpy5.c: -uint8_t GB_JITpackage_161 [1097] = { - 40,181, 47,253, 96,161, 20,253, 33, 0,198,235,136, 40,192,240, 58, 7, 60,135, -153,176,242,190, 19, 84,233,102, 31,167, 42,160,122,217,151, 53,112,239, 7,214, -238,189, 38,123,123, 31,234,224,186,138,130, 32, 27,204,125, 0,128, 0,124, 0, -222, 12,197, 87,110, 83, 15,205,182, 63, 13,210,216,182, 71, 51, 16,138,134, 45, -242,245,232, 54,238,206,113, 6, 63,180,243, 90,227, 43, 4,203,192,130, 36, 28, - 24, 88,127,120,212, 43, 76, 71,179,225,145,248, 18,152, 67, 16,237, 94,113, 49, -147,129,161,121, 49, 21,174, 51, 21,113,211,237, 80, 9,148, 52,190, 51,132,159, - 73, 66, 19,148,233,197,227,171, 90, 69,158, 99,122,203,171,140, 32, 50, 20, 88, - 94,153,148, 66,164,137,101, 70,138,178,182,189,157, 33, 51,197,144, 25,230, 18, -201, 4,145, 72, 2,175,186, 94,136,194,239, 55,244, 28,251,216,174,247,132,199, - 55,204, 94,143, 14,102,170,241, 47, 4,115,131,254, 13, 71,235, 98,183,185,104, - 46,153, 77,163, 73,138,137, 40,185,248, 32, 49, 27,173,163,105, 46,220,255, 79, -211, 22, 53,157,150, 73,206,192,192,187, 46,110,146,211, 36,192, 61, 10,127, 80, -231,116,156,206, 38, 39, 21, 27, 69,228,100, 70, 17,101,230,178,233, 92, 34,158, -137, 25, 39,131,145,157, 6, 49, 77, 1, 96,164,243,172, 33, 80,103,137,144, 97, - 2,222,159,168,122,150, 10, 76, 6, 17, 11,210, 96, 32,206,192, 51,219,103, 75, -179,152,177, 13,189,202,114, 18,189,121,106,100,118, 41, 15,105, 52,229,215,181, -134,215,138,228,228, 31, 13, 71,213,210,123, 52,207,140,187, 11,166, 19, 59,201, -117, 29,206,182, 73,112,178,115,201,104,155,134, 99,249,175, 11, 59,117,236,193, -176,112,174,211,178,141,180, 32,160, 36,229, 96,162, 45,245,244, 39, 16,193, 24, -206, 51,172, 95, 13,193,219,233, 29,244, 40,168,209,185,116,241,139,242,190,243, -248,118,198,244,211,247, 21, 7,235, 96,210,245, 99, 41,166, 28, 4,211,212,241, -177,244, 82, 80,227,246, 58, 83,208,187,243, 37, 59,111, 89, 22,199, 93, 44, 22, -234,246,138,114, 95,133, 63,170,236, 85,124,101,161,238,185, 40,146,130,145,240, - 4,165, 40,228, 81,141, 31, 57,180,207,162, 11,234,181,229, 13,165,140, 57,207, - 80,248,217,121, 76, 31,223,183, 57, 28, 28, 27, 83,101,122, 76,179, 86,106,231, -232, 58,102, 48,133,182,154, 44,203,186,176, 91,209,117, 97, 22, 2,101, 98, 89, -216,229,161,159,237,142, 0, 47,178,241,104,143, 86,130,103,121, 81,190,217, 55, -128,221,160,145, 53, 50, 51, 35, 35, 34,146, 36, 37,201,112, 80,132,200, 20, 17, - 21, 55,230,131, 84,112,248, 64, 66, 48,112,233,199,124,132,132,131,164, 35,182, -179,113,253,212, 5,240, 88, 32,128,184, 3, 58,163,164,135,166, 7,170,200,208, - 48,109,146, 68,176,115, 31,150,111, 88, 53, 71,255, 64,160,179, 0, 20,159,237, -179, 14,175,165, 98, 3,177, 32,189,113, 43,113,138,102, 83, 88,239,220, 17,167, -140,244, 19,136, 83,213, 59,167,128,124,148,176, 27,141, 49,206,156,173,253,133, - 36,145, 49, 95, 13,107, 34,135,211, 47,149,242,153,119,129, 33,210,104,169,130, -206, 64, 17, 83,147, 43,103, 82,139,181,111, 48, 72, 95, 98,159,179, 97, 48,224, -202,143, 30,115, 52, 38, 1, 38, 54, 5,200, 2,112,214, 22,142,217, 4,156,109, - 57,172, 9,118,254, 54,153, 90, 16, 54, 41, 7,139,113,143,135,201,149, 58, 46, -148, 32,220,141,181,171,199,118,211,156, 19, 44, 58,192,164, 67,184,233,199,171, -238,156,245,207,174, 59, 15,251,119,217,197,211,254,185,109,231, 6,220,155,196, -246,181,122, 2,102,142, 41,102, 80,243,161, 42,196, 88,255,251,131, 35,109,164, -239,138, 24, 70, 58, 17,144,126,154, 49,242, 64, 33,196, 94, 57,168,137, 14,170, -127, 71, 77, 11,190, 62,208,163, 64,251, 4, 0,223,196,220, 62, 42,174, 61, 54, -249,192, 50, 62, 52,124, 48,115, 93,224,115, 91,250,135,245,218, 1, 7, 30, 0, -128, 54,192,248,142, 3,174, 99, 14, 53,180, 78, 96,131, 14,173, 79, 61, 56,133, - 15, 4,240,193, 40,149,103,160,235, 99, 14, 63, 97,204,136, 33,179,145, 3, 40, - 31,195, 14, 1,141, 76, 94, 42,118,112, 76,170,115,142, 12,159,151, 41, 20,120, - 56,233,176,171,129,206, 24,156,227,177,241,181,120, 65,102,164,121,128,166, 0, -227,184,236, 37,236,104,230, 4,223,218,167,170,248,214,113,229, 9, 12,160,131, -224, 23, 16, 42,130,182,109,110, 63,194,139, 69,177,134, 13,138, 92, 56,153, 21, -138,173, 13, 21, 25, 40, 89,189, 91,134,180, 92, 15, 1, 8,129,138, 14, 60,126, -224, 58, 2,116,121, 86, 4, 1, 33,231,242,131, 14, 61, 36,132,137, 10, 96, 15, - 6, 84, 26,139,100, 32,204,125,127, 20,144,208,246, 14, 4,228,243, 80, 96,223, -176, 71, 5, 70, 23,224,245,214, 73, 3, 51,222, 17,160,105,219,206, 65, 19,230, - 15, 38,181,170, 78,142, 60,232, 92,116, 8, 85, 9,166, 20, 5,120, +// ../Source/Template/GB_dev.h: +uint8_t GB_JITpackage_156 [395] = { + 40,181, 47,253, 96, 84, 3, 13, 12, 0,246,215, 72, 31, 16,147,117,155, 25, 37, + 40,215, 65,196, 21,194,221, 34,211, 96, 88, 66, 12, 89, 66,117, 5,223,153,205, + 8, 0, 40, 0, 84, 65, 0, 66, 0, 59, 0,137, 19,172,193, 11,182,181, 71, 93, +106,124,187, 46,197, 26,243,194,165, 49,113, 92,159, 87, 33, 19,219,250, 62, 23, +190,157, 93,220,157,140,125,168,100,141,225, 25, 82,235,149,198,219, 73,251,246, +236,200,240,211, 37,105, 12, 57, 14,200, 13, 6, 23, 25, 12, 1,240, 91,245,201, +118,102,223,203,246,142, 3, 46,194,209, 60,168,200,112,198, 14,184,131,148,136, +248,178,222,167,241,169,114,199,190,147,161, 36, 98, 59,217,234, 73,180,161, 42, + 18,100,173,178,101,203,237,189, 58,109,185,148,141, 23, 20,137, 67, 34, 90, 32, + 14, 1, 1, 1,223,119,237,249,186,231, 74, 35, 87,191, 54,243, 92, 0,201, 56, + 4,135,240, 61,210,179,236,120,150,157,217,246,175,147, 85, 76,125,210,207,154, +221,211,155,209, 67,198,168,117,174, 14,101, 70, 47,123, 41,223, 11, 87,102, 47, +114,206,197,134,147, 3,206, 85, 40, 25,138,242,160,176,245,234,253, 86, 41,198, +216,217,210,106,171,172,253, 17, 54, 57,105, 51, 64, 84,218,111,144,217, 10,177, +148, 13,250, 96,226,217,242,182,175,251,153, 73, 41, 0, 92,146, 3, 2, 56,195, + 76, 90,179, 3, 33, 32, 64, 66, 98, 16,195, 30, 5, 33,102, 33,171, 58, 32,208, + 44,130,228, 64, 21,233, 98,102,238,181, 24,227, 19,101,230,131,158,138, 9,132, +169,144,172,209,235, 90,223, 0,224, 41,136,129, 12,212,209,249,219,150, 46, 93, +139,196, 57, 26, 86,171,236,139, 57, 13,177, 8,198,201,104, 86,104, 35,181,213, + 12,154,206, 51, 19,109, 3,175,246, 46, 16, 90, 20,117,110, } ; -// ../Source/JitKernels/GB_jit_kernel_add.c: -uint8_t GB_JITpackage_162 [287] = { - 40,181, 47,253, 96,114, 1,173, 8, 0, 86,209, 58, 33, 0,211, 60, 62,183,128, -189,105,233, 64, 32, 94,117,183,105,166,238, 33, 81,107, 55,210,127,220, 96, 49, - 88,254,255,239,245, 33, 4, 49, 0, 50, 0, 49, 0, 32,199,211, 21,241,163,246, - 56,246,119,238, 88,137,241,252, 49, 83,222,245,198,194,120, 4, 20,151, 71,148, - 48, 23,151, 35,190, 9, 99,239,134, 47,234,207,220,157, 49,151, 86,167, 40, 41, - 81, 84, 63,138,255,229, 77,170, 96,145, 9,191, 71,255,248,157,143, 27,188,228, -206,195,112,122,100,176, 42, 75, 58, 20, 42,203, 7,159,192,163, 49,123, 60,204, -167,233, 31,112,111, 52, 89,226,145,157, 27, 13,150,199, 1,119,119, 9,146, 9, - 31, 8,156,147,112, 93,228, 98,216,188, 91, 6,233, 50,135,111,147,114, 91,189, - 18,173,113,105,149,213,100, 73, 15,126, 30,103, 58, 66,127,182,228, 45, 62,214, -164, 82,134,100,194, 7,214,102,215, 53,177,151,234, 42,112, 81,119,246,107,192, - 55,253,246, 66,142,230,247,165, 21,224,143, 59,225, 39,230,202, 33,156, 6,153, -100, 86,163,100,215,106, 47,230, 13, 0, 68, 37,149,175,224, 9, 53,117, 86,129, -218,214,115,208, 91, 39,140,201,212,160,249,243,204, 20,109, 12, 91, 45, 95, 24, -244,235,130, 61, 69,193, 16, +// ../Source/Template/GB_ek_slice_kernels.h: +uint8_t GB_JITpackage_157 [1313] = { + 40,181, 47,253, 96,239, 27,189, 40, 0,118, 49,149, 40,192,208,170, 14,184,214, +177,207, 95, 46, 96, 16,145, 13, 74,104,186,118, 29,237, 42, 20,184,140,168, 31, +234,158,146,239, 37, 73, 46,192,178, 8, 2, 0, 83,205,139, 0,130, 0,147, 0, + 18, 67,220,100,216,131, 6,107,136,216, 5,147,109, 98, 3,198,245, 86,185,233, +144, 38, 17, 11,210,157, 38,191,235,148,219,147,155,185,246,134,129, 52,174, 25, +164,147,144,137,108, 29,186,141, 91,115,156,187,139,169, 57,165,215,161,128, 53, +177, 32, 5,213,196, 58,165, 77,135,120,134,100,194, 35,215, 71, 93,182,159,201, + 57,220, 92, 25, 66,247,201,187, 64,105,124,229,183,233, 60, 65, 27, 9, 67,126, + 46,207,217,227,107,179,214,161,111, 85, 30,247,188,185,246,187,203, 63,165,139, + 96,218,245,182, 23, 91,155, 20, 71,175, 35,194,194, 37, 18, 9, 34,145, 4,212, + 52,157,242,234, 7,167, 42,106,106, 76,123,163,242,234,150, 83, 19, 53,185,197, +242,233,156,134, 68, 73, 24,242, 19, 59, 13,244, 57,158, 25,203,166,207,242,157, + 38,251, 29,154, 23,208,171,160, 78,179, 27,149,217,102,239, 90,209,155,122, 64, +118, 59,140,183,191,216,212, 53, 85,184,209,238, 98, 70,149,207,113,128,160,206, +172, 29,214,199,115,157, 25,244,101,144,189, 68,242,255,210, 36,109,211,134,104, +157,215,102,150, 25, 95,203,189, 49,232, 54,127,147,125,187,236,248,220,206,189, +157,130, 61, 44,115,149,186, 78, 71,220, 41,151, 76, 76,120,184,226,149,137, 28, +108,129,130,175, 92,235, 80, 53,128, 88,238, 93, 81,229,214, 35,230, 43, 51,254, + 2, 36,189, 37,102,124, 39,231, 61, 50,174, 86, 59,236,108, 76,104, 32, 28, 48, +135,168, 0, 17, 57, 17, 16, 17,225, 46, 76,175, 23,148,251, 86,158,101, 87,196, + 48,141,130,228,241,209,181,159,254, 60, 36,215, 56,149,101, 17, 15,220,132, 85, +192, 67,224,240, 12,155,136, 76,108,208, 96, 18,135,135,241, 14,199, 59, 19,192, +244, 10, 12,216,153, 26, 52, 16, 18,241,237,249,136,202,103, 12,162, 23,117,226, +203, 14, 70,195,185, 28, 54,168,170,115,193, 7,140, 3,230,241,146,196,205,173, +182, 67,170, 70,158, 87,251, 89,155, 43,220,119,230,218,183,190,137,204, 36,173, +184, 88, 84, 1,191, 5,197,111,185,136, 82, 57, 61, 31,209,106, 63,146,159, 87, +174,160, 65,121,151,239,167,172, 47,126, 23, 8, 33,244,224, 54, 51,188,124,112, +171, 13,227,245, 77,218,101,186, 85, 5, 84,149, 83,181,105, 72, 30,122,135,223, + 53,253,138, 25, 74,135,172, 71,102,143,253,251,202, 91, 31,172,190,195,201,215, +137, 14,237,213,176,140,140, 60,223, 58,203,219,181, 47,222,183, 69,239,142,115, +161, 60, 72,153,174, 43,191,173,206,129, 41,168,177, 41, 67, 51, 51, 34,146,164, + 32, 41, 12,107, 97, 16, 66,144,210, 82, 66, 61,162,104, 84, 20,163, 64, 2,136, + 70, 8, 33,196, 16, 39, 64,134, 16, 9, 68, 34, 17, 17,137,132,100,166,195, 1, +103, 11, 32,186,118,108,137, 30, 64,181,204,162, 55, 2, 23,162, 64,160, 2,101, +121,129,188,135,129, 24, 26, 72,171,184,134, 80,245,240, 44,162,244, 27,192, 28, +236,186, 45, 68, 9,204, 8, 42, 10,117, 28,244, 18, 69, 71,198, 12, 48,130,161, +230,177, 67, 92,125, 61,208,190,130,158,183, 66, 0,243, 35,188,201,168,237,211, + 81, 22, 12,119,101,105,130, 55,234,108, 35, 81,246, 37,180, 70, 41, 14, 85, 17, + 12, 32, 82, 81,194,168,160, 37,170,159,240,162,141,248, 13, 37, 52,122,145, 98, +205,170,213,179,151,153, 59, 6, 18, 87, 85,129,174,229, 70,137,140, 91,151, 83, + 57,210,213,226,231,204, 0, 61, 18,212, 80,137,233, 42,249,199,214,137,138, 96, + 21,102,211, 33,211,239,109, 29, 21,139, 7,173,201, 3, 92,194, 86, 29,208,113, +103, 52, 44,171,172, 40, 64, 73,174, 41,183, 17,184, 43, 94, 0, 61,129,243, 87, + 10, 3, 55,141,242,180,212,234, 32,110,131,164, 40,239,144,160,209, 97, 1,117, + 10, 71,140,189, 64,162,174,248,170, 86, 6, 7,219,243,189,140, 45, 6,170,222, +191, 86,111, 72,187,193, 85,243, 35,145,227, 31, 62,105,231,249,137, 92, 0, 4, + 28, 30, 48,165,152,171,168,135,207, 49, 15,100, 24,214, 77,126, 74, 78,239, 46, + 56,185, 63,175, 43, 8, 32,108,210,182, 35,152,107, 50, 47,164,110,217,118,135, + 26,173,201,101,252, 94, 32, 0,198,240, 79,178,126, 13, 20, 6, 59, 13, 51, 39, +189, 54,129, 27,253,220,194,217,188,240, 89, 3, 25, 81, 62,144, 10,154,186,177, +200, 88,155,118,184, 59,228, 55,220, 91,221,187, 31, 70,253, 35, 4, 51,166, 36, +118,124, 5,178,193, 8,106,149,223, 36,147, 98,112, 15, 90,145,196,158,184,120, + 52,197, 26,161, 70,135, 22,170, 1,218, 16, 65,236, 30,109,238,245, 74,181,144, + 64,127,224, 79,139,102, 88, 41,109, 20,152,121, 51,249, 55, 45, 70,221,155, 72, + 1, 12,140,139, 13,106,192,128,223,202,221,202,190, 88,108, 6,197, 68,143,204, + 65,109,216,102, 49,163,159,213,139, 96, 44, 20,221, 19,222,215,134, 99,150, 68, + 93,198, 73, 54,134, 2, 24,200,108,228,174,197,167,192,213,115,147, 36, 64, 9, +236,249, 29,137,119, 53, 92,143,166, 97,162,243,127,136, 53, 31,178, 40,240, 77, +150,142, 98,148, 25,217,248,138,241,161, 89,246,111, 4, 98,160, 15,234, 2, 64, +119, 44,160, 43,117, 85, 77,209,179, 36,136, 69,158, 17, 21,158, 57, 49,126,157, +132, 91,235,234,133,228,208,126,180,106,188,229, 70,241, 38, 42,107,170,250,151, + 66, 56,213, 62,176, 86,101, 1,229,230, 91,182, 23,149,249, 4,222, 79,150,111, + 18,241,197,136,220,200,163,110, 41, 32, 73,151,185,139, 90, 33, 3, 37,124, 95, + 41, 12,246,180, 32,143,224,130, 12, 55, 15,102,165,207,231, 91,112,155, 21,198, +114, 29,239,180,134,202,145, 7, 20,109, 96, 14, 77,236,183, 98,157,153,252, 51, + 74,219, 49, 43, 12, 56,173, 78,110,124, 21, 6, 78, } ; -// ../Source/JitKernels/GB_jit_kernel_apply_bind1st.c: -uint8_t GB_JITpackage_163 [271] = { - 40,181, 47,253, 96,106, 1, 45, 8, 0,118, 16, 56, 21, 16,253, 42,159,251,182, -128,245,113,202,147, 7,218,153,237,136, 0, 0, 2, 0, 1, 49, 0, 49, 0, 50, - 0,181,229,164,118, 93,210, 95,122,183,248, 7, 16, 82,161, 15,159,158, 63,244, -245,233, 59,231,113,219, 10, 42,183, 38,185,195, 52, 93,146,112, 42,215,233, 75, -222,173, 75, 74,214, 71, 16,192, 64,144,134, 72,117, 7,154,230,117,106,167,222, -183,111,118,109,189, 15,195,209, 47,152, 37, 89,140, 70, 73,150, 79,156,195, 47, -236, 54, 47,169,127, 68,127,103,239, 57,110,193, 95,124,145, 38,177,116, 25, 36, -248, 41,212,118, 73,228,168,117, 93, 68,106,213,230, 85,217,215, 34,137,211, 44, - 18,188, 48, 82,178,128,228, 88,140,148, 61, 75, 58,250, 78,157,182,106,123,203, - 41,122, 25,169, 45,167,103,171, 5, 0,208, 3,207, 39,190,175,154,166,240, 35, -165,218, 26,190, 92,227,119, 90, 7,231,145,222, 37, 76,199,233, 77, 6, 63, 69, -113,248,148, 91,225,255,255, 1, 30,120, 62, 49,124, 14,228,188, 46, 11, 0, 78, -133,156, 94, 7, 8,192,106, 17,210,160,111, 29, 39, 38, 83,131,230,207, 51, 83, -180, 21,108,181,225, 4,131, 66, 69,193, 16, +// ../Source/Template/GB_emult_02_template.c: +uint8_t GB_JITpackage_158 [813] = { + 40,181, 47,253, 96,108, 11, 29, 25, 0,118,226,107, 33,240, 88, 55,172, 23,242, +240,156, 43, 19, 73,155,178,241,156,116, 67,186,162, 1, 77,125, 13,140, 94,128, + 82,100, 19, 65, 19, 26, 2, 98, 0, 93, 0,100, 0,123, 44, 93,144,147, 36,117, +140,177, 72, 44,178,135, 34,177,240, 66, 72,112, 76, 95,148,181,184, 70,125, 53, +110,179,188,158, 99, 29,229,212,241,180, 25, 19,233,126,223, 83,119,145,228, 73, + 68,156,182,220, 23,172, 78,194,214,243,159,171, 17,241, 58,219, 83,187,190, 78, + 29,255,152,242,106,208,168, 83,124,243,200,111, 75,158,229,239,111,145,248, 54, +121, 42,255,171, 24, 71, 32,174, 12,129, 8,121,235,207, 6,223, 95,195,177,241, +245,173,177, 25,110,213, 49,234,251, 75,238,238,126, 93,172,235,210, 48,215,184, +108, 58,166, 63,159, 38,109, 75, 55, 59,174,173,127, 62,237,240,148,183,246,213, +190, 95, 90,237, 63,110, 31,247, 77, 57,182, 93, 9,109,145,253, 24,218,147,122, + 36,255, 21,239,198, 79,202,100,175,241,135,151,147,137, 44, 31,141,244,168,252, +250, 65,174, 3,212, 69,211, 31,155,133,193,128, 0, 40,108, 4,247, 64,151,174, +163, 30, 39,196, 93, 62,241,146,112,173, 18,210, 52,193,215,228,215,234,233, 50, + 31, 53,245,125,124, 57,151, 14,232,178,249,188,140, 70,124,146,120, 5, 11, 55, +100,187,245,169, 77,218,110,124,176,164,169,132,239,103,250,239,195, 75,106,250, +109,157,175,104, 2, 43, 89, 5, 43, 68,130,159, 68,221, 59,142, 18, 63, 43,217, + 73,125,135, 55,215,213,114,247, 66, 37, 56,166,192,225,132, 58, 78,161, 56, 71, +112,241,134,159, 45,231, 18,176, 21, 8, 53, 27,240, 39,157,200, 16,127,198, 40, +231,101,234,199,242,116, 42,156, 96,178,121, 54, 41,155,183,133, 64, 94,247,225, + 60,219,183,233, 40,119,150,102,248,153,180,229,238, 61,207,109,219,182, 90,107, +149,184,170, 64, 80, 93, 62, 35,111,220, 38,246,125, 2, 29,243, 7, 29,219,208, +171,103,211, 3,128,162,160, 49, 73,164,148, 76, 48,163, 32, 73, 10, 10,133,225, + 96, 68,132,172,108,117, 27, 9, 71,139, 96, 90,136, 38,223,128,144,205,212,241, + 40,212,128, 54, 91,244,209,248, 5, 6,212, 1,216,241,227, 40,140, 56,248,183, +145,141,215, 48, 78,143, 32,151,156,166,141, 44, 35,130, 0,215,210, 46,198, 65, +109,100,144, 40, 41, 12,176,145,195, 30,136, 21,136, 30, 32,148, 23, 59,228,160, +245, 67, 10, 17,243,141, 97,163, 30, 88,130,228,147, 32,129,229, 15, 97, 42,242, +244,131,192, 12, 80,231, 54, 3,253, 50, 3,187,221,118,104,172,109,120,198,118, + 14, 23, 34, 97,196, 4, 45, 47, 4, 33, 77,225, 8, 4, 40,162,210,224,208, 60, + 15,110, 0,147, 66, 24,100,249,132,205,141, 9, 40,144,113,110, 34,141,160, 50, + 94,128, 37, 19,128,112, 65, 52,102,243, 82, 4, 68,120,147,104,240,172, 54,134, + 1, 70, 68,124, 18,143, 96, 98, 67,111,107,111, 18, 20,145, 12, 82,176, 6,142, + 58, 27,210,159,136,155,145,195,129,195,238, 44,158, 23,215, 45,235,128,160,132, +108, 60,154, 68,230,200, 24, 35, 56,231, 65, 70,135,159, 96,100,115,196,225,158, +142, 6,136, 9, 64, 13, 86,126,115,164, 80,168, 39,136, 17, 44,229,175, 78,222, + 36, 7,244,162,234,217,122,198,110, 64, 56,163,131,112,223,108,128, 0,184,209, + 12,232, 51,218,214,116, 4,219, 31,134,143, 13, 51, 86,139,110, 47, 22, 61, 97, +125, 53,178,191, 49,148, 51, 54,215,140,206,106,159,175,190,183,224, 91, 36, 91, + 41, 35,100,111,236,190, 17,252,180,113,146,183,100,211,196,252,193,132, 86,255, + 10, 35, 4,130,139,134,210,231, 87, 85, 20,140, 1, } ; -// ../Source/JitKernels/GB_jit_kernel_apply_bind2nd.c: -uint8_t GB_JITpackage_164 [271] = { - 40,181, 47,253, 96,104, 1, 45, 8, 0,102, 16, 56, 21, 16,253, 42,159,251,182, -128,245,113,202,147, 7,218,153,237,136, 0, 0, 2, 0, 1, 49, 0, 49, 0, 50, - 0,181,229,164,118, 93,210, 95,122,183,248, 7, 16,123, 17, 13,159,158, 63,244, -245,233, 59,231,129,202, 11, 42,183, 38,185,195, 52, 93,146,112, 42,215,233, 75, -222,173, 75, 74,214, 71, 16,192, 64,144,134, 72,117, 7,154,230,117,106,167,222, -183,111,118,109,189, 15,195,209, 47,152, 37, 89,140, 70, 73,150, 79,156,195, 47, -236, 54, 47,169,127, 68,127,103,239, 57,110,193, 95,124,145, 38,177,116, 25, 36, -181, 45,212,118, 73,228,168,117, 93, 68,106,213,230, 85,217,215, 34,137,211, 44, - 18,188, 48, 82,178,128,228, 88,140,148, 61, 75, 58,250, 78,157,182,106,123,203, - 41,122, 25,169, 45,167,103,171, 5, 0,208, 3,207, 39,190,175,154,166,240, 35, -165,218, 26,190, 92,227,119, 90, 7,231,145,222, 37, 76,199,233, 77, 6, 63, 69, -113,248,148, 91,225,255,255, 1, 30,120, 62, 49,112, 32,231,117, 1, 11, 0, 78, -133,140, 94, 7, 8,192, 34, 17,210,152,111,157, 49, 38, 83,131,230,207, 51, 83, -180, 21,108,181,225, 4,131, 66, 69,193, 16, +// ../Source/Template/GB_emult_02a.c: +uint8_t GB_JITpackage_159 [723] = { + 40,181, 47,253, 96,167, 6, 77, 22, 0,134, 99,108, 33,224, 26, 29, 3,144,186, + 96,130, 62,240,135, 92, 91,132, 77, 96,109, 15,214,118, 93,117,137,212,134,207, +107, 96,134, 97, 24, 47, 4,100, 0, 95, 0, 97, 0,215, 66, 0, 69, 52,133,207, +170,178,213,118,115,189,193,210,221, 60, 12,231,165, 34,113, 72, 16, 26,136, 67, +226,154,151, 93,234,171,170,145, 23,230, 91,224, 70,137,183,115,201,153, 22, 14, +196, 53, 79, 28, 28,187,111,138,131,225, 42,238, 59,226,254,141,245,217,226, 22, +104,176, 58, 87,172,175,239,231, 71, 11,174,206, 9, 10,243,219,187, 59,106,226, + 64,119,152, 18, 45,229, 38, 55, 24, 48,130,193, 16, 84, 76,141,207, 40,210, 67, + 27,134, 53, 87,124, 44,162, 94,197, 82,205, 56,240,248,119,247,247,120,109,222, +186, 59,180,154, 37, 62, 20,184,237,229,255,143, 97, 46, 12, 43,200, 61, 90,109, + 51, 62,233, 42, 30,133,185,174,183, 57,181,189, 84,222,250,173,125,173, 88,245, + 45,184, 15,238,187,186,236,176, 67, 33, 65,176,160, 87,241,188, 35,219, 75,186, +123,180, 95,133, 96,245,104,189, 82,118,223,104,233,196,151, 19,103,239, 52, 52, +130,153,116,106,104, 71, 50, 25,109,168,186,224,166, 92,183,166, 28,126, 92, 59, + 93,130, 51,251,164, 20,110,242,237, 38,200, 79,127,252, 91,215,240,113, 81,232, +214,187,161,158,116,251,214,249,146, 78,223,116,193,112, 13, 6,250,144,199, 15, +223, 50, 13, 33,189, 43,214,177,245,101, 54, 76,125, 22,244,244,181,145,206, 76, +127,213,102,112, 7, 24,246,194, 94,131, 65,135, 73, 55,112,121, 89, 93,118, 77, + 70,194,169,124, 36, 28, 55, 66,233, 75,231, 37,107, 94,154,110,205, 62, 37,155, +105,233, 36, 17,218,177,120, 46, 18,154,225, 84, 72,246, 27, 73, 55,176, 93,212, +117,220, 5, 5,205, 36,111,102, 83,227,221, 35,202,187, 38,226, 70, 28, 32, 59, +233,126,176,125,226,208,239,252,246,123,200, 39,254,227, 29, 98, 32, 53,172,161, +184,187,196,199,164, 12,117,160, 81, 41, 67, 6, 13,201,136,136, 36, 73, 65, 33, + 29, 32,134, 24,228,216,213, 1, 25,129,210, 0,209,221,169,230,251, 23, 72,244, + 79,112, 83, 65,130,221,164, 33, 41, 20, 92,219,132,128, 72, 52, 54, 48, 25,192, + 3,110, 21,124, 33,164,192, 96,104,244,145, 8,109, 2,147, 17,249,228,132,112, + 7, 90,199, 95,180,229,220, 57, 60,216, 50,233,175,118, 26,181, 4, 99,194, 29, + 0,249,137,178,140,112, 96, 76,152, 48, 13,117,136, 18, 21,186,154,201,234, 10, +180,197,132,155,150,208,255,209,221,112, 26,240, 79,153, 98, 38,236,186,240,160, +109,225,165,181, 33,212, 68,163, 95,254,202,176,181, 77,234, 81,101, 16,118,182, + 12, 56,203, 6, 75,227,208, 14, 5, 70,163,148,230,236,115,237,155, 30,249,100, +191, 25, 1,154, 5,124, 11, 93,186, 22, 75, 92,251, 20,229,227,214, 88,177,220, + 99,152, 0, 68,230, 31,152,101,141,156,240, 73,195,203,192,121, 99,203,222, 54, + 24,215, 30, 50,185,124,152,221,143,228, 42, 87,111, 65,168, 82, 72, 7,162, 16, +137, 66,166, 37,116,168, 35,137, 0,201,156,100,132,244, 70,233,203,128, 38, 70, +137,182,201,155, 38,134, 10,166, 91,213, 45, 44, 4,209, 43,138,207,101, 88,149, +162,128, 9, } ; -// ../Source/JitKernels/GB_jit_kernel_apply_unop.c: -uint8_t GB_JITpackage_165 [593] = { - 40,181, 47,253, 96, 35, 5, 61, 18, 0, 22, 93, 93, 33,224,152,109, 48,163,107, -189, 86,199,234,187,104,146, 24,229,154,215,197,113, 65,104,189,223,239,147,184, - 26, 49, 70, 68, 19, 28, 2, 82, 0, 84, 0, 84, 0,153,162, 64, 48,248, 21, 90, -142,153,111, 2, 35, 62,168,142, 26,119, 89,250,141, 99, 95,237,182, 49,131, 90, -194,184,166, 6,243,119,247,159, 31,205,167, 43,226,119, 93, 58, 74,131,248,116, - 93,134,252,170,150,231,210, 29,126,130, 56, 35, 28,228, 18,159, 22, 69,230, 12, - 90,242, 98,125, 73,118,255,200,110, 18,215, 52,154,105, 90,137,141, 95,245,241, - 43, 91, 94,198,122, 58,207,171, 23,127,232,138,129,107,244,224,232, 67,215, 52, -119,119, 74, 41, 22,147,177, 95, 4,195,121, 92, 36,244, 1, 74, 24, 24,178, 59, -134, 96,174,206,208,247, 67,191,241, 21, 41,217, 53,241, 13,191,203, 58, 17,111, - 32, 94,147,190,230,213,184,185, 71,209,107,156, 36,171, 99, 7, 3,193, 16,155, -253, 40,182,158, 30, 89,173,181, 54,124,159,165,189, 44,129,115,158,103, 99, 33, - 84, 69, 45,207,108, 50, 26,207,118, 28, 70,195, 89,188,171, 91,166,147,216, 13, -165, 66,105,232, 69,124, 77,242,174, 80,142,141, 28,123,199, 74,243,109, 61, 65, - 44,247, 50, 24, 78,195, 47,124, 73, 19,232, 88,118,236,171,229,213, 82, 28,254, -190, 45, 34,148,174,104,195,175,239,227, 32, 16,206,103, 55, 45,177, 28,235,115, - 95, 13, 8, 7,121,244,118,147, 0,252,138, 39, 25,226,255,113,204,121,155,184, - 12, 85,149,235, 34,225,115,220, 40,203, 18,160, 60, 30,145,188,163, 77, 97,108, - 83, 24,180, 60,210,113, 19, 12,200,225,160,234, 59,124,189,205,171, 5,190,237, -130,122,245,178,161, 4, 88,160, 97, 65, 65, 70,102, 72,102,166, 40,133,194,112, - 96, 68,100,172,140, 30,205, 8, 57, 67, 32,184, 57, 78,131,146,204, 87, 15, 36, -249, 25, 21,187,252, 82,104,218, 26, 65,148,162,218,228,147,113, 99,132,116,172, -231,157, 14, 99,210,159, 54,212, 44, 27,213,189, 84,215,109, 34,233, 24, 15, 22, - 36, 98,194, 53, 14, 53, 16,154,105,214,196, 25,255, 39, 50,216,139, 2,160, 96, -137, 72,228, 30,125,251,186, 38, 3, 89,210,179,201,250, 97,228,150, 52,103,102, -254,165, 72,204,193,141, 72,214, 6,211, 45,141,246, 22,145,103, 37, 88,210, 22, -192, 6,234,146, 18,200,230,153, 4,178, 51, 7,141, 8, 0,167, 12,255, 35,186, - 1,160, 44, 13,159,222, 85,246, 99, 31, 98, 43,230,146,116, 7,236, 12, 11,131, - 75, 54, 87, 64,219,173,132,206, 95, 28,178, 79, 58,131,117, 15,154,155,159,153, -238, 56, 90, 1,223, 4, 98, 92,240, 42, 69, 93, 19, +// ../Source/Template/GB_emult_02b.c: +uint8_t GB_JITpackage_160 [679] = { + 40,181, 47,253, 96, 36, 6,237, 20, 0,198, 32,100, 32,224, 88,231,168, 27, 52, + 3,181, 19,212, 42, 51, 3,100, 80,118,234,119, 79,160,117,168,147,149,197,187, + 26, 49, 70,226, 12,227, 92, 0, 88, 0, 88, 0,168,219,184, 53,199, 57, 28, 89, +205, 69,145,126, 38, 16, 6,196,128,113, 48, 32,158,121,216, 39,182,168, 10, 57, +129,126, 21,102,211,104, 57,159, 27, 90,225,194,178, 94, 73, 99,211,217,158, 54, +151, 40,158, 64,238, 31, 89,127,187, 92,133,133,198,183,150,248,216,158,158,236, + 48,117, 46, 64,160,223,254,120, 67,132, 48,116, 89, 60,141,221,113,146, 23, 10, +215,160, 80, 8,166,215,113, 84,111, 9,208,254,217,252, 76,218,190,219,227,141, + 76,132, 33, 62, 83,152,219,242,255,191, 46,214,117, 17,102, 38, 27,247, 45, 75, +184,142, 55, 93,142,235,251,158,178,119,186, 25,127,149,109,143, 21,191,195,252, + 48,219,212,231,227, 50, 16, 16,131, 14,189, 90,210, 55,110, 91,208,102,178, 63, +202,160, 49,217,158,173, 12, 62,144, 12,225,235,168, 7, 78,186, 53,227,142, 43, +181,103,165,207,144, 98,167,221,132,147,124, 59,201,241,210,181, 63,227, 42,106, + 15,129,222,158, 21, 49,237,182,103,124, 45, 88,122,238, 20, 11,150, 64,128,239, +208,110,248,134,101,135,233,217,177,146,171, 15,107,241,244,117,232,225,103,100, + 71, 49,252,213,190, 97,238,198, 19,249,107, 2, 47,182, 40,214, 91,203,151, 99, +215,213,186, 90,160, 5,124,218, 7,246, 12, 38,178,161,120, 34, 28, 39, 50, 97, +219,169,232, 39,201, 86,236, 52,162,161,149, 71, 4,210,113, 42, 29, 75,164,195, +108, 40, 36,104, 1, 95,147, 22,236,239, 43,177,126,211,110, 47,216, 78, 75,208, +173,229, 30, 32,208,111,207, 72,211, 98,119, 92,251, 65, 48,179, 50, 51,231,156, + 31,217, 29, 45, 63,105,153,233, 56, 17, 9,217, 98,113,160,145,169, 51, 67, 34, + 66,162, 32, 73, 82, 74, 7, 32, 68, 96, 16,131,103, 7,169,129,118, 11,221,177, +241, 0,132,242, 5, 55, 16, 68, 60,168, 25, 16,190, 2, 5, 1, 97,224,192,206, + 4, 9, 96,113,161,180,235, 5,128,248,193,248, 24,204, 22,219, 28,233, 80,206, +128, 13,214, 19, 24,244, 77, 4, 37, 46,113, 97,118,181,208,159, 74,221, 20,225, +241,233, 57,242,214, 31, 76,194, 42,118, 53,111,113,126, 86, 8,207, 68,194,174, + 67,161,160,120, 4,217, 6, 5, 61,186,208, 20, 89,149, 25,242,196, 30, 63, 76, + 22, 26, 8, 40, 38, 26,153, 28,161, 69, 8,248,100,180,116,134, 54, 0, 33, 15, + 78, 35, 96, 13, 9,186,150, 64, 77,178,229,213, 39, 61,250,201,190, 25, 13,135, + 1, 72, 54,180,184,168, 22,116,237,115, 52,223, 93,199,250, 36,188,198, 15, 76, +150, 61, 34, 25,183,187,224,211, 6, 38, 11,224, 69, 40,191,111, 51,183,214, 50, +183, 82,184,238,199,178,202,245, 83, 16,170, 18, 18,135, 36,124, 80,113,133,116, + 2,229, 35,242,142,159, 68, 18, 82,250, 2,242,101,152,146, 3, 66,222,190, 77, +243,161,130,233, 86,225,139,148, 6,230,147, 33,121, 57, 87,165, 40,192, 3, } ; -// ../Source/JitKernels/GB_jit_kernel_build.c: -uint8_t GB_JITpackage_166 [306] = { - 40,181, 47,253, 96,191, 1, 69, 9, 0,182,145, 59, 33, 0,211, 60,238,206, 4, -253, 16,159,143,211, 70, 18,235, 45, 88,146,135, 18, 54,189,208,237,100,134, 60, -104,255,255,247,250, 23, 2, 49, 0, 50, 0, 51, 0,212,229,157,111,135,154,203, -185, 68, 47,109,126, 98,151,179,195,235,220,137,244,247, 29,169,156,153,231,208, -226,126,176,148,135,239, 88,169,248,193,252,153,186, 47,166,206,204,171, 74, 78, - 85, 21,182, 19, 47, 63,228,191,150,187,193,247, 24,211,107,240,237,213,166,201, - 34, 66,121,191,201,175,127,115,189,191,203,221, 28,227,203,165,130, 53,176, 38, - 3, 97, 96,121,100, 33,151,244,221,116, 11, 15, 9,231,112,190,237,205, 91,127, - 22, 56, 22,161,112,149,115,119,233,145, 8,143, 32,135,112,144, 45, 82, 23, 26, - 67, 50,171,134, 61, 54,204,225,218, 53, 33, 90, 86, 57, 70,163,206, 76, 14, 40, -107,250, 47, 82,202,143, 68,120, 68, 41,166, 80, 72,104,157, 57,131, 28,204,227, -254, 12,176,212,239, 14,139,154,223,213,195, 0,127,111,196, 22,188, 1, 74, 41, -221, 26, 12, 45,194,189, 27,110,106, 4,121, 21, 32,128,194,116, 99, 27,228, 68, -105, 40, 64,207, 93,216,132, 16,175, 39, 52,246, 50, 11,220, 93,107,147,160,180, -251, 57,204,125,152, 64,166, 6,205,152,103, 38,181, 13,178,154, 11, 66, 76,199, -251,113, 24,138, 42, 55, +// ../Source/Template/GB_emult_02c.c: +uint8_t GB_JITpackage_161 [862] = { + 40,181, 47,253, 96,252, 7,165, 26, 0,230,103,123, 41,208,208, 58, 7,120,178, + 4, 77, 37, 80,196, 89, 88, 54,203,209, 29,206,141,174,206, 51,178,195,217,134, +176, 82, 51, 67, 38, 95,234,246, 1, 95, 60, 48, 75, 47, 1,113, 0,108, 0,110, + 0, 96,107,149, 35,137,200,116, 38, 91,103,220,198,237,112,156, 59,139,234,112, +207,147,143, 3,150,138, 69, 98, 32, 80,177,156,210,166, 71, 92, 51,104,230, 19, +249, 81,151,195,175,126, 30, 61,146,115,117,150,222,205,197,211,185,134, 60,146, +231,133, 56,138,165, 95,174,160,247,165,191,190,129,244,217,171,219,118,212, 81, + 26, 95,106,241,113,189, 60,216,157,198, 47,200, 68, 90, 8,217, 3,131,253,162, + 89, 42, 51,123,161,175,231,181, 57,133, 34, 73, 40,148,249, 21,130, 36,127,207, +179, 55, 42,166, 68,212, 52,253,114, 14,231,129,225, 9,167, 38, 6,166,217, 36, +210,116, 36, 62, 51,171, 14, 66,144,100,183, 14,202,158,181,122, 51,238, 11,249, +243, 60,200, 96,125,198, 96,168, 69,203, 22,118,185,179,255,191, 36,113, 72, 82, +252, 36,147,199,244,125, 67, 89, 11,221,140, 63,202,181, 63,138,223, 93,126,151, +171,198, 35, 38, 85, 38, 22, 73,119, 26,181,242,151,219,149,171, 25,236,109, 65, +210, 56, 96, 79,105, 31,165,157,142,117,102,134, 65, 78,217,153, 31,205, 6,108, + 47,227,144, 95, 92,154,241,188,108,117, 10,227,177,147,211,229, 84,176,126,129, +169, 78,189,234, 20, 19,111,173,122, 88, 78,235, 25,223,202, 97, 60, 79,130, 2, +142, 72, 4, 31, 83,189,114,107,162, 4,162, 86, 63, 10,142,182,169,189,208,214, +157,134, 79,129, 83, 78,120,163,125,187, 60,191, 16,248, 27,114,247,218,243,232, +165,246,246, 11, 79, 63, 11,122,237, 99,171, 1,146,212, 33,117, 68, 34, 24, 87, + 31,143, 85,132, 77,239, 52,104, 60, 11, 16,154,235, 2,133,184, 78, 41, 31,169, +198, 65,114, 48, 77,102,126, 56, 15,153,102, 54,120, 22,184,222, 64,174, 62,172, + 83, 96,216,117,200, 36,214, 73,123, 5, 21, 69, 31,143,196, 2, 2,158, 77,175, +223,189, 48, 4,117, 8,172,153,162, 34,232,154,126,205,235,218, 0, 76,231,234, + 35,214,165,157,120,149,183, 94,143,121,117, 76, 32, 18, 41,219,153, 22,123,180, +151, 98,140, 17,219, 2,128,156,168, 97, 49,100,102, 68, 70,164, 32, 41, 72,161, +208, 24, 32,134, 24, 83,118,230, 1,162,113, 48, 71, 17,195,140, 50, 2,195, 8, +149,204,132, 37, 73,253,227, 1,153, 66,185, 49, 54,155, 73,201,154,148, 10, 58, + 22,228, 10,189,221, 92, 78,182,226,209,173, 89,232,176, 49, 84,160,111, 54,216, +207,224,156, 71,139, 38,227,195,215,100, 6,106,180,207,204, 17,173, 55, 62,234, + 96, 91, 36,244,233,223,124,103,158, 82,222, 70,230,132,121,182, 32, 98, 20,170, +209,163, 23, 85,233,127, 83,102,108, 44,109,209,230, 42,113,240,193,112,209,170, +204,216, 95,201, 48,254,179,103,131,126,164,139,116, 10,159,214,101,175,128,229, + 14,194,109,235,160,132,244, 93, 94,178,186, 71, 16, 38,242,232,146,150,252,159, +127,236,201,230,191,165,170, 3,177,113, 33,214,140,121,180, 45,126,179,133,234, +253, 59,216,149, 60, 37, 85,115,176, 81,114,202,210,222,109, 65, 92, 11,180, 57, +106,186,217, 87,105,216,176,233,229, 71,226, 55, 39,131, 0,218, 65,128, 80,143, +215,179,212,218,109, 55,200, 5, 22, 77,138, 52, 14,182,228,185,238, 49, 38,147, + 59, 44,164, 55, 5,243, 62,148,184,182,165,123, 11, 25,209, 20, 30,169,141, 2, + 90,152,202,143, 84, 2, 22, 45,100, 27,107,106,246, 36, 87,169, 82, 79,249, 3, +137,110,190,128, 10,240, 22,188, 2,221,123,118,164,161, 42,208, 70, 28,122,233, +117,164, 84,136,156,242,104,127, 42,241,253, 18,132, 26,176,254, 9,154,195, 79, +201,155, 64,208,155,166,250,131, 9,172, 6, 67,136, 12,110, 28,228, 79, 41, 13, + 52, 1, } ; -// ../Source/JitKernels/GB_jit_kernel_colscale.c: -uint8_t GB_JITpackage_167 [284] = { - 40,181, 47,253, 96,116, 1,149, 8, 0, 86, 17, 58, 21, 16,253, 42,159,251,225, - 11,144,251,177, 38, 53,212,211,160, 71, 4, 0, 16, 56, 8, 51, 0, 52, 0, 52, - 0,159,246,223, 77,225,149,246,165,159, 99,212,231,174,188,214,174,253,122,124, -157,235,242,245, 85, 33, 69,148,127, 76,228,187,165, 73,187,177, 73,186, 31,158, -127, 75,214, 43, 75, 78,151, 79, 18,224, 72,146,116,173,166,235,231, 93, 87,242, - 70,195, 40,204,225, 44, 10,227, 9,115,240, 6,189,222,101,229, 17,201,231,106, - 29,191,107,232, 13, 80,218, 38, 85, 46,231,235,249,244, 92,202,224,175, 87, 27, - 4,230,245, 13,224,214, 81,228,102,113,159,165,249, 77,154,186,237, 34, 67, 44, - 35,167, 11, 80, 16,230,248,170, 89,202,146,127,230,191,162,107, 13,255, 19, 59, - 62, 13,127,115,221,142,177,242,144,243,223,243,167,255,231, 3, 0,176, 3,144, - 39, 64,208,162, 40, 17, 36,167, 25,158,237,250,207,129,137,252,186,116,229,247, -215,100,224,255,105,187, 38,188, 10,222,123, 15,232, 0,228,137,193,119, 97,247, -121,164,181, 73, 84, 13, 0, 70,128,146,244,166,248, 34, 64, 0, 22,128,144,198, -200,117,154,152, 76, 13,154, 63,207, 76,209,230,177,213,188, 99, 80,102,184, 0, - 81, 81, 48, 4, +// ../Source/Template/GB_emult_03_template.c: +uint8_t GB_JITpackage_162 [813] = { + 40,181, 47,253, 96,114, 11, 29, 25, 0,230,162,108, 33,240, 88, 55,172, 23,242, +240,156, 43, 19, 73,155,178,241,156,116, 67,186,162, 1, 77,125, 13,140, 94,128, + 82,100, 19, 65, 19, 26, 2, 99, 0, 94, 0,101, 0,174,247, 88,186, 32, 39, 73, +234, 24, 99,145, 88,100, 15, 69, 98,225,133,144,224,152,190, 40,107,113,141,250, +106,220,102,121, 61,199, 58,202,169,227,105, 51, 38,210,253,190,167,238,202,127, +174, 70,196,235,108, 79, 93,157,132,173,147,228, 73, 68,156,182,220, 23,116,125, +157, 58,254, 49,229,213,160, 81,167,248,230,145,223,150, 60,203,223, 31, 35,241, +109,242, 84,254, 87, 49,142, 64, 92, 25, 2, 17,121,235,207, 6,223, 95,195,177, +241,245,173,177, 25,110,213, 49,234,251, 75,238,238,126, 93,172,235,210, 48,215, +184,108, 58,166, 63,159, 38,109, 75, 55, 59,238, 90,117,109,253,243,105,135,167, +188,181,175,246,253,210,106,255,113,251,184,111,202,177,237, 74,104,139,236,199, +208,158,212, 35,249,175,120, 55,126, 82, 38,123,141, 63,188,156, 76,100,249,104, +164, 71,229,215, 15, 10,143,205,194, 96, 64, 0, 20, 54,130,123,160, 75,215, 81, +143, 19,226, 46,159,120, 73,184, 86, 9,105,154,224,107,242,107,245,116,153,143, +154,250,126,212, 31, 95,206,165, 3,186,108, 62, 47,163, 17,159, 36, 94,193,194, + 13,217,110,125,106,147,182, 27, 31, 44,105, 42,225,251,153,254,251,240,146,186, +126, 91,231, 43,154,192, 74, 70, 65, 10,145,224, 39, 81,247,142,163,196,207, 74, + 86,157,226,103,245, 29,222,215,213,114,247, 2, 37,120,197, 20, 56,156, 80,199, + 41, 20,231, 8, 46,222,240,179,117,202,129,173, 64,168,217,128, 63,233, 68,134, +248, 51, 70, 57, 47, 83, 63,150,167, 83,225, 4,147,141,178,121, 91, 8,228,117, + 31,206,179,125,155,142,114,103,105,134,159, 73, 91,238,222,243,220,182,109,171, +181, 86, 85,129,160,186,124, 70,222,184, 77,236,251, 4, 58,230, 15, 58,182,161, + 87,207,166, 83, 23, 77, 15,128,162,160,113, 73,154,154, 9, 50, 74,146,146, 74, +134, 3, 96, 68,132,140,110,117, 33, 9,167,151, 96, 42,137, 38,111, 64,206,102, +218,241, 22,112, 64,157, 45,247,104,188, 12,246,168,131,224,195,239, 40,155, 48, + 20, 56, 68, 13, 56, 6,119,108, 60,234, 18, 33, 85,133,230, 12,130,161,149,109, +236, 65,141, 8, 64,136,148, 14,208, 20, 14,147, 17,203, 66,158, 29,148,139, 17, +224,186,209, 67, 22, 34,134,219,135,198, 57,186, 83, 42,214,167,228, 73,144,117, +185, 71,184, 10, 63,217,200,153, 65,212,121,205,160, 95,108, 96,135,219,132,198, +181, 13,102,204,222,225, 35, 16, 47,240,109,184,160,101, 80, 16,210,196,142, 35, +111, 25,149,134,140,246, 50, 88,131,152, 0,231,144,209, 7, 60, 39, 46,208,128, +134,115,137, 16, 50,149, 81, 65,150, 77, 8,226, 5,208,152,221,139, 17, 18,185, +185, 39,102, 52,176,112,107,200,128,240, 32, 46,137,135, 49, 95,188, 71,139,111, + 4,138,216, 12, 34, 64, 3,227,142, 14,171, 39,233,230,224,121,120,220, 51,157, +211,201,117,123, 5,224,168,161, 26,140,145,153, 61, 40,202, 8,142,108,172,241, +160, 83, 76,109,152,248,238,193,209, 1, 53,120,249, 77,151, 66,193, 60, 39,186, + 98, 9, 59, 96, 2, 77, 34,208, 23,173,206, 45,207,214, 9, 15,125,244, 0,252, +155, 8,188,193, 24, 76,128, 63,168,111,205, 70,176,253,101,232,184,176,100,171, +226, 30,176,125, 53, 98, 0, 96,148,179, 55,215,136,198,106, 74, 93,253, 57,204, +111,149,182, 94, 22,120,240, 11, 84,226,144,230, 91,189,105, 98,254, 96,242, 86, +213,229, 40,129,235,162, 33,234,248, 85, 41, 10,242, } ; -// ../Source/JitKernels/GB_jit_kernel_concat_bitmap.c: -uint8_t GB_JITpackage_168 [437] = { - 40,181, 47,253, 96,223, 2, 93, 13, 0,166, 25, 82, 33, 0,181, 30,214,170, 36, -224,202, 10, 12,199,205, 56,127, 40, 8, 73,148,196,160,183,116, 21, 3,232,184, - 83,254,255,239,245, 33, 4, 70, 0, 73, 0, 75, 0, 78,217,201,101,120, 65,149, -225,130,233,163,205, 6, 61,151,115,185, 77,237,218,228,170, 51,196,135,186,230, -237,247,253,108, 17,115,209,213,187,122,220,171,131, 27, 95,159,142,223, 17,185, -122,246,205,208, 93, 45, 6, 45,253, 30,235,239,208,125, 57,244,202,220,178, 98, -101, 89, 1,225,165, 83,206, 44,177, 60, 97, 40, 19,236,241,245,190, 11, 68,138, -115,235,228, 25,116,133,115,174,141, 3, 65,161,250,141,173,121, 58, 66,255,245, -238,198,223, 57,170, 15,241,219,171, 85, 23, 6, 69,208, 61, 72,127,248, 21, 15, -247, 70,115, 43,254,125,211,165,161, 48, 40, 84, 7,194,160, 16, 29, 91, 51,223, - 87,173,239,215,184,101, 53, 34, 14, 78, 98,169,120,223,121, 55,224,238, 30, 73, - 49,225,212,228, 19,110, 82,161, 80,202,140,112,142,139,114, 19,147,104, 13, 73, -165, 1,113,109, 94, 19, 45,163,156,227, 17, 35, 53,114,201,113,121, 93,186,156, -211, 93,138,176,201, 41, 19,137,133, 2, 3, 49,150, 98,194,169,109,107, 96,152, -101,163,151,206, 38,199,250,179, 95, 3,172,224,203,158,223,244,202, 0,254,221, -231,179, 56,122,183,195, 31,240,232, 38,252,120, 52,131,153,118,244,135, 18,190, -168,232,200,227, 10,247,232,219,251,133,180,243,238, 30, 67, 12,222,109,241,199, -243, 38, 32, 64, 68, 32,146, 33, 61, 78,194,112, 64, 65, 26,137, 20,230,154, 49, -195,103, 65, 1, 8, 68,135,254,195,137, 0, 18, 16,113, 52, 64,104, 36, 8,108, -142,115, 68, 9, 48,138,110,174,109,134,208,251, 91,168, 52,174,115,132, 13, 0, -227,217,108, 2, 29,240,220,176, 90, 7, 61,118, 44,123, 12,218,166,233, 60, 51, -121,155,166,171,245,204, 17, 2, 11, 67, 3, 56,226,225, 41,234,134, +// ../Source/Template/GB_emult_03a.c: +uint8_t GB_JITpackage_163 [724] = { + 40,181, 47,253, 96,167, 6, 85, 22, 0, 22,229,112, 40,208,208, 88, 7, 52,156, + 65,253,142, 54,163,159, 33,135, 69, 99,186, 29, 2, 37,103,215,112,170, 39,133, + 38,102,158,108,158, 3,250,131, 43, 60,210, 65,252, 2,104, 0, 97, 0,100, 0, + 10, 15,182,147,173,198, 60, 36, 42,153,233,226,139,202,150, 29,110,111,102,209, + 14,215,180,119, 71, 32,137, 72, 30, 7, 3, 17,201, 37, 43,186,179,125, 33, 43, +159,222, 63,217,237,108,253,112,167,121, 24,152, 81, 89, 47, 19, 13,223,246,104, +160,202,244,147, 65,216, 86, 73, 45,252, 53,229,169,220,110, 87,220,246,223, 39, +103, 24,135, 2,211, 59,245,234, 19, 73, 16,137, 87,243,108, 28,225,229, 16, 8, +244,128, 64, 2, 17, 70,246,146, 92,179, 27, 55,207,124,237, 96,215, 88,211,100, +149,244,116,235, 92,110, 22,178,210, 0,202,175,190,191,179,185, 82,213, 39,146, +140, 8,174, 78,118,121,225,255, 15, 65, 26, 16, 52,185, 59,217,114,165, 28, 43, +183,119, 24,254, 9,222,202,115,245, 92,203, 83,175,253,231, 54,111,210,158,179, +251,236, 54,198, 93, 5, 69, 38,201,131, 51, 75,210,247, 73,229,198,250, 78,190, + 2,180,186,163,135,156,115,174,162,119,215,228, 8,233, 29,164,209,171, 76,172, + 48,188,248, 50,241,193,114,137,240, 50, 89,187,184,192, 55, 85, 94, 27, 31,165, + 92,226,220,101, 48, 58,140, 9,240,114,234, 27,132,115, 78, 57,245, 95, 43, 53, +202, 41, 38,206, 86,107, 22, 70,234,215,214,198, 56,191,177,192, 64,195,225,176, + 71,160, 60,114, 42,146, 6,156,213,155,156,159, 43, 98,205,115,113,102,217, 75, + 51, 16,180, 1,109, 56, 28, 21,214,215,228,128,187,206,168,162,103, 26, 44, 26, +133, 8, 11,132, 21, 29,219,241,221, 61,122,151,241,238, 54, 45,163, 63,139,195, +195, 84,150, 74,124,192, 64, 44, 88, 98,131, 70, 1,227,107, 98, 29, 64,157,162, +170,224, 5,166,119,234,210,198,117,196,158,217,119,118,172, 75, 20,143, 78,188, +226, 1, 68,199,250, 14,234,144, 78,188,225,169,247, 17, 14,233, 41,175, 6, 28, + 78,162,153, 24,109,160,145,169, 82, 68,134,100, 68,130,180, 32, 37, 73, 7, 32, +134, 24,196,236,186, 1, 25, 1,165,177,241,187,214, 74, 30,161,255,130,219, 10, + 10,108,147, 6,228,210,112,101, 19, 4, 2, 97, 80, 0,103, 0, 14,216, 50,120, +193,201,129,134,141, 34,180,101, 76, 70,228,147,211,132, 59,120,244,127,162, 88, +230, 78,217,131, 71,121,158, 70, 90, 35, 51,241, 87,138,101,135, 5,123, 42,132, +111,212,121, 52, 73,217,197,108, 22, 87,216,144, 89,103,154, 5,255, 65,161,225, + 36,224,191, 2,197,204,176,243,194, 75,211,202, 99,195, 86,208,136, 22,253,250, + 55,203,158, 86,169, 87,149, 1,216,153, 50,160,133,229, 1,213,110,104,202,210, +175,127,105, 17, 31,246,141,146,208, 56, 32,183, 16,197,189, 90,234,218,231,184, +122,221,170,212,195,184,193, 78,230, 31,152,101,141,220,176, 9, 3,151, 7,224, +143,165,244,188,197,220,183,150,145,229,195,227,126, 36, 87,185,188, 5,209, 76, + 33,142,161, 24,129, 66, 38, 36,116,104, 34,169, 66, 98,154,204,233,248,217,148, + 24,165,249, 54,111,154, 24, 42,152,108, 85,141, 96, 33, 8,188, 82,120,198,132, + 85, 21, 5,119, } ; -// ../Source/JitKernels/GB_jit_kernel_concat_full.c: -uint8_t GB_JITpackage_169 [338] = { - 40,181, 47,253, 96,213, 1, 69, 10, 0, 22,212, 65, 33, 0,211, 60,238,110, 1, - 62, 58,197, 99, 92,172, 55,218, 59, 82, 80, 3,202,176,169,248, 13,119, 87, 71, -182,255,255,123,253, 11, 1, 55, 0, 57, 0, 56, 0, 25,220,185,228, 38,102, 89, - 64,171, 47,195,135,218,130,220,111,172,225, 34,117, 14,214,219,102,190,157,177, - 79,119,235,249,221,224,121, 26, 74,221,246,230,239, 86,239,179,126, 76,221,248, - 82,173,203, 41, 42, 74, 20, 21,130,169,146,222,114, 45, 56,221,160, 31, 83,240, -206, 63, 97, 72, 31,230,191, 24,147, 34, 9,109,154,252, 70,127,248,155,135,219, - 82,193,219,116, 73,168, 4,149, 84, 24, 8, 42,143, 46,228, 50,196, 27,155,240, -105,122,199,178,191,155,194,225,216,180, 50,236,170, 29,163, 17, 99,212,113,121, -113,137, 93,186,156,211, 93,114, 40,228, 90,246,128, 68, 95,136,235,148, 19,148, - 20,132, 36, 90, 70, 63, 99,202, 79, 2, 49,186, 96, 11, 57,248, 57,194, 47,248, -198, 49,126,226,193, 35,142, 83, 80, 10,225,170,165, 47,200,179,214,236,215,128, - 59,121, 96,230,119, 5,248, 79, 52,222,205, 56,224,238, 30, 61,241,224, 17,228, - 89,151,109, 90,197, 48,200,162,118,147, 62, 50, 90, 49,197, 35, 23, 0, 76, 9, - 3,128, 2, 34, 12, 16,128,181, 33,164, 33,251, 58, 35,102, 54,155, 2, 58,212, -185, 21,171,245,132, 30, 39, 22, 63, 10,218,166,249,243, 76,161, 93, 9, 0, 29, - 11,130,115, 12, 58, 49,223,220, 92,199, 11,240, 48, 7,167, 40, 24, 2, +// ../Source/Template/GB_emult_03b.c: +uint8_t GB_JITpackage_164 [679] = { + 40,181, 47,253, 96, 36, 6,237, 20, 0,150, 34,105, 33,240, 88, 23, 3,172, 29, +137,101,120, 11,237, 84,153, 57, 97, 41,208, 20, 2,110,157,229, 84, 90, 15, 58, +128, 5,158,129,148,129,135, 98, 0, 92, 0, 95, 0,148,129,231,129,201, 62,107, +202, 86,219,204,245, 14, 69, 55,115, 81,228, 62, 17,135,194, 97,176, 48, 20, 14, +199,188,235, 83, 95, 83,125, 60,227,158, 10,119,105,188,155, 79, 13, 71,161, 33, +174, 57,194,208,216,125, 75,141,149, 45, 78,133, 4,171,115,197,154,254, 35,235, + 69,177, 4,175,239,185,147, 54, 60,157, 6, 50,238,219, 29,103,132, 16,133,110, +139,229,104, 59, 26, 57,129, 96, 13, 8,132, 23,173, 40,214, 92,241,241, 88,122, + 29, 69, 53, 99,128,246,239,238,111,242,218,188, 57,206,192, 66, 23,226, 43,133, +219, 86,254,255,150,165,178,172,108,110,210,106,155, 49, 73,215,241, 37,203,159, +209,235,122,155,203,237,149,121,235,167,246,181, 99,213,183,225,126,184,239,233, +211, 97, 21,178,195,192,134, 94,197,220, 25,217, 94,240,110,210,126,147,129,213, +164,245,110,159, 20, 95,231, 48,221, 6, 18,233,104,132,180,162,233,129,143,114, +221,186,227,176,118,140,244, 25,210,235,180,147,208,200,183,143, 26, 39, 93,251, +246,111, 93, 69,237,160,207,173,119, 69, 77,187,237, 91,231, 11,146,190,187,132, + 66, 37, 16,232, 55,180, 23,190, 93,152, 97,122,119,172,100,234,187,172, 88,126, + 54,244,244, 49,178,163,151,254,170,205,225,238,198,146,124, 46,129, 1,150,181, +178, 86,224,253, 72, 11,248,188,142,235,152, 11, 68, 51,233, 64, 40, 13, 93,167, + 37,125, 59, 14,127,162,184,207,209,173,215, 57, 72,134,163, 56, 32,143,110, 67, +225, 84, 32,221, 69, 51, 33,193, 11,248, 44,121, 65,251, 61, 37,214,111,218,239, + 5,219, 41,254,252,210,111,191,244,129,140,251,118,108, 52,239,245,198, 41,190, +118,131, 96, 98, 24, 51,231,156, 31,105, 59,138, 3,104,160,145,165, 66, 72,134, +132, 38, 73, 10,146, 66, 26, 3, 48, 68,128, 16,187,243,233,128,206,182,180,131, +160,120,130, 13,132, 34, 66,203, 64,248, 13,224,226,195,216, 0,194,180,176, 44, +119,225, 35, 48, 62, 14,102, 19,108,134,116, 40,101,192, 6,235, 1, 52,125, 99, + 64,133, 73, 92,153,186, 90,225,239, 74,222, 22,213,219,167,112,127, 12, 21,190, +230,105,184,197,253,156, 48, 60,115, 9, 57, 14,133, 2,226, 33,144, 61,104,211, + 2,133, 38, 51,244,140,115,253, 27, 44,111,161,161,152,106,228,211, 8, 45, 49, +192, 71,195, 37, 50, 90, 64, 22,162, 32,109, 55, 52,101,233,215, 95,218,136, 15, +251, 70, 41, 20, 28,128, 92,104,113, 89, 45,227,154,231,104,224,154,213, 82,143, +113, 3,147,101,143, 72,166, 54,174,177,169,129, 73, 67,241, 99, 41,115,222,182, +183,173,101,190,124,120,156,138,100,133,235,167, 12, 84, 74, 36,188,144,232, 65, +197, 21,233, 4,250, 71, 84,199,173, 76,194, 30,188, 45,149, 26,160, 97,155, 55, +205,204, 31, 76,182,170, 66,160, 28, 4, 62, 33, 74, 15, 92,149,162,151, 9, +} ; + +// ../Source/Template/GB_emult_03c.c: +uint8_t GB_JITpackage_165 [861] = { + 40,181, 47,253, 96,255, 7,157, 26, 0, 38,232,123, 41,208,208, 58, 7,120,178, + 4,205, 2, 45,226, 44, 44,155,229,232, 14,231, 70, 87,231, 25,185,241, 88,158, + 91, 64,159,226, 22,110,154,246, 1, 95, 60, 48, 75, 47, 1,114, 0,109, 0,111, + 0,146,198, 95,103,150, 35,137,200,116, 38, 90,103,220,198,237,112,156, 57, 11, +235,240,174,147,143, 3,150,138, 69, 98, 32, 80,177,156,202,166, 71,108, 51,106, +230, 19,249, 17,151, 65,207,126, 30, 61,146, 51,185,176,222,205,197,211,217,134, + 60,210,237,112,196, 81, 26,223, 26,226, 99,251,217,117,161,141, 18, 86, 47, 91, +208,251,214,203,107, 95, 61,246,175, 57,141, 79,200, 68, 90, 8,216, 3,115,253, +146, 13, 84,104,238, 66, 94,211,185, 57,133, 34, 73, 40,148,249, 21,130, 36,123, +207,180, 55, 44,166, 68,212, 52,253,114, 14,231,129,225, 9,167, 40, 6,174,216, + 36,210,116, 36, 62, 20,171, 14, 66,144, 96,183, 14,194,158, 51,123, 51,238, 11, +249, 51, 61,200,159,125,198, 31,152, 85,213,128, 6,114,185,177,255,191, 36,113, + 72,210, 36,202,127,130,205,227,250,190,161,156,133,110,198, 31,101,219, 94,197, +111, 46,159,203, 86,227,241,146, 42, 19,139,164,185,172,134,242,151,219,118,179, +249,107,109, 33,218,215,116,134,143, 51,156,126,117,104,134, 65, 82,217,161, 31, +205,230,235, 46,227,144, 95,220,154, 49,149, 97,117, 10,227,145,155,211, 39, 85, +176,126,129,169, 94,187,234, 20, 19,239,204,118,120, 82,235, 25, 95,187, 97, 60, + 83,130, 2,142, 72, 4, 31, 83,189,114,107,162, 4, 98,102,189,250,141,180,169, +187,144,214, 92,134, 79,125,116, 78, 88,171,125,185, 76,189,208,247, 11,110,239, +186,235,234,173,225, 67, 15,124,245, 44,234, 13, 31,154, 13,146,212, 33,117, 68, + 34,215,102, 31,143, 86,116, 77,239, 52,104, 60, 11, 16,154, 57, 65, 32,182, 84, +202, 71, 91, 53, 14,146,115,105, 50,244,195,121,192, 52,180,193,179,176,181,246, +109,246, 97,157,226,186,230, 33, 19,121, 43,218, 41,123, 5, 21, 69, 31,143,188, + 2, 2,142, 77,183,222, 59, 16, 4,117,232,179, 57,130,228,116, 73,231,220, 0, + 76,223,236, 35,214,103, 56,113, 59,111,221, 30,243,234,151, 64, 36, 82, 97,135, +134,215, 99,120, 41,198, 24,175,128,156,168, 97,177, 99,102, 68, 70, 68, 65, 82, +144,130, 66, 58, 48,132, 24, 99,236,234, 1,226, 97,170, 71, 17,195,140, 50, 2, + 40, 16, 27,153, 9, 75,146,250,199, 3,153, 66,185, 16,137, 57, 41,139, 38, 21, + 64, 15, 66, 66,133, 10,110,110, 90,146,156, 28,231,251,215,120,220,209, 64,111, +222,214,246, 57,228, 22, 40,195,194,151, 78,230, 20,222, 25,207,190,110,136,162, + 43,161, 5, 72,159,130, 77, 51,243, 80,150,144, 68, 55, 91,206, 49,138, 98,254, +104,136,170,240,223,228,179,108,156, 89,146,230, 74, 27,250, 24,145,104,209,249, +243,117,133,141,159,129,147,254, 17,158, 53, 67,222,218,207, 86,202, 80,131,149, +180,194, 5,116, 26, 71,194, 46,240,179,186,163, 32, 51,221,113,145, 6,248,215, +165,228,147, 93,159,126,170,209, 97,115, 9, 89,187,120, 29,237,203, 86, 1,165, +254,159,179, 16, 67,128,170, 88,216, 46,209,203, 98, 45,141, 71,124, 44,141,101, + 54,103,161, 5, 4,246,153, 30,247,163,128, 13,231, 20, 0, 29,228, 30,202,127, +113, 22,230,229, 54, 95,142,126,197,199, 73, 43,226, 86, 68,186, 7, 35, 25,229, +254,161,168,153, 49,191, 86,233,223,144,239,111,101,228,125,120,240,247, 8,228, +193,196,127, 18,224, 1,250,198,182,108,169,135, 41,243, 92, 25,137,210,238, 63, +210,142, 8,238, 16, 91, 44,213,208,123, 74, 53, 26,241, 13,169,239, 32, 66, 15, + 32, 37, 33,114, 26,141,148,246,186,105, 1, 88,208,226, 67, 43, 76,169, 5,154, + 16,201,166,233, 82,193,180, 42, 85,142,148, 66,240,209,104,202,140,167,170, 5, + 78, } ; -// ../Source/JitKernels/GB_jit_kernel_concat_sparse.c: -uint8_t GB_JITpackage_170 [338] = { - 40,181, 47,253, 96,216, 1, 69, 10, 0,214, 19, 65, 33, 16,209, 60,230,145, 11, -255,252,199,116, 19, 23,100,157,136, 16, 87, 27,187,143, 61, 76, 82,211, 23, 77, -117, 68, 0, 0, 85, 53, 3, 54, 0, 56, 0, 56, 0, 59,172,224,205,103,165, 23, -229,137, 87, 43,234,111,108,169,178,114, 12,214,251, 86,220,175,135, 59, 99,167, -158,223, 13, 63,234, 43,142,118, 95, 46,135,156, 5, 63,235,167,216,141, 63, 75, - 41, 92,146, 36, 36, 73, 1, 19,244, 30,119, 69,234, 6,253, 88,130,119,254,110, - 1,253,152,159,195, 23, 4, 73,100, 81,247, 23,253,227,107, 62,110,111,130, 53, - 7, 65,234,147, 48, 9, 38,168, 48, 16, 76,254,112,142,207, 17, 95,110,194, 35, -234, 25, 47,126, 81, 10,187, 20,118, 91, 48,164,124, 50, 62, 63,159,216,167, 79, - 74,221, 39,166,114, 60,195, 28,143, 39, 28,177,165,147,138,179, 18,157, 72,134, - 85,159,177,228,187,128,124, 62,124, 29, 23, 67, 71,248,135, 57, 41,136, 2, 82, -110,228,193,159, 90,173,170,122, 84, 75,233,172, 45,251, 53,128,139, 64,177,242, -219, 2,252, 59, 11,200,101, 28,112,119,151, 26,121,240,199,113,108,195,180,204, - 90, 85,163, 89,181, 27,173, 28,151,229,208,172, 70, 24, 0, 75,128,226,212, 53, - 0, 80, 65,196, 1, 2,176, 90,132, 52,174,239, 17,182, 0, 96,204,108, 54, 5, -116,168,115, 43, 86,235, 9, 61, 78, 44,123, 20,180, 77,243,231,129, 41,154, 81, - 24,130,198,172,229, 25,131, 58, 80, 24,122, 1,142,204,225, 41, 10,134, +// ../Source/Template/GB_emult_04_template.c: +uint8_t GB_JITpackage_166 [1145] = { + 40,181, 47,253, 96, 64, 13,125, 35, 0,230, 48,149, 40,192,146,213, 49,170,170, + 18, 27, 13, 54,104, 34,139, 59,118,246, 95,163, 8,205, 93,232,226, 81, 78, 70, +141,153, 81,163,192,187,167,223, 85, 20, 4,217, 96, 6,139, 0,135, 0,141, 0, + 86,255,110,251,219,198, 27,135,250, 26,127, 74, 22,202,101,114,183,204,230,120, +204,119, 49, 8,239,238,106, 14,147,171,187,155,225,205,132, 66,211,161,104, 87, +227,187,250,122,174,247,134,129, 61,231, 56,130,139,229, 50, 57, 24,176, 92, 78, +101,211,161,198, 26, 86,243,142,109,123, 34,140, 29, 94,113, 35,183,108, 63, 6, +204,117, 55, 30, 93, 18,199,141, 64,149,108, 69, 27,127, 46,175,117,246,241,240, +187,185, 99,171, 92,253,217,172, 79, 15,101,132, 18,159, 81,160, 9,243,152,187, + 45,151, 69,119,215, 2, 75,221,220, 72,116,171,100,120,165, 34, 77, 42,149,115, + 78, 41,165,172,206, 65, 77, 28, 86,167, 2,219, 94,247, 61,250, 28,254,126,222, +217,236,242,159,247,120,144,231, 81, 2, 2, 19, 64,117,106, 78,199, 60,214,117, + 69,108, 35, 65,173, 10,194, 90, 39,101,197,121,222,231,106,238, 74,201,185, 28, +106,244, 52,174,241,183,195, 27, 43,194, 99, 65, 84,204,225, 1,116, 53, 16, 14, +144,178,250, 71, 97, 18,159,249, 39,126,103,248,219,250,126,145,239,138,176, 59, +252,173, 59, 47,155, 80, 30,198, 67,250,125, 49,254,255,146,244, 33, 73,148,143, +165,215,246,247, 27,237,108,244,109,253,142,141,175, 40, 22,210,135, 68,146, 80, +221,242,204, 68, 13,192, 12,139,108,215,161, 77,151, 27,105,119,203,244,169, 73, +107,246,126,219,174,162, 81,247,207, 3,157,187, 28,103,111, 69, 24,246,203, 26, +222,215,248,244,247,187,219,198, 11, 52,111,219,151, 86,191, 60,242,217,173,179, +222,157,196,114, 33,140, 14,215,208,173, 25,230, 52,173, 91,127, 24, 20,194,120, +230, 74, 97,114,115,199, 22,253,122, 96,221, 93, 78,131,226,192,124,179,145,136, +248,194,169,105,162,148, 98,188,109, 89, 97, 66, 51, 45, 48,160,176, 41,225,193, +174, 14,229,204, 10,113, 69,154, 69, 94, 86, 67,218,210, 25,146, 20, 34,133, 72, + 36, 51, 31, 98,142, 57,189,195,177, 46,135, 9, 75,202, 15,140,135,216, 90,158, +184,153,150,166,118,153, 95,204, 41, 31,161, 68, 42, 3,226,169,122,230,255,160, +228,116,169,217,187,117,135, 15, 2,242,171, 71,135,154,102, 49, 28, 13, 7,163, +240, 37,240, 19,167,199, 42, 41,200,129, 93,113,130,104,182, 56, 78, 56,205,175, + 62, 7, 36,144,130,185, 83,243, 60, 60,132, 16, 78,173,187,149,230, 67,154,167, +207, 78,213, 68,196, 26, 59, 21,179, 24, 30,121, 70,117, 42,116,184,209,233,180, + 54, 72,134,140,132,234,175,126, 17,128,252,168, 49, 69,102,106, 70, 68, 68, 82, +144, 36, 25,214, 96, 68,100,204,170,115, 50, 97,164,168, 48, 14, 98,204, 40, 1, + 22,136, 8, 6,101,164, 48, 5,245,109, 9,106,144,142,115, 34, 11,225,111,124, +133,220,241,206, 10,191, 70,219,142, 93,178, 55,237,127,204,101, 51,103,114, 59, + 64, 53,252, 54,241, 56,219,113, 36, 92, 14, 64,217,180,237,255, 10,223,227,143, + 72, 2,255, 46,133, 12, 82,203,188,107, 8, 14,193,166, 20,233, 47, 43, 56, 80, + 54, 34,193, 28,139,205,208,132,109,204, 90,213, 27,252,147,240,195,160, 83,101, +227,134,215,248,118,199,202,138, 84,112,179,211,196,183,229,138, 71, 50,198, 16, + 90, 68, 65,201, 72,222,254, 69,238,148,254,141,177, 45,175,174, 76, 2,228,101, + 10,159, 93,239,235,197,194, 41,252,155,125,253, 60,240,117, 33, 68,211,173,236, +236, 54, 61, 42,205,116, 28,226, 72, 1, 42, 60, 87,208, 8, 87,197,214,110, 97, +206,150,112,126, 61, 3, 23, 3, 66,134,213, 1, 84,208, 48,252,164,111, 98, 91, +128,135, 1, 78, 88,255,154, 89, 70, 55,217,216,181, 97, 45, 6, 45,231,176,248, +132, 80,190, 81,142,181,108,179,209,109,166,231,113, 29, 47,239,155,219,221, 1, +153,147,156, 99,112, 64, 48,220, 67,104, 18, 27,148, 44, 28, 25,203,125,178,113, +166, 4, 54,165,189,214,203,125,214,235,121,217,238, 51, 78,106,251, 34,172,155, + 4,180,243, 84, 0,250,173,210,165, 52, 44,196,134,199,153,176,136,105, 69,250, + 51, 17,144,115,163,129, 21, 58,106,105,244,207,124, 28,225, 98,179,194,201,152, +221,132,116,106,248,118, 56, 33,240, 59,108, 94,102, 94,130,117, 28,187, 43,209, +106,203, 24,200,107, 69, 78, 86,132,142,205, 80, 10, 80,251,225,144, 24,174,139, +154,200,173,173,124, 7, 42,195, 60, 70, 45, 50,239, 69, 14,234,175,227, 52,103, +143, 50,104, 81,223, 0,240, 18,147,164, 50,147,217,138, 97, 81, 83, 44,214, 80, +250,131, 12, 54, 80,118, 88,214,111,137,156, 65, 44,135,164,225,134,184, 15,235, + 93, 80,207, 38,150,151,232, 65, 43, 19, 68, 95,141,188, 33,200, 98, 53,200,221, +159,103, 8,210,135,192,111, 28, 27,108,181, 59,243, 68,164, 40, 43,232,188,139, + 57, 68,126, 20, 90, 54,107,161,216, 25,238,161, 16,211,182, 75, 67, 83,250,137, + 35,151,229,166,201,170,167,215, 79,154,233,208,242,127, 46,143,210, 75,241,142, +142,170, 7,215, 4, } ; -// ../Source/JitKernels/GB_jit_kernel_convert_s2b.c: -uint8_t GB_JITpackage_171 [335] = { - 40,181, 47,253, 96,206, 1, 45, 10, 0,198, 83, 65, 33, 16,211, 54,230,159,197, -126, 20,224,167,145, 8,166,205, 0,224, 93,178, 13,160,170, 37, 84, 45,226,232, - 30, 17, 1, 0,168,210, 25, 55, 0, 55, 0, 55, 0, 29,112,147, 24,220, 57,229, - 42,102,129,217,211, 11, 3,247, 27,103,184,153, 61,204,198, 20, 39,183,127,169, -189, 92,186, 27,238, 68,169, 74,187,245,107, 70,242, 90,241, 71,253, 23,187,113, -104,173,133, 83,212,148, 40, 42, 83, 37, 61,120,189, 92,221,160, 31, 87,240, 30, -255, 99, 72, 95,142,127, 49, 38, 73, 20,218,244,189, 70,127,249,155,151, 27,180, -224,205, 69,177, 58, 37, 84,130, 74, 42, 12, 4,149, 71, 23,114, 90, 98,141,167, -240,169,122, 88,181, 50,108, 97, 59, 70, 99,206,168,227, 52,116,138,157,146, 37, -182,213,105,118,119,215,178, 7, 36,202,148, 83, 51,221,252,200,169,208, 68,203, - 18, 63,226,202,127,129, 25,133,216,131, 60,147,142,240, 16,223, 41, 8,115,126, -230,193, 35,142,187, 18, 9, 8,103, 45, 61,234,204,126, 13,184,211,111, 79,204, -152,223, 22,224,255,101,196, 59,226,128,187,251,244,204,131, 71,144,103, 93,182, -105,214,170, 56,219,109, 87,228,129, 93,143,237,114,120, 22, 0, 73,128,194,212, -205, 28,194, 0, 1, 88, 27, 66, 26,203,247, 88, 99, 0, 37,102,230, 71, 5,240, - 79, 56,159,151,245,204,199,211, 30,202,168,183,181,196,166,105, 67,130, 41, 90, -116, 67,202, 97, 1,224, 13,131, 66,100,186, 68, 81,224, 6, +// ../Source/Template/GB_emult_08_meta.c: +uint8_t GB_JITpackage_167 [1227] = { + 40,181, 47,253, 96, 76, 17, 13, 38, 0, 22, 48,146, 40,192, 84,177, 14,228,188, +192,235, 47, 55, 9, 10, 19,224, 5,136,246,246,124,231,130, 65,122, 44,194, 36, +131, 16, 68,100, 55, 93, 56,184,174,162, 96,139, 2, 46,136, 0,124, 0,138, 0, +241,151,110,115,161,137,143,233, 47, 93,139, 59,119,220,102,167,201, 69,194, 88, +122, 94,146,123,207,220,166, 25,205,181, 49,142,165,113,237,139,118, 44, 26, 17, + 30, 9,235,143,219,184, 63,199,121,114,208,207, 53,237,189,130,128,185, 96, 44, + 11, 7, 23,204, 41, 87,244, 10,166, 31, 50,226,210,123,104,102,187, 81,208, 43, +212,235,192,201,201, 59,145,105,124, 37, 71,117,166, 29, 53, 1,120,136, 14,211, + 43,176, 64,122,154,233,215,102,199, 96, 85,254,160,177,156,220,159,145,185,183, +138,225, 82,101,173,219,186,130, 19, 55, 48,152, 88, 12, 12, 2, 88,135, 51, 24, +140, 96,235,240,214, 93, 56,107, 29,238,219, 26, 71,165, 88,246, 69, 53,252, 75, +177, 7,150,249, 93,169,196, 47, 77,215,230,171, 63,230, 37,251,149, 30, 55,189, +185,246, 51,123,129, 92, 59,220,117, 60,119,214, 43,153,214, 56, 95,207,182, 30, +183,197,158,145, 40,214,244,190, 61, 65, 26,203,235, 33,173,218, 99,122, 76,103, +142,142,201,206,184, 54,238, 48, 76,214,158,249, 21, 77,235,178,247,149,239, 51, + 91,235, 25,167,111,151,175,238,230, 76, 67,253, 33,231,171,188, 14, 43,239,149, + 49, 4, 84, 69, 26,227, 69,132, 16, 66, 8, 33,132, 16, 66, 8, 33,132, 16,194, +140, 98,181,225,148, 23, 93,163, 89,107, 53,214,186,147, 33,113,207,139, 32, 14, +228,228,150,169,181,161, 62,207, 67,125, 54,158, 13,138,138,226, 84,239, 21,166, +213,235,108, 46, 54, 22, 21,136, 83,145, 53,150,213,214, 62, 40,181, 44,134, 57, + 27,206, 61, 88,222, 53,231,222,243, 69,111,198,125, 11,158,171, 4,133, 92,171, +189,166,248, 10,204,205, 17, 48,165,128, 55,214,105, 87,165, 2, 31,206,243,128, +168, 15, 71, 66,102, 53,227, 75,179, 10,210,255,159, 76, 70, 66,214, 3,147, 73, +137, 38, 47,122,123,235,234, 51,152,128, 75,234, 44, 53,110,235,124, 81,205, 90, + 91, 8, 31,100, 40,157,115,226,166,105,154, 32,132,240,189,247,178,173,240, 85, + 59, 48, 16, 1, 76,209, 65,159, 13, 69, 61,104, 33,134,253, 80,142,185, 70, 19, + 29,243, 71,225, 1,117, 50,226,166,150, 60, 88, 50,133, 18, 18, 61, 3, 17,157, + 18,133, 80,106, 89,115,198,143, 68,207,232,101,123,174, 90,132, 98,128,107, 52, + 49, 70, 10,198, 5, 64,244, 92, 27,247,229, 64, 83,198, 7, 68,121, 34,198, 84, + 89, 80,175,242,192,146, 66, 66,242,232,218, 42,198, 24, 99,140, 1,129, 53,168, + 33, 93, 68, 35, 35, 35, 73, 65, 10, 82,105, 13, 17, 9, 49,136, 66,201,108, 30, +162,160, 32,151, 81, 28,130,160, 64, 10,144, 0, 33,100,196, 34,145,136, 68,154, +130,130, 74, 27,214, 16, 0, 57, 67, 49,141,123,136, 84, 60,225,163,214,162, 92, +229, 38, 22,167,144,252,213,251,111, 87, 28, 15, 1,241, 5,142, 33, 45, 10, 87, + 40, 15, 87,161,186,163,154, 4,242,119,101, 12,114, 22,243, 95,169, 34, 87, 48, + 24,201, 73, 77, 97, 73, 50,104, 37,128,230,218,191,210,110,106,199,210,156,150, + 64,161,165, 20, 78,228,108,107,124, 5, 52,231, 27, 37,198, 37,152,204, 26,154, +162,100,159,130,124,165,182, 26,192,194,205,241, 86, 89, 19, 25, 7,108,131, 63, +109,165,237,121,222,203,179, 76, 69, 58,209,151,124,163, 67,101,250,154,153,182, +246,160,110, 6, 50,189, 46,175,253,252, 44,128,215,243,225,255, 38, 0, 99,104, + 51,154,125,155,153, 43,140, 74, 83, 12,169, 84, 69, 85,190,147,242,115, 52,221, + 8, 80, 81, 82,121,127,201,146, 31, 18,254, 69, 86, 96,166, 16, 34,172, 62,163, +203, 99, 2, 64,136, 28, 71,112,163, 51,107,201, 36,119, 58,215, 93, 60,154,223, + 80,121,205,138,188,124, 39, 10,153, 94, 54,167,246,194, 77,233, 92,132, 37,232, +137,134,214,190, 34,147,238, 41, 39,246, 36, 27, 41,199,133,234, 8,227,177, 65, +150, 18,129,121,129,176, 64, 20,205, 10,236,228,118,208, 88, 49,206, 21,192,149, + 77, 14,217, 80, 72,107,145, 80, 14, 91, 89, 64,184, 10,254,169,205, 45,184, 0, +202, 59,150,241,196, 44,196, 46, 94,152,229, 22,191,185,130, 69,208, 92, 78,198, + 88,206,144,211,210,219, 97,139,194, 37, 11, 8,173,192,251,145, 5,145,130, 16, + 1, 32,194, 9,135, 77,213,155, 60,134,226, 46,153,109,187,147, 4, 56,207,179, + 66,172,186,153, 0, 23,229, 96, 20,101, 97, 49, 44,229,254,196,142,207,241,145, + 27,144,227,125, 72, 67, 51,168,106,168,216, 73,192,105,128, 94,235,219, 82,168, +196, 73,201, 98,255,225,201, 92,208,122,166,219,106, 25,245, 18,157, 40,211, 55, +102, 67,105,158,243, 33,171,242, 35, 10,129, 20,184,107,127,143,226, 99,121, 98, + 69, 26, 89,234,151,102,194, 31, 48, 81,128,244,233, 97,223,174,143, 72,106, 90, + 47,172,138,146, 69, 29, 49, 76,116,228, 5, 12,176, 64,233,160, 53, 28,179,187, + 29, 77,238,136,177,102,139, 82, 68, 25,185, 67,132,161, 64,153, 66,140, 45, 13, +199, 29, 17, 96,106, 26, 50, 65, 5,145, 36,133,118,185, 31, 79,251,176, 55,233, +209, 74,157, 14,103,194,253,200,156,108, 9,125,244,179,157,166,100,129,174,233, +206,143, 62, 3,103,152,126, 39, 3,144,162,165, 72, 86,163,135,245,163, 50, 39, + 53, 83, 69, 35, 41, 18,126,211,124,171,204,132,245,225,198, 61,228,120, 20,193, + 72,227, 36,165, 90,214, 9, } ; -// ../Source/JitKernels/GB_jit_kernel_emult_02.c: -uint8_t GB_JITpackage_172 [271] = { - 40,181, 47,253, 96, 97, 1, 45, 8, 0, 6,144, 55, 33, 16,241, 54,150, 46, 98, -178,161,216,199,117, 98,249, 20, 72, 21,123, 4,226,228,191,236, 72,132,112, 52, - 30, 51, 2, 0, 80, 5, 51, 45, 0, 46, 0, 46, 0, 26,171,158,212,222,200,253, -206, 37, 55, 93,103, 40, 30, 93, 1,181,136,132, 35,112,176,188,250,104,165,240, - 14, 75,204,227,240, 69,253, 23,188,179, 5, 95,204,167,105, 74,211, 20, 10, 8, -157,188, 70, 63,249,155,147, 27,172,228,205,195,208,122, 68,168, 84,149, 10, 3, -170, 58,244, 61, 30,145, 89,227, 41,156, 90,223,128, 59,131,201,157, 71,156,205, - 46, 56,122, 1, 16, 92, 41,220,101, 17,199,133,179,235,177, 93, 13,207,236,213, - 50, 12,119, 11, 6,190,216,164,104,149, 30,252,188,209,122,165, 63, 83,242, 22, -127,178,144,158, 20,255,203,153, 36, 9,115,118,166,193, 33,142,187, 44, 43,194, -225,171,177,199, 69, 93,238,215,128,143,254,246,194, 17,243, 27, 3,252, 39,101, -248,137, 57,224,238, 62, 57,211,224,208,227, 90,167,109, 1, 12, 0, 73, 69,206, - 46, 2, 4, 96, 1, 8,105,244, 91,167,137,201,212,160,249,243,204, 20,109, 11, - 91,205, 21, 6, 49,255,124,181,162,192, 13, +// ../Source/Template/GB_emult_08_template.c: +uint8_t GB_JITpackage_168 [2007] = { + 40,181, 47,253, 96,211, 38,109, 62, 0,218, 66, 84, 12, 40,160, 86, 85, 29,212, +135,191, 16,232,230,237, 70,186,205, 81,153, 46,218, 99, 61,183,227,127,108,161, +150,166,253,193,178,209,186, 28, 47,199,139,242, 58,120, 6,183, 0,178, 0,191, + 0, 19,143, 96,153,223,117, 74,252,213,117,109,214, 90,212,175,243,184,231,205, +181, 31,178, 23,120,115,249, 56,215, 15,127, 34,207, 95,118, 42, 68, 27,103,237, +217,214,227,182,219,173, 76, 99,201,121,214,181, 15,184,243,231,117,246,170, 96, + 42,141,165, 57, 77,122,240,214,237, 25,154,185,246, 86, 97,105, 92, 91,155, 29, + 75, 71,132, 70,181,181,232, 54,238,141,227,204,133,204,141, 83, 10, 79, 29,104, + 48, 26,139, 66, 6,163,249,164, 73,167,240, 20,201,136, 87,240, 35, 46,219,110, +130, 78,125, 96, 39,114,158,188, 19,214,167,243,252, 62,149,219,222,136,187, 52, +190,210,195,199,243,215,107,115, 36,127,240, 0,252,218,123, 28,174, 83,177,160, +130,155,235, 86,103, 73,189,174, 51,182,128,193, 50,253,186,198,226,196, 47,151, +138,229,114, 9,248, 83,197, 46, 9,111,178, 47,151,177,238,171,180, 41,149,191, +236, 66,228,245, 4, 26,190,205, 92,231, 73, 87,123, 16,232,180,161,111,115, 93, +103, 89, 86,217,221, 3, 2,170,106, 39,158, 90,111,191, 54,244, 81,158,221,159, +191,218,100,103, 92,231, 23,142, 39,151, 71,244,222, 92,187,107,234,117,243,185, + 71, 12,199,158,123,207,173, 3, 76, 70,195,240, 83,250,133,184,144,144, 39,187, + 60,179,169,167, 77,203, 22,110,109,150,203,221, 73,213, 99, 65,117,248,205,101, + 57,167,145, 88, 74,109, 8, 84,191, 99,169,125, 55,227,186, 53,205,186,206, 94, +165,246,146,121,179,236, 94,231, 45,198, 40,251,246, 97, 75, 83,109, 4,221,135, +187, 79,123, 95,121,156,233,135,251,110, 85,158,106, 26, 82, 39,150,173, 77,138, +127, 3,159, 56,248, 11, 2,225,115,110,156,125,120,158,211, 38, 5,146,177, 84, + 85, 5,189,143,151, 64,106, 66,234,208,131,161,185,213,254,234,204,147,165,218, + 90,212, 28,104, 96, 0,100,228,227, 30,104,131,243,249,192,140,193,229, 85, 32, +255,229,137, 80,150,116,193,218, 24,117,121, 38, 85, 68,155,158,225,124, 32,133, + 6,168,195,225,225, 8,140,156,226, 46,233, 23, 70, 17, 39,190,185, 8,151, 71, + 40,145,141, 3,158, 34,108, 57,146,247,181,221,175,197, 87, 90,173, 49,237,148, +203, 87, 43,111,123,246,242, 39,210, 67,181,233,148,177,124,179,145,176,174, 51, +116,106,109,246,140, 37,109,168, 64, 62,158,241,236,128,190,121,198,119,134, 70, +158, 49,132,132,107,179, 55,175,134,123,203, 29, 98, 96,112,135,134, 99,190,145, + 50,148, 54, 59, 89, 71,155,212,244,219,154,211, 2,149, 74,202,230,215,116, 73, + 84, 98,215, 98, 24,158,152,199,115,193,179, 1,158,186,222, 32,208,184,155,203, +179, 61,215,180,193,209,240,160,224,124, 54,160,198, 7,251, 84, 96, 30, 26,160, + 85, 1,239,237,163, 90,109,141, 82,121,241,129, 30, 44, 3,163,195,193,216,224, + 92, 96,160, 10, 11, 41,186,196, 83, 68,117,103,199,221, 89,109,132,231,181,198, +183, 97,156, 14,163,236,117,125,177, 38, 41, 45, 92, 27, 55,127, 56,149,213,206, +236, 89,135, 24, 99, 22, 99,150,197, 24, 99,204, 98,140, 49,198, 24, 99,140, 49, +198, 24, 99,164,102,140, 49, 74, 58,125,130, 35,114, 34,182,222,142,130,242, 20, +239,212,172,192,252, 1,131, 19,111,178,113,237, 77,230, 43, 51,198,234,172, 80, +102, 12, 40,232, 65, 73,227,225,214, 69, 58, 29, 14, 12,136,217, 44,189, 98,125, +228, 16, 1,130, 28,168,242,211,146, 41,166, 68, 2, 17, 73,146, 20, 10,141, 1, + 18, 41,132,225, 88,162, 75, 73,183, 30,194,208, 32,141, 82, 24, 69, 40, 33, 68, + 64, 8, 35, 70, 48, 68, 68, 2, 17, 17,145, 72, 70, 68,226, 54, 17,130,164,197, +182,136, 32,101, 25,125,169,170,105,114,197,117, 82,179, 78,253,201,110,179,160, +129, 43, 1,193,139, 46,163,195, 24, 76,221,104,216,149,111,255, 9,245, 96,122, + 91, 26,106,237,230,108,129, 67,183, 89, 26,163, 42,181, 32, 41,236,255, 44,210, +184, 47,185, 56,171, 21,250, 8, 50,224,201,183, 83,237, 65, 87,191,232,199,170, + 37,193,221,118,211,116,220, 38,240,175, 29, 0,102,249, 75, 72,179,253, 6,122, + 53, 40,233,206, 74, 52,204,127, 9, 72,252,144,222, 86,179,192,133,202,159,202, +224,218,243,178, 70, 66,248,202, 67, 50, 85,132, 46,174, 60, 55,156, 68, 22, 52, +132,134,107, 54,218,223,216,123, 83,126,176,112,103,130,221,224,213,175,107,161, + 48,249, 93,193, 86,255,224, 74, 97,228,220, 96,134,104,202,212, 78,151,169, 78, + 89,144,130, 72,250, 15,185, 7,127, 81, 54, 77, 40, 12,160,209, 68,115, 71,175, +243,167,228,212, 77,185, 11,173,102,243, 42, 3,146, 25,152, 54, 45,135, 82,255, +140, 78, 89,111,166, 43, 4,229,116,204,213,120,161,197,159,159,142,141, 38,152, + 22,166,174, 27, 88, 14,223,229,210,238,137, 99, 19,214, 37,126,227,138, 64, 97, + 67,132,203,162, 73, 77,141,200, 79,120, 6,148,238, 75,108,245, 67, 90,131,140, + 72,189,121,218, 8, 38, 24,233,247, 19,143,118,236, 56,121, 45, 50,163,158,218, +167,237,247,212,182,171,237,242, 45, 87, 57, 20,112, 50,145,167,119, 40,231,245, +172,241,154,222,168,189,134,165,189, 56, 59,191,248,251, 51,245,246,150,162,215, +217, 9,213,163,141,207,199, 88, 61, 58,140,210,181, 48,129, 72,217, 33,166,164, +147, 20, 35,160,251, 32,175, 9, 3, 54, 51,196,120,148, 9,131,217, 78, 61, 16, +186,221,176,101,162,198,182, 3, 79,153, 29,127, 37,235, 10, 65, 57, 26, 43, 75, + 80, 77,105,181,249,133, 88,155,176,182,207,140,134,132, 7,179, 49, 87, 89, 39, +115,175,100,124, 71,137, 31, 41, 24,154, 87,121,255, 31,226,212,251,211, 94,107, + 13, 10, 10,127, 50, 3,200,213, 53,216,225,188,243, 5,212,221, 6, 58,237,125, + 26,254,236,121,255, 7,144, 43, 18,189,139,234,249, 6, 20,219, 82,190,100,255, +158,127,213, 76,167,221, 20, 14,247,138, 17,213, 0,236,217,109,220,220,174,163, +221,173, 91,222,244,193, 81, 91, 25, 34,198,136,220,112, 34,230, 57, 2,192, 10, +180,179,125,240, 39, 92,125,215, 32,193,165,146, 93,190, 78, 28, 54, 57, 41,203, +190, 66,230,145, 46,127, 65,105, 73,106,249, 86,187,229,119,106,198, 77,166,168, +145,187,180, 82,230, 13,208,107, 91,252,145, 36, 6,250,225, 5,192,182, 70,109, + 94, 1, 92,191,141, 32,114,227, 94, 49,110, 22, 32,147, 14, 18,207,140, 49,168, +145,225, 94, 11,196,119, 71,213, 10,177, 39,244,145, 51, 48,217,181,175,183,121, +101,227, 54,169,247,103,206,135,138, 0, 30, 8,172,102, 12,242,213, 3, 25, 66, +118, 25,142, 68,139,133,237, 50,204, 64,240, 23, 7, 58, 9,226,190,167, 28, 86, + 4, 40,239,144, 64, 77,181, 57, 79,168, 84,205,252, 77,193, 45,170, 93,174,101, +252, 82,139,237,168, 4, 71, 64,163,203,130, 63,168,229, 44, 63,147,142,253,218, +217, 62, 54,224, 22,175, 13,139,220, 24,183,216,127, 90,123,172,233, 53, 7,104, +114,202,171,143, 37, 54, 84,142, 85, 1,148,239,253, 21,125,129,224,133,101, 96, + 52,237, 40,195, 7,186,145,132,115,159, 36, 36, 9, 88, 3, 17,214, 27, 12,174, +144,239,199, 50, 9, 35,196, 30,142, 33, 74,145,181,153,113, 68,224,140,255, 11, +197,132,120, 52, 43,209, 29,231,167,139, 79, 70, 96, 53,217, 4,190,216, 96,153, + 34,101,184,173,170,169,202,124, 65,196, 39,215,255,161, 62, 15,177, 69, 85,187, +255,219,200,165,168,218,179, 72, 95, 27,169, 44, 8, 76, 38,220, 78, 23,164,223, +134, 16,136,107, 18, 47,120, 37,235,154,135,132,253,141,172,186,234,215,124,112, +179,196,101,128, 3,181,229,139,232, 71, 16,213,147, 66, 83,220, 46, 47,202,216, +226, 4, 17, 79, 31,188,233, 63,162, 67, 60,200, 20, 75, 69, 87, 95,223, 39, 43, + 8,245, 76, 27, 51, 46, 41,201,167,175, 25, 12,161, 51,137,251, 27,225, 81,164, + 17,178,165,217, 0, 55,183, 88,160,172,198,138,115, 27,110,176, 96,201,100,233, +200,122,101,204,208,169,226, 89,235, 92,241, 21,177,221,163,213,135, 57,220,212, +218,165, 93, 12,159, 12,105,239,205,113,242,104, 34,195,152,106, 36,114, 78,126, +138,132,183, 48,204,207,174, 5, 82, 76, 47,135, 42,221, 9,206, 20,244,152,148, + 85,192,148, 80,223, 63, 83,188,236,171,227,144, 63,228,128,238,228,136,164, 61, +138, 97, 65,167,179,156, 8,241,116,227,241, 13,255, 72, 88,245,114, 35,185,193, +178,213, 55,106,119,151,219,170, 42,146, 48, 33, 57, 8,130,149,177,115, 5,155, +224,175, 91, 77, 3,128,143,192, 29, 0, 56,196,217,166,142, 38, 39, 96, 76, 64, + 29,101,132,193, 31,167, 11, 12,140,113,118, 1, 3,109, 2,205,168,160,147, 2, +152,121, 39,205,233,252,222, 24,247, 74, 99,203, 74,179, 71,128,245,152,170, 10, +202,104, 9,134,150,150,125,211,132, 31,130,137,213, 84, 78,135, 97,197, 57,116, +105,164, 73, 90, 43, 24, 80, } ; -// ../Source/JitKernels/GB_jit_kernel_emult_03.c: -uint8_t GB_JITpackage_173 [270] = { - 40,181, 47,253, 96, 97, 1, 37, 8, 0, 6, 80, 55, 33, 16,241, 54,150, 46, 98, -178,161,216,199,117, 66,237,117, 72, 18,123,164,226,228,191,172, 55, 34, 28,141, -199,140, 0, 0, 84,193, 12, 45, 0, 46, 0, 46, 0, 58,179,222,212, 95,217,253, -206,103, 71, 93, 95, 36, 14, 93, 65,181, 7, 68, 35, 96,184,220, 2,107, 53,225, - 61,158,150,199,227,147,250, 43,120,103, 10,190,153, 75, 18,141, 36, 41,137, 71, - 13, 31,163,223,124,206,205, 45, 78, 50,231,227,104, 29,170,168,137,138, 8,131, -137,242, 7,116, 28, 50, 51,230, 75,120,181,158, 17,247,197,146, 61,135, 58,171, - 93,177,252, 2, 15, 92, 77,216,211, 32, 13, 12,107,152,131,195, 24,174,217,187, -105, 25,246, 20, 11,124, 51, 58, 85, 42,122, 17,252, 74,235,150,254, 44,201,155, -252, 80, 17,189, 73, 62,152,181, 40, 18,148,110,104,193,159,174,195,174, 11,210, -225,171, 51,199, 73,125,238,215, 0,176,254,254,198,210,242, 27, 3,252,195,115, - 4,201, 28,112,119,167, 26, 90,240,199,241,205,219,184, 12, 0, 73, 69,206, 46, - 2, 4, 96, 1, 8,105,244, 91,167,137,201,212,160,249,243,204, 20,109, 11, 91, -205, 21, 6, 49,255,124,181,162,192, 13, -} ; +// ../Source/Template/GB_emult_08bcd.c: +uint8_t GB_JITpackage_169 [880] = { + 40,181, 47,253, 96,167, 17, 53, 27, 0, 70,165,113, 40,208,178, 76, 7,170, 74, + 60, 27,241,138, 66, 80,142,246, 52,176,161,226,149, 76,119, 83,164,160,213,152, +138,113, 25,152, 81,162,242, 5,190,120,144,165,230, 5,106, 0,100, 0,102, 0, + 91,102,154, 33,157, 90,107,166, 9, 5, 8,201, 54, 53,192, 25,206,205,195,202, + 93,244,230, 93,183,143, 4, 21, 74,101, 58, 24,160, 84, 46,105,209, 99,216, 26, + 82,225,146,125, 7, 87, 61, 79,115, 30,175,213, 48,247, 73,112,225,114,205,218, +159, 11, 2,231,215,193, 77,102, 8,202, 47,124,215,201, 79, 80,158,191, 81,249, +184,143,213, 49, 44, 32, 89,170,250,101,211, 50, 11, 5,171,221,199, 51, 49, 94, +248,100, 2, 77,147, 73, 7,183,115,218,199,243,176, 47, 97,196, 75,180,217, 5, + 94, 33,120,194, 61, 40,134,140,222,105,102,204,165,131,128, 96, 97, 99, 27,157, +179,177,174,107,207, 85, 47,147,192, 89,101,247,134, 71,139,100,249,197, 19, 73, +126,190,128,228,123,234, 85, 70, 40, 61,247,232,227,169, 87,191, 72, 91,212, 98, + 22, 89, 54,143,171,179,225,255, 15, 65, 31, 16, 69, 82,153, 38,167,201,111,127, + 1,103,119,186,210, 25,153,206,220, 40,230,125,234, 22, 85, 37, 85,213, 55,195, +110, 98, 30,137,104, 31, 56, 69,221,186,150, 1, 2,179, 80, 48,142, 38,162,193, + 2,224, 61,213,209,171,127, 72, 49,198,222,199,142,206, 80,109,214,186, 48,138, +205, 58,100,120,163,159,206,243,178,129, 79,251,157, 58,248,209,126,119,199,130, +191,138, 55,159,122,191, 98, 5, 6,149,246, 71, 36,178,209,137, 33,156,191, 99, + 30, 29,244, 58,124, 42,185, 26, 16, 20,194,204,203,219,141, 57,191,122,244,245, +147, 61,172, 97,115,204,229,110,222,128,128,232,179,107,110,163,227,157, 74, 45, +252,244,116,157, 64, 57,105,119, 29,181,185,250,250,241,178,221,152,153,119,119, +119, 89,147,217,161, 10, 20, 18,137, 84, 95,167, 55, 58, 1, 30,251,177,170,162, + 67, 60, 88, 87, 70,194, 98,206,162,179,199,177,143, 28,107, 1,163,101,244,181, + 54,171,169, 44,133,135, 43,128,180,160, 65, 69,198,148,136,136, 36, 41, 73, 74, +195, 1, 80,132,204,144, 21,113, 3,121, 64,149,237, 92,181, 82,245,164,138,237, + 81,102,209,164, 30, 62, 73,237,124, 79, 40, 16,188,200, 58,206,109,239, 48, 2, +184, 72,128, 20,245,248,102, 97,148,124,214, 47,229,193, 53, 86,149,107, 11, 5, +252,237,133, 12, 22, 25,162,254,239,231,177, 50, 22, 89, 24,243,174,133, 16,105, +161, 17,141,146, 28,195, 10,121,149, 91,176, 81,175, 66, 57, 27, 66, 33,135, 63, +226,178,186,241, 9,222, 54, 0,110, 60, 56,193, 12, 21, 44, 5,168, 65,138, 19, +172,241, 4,137, 64,197, 36,108, 1, 24, 32,233, 8, 9, 49,203,160, 11, 80, 40, + 6,119, 99,244,251,150, 98, 33,119,201,143, 33, 54, 30,143,244, 60,138,217,208, +253,130, 90, 33, 19, 28, 50,208,195, 22, 24, 1,241, 96,112,102,176,180, 73,186, +117,219,156, 79, 69, 13, 15, 31,122,161,190, 7,180, 70, 70,203,218, 12,106, 65, +105, 26, 81, 25, 86,224, 9,130, 88, 35,232, 87,227, 42,143, 95,230,109,229, 1, +133,180,211,217,244,192, 58,109,234,160, 99,205, 98, 53, 46,169,176,210, 51, 8, + 30, 42,158,140, 83, 55,174,123, 75,184,216, 45,153,215, 89,160, 42, 10,196,151, +209, 68, 64, 27,155,220,161, 55,138,173, 21,251, 69,101,246, 69, 96,235, 76, 86, + 44,230,112,182, 26,220,202,114,124,251, 32, 64,130,194, 9, 20, 18, 28,133,135, +181,129, 5,246, 99, 36, 45, 1,113,172,231,217,214, 7,246, 5,182, 94,255,200, +178,179, 62,147, 29,228, 13,127,228,248, 79,176,164, 73, 33,101,161,217, 34,173, +107, 79,195, 28,250, 19, 69,251,160,215, 97, 30,110, 60, 42,102,176, 66, 13, 97, +140,195, 14, 76,184,156, 26, 49,107,202,191,194,196,137,231, 84, 44, 16, 93,161, + 28,164,104,208,236,252,193,116,171,212,136, 17, 7, 70, 59,196,168, 42,122,199, -// ../Source/JitKernels/GB_jit_kernel_emult_04.c: -uint8_t GB_JITpackage_174 [270] = { - 40,181, 47,253, 96, 97, 1, 37, 8, 0, 6, 80, 55, 33, 16,241, 54,150, 46, 98, -178,161,216,199,117, 66,237,117, 72, 18,123,164,226,228,191,188,160, 96, 56,160, -158, 25, 1, 0,168,130, 25, 45, 0, 46, 0, 46, 0, 58,179,222,212, 95,217,253, -206,103, 71, 93,103, 40, 30, 93, 65,181, 9,197, 35,128,184,220, 2,107,129,194, -123, 60, 49,143,199, 39,245, 95,240,206, 22,124, 51,159, 38, 42, 77, 83,139, 72, - 13, 95,163,223,124,206,205, 45, 86, 50,231,227,104, 61, 34, 84, 84, 37, 25, 6, - 84,229, 16,248,120,100,102,205,183,240,106,125, 35,238, 12, 38,123, 30,117, 86, -187, 98,249, 5, 17, 92,160,176,167, 73, 30, 24,214, 48, 8,135, 57, 92,179,119, -211, 50,236, 49, 26,248,102,148,170,149,244, 34,248,149,214, 45,253,153,146, 55, -249, 33, 67,122,147,124, 48,107,210, 36,148,118,232,193,161,174,195,174, 75,210, -225,171,179,199, 73,125,238,215, 0,176,254,254,198, 18,243, 27, 3,252,195,115, - 4,201, 28,112,119,167, 28,122,112,232,241,205,219,184, 12, 0, 73, 69,206, 46, - 2, 4, 96, 1, 8,105,244, 91,167,137,201,212,160,249,243,204, 20,109, 11, 91, -205, 21, 6, 49,255,124,181,162,192, 13, } ; -// ../Source/JitKernels/GB_jit_kernel_emult_08.c: -uint8_t GB_JITpackage_175 [260] = { - 40,181, 47,253, 96, 93, 1,213, 7, 0,194,207, 52, 33, 16,179, 30,150, 12,146, - 15, 40,128,167,156, 7, 17,206,188, 42,154,214, 21,219,173,231,187, 98,223, 46, -252,136, 0, 0,170,106, 6, 49,142, 98,194, 5,214, 98,141,134,197, 94,170, 51, -201, 63, 29,238,215, 0, 44,185,253,157, 11,240,199,132, 30,254,114,192,221, 61, -138, 98,194, 5,146, 83, 54,138, 86,185, 7,235,110,213, 34,193,110,197, 38, 26, - 22,241, 58, 41,165,102,119,123, 64, 46,205,162, 37, 47,234, 59,204,125,166, 35, -244,231, 76,222,223, 99, 30,212,131,223,227, 92,169,139,163, 34, 49, 15,210, 15, -190,230,224,238, 52, 89,115,207,155, 62, 21, 46,235,162, 12, 4,235,114, 1,150, -124, 2, 51,136,115,184,156, 30,234,182,167,147, 55,159,236,172,180,251,112, 58, - 67, 60,168,185,143,253,157, 67, 27, 93,123, 50, 62,209,129,156, 11,134, 36,160, -104, 56, 2,203,131,117,183, 23,118,254,122,255,233,231,220,157, 55,151,102, 94, - 85,145,170,170, 12, 0, 69, 5,207, 46, 34, 4, 96, 1, 8,105,244, 91,167,137, -201,212,160,249,243,204, 20,109, 11, 91,205, 21, 6, 49,255,124,181,162,192, 13, - +// ../Source/Template/GB_emult_08e.c: +uint8_t GB_JITpackage_170 [1262] = { + 40,181, 47,253, 96,243, 17, 37, 39, 0,214,118,162, 40,208,178, 58, 7,202,149, + 12,193, 35,114,204,232,169,106,199, 92,164,205,145, 83, 39, 52, 96, 95,254, 61, + 51,125,219,176, 6, 62, 98, 93, 70,169, 7, 94,160,148,152, 0,147, 0,151, 0, +249, 54,215,209,167,242,252,132,214,123,168,206,247,198,252, 94, 39,119, 25,115, +237, 79,131,247, 99,185,103, 91,143,233,177,191,218, 34, 74,101,145,244,199,205, + 27,127, 9,155,122, 52,215,238, 52,146,198,181, 57,186,145, 80, 48, 68, 84, 93, +111,132,141,155,115,156, 63, 12,202, 57, 8,198, 83, 3, 22,138, 69, 98, 80,161, + 88, 62,113,210, 41, 76, 55, 38,195,171,248,208,151,237,135,118, 78,101,113, 35, +191, 59,195,134, 75,214,153,130,178, 40,236, 27,250, 38,141,195,121,241, 59,156, +199,222,213,249,235,181, 63,142, 75,129, 42, 90, 10, 88,194,245, 75, 31, 80,180, + 12,130, 62,173,201,134, 79, 38,145,100, 50, 9, 28,167, 46, 42,146,170,170,176, +107,241, 14,140,162,216,171, 61,238, 60,195,190,246,127,252,135, 7,207,172,117, +165,158,116,175,171,173, 97, 94,145,220, 58,118,159, 53,130,130, 92,233,148, 65, + 93, 36,236,185, 49, 48,147,148, 7, 1,209, 48,213,162,244, 14, 39,147,101, 50, + 62,236,170,155,157,113,165,159, 46, 44, 21,138, 69,227,249, 93, 77, 58, 56, 70, +165, 24,116, 12,125,238, 80,135, 19,225,120,128, 82,249, 65, 16,228, 89, 16,238, +252,100,186, 77, 7,191,124,164, 95, 94,160,122,252,175,135,246,151,169,165,131, +206,126,185,177,255,127, 20,125, 68, 17,166,239,106,159,241,108,240,121, 62, 30, +107,193,123, 56, 10,210,120, 83,199,244,177,113,237,110,118, 21,100,189, 25, 49, +111, 80,165,185, 90,238, 19,192,212, 30, 20,127, 58, 58, 89,188, 48, 45,131,126, + 14, 90,187,221, 83, 84, 67, 47, 35,141, 68, 18, 48,151,142,177, 13,185,249, 76, + 67, 42,145,169, 54,184,113,138,186,152, 20, 33, 27, 40, 23, 30,139, 95,158,241, +133, 79,150,102,179,118, 73,158,205, 70,226, 33,180,167,166,208,181,220, 57, 44, + 8,206, 15,127, 74,199,243,253,153,248,250,176, 91,214,191,203,211, 24,236, 16, +204, 47, 58,106,241,140,233,166,115, 11,187,161,205, 92,111,188,191,124,207, 62, + 55,222, 64,248, 19,211,127, 28,253, 2, 81, 20,210,218,117,175,107,241,104,192, + 41,122,234,186,164, 71, 64,100, 50,205, 68, 70,202,205,118,196, 83,157, 76, 3, +134, 78,233, 49,195,137,155, 43,195, 16, 65,100, 26,175,187,138, 57,189,245,139, +235, 90,156, 94,152, 71, 34, 30, 53,131,123, 37,147, 69,135,136,206, 70, 2,203, + 4,252,214, 47,233,114,219,182, 83, 82,202, 77, 74, 41,165,203, 77, 90,151, 87, +102,174, 67,218,201,109,147, 19,189,101, 73,143, 20, 69,227,239,112,113, 98, 38, +211, 42, 56,241, 65, 35, 43,151,132,119,126, 92, 56, 27, 63, 20,206, 74,183,137, +218,162,244,168,201,140, 67,234,105,145, 94,114,250,200,115, 56, 51,214,172,199, + 11, 10,129, 11,168, 49, 61, 99, 74, 70, 68, 36, 72, 10, 10,146, 66, 58,161, 12, + 49,200,121,233,212, 3,210,112,100, 16,135, 16,133, 16,101, 68, 64, 8, 34, 34, +145, 72, 32, 18,137, 68, 34, 34, 35,217, 6, 20, 8,235,228, 78, 84, 67,213,111, +105,176,231,121, 83,120,136,179,192,131,241,191, 84, 28, 75, 24,243,210, 34, 56, +120, 35,214, 8, 49,218,150,155,133, 82,185,206, 30,211,128, 87,156,245,177, 94, + 40,146,251,150,192,107,142,208,128,249,215, 41,227, 9, 27,228,183, 49, 72, 59, + 97,127,153,218, 24,142,221,116, 29,118, 38,106, 22, 2, 43,239,205,235, 94,164, + 35, 10,159,211,126,114,148,200, 64,186,253,234,124, 64, 85, 37,223, 15,168, 20, + 70,125, 44,141, 20,165,175,205, 2,113,158, 56, 20,159,254,200,202,164, 44,237, + 82, 23,224,125, 43, 43,216, 82,194, 40,214,189, 95, 87,116,189, 16, 6,245,205, +181,147,136, 36,205, 41,173, 76,211,198,124, 72, 35,103,198,168, 27,149, 43,211, + 72,189, 2,131,119,150,191,214,191,220, 3,239, 4,174,183, 40,186,193,229,226, +206,173, 78,158, 95,159,118,147, 94,134,202, 59, 6,159,205,103,126, 55,255, 41, +252, 27, 21, 15,120,127,167,251, 26, 11, 34, 23, 35, 4, 8,191,129, 0,207,158, +209, 3,249, 36,252, 24,211,188,219,217,106, 66, 91,182,129, 54,226,226,236, 94, + 6, 56,109,120, 64, 70,121, 28,176, 18, 63, 52, 78,176,208, 33, 81, 85, 37, 0, + 55,245,162,207,160,128,122, 0,219,141,230,157, 80,236,190,109,173,203, 98,218, +133,167, 51,218,209,145, 7,121,141,214,222, 92,196,141,134,234,218, 70, 58,176, + 9,141,144, 75,208, 39,179,208,239, 66,154, 90, 86,147,238, 6, 98,246, 73,203, +238,199,103,230,190, 92,124,190,175,101, 76,114,194,248,154,230,221, 89,184,108, + 65, 53,122,194, 32, 56,116, 8,241,126, 98,162, 17, 55,232,179,141,132,252,109, + 58,240,120, 24,116, 46,183,241,197, 56, 42,183, 43, 34, 14, 41, 1,130,221,190, +145, 73,109,124, 48, 18, 27,174,145,117, 46,145,155,233,237, 90,115,207,196,104, +112,236, 60, 34,108,196, 89, 6,207, 65, 48, 96, 95,192, 77, 23, 69,189,109,235, + 42,112, 51, 55,138, 15, 46, 94, 64,176, 53,236,101,222,123,136,150, 73,179,163, +188,181, 36,118,225, 89,153, 64,105,166, 31,179, 21,138,254, 66,226,164,172,238, +164,213,110, 66,191, 59,203,232,131,199, 57,212, 22,167,212,158,188, 71,194,207, + 22,108, 45,123, 88,193,132, 26,161,107,135,188, 38,146, 36,125,170,233,103, 32, +249,252, 24, 57, 65, 30,241,228, 42,247,138, 10,142,222,223,195,173, 39,144, 13, +144,182,157,243,219,164,233, 84, 48,117, 85,227, 56,168,130,122,131, 65,117,103, +137, 1, } ; -// ../Source/JitKernels/GB_jit_kernel_emult_bitmap.c: -uint8_t GB_JITpackage_176 [357] = { - 40,181, 47,253, 96, 43, 2,221, 10, 0, 54, 85, 70, 33, 16,211, 54, 54,143,197, -236,180,158,161,201,197, 46, 64,213, 60,231,253,228, 40,221, 90,184,113,228, 93, -141, 17, 1, 0,168,170, 25, 60, 0, 61, 0, 62, 0,254, 1, 55, 39,196,157, 71, -156,149, 81,112,180, 26, 75, 60,169,237,200,253,198, 37, 55, 93,115, 62,143, 40, - 97,178, 24, 13, 45,176,112,120,226, 78,163, 13, 55,198,212,157,203,240,107,126, - 81,255,166,110,172,169, 20,115,138,154, 18, 69, 5,144, 72,165,216, 44, 76,149, -244,224,181,163,229, 9,253,248,195, 91,124, 15, 34, 61, 41,254,197,153,116,121, - 84, 38,239, 59,250,201,223,156,220, 96, 6,111,158,179,229,209,161, 42, 84, 18, -194, 80,168,124,112, 5, 30,145,184, 99, 31, 62, 89, 1, 24, 41,114,240,190, 98, -249,249,230, 90, 76,206,246,250,254,140, 83,212,165, 65,186,137,101,251,222,251, -112,192,221,125,130,166,194, 7, 2,167,116,148,173, 82, 43,150,214, 65,104,237, - 50,139,118,213,236,154,108,151,196, 51,139, 82, 50,172,118, 1,115,134,166,194, - 7, 28,119, 57, 28, 22,174, 82,141, 9, 92,212,229,126, 13,184,211,111,155,199, -240,119,165, 24,192,223, 43,243, 21,231,135, 61,241, 21,222,144,234, 39,244,201, -240,175,126,230,128,158,170,127,111,123,201,170, 85, 26, 22, 0, 77, 9,169,146, - 28,148,179, 92, 90, 54,136, 71, 16,160,176,184, 11,111,224, 92,226,199,134,115, -234, 90, 65, 9,238,185, 91,128,196, 39,129,210, 88,145,158, 49, 38, 83,131,230, -207, 51, 83,180, 77,108, 53,151, 24,148,201, 80,220, 86, 20,184, 1, +// ../Source/Template/GB_emult_08fgh.c: +uint8_t GB_JITpackage_171 [1042] = { + 40,181, 47,253, 96,138, 23, 69, 32, 0,118,106,128, 40,192,208,108, 14,250, 15, +102,178, 22, 0, 46,115,129, 27,201,246,137, 6,220, 83, 23, 35,141, 23, 77, 70, +115,173,179,168, 11,132, 43, 96,154, 4,129, 52,201, 65,123, 0,112, 0,117, 0, + 34,253,110,107, 87, 84,153, 88, 36,181,243, 80,145,143, 25,107,115,125,193,186, +105, 36,213,130,213,211, 27, 73,132,130,195,100,171, 22, 99,181,149,115,123,187, + 79,115,238,121,124, 57, 96,169, 88, 36, 6, 2, 21,203, 39,143,116,105,219,130, + 42,124,194,207,232,110,248,117,231, 18,227,205,236, 68, 58,102, 48, 88,189, 29, +194,162,177,138, 25, 29,165,218,145,138,246,182, 95, 29,172,221,197, 39,100,194, + 84,194, 21,128, 80, 29,211,125,184, 75, 37,187, 94,232,171,217,204,156, 66,137, + 36, 20, 74,151,162,235,114, 30,164,221,253,184,189,243,132,190, 79, 32,137,145, + 88, 59,228,150,129, 39, 92, 3, 4, 81,233, 28, 88, 61,139, 67, 14, 58,245, 59, +210,107,179, 75,252,205, 8, 10, 46,216,115, 30,124, 58, 7, 71,102, 59, 99,233, + 29,142,133, 97,255,116, 57,230,147,254,207, 67, 38,231,191, 2, 8, 17,170,143, +181,187, 93,185,203,143,225, 49, 19, 39, 93, 42, 91,216,221,122,253,255,163,104, + 35,210, 94, 71,250,249, 13,164,231,127,226,121, 33,142, 18,145,136,231, 2,167, +168, 91, 24, 47, 56,100,151, 74,214,217, 60, 92, 86,192,228, 83,127,245, 13, 41, + 89,188,108,190,108,233, 11, 21,135, 45, 44,147,224, 48,131,102,110, 96, 40,228, + 4, 46,225, 17,236,119,115, 0,147,248,133,158,172,194,210,107,170, 26,109,191, + 75,140, 14,198, 85,230,143,199,167, 75,188,212, 46,233, 87, 54,103,230,212, 65, +253,221, 11, 67,173, 31,161, 14,146, 45, 93,191,245, 67, 49,197,137,247, 60,245, +126, 36,178,129, 53,155,226, 17, 62,197, 31, 4, 81,212, 49,185, 91,154, 60,185, +155,197,249, 27,130,191, 33,237,246,218,198,168,231,207,238,201,143,135,244,234, +117,119,193,133, 7,169,199,190,126,125, 37, 35,173, 96,123,245,163,246, 55, 20, +106,220,205, 57, 39, 51, 51,243,252, 80, 45,178, 68, 81, 71, 36, 82,137, 92, 7, + 92,246,101, 85, 73,119,104,176, 48, 13,132, 53,167, 38,125,134, 24,124,217,177, + 50,160,166,210,217,226,240,166,178, 20, 26, 48, 13, 87, 55,144, 58, 69, 85, 85, +149, 88,173, 87, 15, 30,128,223,168, 81, 65, 67, 36, 34, 34, 34, 82,144,164, 32, + 25, 14,112, 68,100,136,140,230, 1,130,152, 76,200, 50, 8,134, 80, 12,103,132, + 72,160,140, 49, 2,137, 17, 17, 9, 70,100, 68,210,169,198, 37,176,133,203, 3, +168,192, 70,245,101,183,237,240, 3, 98,166,207,222,232,215, 11,207,213, 91,121, +122, 27,175,220, 29, 56,153,116,130,201,250,195, 55,199, 81,214, 60, 57,145,177, + 24, 39, 64,210,134, 45,252,228,213, 51,129,148, 76, 38,140,235, 91,205, 71, 37, + 68, 82,155, 96, 25,182,244, 75, 49, 96,173, 92, 48,165,169,218,224, 58, 48,184, + 35,234, 47,146, 33,176,146,218, 9, 4,209, 99,182,129, 50, 29, 33,141,115, 54, + 59, 55,240, 77,213, 65, 99,228, 42,184, 42, 60,251,175, 55,220,210,196,138, 70, +213, 75,104, 45,116, 47,147,205, 7,213,107, 28,180,191,228,187,171, 25,161,210, + 0,239,251, 1,128, 39, 8, 49,196,146, 69,195,184,133,207,109,147,127,166,165, +128,133,213, 13,140, 56,223, 72, 41, 10, 44,195, 73,211,207, 86, 59,207,211,203, + 18, 38, 35, 28, 84, 24, 57,125, 89, 75,108,103,146,113,172,122,129, 4,230, 61, +212,149, 34,150,119, 75,223,222,122,215,122,167,178,104, 0, 57, 96,127,254, 41, + 25,111, 31,144,217,197,214, 84,133,218,187,230, 6, 88,178,199, 21,127, 90,216, +226, 49, 52,173,147, 27,176,253,122,223,151, 13,168,189, 70, 20,106, 3, 48,162, + 79, 18,135,129, 10, 54,111, 37,204, 17,251, 81, 87, 9,214, 38, 16, 60,246,197, +222,206,186,153,150, 95, 52,133,132, 68,122,234, 49,224,112,115, 56,180, 33, 37, +231, 84,192, 70, 83,164, 80, 77, 68, 34, 80,119,177, 72, 69,165, 76,104, 81,141, +160, 89,160,196,176,178, 3,117,233,103,190, 71, 23,210,184,246,206, 17, 81,235, + 66, 64, 59, 18, 25, 18, 3, 80,214, 31,177,117, 4,160,155,169,214,198,214, 68, +202,230, 83,131,228, 59, 58,201,126,230,182,198,145,251, 50,236, 61,185,213,211, + 17, 40, 11,170, 22,173,157, 82,120, 8,159, 11,222, 60, 59, 39, 60,241, 95, 33, + 2,155,209,202,147,166,120, 59,208, 98,137,177, 44,211, 60,212,243,131,174,134, + 17,112,161,244, 71,106, 10, 28, 68, 66,118,246, 82, 64, 32, 35,199,167, 98,217, +211, 59,154, 68,230, 77,243,254,193, 4,175, 84,145,162,168, 48, 79, 92, 74,133, +211, 9, } ; -// ../Source/JitKernels/GB_jit_kernel_ewise_fulla.c: -uint8_t GB_JITpackage_177 [265] = { - 40,181, 47,253, 96, 93, 1,253, 7, 0, 6, 16, 55, 33, 0,211, 60,126,207, 18, - 79, 68,206,199, 8,120,213,221,164, 10,182,185,135, 42,204,252, 29, 70,160,120, -108,150,254,223,235, 67, 8, 44, 0, 46, 0, 46, 0,149,126, 97,167, 55,236, 69, -221,133,246, 55, 30,173,164,130,233, 7,129,103,142,121, 84,151,243, 88,185, 47, - 98,206,223,252,160,126,204,221,248,114,233,230, 85, 37,167,170, 10, 30,174,211, - 4,241,160, 40,191,209, 47, 62,231,226,254, 44,152,243,156,167, 75,132,203,186, -166,194,192,186, 60,242, 32,151, 68,188,233, 16, 78, 77,239,124, 91,147,193, 16, -151,236, 12, 14,238,113,103,173,145,196,213,172, 66,162,221,170, 53, 56,141,225, -117, 82, 71,221, 46, 68,177,184,116,147, 22,117, 77,255,121, 93, 56, 29,211,143, - 43,120,131, 79, 81, 76, 47,130, 31, 82,126,164,193, 35,107,181, 44,139,216, 75, -245, 6, 57,168,199,253, 26,224, 81,191,187, 28,102,126, 95,186, 1,252, 41, 99, -246, 64, 28,112,119,151, 30,105,240, 8,114, 7, 36, 10, 0, 76,133, 20,121,185, -176, 33, 36, 39,221, 58,120, 76,166, 6,205,159,103,166,104,243, 99,181,242, 62, -160, 69, 81,224, 6, +// ../Source/Template/GB_emult_bitmap_5.c: +uint8_t GB_JITpackage_172 [637] = { + 40,181, 47,253, 96,134, 6,157, 19, 0,134, 32,100, 39,224,206,234, 24,248, 48, +200, 37,132,178, 11, 64, 89,156,115,100,135,226,231,150, 41, 46,131,209,231, 98, +230,235, 86, 12,130,177, 72, 25,204, 48, 76,243,112, 90, 0, 85, 0, 88, 0,159, + 92,117,213, 92,111, 14,194,106,222,117,242,145, 0,242,128, 52, 14, 6, 30,144, + 71, 25,124,212,246, 67, 39,159,228, 41,184,253,121,150,243,184,145,150,201, 97, +154, 41, 84,213,153,226, 77,221,214,179,129,166,125,171,174, 25,127,127,247,242, +120,109,111, 93, 50, 5, 38,249,234,214,169, 8,134,169,183,109, 7,219,157,199, +171,216,164,220,225,128, 26, 14, 71, 93,237, 58,154, 41, 62,246,190, 83, 15,130, +102,204,144, 92,179,251,251,218, 63,138,156,242,224,244,121,129,233,242,213, 45, + 42,162,125,220,174,151,255, 63, 4, 89, 64,151,127,234, 58,207,246,252,189,102, +250,121,237,210,203,127,130, 30, 19,164, 81,185,140, 98,121, 42, 87,187,217,125, +171, 86,105, 84,125,107,102, 45, 13,134, 73,102,210,106,240, 18,155,147, 2,191, + 33, 28, 95,242,234,143,177,226,102,240, 9,152, 10,167,194,209,200, 12, 54, 41, +152,132,166,251, 81,187, 21, 63,238, 76,183,198,223, 88,129,129,133, 36, 29, 65, +242,199, 43,168, 59,250,185, 25, 37,193,251,217,157,229, 67, 14,143, 50,187,233, +214,176,118, 30,173,114,153,126,116, 49, 11,106,141,214,204,109,204,243,220,231, +111,123, 16,116, 81, 73,135, 46, 36,105,224,213, 31,112,195, 59,214,102,181, 91, + 25,142, 91,187,207, 1,142, 45,248, 12,230,218, 84, 22,174, 57, 59,240,243,211, + 22,147,143,248,113, 66, 62,114, 46, 74,132,165,240,242,210, 72,139,117, 77, 56, + 22,133,203,133, 97, 54,149,173,106,119,179,140,121, 73,190,122, 20, 17, 45,188, +245, 8,199,206,132,159, 15, 8,120,132, 31, 59, 50, 98,160,161,153, 84, 70, 68, +102, 68, 36, 70, 73,161, 49, 80,132, 76,217,221, 6, 73,177, 25, 92, 31,239,100, + 80,243, 48,104, 87, 73,184,248,202,139,212,185, 81,186, 46,169, 5,128,211,120, +123, 31,176,112, 72, 17, 96,208,178,103, 84,239, 70,222, 30, 27, 56,122, 81,111, + 3,174, 29, 17, 77, 60,129, 50,179, 14, 55,213,204,183, 50, 11,110,224, 59,120, + 22, 66, 53, 95,180, 86,150, 79,244,184, 37, 28,136,227,206,233,171, 41,183,255, +166,167, 89,165, 91,158, 41,153,235,147,198, 65,248,192,138,220,168, 25, 10, 51, + 71,174,174, 13,160,201,238, 34, 45, 80,215,107,248,129, 4,147, 83, 88,169,226, + 54, 98,225, 2,162, 43, 56,198, 75, 2, 18, 72,135,134,171,214,158,122,175,115, +113,139,116, 46,131, 61, 26, 8, 96, 28,219, 24,185,172,107,129, 53, 6,188, 94, + 16, 40, 2,159,144,218, 5,169, 9, 20,226,154, 60,216,238,160,113,221,164,201, +252,204,164, 78, 97, 93,125, 98, 20,192, 18,205,197, 94,209,139, 7, } ; -// ../Source/JitKernels/GB_jit_kernel_ewise_fulln.c: -uint8_t GB_JITpackage_178 [257] = { - 40,181, 47,253, 96, 92, 1,189, 7, 0,242, 15, 53, 33, 16,241, 54, 54,220,197, - 4,107,254, 26,197, 9,229,213,172,201,232, 18,206,225, 55,234, 56,126,128, 67, - 61, 51, 2, 0, 80, 5, 51,115,118,166,193, 33,107,181, 44,123,216, 75,245,246, -184,168,203,253, 26, 0, 78,191,191, 60, 94,126, 95,186, 1,252, 37,101, 6, 69, - 28,112,119,159,156,105,112,232,241,206,209,121,141,203,168,245,145,184,154,229, - 32,218,173, 26,195,211, 22, 94, 49,218,213,237, 58, 56,197,165,219,172, 38, 75, -250, 16,252, 70,204, 47,253,120,130,183,248, 18, 78,122, 82,124, 16, 87, 41,130, -104, 76,146,207,232, 39,223,115,114,135, 20,236,121,206,152, 71, 4,171,178,164, -194,160,178, 28, 2, 31,143, 72,156,249, 16, 62, 97,190, 9, 55,230,130, 29, 30, - 89,172,210,112,252,244,118, 61,169,191,209,254,198,165,157, 84,128,249,193, 51, -191,192, 73,204,185,156,220, 39,177,230,111,126, 81,191,229,110, 92,185,116,115, -138,154, 18, 69, 5, 10, 0, 76,133,244,120,185,176, 33, 36,231,220, 58,120, 76, -166, 6,205,159,103,166,104,235, 99,181,113, 62,160, 69, 81,224, 6, +// ../Source/Template/GB_emult_bitmap_6.c: +uint8_t GB_JITpackage_173 [1043] = { + 40,181, 47,253, 96, 93, 11, 77, 32, 0,246,237,138, 40,192, 82,217, 28,170,114, +140,166,159,109,232,233, 21, 26,172,152,188, 17, 67, 88,219,119,154, 96, 98,207, +168,173, 90,104,215,205,159,126, 87, 81,168,174, 2, 16,128, 0,124, 0,125, 0, +225, 47, 97,122, 11,170, 72,150, 73,127,220, 20,169, 99,110, 83,143,102,219,157, +102,210,216, 54, 71, 55, 19, 9, 6,142,212,245,231, 54,238,206,113,254, 46,104, +231,181, 82,151, 6,150,138,101,130, 80, 80,177, 60,194, 69,151,152,126, 38,195, + 37,234, 29, 95, 14, 65,170, 93,102,212,166,250,196,121, 51,152,172, 51, 29, 51, + 72,170,117,244, 40,125,231,171,119,118,158,186,108,124,167,136,143, 93,222,186, +172, 8, 36,106, 90,192, 0, 20,172, 99, 46,155, 56,193, 76, 61, 91,174, 35,216, + 91,149, 57,133, 2, 77, 40,148,153,218,121,121, 59,231, 41, 90,250,108, 27,247, + 21, 49,197,222,183,191,141,177, 61,239,168, 54,188,157, 92, 69,125,122, 4, 67, +210,200,234, 92,156,137,134,131,128, 60,114,101, 29,138,147,109,153,102,203,192, + 51,225,145,205, 6,194,225, 19,192,177,232, 90,231,202, 50, 74,206,115,227,205, +216,218,254,242,101, 14,173,167,249,165,174,179,109,176,171, 8,134,220, 31,185, + 28, 3, 70,127, 69, 32, 81,183, 0, 46, 49,151, 46,252,114, 99,255,127, 8,250, +128, 32,233,182,216,241, 81, 48, 61,246,255, 6, 56,234, 58,118,253,113,216,138, + 54,112,180,191,161,247,218,181,206, 59,197,127,130, 23,243,138, 1, 29,205,183, + 16, 41, 78, 61,218,133,160,245, 75,150,214,138,109, 72, 51,197, 97,127,154, 84, + 48, 89,222, 99,157,159, 47,211,141, 75,143, 37,187,206,184, 19,188,237,246, 28, +207, 15,119,179,239,135,179,149, 23,150,114,180,246,134, 29,146,150, 77,187,178, +173,115,105, 26,101,101, 28, 10,211, 52,149,148, 86,244,174,225,183,177,109, 88, +149, 9,179,229,176, 20,222,246,120,152, 95,231,168,209,207,163, 39, 16, 20, 50, + 73, 48,157,222,184, 54, 20, 34,145, 20,220,163,157,237, 0,138,237,250,185,192, + 69, 43, 58,231,225,202, 52, 17, 87, 85,121, 66, 76, 55,241,146,131,186,212,174, + 76, 2,157, 87,135,218, 88, 23,131,182,129,192,174,237,193,235,206,122, 52,160, +186,228,175,162, 87, 31, 24,120, 68,188,244, 80,209,169,173,170, 50, 33,190,156, +162,123, 10, 23,167, 95, 74, 15,203, 69,119,120,208,104, 26, 45, 95,118,182,197, +203,124,197,231,237,224,242, 33,145, 92, 33,225,149, 79, 81, 4, 91, 14, 35,137, +184, 91,241, 8, 71,243,204, 1,128,213,168,161,157, 68, 37, 52, 35, 41, 51,201, +178, 6, 48,132, 24, 99,204,202, 3, 18,137, 80, 75,212, 12, 81,136, 64,129, 72, + 48, 1, 5, 34, 65,148, 36,101,165,212, 1, 73,219, 29,167,214, 75, 11, 44, 75, +136, 14, 94, 49, 31,123,192,154, 71, 68,123, 58, 34, 38,183, 31, 62,234, 67,139, + 68,220, 15,148,227,214,228,167, 69, 33, 61, 93,208, 21, 73, 97,190,195,196,150, +177,143, 73,213,190,234,248,226, 60,233, 24, 88,175,233,160,169, 31,167, 85,156, +135,112, 89, 4, 25, 7, 38,103, 56, 51, 19, 23,138,104, 13, 24, 64,231,218, 89, + 98,200, 58, 13, 22, 12, 26, 5,117,159, 72,146,125, 53, 0,172,254, 54,188,109, +242,233,168,175,140,117,212,125, 40,169,140,239,113, 23,175,218, 21,229, 52,195, +139, 28,179,199, 22, 62, 82, 90, 51, 41,125, 90, 62,249, 74,149,156,113, 40,207, +198,175,147,199,180, 11, 19,196,250, 66,237,142, 53, 98,102,194, 47, 45, 20, 47, +180, 0, 8,181, 61, 9,152, 87,194,252,213,163, 70,172,226, 19,148, 29, 1,179, +118,103,210,170,177, 59, 38, 80,188,254,145,198,155,216,108, 22,190,108, 47, 99, +147, 82, 93,214,164,130,214, 0, 24,118,205,181, 95,125,241,112,119, 76,130,205, +205,122,240,237,166, 40, 53, 98, 97, 35,152,137,209, 80, 29,176, 17,115, 98,221, +125,183, 33, 71, 3, 85, 87, 50,176,148,188, 41,233,178,217, 22,154,209,118, 38, + 45, 46, 59,154,146,191,228,133,189, 70,238,230,218,102, 50, 72, 90,224,185,144, +219, 9,186,202, 27,222,159,175, 58, 88,230,132, 13, 35,163, 88,139,255,230,226, +136,126, 85, 87,120, 96,201,105,242, 40, 0,137,101,133,186, 62,158,222, 50,176, + 13, 26,176, 1,243,192, 48,108, 10,152,102, 44,198, 69, 28,188,161, 17, 59, 44, + 36,151, 2, 33,207,130,150,180, 67, 94, 11, 35, 39,214, 69, 50, 48, 91, 51, 21, +236,145, 33,177,225, 19,189, 54,122,238, 51,255,152, 40, 64,184,251, 67,137, 65, +251,188, 91, 66,167, 49,117,168,219, 46, 61,254,204,189,101,250,152,164,255,104, + 30,229,155,102,165, 6,211, 45, 63,157, 84, 81,124,196, 68,131,253,223, 13,164, + 52, 12,154, } ; -// ../Source/JitKernels/GB_jit_kernel_reduce.c: -uint8_t GB_JITpackage_179 [1307] = { - 40,181, 47,253, 96,149, 12,141, 40, 0,198,123,182, 41,192,208,108, 14, 42,213, -238,181,201, 26,137, 85, 64,176,119,162,220,185,101, 95,213, 70,142,159,251, 48, - 63,202, 78,221, 57,195,150,211,239, 42, 10,213, 85, 0, 2,163, 0,162, 0,185, - 0,116,156,245, 98,135, 31,123,201, 6, 51,173, 95,165, 77,226,227, 58,214,175, -189,219, 75,167,120, 48, 87,208, 59,172,223, 41,132,224,243, 56,211,242,102, 60, - 90,250,219,162,175, 54,200, 73, 18, 8,229,209, 32,157,164,245,202,237,250,213, - 60,182,151, 61, 26,143, 77,107,230, 33,113,113, 32, 94,107,220,198,221, 57,206, -224, 69,237, 60, 12,173, 87, 6, 20, 9,229,145, 48,145, 80, 78,209,233, 21,174, - 26,243, 58,196,186, 8,204, 86,172,220,171,205,202, 88, 64,114, 94, 76,165,241, -157,228,214,185,150,155,116,103, 56, 41,190,205, 31,109,205,191,246,251,185,204, -225, 21, 10,105, 90,122,125,187,176,199,219, 25, 93,174, 24,157, 5,243, 72, 68, -122, 68, 34, 1,228,244, 10, 0, 8, 64, 33,149, 14, 73,113,134, 90,146, 42,215, -134,158, 55, 31,134, 21,116,177,106,220,226,255, 23,133,163,237,112, 30, 91,236, -190, 26, 32, 73,144, 10,194,184, 67,239,206,139,190,175,188, 14,143, 69, 19, 20, -206,227,250,133,141,115,205,165,189,157, 95,225, 10,102,175, 12,233, 88, 3, 62, - 78,175, 67,251,189,239, 60, 22,203,177, 69,222,113,125,123,150, 30,114,101,218, - 70,211,116, 7, 8, 28,134,110,243,100, 56,157,229, 94,140, 21,151,175, 68,114, -138,185,142,245,161,122,115,105,189,207,127,246,239, 92,146,162,165,207,179,130, -160, 87, 32, 27,246,167,162,124, 62,223,132, 82,186,140, 51,121,155,134,250,120, - 30,164, 37,126,213, 1, 96,195,116,130, 83, 25,211,116,106,236, 80,163,202,168, - 72,107,122, 38,227, 97,152,156, 99,105,176,173, 99,113, 54,201,223,105,232,182, -172,171, 88, 22,100,197, 67,214,201, 42,100, 93, 27, 14,195,120,222,236,104, 21, -109,158,221,244, 74,186,201,184, 76,230,177, 46,207,133,163,209,186, 75,166,209, - 56,235, 0,225, 27,151, 89, 54,147, 71,104, 25,134, 14, 6,161,105, 27, 76, 70, -141,170,130,233, 27, 45,227, 46,158, 11,235,116,151, 38,219, 58, 75,131,177, 58, - 28, 73, 72, 50, 57,198, 77, 88, 54,171,129,219, 54,218,165,147, 80,163,105,130, -203,184, 13,118,101, 29,214,177, 50, 23,236, 18,125,161, 0,227,172,139,227,161, - 68,211, 11, 78,133,166, 47,124,116, 74, 84,133,170,209,116, 93, 22,198,153,224, - 58,138,138, 87,237,104, 69,170,194,101, 24,146,212, 33, 41,156,218, 54,236,114, -241,108,211,199, 91,230,190,159,173, 70, 3,175,166,139, 72, 42,182, 56,234, 14, -128,201, 23, 22, 38, 14,142,175, 6, 52,157, 36,206,184, 54, 34,130,128,202, 97, -137,251,158, 34,152,254, 75, 27,146,194,169,233, 26,167, 97, 29,236,225, 25,203, -162,101, 48, 93,223, 6,171, 7,209,181,153, 78, 6, 92, 31,125, 73, 48,219, 15, - 46, 69, 92,164,233, 45,237, 22,249, 88,127,103,147,228,164, 16,111,156,239, 58, -155,113,158, 33, 41,118,190, 5,101, 92, 89, 92, 31,163, 29, 63,191,234,141, 29, - 64,187, 9,226,142, 98,240, 12,182,177, 42, 61,170,120,146, 11,159,167, 44,174, -213,156,230,156, 44,202,134,101, 22,141, 70,161,125, 44,178,250, 88, 4,200,170, -102, 85,128,240,168, 49, 45, 98,202,208,204,140, 36, 41, 72,161,208, 24, 32,132, - 16,227, 84, 25, 61, 50,161, 60, 11, 37, 78, 33, 1, 49, 68, 33, 36, 52, 34,146, - 52, 37, 41,169, 81, 56,210,138,113, 51,151,138,224,207,128,112,244, 92,110,135, -188, 49,192,179,216,186,111, 2,182,189,239, 20,162, 5,150, 25,222, 82,191,190, - 42,142,127, 66,138, 54,163,138,191,130,162,155, 70,138, 63,112,195,252,218,157, - 5,211,124,226, 38, 20,164,177, 91,105,177,193, 9, 20,216, 22,167,141, 83, 75, -251,211,130,133, 23,240, 99, 87,158,160, 73,186, 26,243,144, 59,230, 31,248, 9, -102,100,121,101,245,204,193, 0,143, 73, 8,202,193, 25,226,122,130, 77, 23,181, -213,100, 88, 4,233, 55, 65, 54,243, 11, 20, 50,111, 17,133, 92,154,196, 29, 4, -120,140,192, 12,192, 43,158,113, 37, 0,247,120,149,239,183,144,244,143,110, 57, - 29, 12, 48,194,112,210, 50,238,101,146,180,165,147,252, 0, 32, 82,137, 8,125, -137,172, 98,219,221, 85, 10, 68, 72,196, 87,112, 74,200,200, 27, 62,220, 8,110, -120,187,125,130,118,212,204,223,245,143, 46, 0,208,176,219,111,144, 87, 13, 18, -160,136, 44, 96,186,120,175,122, 21,184, 32, 30,120, 96,149,135, 10, 64,161,149, -130,132,184, 14,111, 68,150,150,207, 26, 20,246, 66,112,197,177,192,218, 90,134, -143, 64,212, 88,216, 14, 4,150,239, 30,237,107,102, 8,163, 17, 18,203,181,181, -181,174,135,120,184,205,229,188,178,252, 30, 11,129, 25,152,134, 80, 5,231,116, - 93,255,193, 12,161,200,184,159, 35,250, 96,213, 77, 33,195,248,235, 25,225, 59, -166,245,157,134, 23, 3,174,112,135, 0,251, 37,178,132, 0, 48,227,207,189,171, -223,232,225,152,220, 58,167, 71,167, 1,111,129, 23, 61,131,214,201,114,214, 6, - 80, 79, 52,177,244,165,216,192,248,139, 52,201, 3, 42,198, 97, 41, 82,125, 33, - 20,183,162,164, 87,159,157,237, 63,223,101,221,155,100,212,199,106, 97, 97, 87, -130, 36, 71, 14, 93, 64,192,183, 8,244,232,137,100, 13, 8,129,249,174, 1,110, - 63,202, 72,144,209,194,125,103, 44,143,241,169, 45,235, 72,195,138, 67,198,244, -248,135,145,214, 22,200, 69, 64, 26,162,179, 40,231, 60,209,197, 49,140, 65,248, -164, 0,139,160,199, 18,163,174, 91,142,222, 24, 86, 60,172,116, 35,143,104,194, - 37, 17,167,168, 91, 19,170,215,244,181,143,141, 77,146,117, 69,239,100,130, 92, -196, 23, 13,210,176, 49,224,166,249,254,204,164, 53, 57,107,112,201,125,242,120, - 4,242,253,235, 1,132, 1, +// ../Source/Template/GB_emult_bitmap_7.c: +uint8_t GB_JITpackage_174 [908] = { + 40,181, 47,253, 96, 91, 13, 21, 28, 0, 70, 41,127, 40,192,208,110, 49,250,125, + 72, 82,180, 35,144,249,194, 37, 28,166, 28,157, 36,161,211, 23,185,144, 45,172, +162, 20,124,149,129, 11, 56,184,174,162, 48, 20, 5, 32,117, 0,114, 0,116, 0, +101,125,101, 94,252,193, 59,223, 80, 19,185, 58, 95, 16,111, 34, 13,152,142, 36, +188, 33,243,234,235,185,222,160, 9,236,185, 40,214, 79, 4,148, 9, 37, 82, 25, +152, 80, 46,129,244,147,198, 33,139,185,164,254, 2,180,201, 17,119,159,184,186, +193, 64,165, 53, 51,213,213,166, 45,185,187,241,201, 69,162,120,126,168,107,218, + 99, 15,179,253, 84, 63,109,183,158,221,194, 30,146,122, 93, 54,135, 37,123, 85, +241, 74, 59,110,252,121, 91, 60,199,235, 97,153, 83, 84, 20,161,168, 23,123,188, + 24, 88, 91,208, 87, 10, 71, 56,189, 10,109, 55,122,137, 90,104, 29,135,206,219, +172,127,151,200,246,235,223,246, 13, 98,115,235,107, 62,254,237, 29,236,140,191, +117, 38, 65,235,210,102,179,144,112, 13,141, 75, 27,125,167,110,157, 6,243, 56, +141,135,101,232, 59,143,198,113, 21,224,151, 42,175, 70,250, 99,127, 72, 94,127, +253,178, 89,158,189,170,132, 36,104,223,237,255, 31, 69, 25, 81, 36,185, 73,254, + 18,141,159, 69, 19, 9, 37,114, 65,160, 13,159,201,162,227,106, 38, 32,112,233, +187, 78,129,199,139, 36,249, 73, 20, 19,166,219,247,157,176, 88,191,254,105,194, +200, 32,189, 2, 71,211,105, 58, 79,237,236, 79, 97,190,229,167,109,150, 5, 6, + 25, 16,200, 45,183, 62,249, 69,181,104, 67, 25,172, 32, 52,147,120,131,230, 35, +136, 75, 32,222,118,107,122,197, 51,188, 32, 80, 95,202, 94, 70,117,104,175, 9, +218,222,120,230,155,228,231,226, 21, 69,107,218,242,229, 72,222,142, 19,214, 44, + 29, 33,222,191, 68,110, 25, 81,180,113, 65, 62,217,100,190,198,215,175, 22,111, +180, 1,129, 12,252,122, 68,249,240, 47,251,224, 48, 95, 7,149,175, 24,122,192, +203,140,190,195,209, 56, 13,131,134, 97, 31,169,177, 87,235,167, 78,203, 88,216, +210, 87,205, 83, 55,153,134,233, 54, 11,155,230,113, 62, 55,204, 31,236,192, 14, +169,191,158, 29,163,199, 42,125, 13,239, 62,127,191,103, 11,102, 39,245,167,123, +154,251, 26, 31,143,212,227, 18,191,250,124,197,193,112,186, 63,168, 91, 0, 18, + 24,128,175,160, 97,173, 83, 76, 72, 36,140, 20, 20,164,160,144,198, 96, 68,134, +202,206, 3, 73, 98, 27, 40, 53,220,226, 12, 27,228, 77,150,187,207,178,148,175, + 61,113, 32, 52, 32, 63, 41,236, 62,145, 29,181,227,228,100,220,112,237, 79,225, +222,143, 2,128,146,174, 69,162, 71,102,205, 78,177,191,213,204,240,228, 0,195, +103, 13,232,122,183, 10,213,228,192,163, 1, 75,208,227, 10, 68, 8,100,140,126, +147,113, 6,237, 62,193,232,150,155,119,180, 88,182, 61, 55,220, 37, 0, 47, 90, +116,240,108,110,236, 39, 51, 3, 11,249, 59, 51, 77, 12,115, 32, 25, 60,125, 81, +144,129,251,142, 21,243, 83, 23, 84,129,253, 43, 91, 80,107, 51, 62, 94, 6, 24, +152, 51, 76, 63,215, 25, 3,212, 10,120, 90, 0, 32, 13, 56,253, 14,109,202, 90, + 73, 62,225,235, 86, 71, 9, 7,129,225,206,104, 20, 77, 35,190,217, 62,195, 75, +105,229,121, 98,169,172,185,231, 52, 22,122,180,132, 5,106, 1, 60, 58,128, 21, +121,208, 14, 19,107,142, 95,190,181, 48,216,176, 18,237,170,216, 1,220,129, 2, +205, 41,156,172,213,172,137, 29,180,180,185,205,189, 97, 5, 98, 87,248,238,158, +214, 75,131,224, 14,110,160, 27, 3,233, 26, 27,144,109, 12,185,133,183,180,223, +106,176, 30, 70,174, 3, 30, 78, 49, 5,203,186, 69,139,235,250, 36,117,231,220, +195,153, 82,230, 62, 83, 6, 55,234, 2,215,187,220,104,134,155,214,121, 48, 8, +171,237,166,229,206,228,197, 13,129, 91,176, 70,111, 33,140,125, 86, 45,133,238, +161,128,109,131,222, 95, 0, 69,161, 2,204,246,198, 5,139,221, 20, 46, 73,199, +241,158,182,158,105, 53,102,230, 62,155, 38,230,103,166,187,142, 87,112,206,168, +124,110,234,138,189,162, 28, 15, } ; -// ../Source/JitKernels/GB_jit_kernel_rowscale.c: -uint8_t GB_JITpackage_180 [286] = { - 40,181, 47,253, 96,116, 1,165, 8, 0, 86,145, 58, 33, 32,179, 27,179,251,172, -125,126, 51, 53, 50,201, 85, 31,241,241, 95, 8,165,171, 6,186,191,145, 33,130, -206, 50, 32, 4, 7, 0, 2, 48, 0, 49, 0, 50, 0,142,219,109, 6,124,220,180, - 47, 7,211, 33, 27,126,182,157,175, 65,127, 51,253,250, 34, 52, 24, 88, 43,234, -228,150, 86,252,225,220,105, 29,188,190,153,249, 53,243,210,154,162,162, 68, 81, - 1, 56,123,153,239,218, 90,171, 11,136,202, 80, 73,137,131,161,234, 65, 21,116, - 1,191,135, 54,122,178, 58,228,101,206,247,147, 46, 72,107,187,188,144, 94, 77, -225,248,210, 80,122,254,142,140,247,191,178,194,117,115,203, 34, 93, 6,233,205, -186,184, 77,155, 19,199, 99, 94, 90, 52, 76,149,228, 94,165,161,213,138,235,143, -249, 12,250,197, 33, 57, 6,189,254, 38, 89, 26,146,233,226,158,235,216,187, 14, - 49,142,226,162, 7, 82,102, 24, 70,145,243,186,224,237,100,191,128, 58,121,166, - 54,252, 60, 79, 64,251,165, 99, 43,248,129,238,238, 40,138,139, 30, 8,154,155, -112,157,100,102,155,133, 5, 13, 0, 70,128,146,244,166,248, 34, 64, 0, 22,128, -144,198,200,117,154,152, 76, 13,154, 63,207, 76,209,230,177,213,188, 99, 80,102, -184, 0, 81, 81, 48, 4, +// ../Source/Template/GB_emult_bitmap_template.c: +uint8_t GB_JITpackage_175 [876] = { + 40,181, 47,253, 96, 14, 11, 21, 27, 0,198,165,116, 40,208,176,108, 14,250,141, + 27,255, 96,191,196,151,148,134, 76, 61,146,138, 94,179,165, 62, 67,124, 96, 90, +239,230, 72,128,176, 28,199, 62,224,139,135, 34,247, 23,107, 0, 98, 0,106, 0, +212, 67,179,109,238, 2,105,108,123,163, 24, 8, 69,101, 51,113,253, 1, 27, 55, +231, 56,119, 22,148,243, 90,227, 37,131,137,100, 2, 81, 40,144, 76,254,216,162, + 75,152,126,180,202,167,248,140, 46, 95,143, 98,151,174,136,145,221,167,129, 15, +148,198,160,246, 93,157,105,120, 65,159, 0,156,213,170, 6,139, 97, 94,146, 4, + 83,124,245,121, 74,103,173,126, 94,231,236,211,188, 76, 59, 89,174,161,215,153, +124,120, 36, 2, 65, 34,145,231,224,248, 35, 70,223, 68, 11,187,200,236,186, 68, +199, 56,150,235,138,148,237,250, 57, 72,144,146,122,167, 1, 18, 95,189, 19,159, + 55, 10,102,220, 32,193,159,179,133,108,233, 51,182,119,147,226,165,249,220, 22, +255,127, 8,218,128, 32,238,118,185,189,119,151,111,239, 49,103,251,107,238,214, + 63,213, 26,122, 14,222,191, 65,237, 50,254, 19,166,159,144,100,154, 64,186,219, +180, 47,158, 2,118,222,221,178, 11,172, 89,115,206, 95, 74, 41,169, 99, 60, 34, + 12,203,166, 2,235,242,181,207, 97,231,210,187,115,171,109,151, 7,239,227, 61, +247,109,239,192, 64, 4, 48, 49,204,132,101,201,102,116,174,118,151,105, 88, 91, +253,215,176, 91,244, 10,198, 2,145,201,230,156, 30,202, 89, 41,169,122,111,167, +113,109, 41, 53,241, 98,154,197,183,165, 24, 75,134, 99,145,200,176, 75,132,167, + 57, 15, 21,144,146,250, 3,131,153,112, 8, 16,212, 1, 81, 91,199,173,232,143, +204,171,234, 86,164, 80,171,102,157, 18,104,156, 0,246,151,209, 69, 48, 7,194, +114,113,226,230,178,106,119, 4,108, 19, 66,192,155, 11,235,102, 35, 82,182,141, + 27,252,172, 75,148, 38,179, 33,121,245,207, 4,222,172,129,253,221,123,225,182, +105,221,229, 55, 14,171,214, 27,196,102,250,139,143,105,151,159,113,189,107, 42, + 26,140, 2,222,106, 98,115,130,131, 93,225,198,210,204, 76,226,138,214, 23,128, +172,168, 49, 73,135, 42, 32, 25, 73, 74, 82, 40, 53, 6, 96, 36, 16, 42, 50,154, + 7,242,120, 40, 88,113, 32,168,140, 51,198, 40, 50,161, 4, 18,140, 72, 40,146, +149,106, 27,148,136,162, 97,195, 78, 39,107,248,220, 60, 30,144, 44,226,135, 71, + 2,198,111,225, 24,150, 87,161,112,120, 54, 56,209,106,179,121, 48,193,205,240, +234,230,228, 22, 23, 32,218,105,242,194, 56,185,126,221, 21,160,226,103,132,133, +196,237, 35,105,167, 35, 82,205,246, 44,136, 63, 22,143,122,151, 19,142, 27,101, + 86, 21,215, 69,132, 7,145, 71,142,132,104,227,214,170, 13,144, 7,206,176,232, +129,201,116,141, 73, 60,234, 12, 4, 92, 10, 40, 56, 50,166,120, 17, 69,198,246, +134, 42,145, 97, 79,104,182,187, 48,105, 2,104,198,135,144, 24,238, 44,210,203, +176,108,228, 17, 88,198,135,143,249, 74, 4,185,143, 20, 6, 62,193,221,146,138, +160,201, 62, 58,217,197, 34,163,100,116,244,222,240, 63,124, 5, 34, 75,174,120, + 4, 99,156, 93, 36,197,125, 77,112,150, 11, 27,218, 49, 49,240,231,221,168, 13, +225, 6,243, 41, 14,217, 92,132,239,140,142,145,160,103,179, 12,104, 20, 48,122, +251,132, 32, 18,141, 35, 86, 13, 99,183, 73, 54, 30,145,129,150, 8, 41,167,240, + 32,161,108, 0, 93,108, 67, 55, 3,135, 9,255, 15, 6,142,160,122,228, 20, 34, +212,118,131,216,143,173,163,115,212,142, 39, 25,248, 95, 94, 76,195, 96,199, 56, + 8,198, 48,212, 83, 96,160,135, 38,182,229, 35, 74, 89,221, 94,247,121,200,180, +238,201, 45,130,170, 93, 50, 98, 93,113,192,243,216,210,247, 28,225,171,101,156, +146, 81, 54,118, 57, 42, 40, 76,193, 82, 52,114,129, 86,110,154,163,159,153,192, + 64,167,254,113,182, 91,154, 56,202,107,172,229,148,238,128, 19, } ; -// ../Source/JitKernels/GB_jit_kernel_select_bitmap.c: -uint8_t GB_JITpackage_181 [319] = { - 40,181, 47,253, 96,195, 1,173, 9, 0,214, 82, 63, 33, 0,145,117, 62, 79, 3, -218,207, 30, 3,165, 68,193,149,136, 51,228, 9,251, 52, 69,251, 98, 25, 50,231, -204,210,255,235,245, 33, 4, 53, 0, 54, 0, 54, 0,213, 55, 99,206, 96,240,247, -129, 87,105,214,104,130, 39,134,104,244, 4, 77,175, 51, 78,189,250, 47, 99,252, - 63,194, 4, 49, 25, 79,110, 14,155,108,244,146, 93,158,125,185, 25, 91,174,133, -125,154,106, 52, 77, 1, 84,212, 99, 8,154,213, 17,103, 99, 10,206,101,139, 89, -212,104,217, 33,214,162,200,197, 73, 98,107,206, 70,187, 59,154,199, 10,238, 78, -146,213, 7, 6,138, 64, 69,135, 2,129, 58, 20, 62, 31,160, 88, 3, 94,151, 2, -150,147,124, 87, 34,185,143,237,122,215,195,114,246,162,224,192,255, 87, 78, 77, - 28,122,190,125, 91,199, 93,174,114,124,153,117,191,133,213,172,119, 53,251,232, -108,227, 90,101,109, 26,118,191,140,113, 45,172, 18,164,181,118,106,226,144,231, -217,197, 2,226, 93,235,196,158,151,103,154,251, 4,132, 82,103,144, 52, 49,157, -175,133, 1,222, 98, 74,134, 37, 5,139,101, 39, 14, 93,202,116,204,155, 67,130, -231, 17, 92,241,205, 3, 19, 0, 78, 9,137,133, 72, 36,133,211, 71,192, 9,205, -213,155, 6,118, 90,250,106,161, 22, 33, 13, 14,215,113, 98, 50, 53,104,254, 60, - 51, 69,219,195, 86,115,135, 65,140, 41,252,192, 16,154, 57, 60, 69,193, 16, +// ../Source/Template/GB_ewise_fulla_template.c: +uint8_t GB_JITpackage_176 [740] = { + 40,181, 47,253, 96,215, 10,213, 22, 0,118, 33,103, 33,208, 90,231, 64, 7, 52, +163, 10,250, 51, 53,247, 75, 24,152,144,194,255,190,145,200, 53,113,227,167,252, +131, 43, 60,226, 3, 92, 2, 92, 0, 90, 0, 93, 0, 54,243,178,164,223, 20,137, + 67,130,208, 64, 28, 18,215,196,236, 27,182,169, 42,121,129,158, 69,230,147,201, +106,190,129,180,210,145,103,189, 19, 71,227, 91, 79,176,179, 69,129, 88, 99,179, +199,247,173,199, 45,218,155,171,233,138,151,101,125,223, 38, 85,239, 6,244,220, +224,222, 29,157,107,121,154, 58,135,181, 44, 81,162,176,177, 85,117,216, 77,110, + 48, 96, 4,131, 33, 33,213,168,225, 27,229, 56, 47,251,237, 83,174, 54,116,150, +247,209,172,223,186,111,244,249,255, 49,204,133, 97, 5, 92,182,121,187,116,209, +222, 54,123,116,150, 89,127, 79,162,143,141, 81,207, 39,147,212,252,133, 19,182, +199,246,171,147, 5, 59, 20, 18,132, 38,197,122,210, 59,110, 91,145,205, 20,130, +104, 43,132,142, 4, 83, 24, 59,117, 27,119,230, 56,147,163,185,102,156,117,137, + 26,155, 20,241, 53, 51,195, 99,237, 75,230,208,132, 50,203, 46,203,122,235,249, +211,116,122, 53,141,234, 61, 3,148,134,216,134, 52,187,200, 62,126,118, 20,144, + 93,147,249, 64,144,106, 94,102,114,127, 14, 23,140,108,218,103,108,158,196,255, +113,173,101,138,217,193, 10,221, 88, 60,207,235,186,238,241, 85,132, 64,175,101, +231,190,162,130,127, 24,143, 38, 24,246, 10,133,186, 80, 23, 10, 97,216,107,192, + 33,188, 15,164,112, 62,241,113,239, 48,224, 14, 27,162,149, 29,115,177, 80,186, + 42,226,247,173,165,216, 35,162,133,137,236,104, 82,218,160,243,115,238,141,203, + 42,250,118,126, 91,209,111,154,111,242,184, 70,178, 53,123,247,101,104,197,251, + 36, 18,203,197,251,192, 16,164,132,152,139,200,222, 53, 24, 64,126,254,241,195, +185,159,153, 38,218,128,139,160,161, 65, 67, 34,129,136, 72,146, 36,217, 24, 3, + 80,132, 16, 33,187,213, 1,153, 17, 57,165, 29, 14,181,147, 61,112, 9, 22,129, + 8,101, 39,237,255,227,148, 87, 38,245,135,138,170,136,148,181,232,158, 86, 81, +202, 22,213,160,104, 56,102,235, 75, 26,182,100,104,185, 7,176, 12, 60,225,190, +133,172, 13,243,164,183,152,212, 35,133, 80,129, 18,130,193, 2, 69,209, 26,100, +144,151, 70,134, 3,160,212, 12,177,102,142,152, 4, 28, 11,208, 96,150,209, 47, +135,157,129,142,236, 98,172, 20,161, 28,106,165, 0,120, 40, 25,140, 1,133,160, +126,219,117, 73,242,224,131, 14, 71,250, 3,193,232, 53,174, 5,252,101, 24, 51, + 30, 47,149, 1,152,106,217, 90,195,178, 66, 17, 39,106, 3,217,190, 53, 1,211, + 25, 0, 74,218,199,132, 27, 62,243,158,236, 64,194,112,252,153, 67,234,239, 50, + 45,246, 36,143,255, 23, 50,179,176,249, 28,113, 15,128, 66, 63,219,160,192,112, + 9,248, 0,217, 12, 84, 82,144, 3,193,228,109,102,247, 77,176, 33,135,108,156, +145, 96, 69, 30, 57,100,148, 68,116, 59,171,209, 34,130,224, 1, 49, 0, 44, 58, +200, 9,224,111, 0, 64, 15,247, 52,130,165, 86, 33,248,240,180, 75,171, 50, 67, +126, 5, 10, 60, 72, 37, 59,148, 38,134,234,175,108,120, 15, 35, 64,156, 15,227, +105, 50, 17,207,224,212, 24, 38, 51,121, 51,177,214,194, 49, 67, 75, 81,160, 7, + } ; -// ../Source/JitKernels/GB_jit_kernel_select_phase1.c: -uint8_t GB_JITpackage_182 [394] = { - 40,181, 47,253, 96,107, 2, 5, 12, 0,102,215, 75, 33, 16,211, 54,134, 15,196, -236, 53, 67,137,207, 4,211,246,129, 47, 33, 34,189, 8,250,110,245,191,219,249, - 87, 17, 1, 0,168,210, 25, 65, 0, 68, 0, 65, 0, 85,193,224,210,141,124, 48, -226, 79,231,112,130,229, 37,184, 61, 29,204,249,160, 90,217, 5,138,157,198, 18, - 63,234, 78,172,191, 49, 89,167,115,144,136, 87,238,238,137,234,199, 14, 20,237, -190, 31,254,104,195,207,250, 57,118,227,141,189, 48,167,168, 57, 81, 84,214, 67, -179, 92,131,102,180,218,140, 82, 54, 42,241,204,186, 42, 25,102, 57, 72,196, 94, -216, 44, 16, 12,211,131,183, 19, 45, 79,232,199, 31,222,249, 61,200,244, 99,254, -139,179,233,226,208, 8,222,127,244,143,191,249,184, 65, 13,222, 60, 12, 45, 31, - 28, 12, 5,195,132, 8, 94,126,133, 51, 38, 91,118,124, 46,252,179,213,107,244, -119,236, 95, 28,142,150,243,238, 62,199,236,193,251,102,242,115,206,237, 50, 97, -216, 93,223,175,113,138,162, 19, 8, 71,177,108,223,123, 31, 14,184,187, 79,208, - 84,184, 20,121,133,171,108,154,173,104, 13,115,134,166,194,165, 90,105,163, 97, -169,246,210, 88,228, 89,147,251, 53,224, 18,126,119,161,216,249,109, 75,189,243, - 95, 24,192,223, 35,195,155, 37, 78, 38,193, 93,186, 36,136, 34,129, 47,188,116, -170, 97, 56,139,193, 88, 74,197, 86, 7,133,106,212, 49, 63, 28, 29, 32, 48,132, - 8,206, 44,118,212, 68,162,150, 89, 59, 75, 4,155,129,233,131,208, 91, 17,164, -220,190,128, 84, 46, 24, 7, 71,130, 32, 76,248,169,100, 80, 70,226,228,138, 54, - 92,123, 13, 1,241, 91, 84,105,128,184,227,132,153, 26, 52,155,103,166,219, 32, -173,230, 15, 67,172, 53,238, 27,211, 4, 70, 20, 5,110, +// ../Source/Template/GB_ewise_fulln_template.c: +uint8_t GB_JITpackage_177 [639] = { + 40,181, 47,253, 96, 10, 6,173, 19, 0, 22, 96, 99, 32,208, 28,231, 24,149,213, +255, 59,212, 71,162,195,106, 72,143,165, 21, 58, 78,205, 40,154,106, 0,244, 15, +174,240, 72, 7,241, 11, 90, 0, 87, 0, 91, 0, 42,219, 57, 73,210,123, 11, 5, + 66, 81,112, 36, 16,138,119, 34,119, 15,219, 87,165,220, 64, 47, 27,115,217,178, +158,123, 33,205,124,163, 89,207,203,163,241, 89,205,176,179,117,133,219,251,172, +199, 45,218, 51,215,214, 23, 39,201,250, 62,123,132,253, 35,208, 75, 14,254,209, +185,146,102,171,179,233,146,164, 43,101,106,108, 97,109,250, 46, 63, 28,182,194, +225, 16,178, 24,120,212,173,247,190,123,244,185, 85,255,255,109,163,109, 91, 96, + 52, 92, 87,224,141,114,145,226,181,130,109, 51, 96,178,239,217,172,247,109,213, +101,183,254, 44, 83, 71, 53,118, 61,151,247,199,118,244,124, 67, 24, 20,133, 30, +197,106,210, 63,206,182, 41,155,111,163, 48,133,198,183, 69,155, 41,136, 40, 28, + 3,170, 95,103,227,238, 28,231, 49,176,107,239,141, 98,237, 58,230, 55,228,230, + 71, 75,108, 39, 5, 16, 0,126, 29,229,158,201,124, 44,166, 16,227,233, 84,194, +144,118, 32,119, 37,127, 54, 49, 26,249,218,103,124, 75,241,144,119,179, 43,114, + 15, 51, 20,164, 1, 65,240,251, 62,200, 99,147, 2,125,199, 93,242, 24, 29,188, +194, 25,121, 76,180,163, 63,203,195, 61, 42,145,128,220,207, 46,115,181,167, 7, +219, 86,219,106, 4,201, 17, 32,119,206,166, 18, 98, 66,149,239,244,157,184,127, + 37,147,244, 88, 99,178,166,238,153,247, 98,244,158,167,114, 89,217,202,157, 86, + 58, 52, 3, 86, 40,167, 17, 8,145,155,135, 28,113,201, 77, 78,180,185,102,204, + 53,233, 66,245, 40,226,119,151,195,168,218,231,152, 77, 45,215, 37,251,172,230, +205, 86,249,218, 82,213,211, 20,200,106, 99,160,113, 57, 83, 51, 34, 18,136, 72, +148, 66,105, 56, 96, 68,102,170,106, 55,205,133,164, 24,108,119,112,107,194,111, + 39,187, 40,104,225,142,181, 17, 69,176, 60, 65,232,113, 49,235, 26, 72,191,209, + 51,194, 4, 19, 65,171, 32,192,148, 29,220, 31,188, 17,139,150,236,207,230, 11, +173,163,241,194, 14, 28,181,229,109,248,108, 69, 74,164,108,111,203,252,129, 51, +184,124,138, 70, 50, 25, 3, 19,123, 99,139,146,180,110,224,124, 76,137, 29, 52, + 69,100,106, 24, 61, 96,116, 54, 5, 69,212, 7,160,120,234, 60,206,250,246,194, +152, 63,113,225,200,108, 2,202, 54, 8,164, 80,172,195, 67,196,116, 78,186,216, +102, 55,142,167, 29,108,179, 75,216, 62, 67,198, 91,230, 47,185, 34, 56,200,194, +195,144, 0,150, 3, 28,236,117, 2,187, 46,107, 69, 0, 73,122,215,105,177, 32, + 52,191, 6, 69,217, 37,146, 37,188,216,107, 19, 52, 2, 84, 3,112, 4, 50, 86, + 8,104,211,236,252,204,148,126,209, 10,183, 8, 19,167, 93, 85, 81,135, 7, } ; -// ../Source/JitKernels/GB_jit_kernel_select_phase2.c: -uint8_t GB_JITpackage_183 [336] = { - 40,181, 47,253, 96,239, 1, 53, 10, 0,134,211, 64, 33, 16,241, 54,230,113,200, -133, 61,140,215,215, 9, 45,121,142,201, 50,248, 12,120, 95,139, 89,167,237, 98, -217,136, 0, 0, 84,193, 12, 53, 0, 55, 0, 55, 0,148,111,194,141,185,224,206, - 7,150,202,170,144,244, 50,134,120,157, 61,210,254,198,165,157,222, 49, 26, 78, -221,221, 17,244,181, 23,146,119,127, 47,190,190,226,143,249, 45,119,227,202,173, - 48,159,166, 25, 77, 83, 4,137, 70, 31,126, 30, 73, 57, 34, 63,158,224, 61, 62, -200,136, 94,143,255,225, 44,138, 92,155, 4,126, 38,191,126,206,245, 14, 41,152, -115, 81,164,124, 96,160, 4, 26, 29, 10, 4,234,208,247,248, 64,227,140,119,185, - 20,152, 11, 61,174,112,141,229,251,195,121,235,207, 2,175,155,164,187,148,187, - 79,206, 76, 56,244,184,214,105,220,118,105,181,212, 98,187,157, 85,179,106,111, - 86, 31, 92,117,120, 70, 85, 90,134,221,142,209,184, 21, 54, 3,115,118,102,194, - 33,107,171,101, 65,236,173, 50,246,248,152,203,253, 25,240, 73, 21, 6,240, 7, - 75,241, 27, 39, 24, 28, 31,178,140,101,184, 55,207, 35,112,133,111, 36,146,251, -208,174,189, 30,117,171,215, 4, 7, 18,190,203, 24, 32, 80, 66,100, 91, 7, 69, - 8, 35, 76, 18, 73,157, 62,124,102,240, 0, 65,216,227, 62,164,180,141,113,115, -149, 5,238,214,218, 46, 40, 45,162, 52, 64,244, 56,129, 76, 13,154,207, 51, 19, -218, 32, 94,205, 31, 70,172, 13,183,198, 52,194,136,162,197, 13, +// ../Source/Template/GB_iceil.h: +uint8_t GB_JITpackage_178 [236] = { + 40,181, 47,253, 96, 35, 1, 21, 7, 0,114, 14, 45, 23, 64,219, 1, 22, 70,217, +219,190, 77, 7, 33,125, 81,192, 98,236, 66, 4, 26, 59,154, 4,128, 0, 0,254, +151,125,184, 61, 36,109, 8, 77,244,128, 5, 65,232,161, 43,176,208,245,151,113, +227, 70, 79, 15, 61,205,223, 37,155,118, 23, 55, 88,222, 11,120, 0, 80,156, 85, + 73, 80, 5,250,151,193, 15, 0,228, 80, 12, 23, 61,108, 58,221,156,254,224,167, +217,191,202,112, 52,187,247,150,177, 69,215,241,249,122, 58,234, 88,163,169, 24, + 62,214,227,232,116,177, 40,136, 98, 48, 9,162,244,224, 9, 93,160,191,226,168, + 15,167, 91, 49, 45,201,215,186,200, 28,235, 17, 77,124, 78,141,163, 39, 54, 51, + 79, 95,205,128,161,187, 88,232, 48,127,159, 37,216,104, 46, 63,253,252,160,127, +221,136,199,248,238, 61,247, 76,125, 47, 96,220, 27, 15, 0, 4, 3,194, 37, 40, + 94, 64, 37,196,188,106, 43,224,213, 42,156, 77, 22,208, 39,106, 87, 51,104,218, + 60, 51, 69,155,192, 86,235, 1,131, 8, 59,215,167, 40, 24, 2, } ; -// ../Source/JitKernels/GB_jit_kernel_split_bitmap.c: -uint8_t GB_JITpackage_184 [331] = { - 40,181, 47,253, 96,205, 1, 13, 10, 0,230, 83, 65, 33, 0,211, 60,238,110, 65, -100, 93, 69,167, 9, 54, 71,246, 92,144, 33,233,162,171,139,249, 27,238,174,142, -108,255,255,247,250, 23, 2, 54, 0, 56, 0, 56, 0,222, 9,119, 6,115, 61,159, - 29,205,172, 48, 91,141, 25,126,212, 54,119,191,175,166,147,151, 63,190,219,122, -102,139,215,169,187, 27,178,197,236, 59,193,121,172,248, 69,253,151,186,175,165, - 90,152, 83,148,148, 40, 42, 82, 48, 85,210,135,159,205,212, 13,250, 47,229,110, -241,193,133,244,163,248,223,205,164, 72, 98,155,192,223,232, 31,159,243,113,135, -149,203, 57,198,212, 39,161, 18, 84, 82, 97, 32,168, 60,250, 32,159,227,221,216, -132, 79, 52, 15, 78,209,240,140, 90, 90,134, 85,111,193,144, 50,234,248,180,248, -188, 62,127,196,150,226,147, 82,247,201,185, 32,223,180, 7, 36,162,121, 94, 25, -146,108,218,245,226,165, 60, 24,144,145,229, 90,200,115,198, 17,110,185, 95, 82, -126,228,193,163,174, 83, 92, 23,164,171,150,198, 32, 23,181,102,191, 6,124,211, -111,139, 51,230,119, 5,248,131, 26,252,137, 55,224,238, 46, 61,242,224, 17,228, -154,167,113, 91,221,168,195, 91, 88,217,214,213, 76, 17, 21, 0, 77, 9,121, 67, -112, 32, 0,139, 68, 72,131,248, 58, 20, 76,128, 98,102, 94, 83,192, 86, 2,124, - 19,144, 76,120,121, 20,180, 77,243,231,153, 41,218, 48,182, 90,191, 24,100,102, -190, 3,120, 99,182, 60, 76,128, 41, 10,134, +// ../Source/Template/GB_jit_kernel_proto.h: +uint8_t GB_JITpackage_179 [2452] = { + 40,181, 47,253, 96,170,145, 85, 76, 0,154, 73, 8, 14, 39,208,176,204, 3,239, +189,192,126,148, 26,178,110, 73,166,115, 34,229,154, 10, 66,140,141,213,199, 70, +126, 3, 33,132, 84, 91, 96,205, 82, 15,131, 43, 30,128,215, 0,206, 0,215, 0, + 60,212, 44,243, 98,109,152, 7, 52,189,251,125,218,142,203, 63,226,108,219, 35, +239, 70,222,187,186, 67, 96,241, 89, 99,189,200,111,250,213,143, 48, 40, 22,223, +249,158,239, 71, 31,167, 95,228,251,156, 10,122,190, 33,228, 31,107,221, 61, 46, + 30,170, 57,212,204,207,182,225, 6,164,226, 98, 97, 36, 30, 54, 95,141,245, 0, + 30, 15,211,194, 89, 46,218,196,172,236, 98, 69, 76,141,245,178,230, 2, 60, 6, + 4,164, 0,251, 85, 10,198, 71,216,246,106,110,207,214,187, 2, 44,207,182, 94, + 44,128,162,210, 4, 60,219,217,150,219,203,243,254,101,220,203, 99, 28, 63,162, + 72, 3, 82,128,193,100, 64,122,168, 66, 62,226,183, 67,171, 23,136,255,249,186, +230, 92,238,163, 45, 98,242, 3,233,118, 64,176,124, 83,112,179,253,134,219,131, + 63,119, 65, 60,198,244,183,214, 60,183,224,167, 63,194, 39,160,187,222,224,196, + 54,111,187,153,253,106, 76,233,240, 18,201, 35, 64, 34, 9,149,118, 24,211, 58, +229,111,182,205, 76,211, 68,161, 80, 50,148,179,142, 74, 27, 33,169,107,111, 74, + 79,148, 56, 75, 53, 37, 5,180, 41,166,149,127, 24, 2, 64, 13,121,254, 30,239, +110,114,248,245, 40,135,154, 37,195,208,248,137,209,203, 82,149, 73, 29,185,235, +228,129,204,119,122, 36,150,211,139,233,219,238, 63,148,243, 30,249, 94,166,239, +161, 62, 34,137,122, 8,246, 80, 79, 15, 53, 37,212,249,196,203,183,155, 31, 12, +130,220, 54,169,178, 75,206, 10, 76,211, 94,242, 59, 43, 82,202, 24, 99,229,163, +140,124,235,197,124,110,236,172,120,212,238,143,231,168,243,139,113, 53,220,157, +207, 13,167, 93,198,168, 50,117,159,212,247,122,119,231,118, 71, 95,101,242, 59, + 63, 74,198, 74,231, 89,215,136,122,207,221,157, 86, 30,242,158, 71,171, 42, 70, + 32, 15, 89, 90, 5,151,245,237, 17,200,191,214,228,107,202,237, 0,129,122,110, + 27, 86,116,112,112, 48, 77,147,148,146, 66,137, 58,223, 87,179,153, 32, 5,114, +116,237, 56,228, 88,105, 96,114, 24,166, 98, 69, 28, 54,119,146,237, 72,105,155, +220,197,154,200, 88,219, 37,106, 27,132,113,168,193, 48, 76, 67,231, 86, 8,164, +156,126,187,217,105,205, 90,172,112,151,156, 92,164, 50, 11, 85, 65, 22,211,202, +177,174, 22, 22,169, 13,179, 80, 29,185,111,218,121,143,216,108,205, 49, 47, 12, +134, 94,198,180,147,183,203, 69, 30,238,241, 13,187, 10,187, 48, 82,154, 16, 72, +158, 14,157,156,126, 51, 4, 43, 1, 1,193, 79,211, 84,161,245,173,249,212, 30, +183, 57, 80, 12,206, 44,137,108, 11,126,190,223,250,249, 83, 31,201, 72, 92, 96, +168,252, 39, 83, 5,202, 7,164, 84,104, 57,252,234, 91,220,133,218,139, 60,148, + 51, 53,153,200, 83, 51, 15,245,114,116,167,211,242, 77,117,157,150,135,209,214, +189,218,206,220, 22,156, 19,234,183,243, 80,206, 93,219,135, 19,143,135,230,122, +217, 2, 60,254, 31,218,128, 72, 84,112,154, 69,154, 92, 56,204,182,105,154, 36, + 77, 36,102,101, 44,214, 37,203, 98, 67,198,146, 7, 7,211, 68,161, 84, 44, 41, +109, 91,131,204, 42, 76, 14, 72, 19,173,170, 34, 1,193, 52, 77, 20, 10,151,101, + 82,130,244, 80, 6, 4,161, 10,244,171, 97, 55,200,245,174,148,243, 94,166, 95, +223,250,227,221,118, 81,190,115,210, 15,196, 52,235,155,195,204,114,101, 24,142, +252, 17,158,233,238, 91, 22, 47, 28, 4,132, 6, 68,214, 88,215,235,202, 87,228, + 61,214,203,215, 39,211,153, 57, 92,219, 22, 37, 6, 33,103, 92,206,105, 23,114, +207,242,240, 37, 18, 10,220, 80,151,118,232,197,224,133,105, 87,146, 36,138,163, +137,229,244, 3, 39,214, 22, 31,180,200, 98, 47,211,111, 86,170, 90,108, 57,101, + 97,214, 86,113,232,157,177, 92, 26, 64,190,217, 26,135, 53,244,236,166, 48,149, +117,201, 57,139,212,242,203, 97,163,181, 93,153,130,144,168, 50,212, 80, 33, 53, + 51, 35, 73, 73, 10, 82,104, 12,130, 82, 4, 97, 96,146,131, 56,233, 32,222, 34, + 56, 36,136, 65, 32, 6, 65, 16, 12, 97, 8, 16,132,128, 70, 16, 4,225, 16, 12, + 97, 64,132, 8, 8, 33, 20, 25, 99,172,146,179, 3, 79,112,160,252,209,165,247, +240,201,209,170,188, 21,191, 16,213, 17,113, 42,235, 99, 48,172, 65, 91, 5, 24, +228,250,251,130, 48, 5,180,158,146, 31,130,114,146, 14, 21,185, 3,129,151,247, +225,254,237,109, 84,247,139,188,136,169,136,224,192, 59,103, 68, 66, 48,186,182, + 92,224, 68,242,122,174, 77,162,126,202, 2,110,224, 75,245, 11, 40,247, 65, 61, +134, 64,108,136,198,203,195, 41,165,174, 1,168, 15,225, 10,248,166, 1, 77, 25, + 33,109,144,185,250,130, 28,128, 99,117,174,248,164, 50, 56, 56,207,247, 79, 19, +208,151,135,101, 61, 46,103,188,132, 39,137, 82,200,185,170,219, 82,199,153,249, + 65, 41, 74, 43, 4, 9, 3, 18,115, 87, 66,105, 91, 69,220,138, 2,106, 8,252, +198,244, 31, 49,155, 69, 81,153, 89,112, 38,154,143, 94,187,115,149, 38,124, 57, +224,140, 75,156,124,247,199,127,165,230,185,162,180,219,229,130, 2,120,228, 20, +244, 46, 26, 82,118, 51, 48,255, 41, 75,172,155, 73,153,178, 76,148, 77,131, 33, +135, 86,113,156,196, 0,178,152, 25, 21,135, 86,249,105,165,215,134,152,127, 54, +179, 62,179,148, 95,141, 27, 78,248,176,209,116, 96, 59, 20, 19, 92,104,244,113, + 83,244,147,135, 61, 10,132, 56,200,170,115,163, 27,108, 95,205,137, 49,102,119, +129, 89,163,106,118,205,105, 63,171, 51,195,173,211, 50,241,192,250, 11, 44,215, + 21, 0,139,184, 11,207,235, 98, 3, 79, 99,203, 62,198,217,111,199,119,214,115, +185,134,205,135, 40,185, 48,166,165, 75,237,195,170, 70,149,203,142, 8,204,138, +157, 70,162,146,108, 89, 35,155,108, 55, 2, 75,144,121,105,119, 49, 11,140,163, +235, 47, 10, 37, 63, 83, 21,200, 87,241, 21,193,202,196, 39,170,114,144, 31, 26, +135,150,156,100, 51,189, 51, 67, 46,125, 86, 5,147,246,205, 10,233,199,159,109, + 22, 31,200, 31,235,113, 43,236, 80,246, 8,164,208,241,215,154, 74, 97, 39, 1, + 99,140,159,143,235,226,110, 21, 43,173, 82,211,134,111,170, 9, 81, 93, 54, 33, + 91,138, 51,250,205, 29, 82, 22,242,127, 20,209, 57, 24,220, 3,117,191, 45,113, +109,111, 81, 52,223,132,194, 63, 76,148,223, 0,146,105, 99,186,138,113,168, 3, + 21,133, 32, 79, 60,204,120, 52, 83, 86, 48,157,181, 35, 9,244, 15, 23, 61,144, + 54, 54, 10, 99, 53,234, 96,133,166, 71,209,205, 54,113, 12, 83, 59, 96, 92,115, +157,168,201,186, 88,120,239,230,117,234, 56, 18,204,128,236, 78,234,157, 87,245, + 21,149,204,155, 10,143,117, 44, 30,149,160,113, 64,201, 9,186, 9, 87, 9,188, + 86,120,255, 44,190,101,182, 10,131,115, 31,148, 1,198,119,250,164,223, 38, 9, + 52, 13, 79,137,136,115, 91, 41, 93, 76,106,165, 50,192, 59,134, 61,221,203, 10, + 90,197,247,208,210, 29, 32,169,196, 3, 90, 64,236, 34,215, 93,214,205,213,231, + 33,141, 86,215, 63,218,104,223, 0,245, 86,107,185,222,228, 30,210, 27, 5, 92, +232,246, 76,233,203,144, 30,154,234, 20, 92, 92,242, 37,137,196,172, 55, 14,173, +128,150, 14, 31, 56, 33,123,220,233,127, 87,125, 91,191, 61,105,161, 25, 21, 58, +108, 52,124,112,225,185,143,160,117,236,141,126, 45,114, 78, 39,202,244,152,162, +109,230, 40, 69,181,128,107,128,140, 96,139,208,135, 36,239, 62, 17,229,177,123, +172, 13,181, 35, 73, 96,120,157,160,133,178, 48, 93,117, 69, 30,250,196,140,180, + 5,145,161, 7,205,178,119,154,236, 9, 26, 14,232,249, 6, 93, 60, 2,110,192, + 67, 58, 57,251, 88, 16, 51,144, 22, 32,204,192,138, 93,188,103, 24, 35, 15, 75, +143, 72, 19,218,133, 99,188, 89,136,204, 38,145, 38,129,196,221,209,124,201,132, +230, 93,235,157, 65, 97,100, 96,165, 65,101, 88,193, 60,171,148, 98, 14,223,109, +168, 86,104, 23,164, 54, 7,100,226,221,249,115,178, 28,241,108,183, 97,139,202, + 34,191, 55,127,187, 53, 16,137, 51,197,143,175, 95,106,174, 11,207,131, 71,167, +126,206, 15,204, 96, 96, 50,174,215,174,220,169,164,179, 11, 15,112, 90, 7, 69, + 61,249,126,229, 37, 98,140, 99,107,126,105, 40,193,208, 50,160,163,190, 29,217, +123, 97, 28, 56, 56, 23,164,135,125, 79,132, 79, 93,193, 10,213, 67,113, 71,178, +128, 39,130,167,113,222,211, 86,136,152,146, 21,117,200, 3, 13,163,140, 80, 86, +237, 78,151,122, 49, 10,111,204, 88, 45, 19,212, 55,255, 97, 21,216, 27,136,163, +102,119,219,139,169, 47,160, 88,114, 36, 31,132, 43, 77, 24,100,210,139,211,251, +182,159, 8, 78, 32,236,103,145, 70,217,253, 7,210,236, 0,145, 19,205,133,247, +197,180,121, 46,225, 67, 20,242, 76,243,173,196,174,210,138,159,111, 54,206, 80, + 42, 58,225, 82,209,148,153, 42,225,171, 28,198,240, 46,218,246, 64,185, 88, 32, + 12, 64,200, 1, 30,120,253, 4,163, 66,166,192, 3, 99, 50,113,104,234,213, 58, +223, 71,167,254, 55,212,241,193,163,133, 15, 42,155, 37,142,157, 56,170, 3, 49, +221, 32,242,142,131, 47,167,230,121,213,155,214,187,155,111, 79,125,153,104, 37, +106,133, 6,248, 43,249,248,149,169, 44,209,145, 8,161,217, 94,113,152,181,108, + 23,220, 28,246, 61, 52,186, 76,249,250,123,253,167,115,241,209,192, 27, 95,249, + 27, 72, 36,158,246,130,202, 90,162, 64, 30, 43, 16, 65,192,148,223,238,227,181, +127,178, 84, 59, 71, 89,138,156, 15,210, 76,160,147,217,132,225,208,150,222, 45, +113, 22, 41,202, 11,205,201, 6,237, 55,160,147,167, 29,171, 43,129,217, 76,122, +205, 86, 90,185,230,242, 10, 99,205,251, 41, 15,170, 8,173,225, 59,223, 43, 45, + 38,253,150,235, 39, 17,188,208,132,186,196, 29,243,141,193, 22,249, 17,164, 38, +216,122, 41,118, 10,208,196,231,109,195, 64,138,205, 30,209,121, 3,173, 52,100, +160,119, 34, 54,169,225, 15, 2,100, 30,133,173, 68,204, 21,184,119,108,174, 40, + 94,184,132, 94,177,155, 11, 93,112,209, 51, 1,214,245,143,103,140,102,130,211, +169, 19, 1, 41, 81,198,134,215,199,153, 0, 25,197, 16,157,159,220,218,137,167, +172, 44, 31, 68, 59, 52,233, 22, 49,178,201,227,112,180, 79, 29, 16,186,140, 77, +159, 6, 86,128,150, 77, 46, 10, 80, 91, 31, 81, 0, 36, 50, 15,130, 88,193,160, + 69,183,102, 73,132, 16,154,130,202,123,207,188,154,127, 82,161,200,242, 47, 86, + 48,111,241,250,186, 58,105,152,179, 6,229,190, 56, 42,217,161,163,241,186, 37, + 5,175, 10, 43, 43,128,240,205,167, 6,254,246,142, 83, 70,106, 76, 29, 69, 99, +128,118, 5,155, 62,160,160,110, 28,120,139,125,203, 8,181, 21, 23,111, 71,132, +185, 66,253,131,230,182, 81, 32,235,106,214, 31, 52, 3, 14,204,244, 75, 71,221, +188, 49,182, 73,237,199, 49, 23, 85,175,238, 23, } ; -// ../Source/JitKernels/GB_jit_kernel_split_full.c: -uint8_t GB_JITpackage_185 [330] = { - 40,181, 47,253, 96,193, 1, 5, 10, 0,166, 19, 65, 33, 16,209, 60,230,145, 19, -194,135,159,176, 6,108,140,139, 4, 9,101,127,150, 85,235,152,229,166, 47,154, -234,136, 0, 0,170,106, 6, 54, 0, 56, 0, 55, 0,212, 55,223,190, 88, 48,196, -231, 70,107,245,233, 43, 94,134, 31,197,171,183,223, 24,179, 73,203, 63,227,125, -253,178, 67,236,212,221, 13, 57, 99,188,172, 71,155, 63, 20,191, 98, 55, 6,109, -117,249, 52,201,104,154, 2, 82, 32, 81,209,127,220,213,212, 13,226, 99, 15,239, -240, 59, 70,244, 99,248, 28,174,145, 36,145, 73,221,103,196, 31, 95,243,113,127, - 20,172,121,206,212, 39,129, 18, 80, 81, 97, 32,160, 28,226, 30,159, 35,206,220, -132, 75, 1,154,194,225,149, 86, 88,189, 44,132,209,144, 18,218,248, 4,125, 98, -159, 63,230,235,249,164,212,125,106,172,199, 51,236, 17,129,168,158,150,126, 38, - 25,102,125,136,189,239, 2, 18, 2,241,125, 92, 95, 28,225, 32,230, 2, 82,118, -228,193,161,109, 83, 88, 86,100,179,149,120, 61, 30,138,152,253, 34,128,147,126, -223,172, 45,191, 45,192,191,195,100, 46,196, 1,119,119,201,145, 7,135, 30,199, - 32,152,150,217, 90, 35,139,154,109,182, 42, 30, 1, 21, 0, 75,137,108, 33, 54, - 16,128, 37, 33,164,161,189,142, 4, 19,160,152,153,215, 20,176,149, 0,223, 4, - 36, 19,222, 28, 5,109,211,252,121,102,138, 54,137,173,214, 35, 6,153,152,120, -192,238, 75, 91,194, 4,152,162, 96, 8, +// ../Source/Template/GB_log2.h: +uint8_t GB_JITpackage_180 [613] = { + 40,181, 47,253, 96,114, 4,221, 18, 0,230,225,102, 32, 0,153, 27, 87,209,154, +120,225,232,208,118,180,139,154,137, 13,147, 19, 86,217,177,250,154, 88,174,143, +252,255,255,254, 16, 2, 95, 0, 93, 0, 92, 0,213,187,223,174,208,100,131, 77, + 63, 93,199,206,105,156,193,239, 57, 77, 41,164, 9, 7,173,160, 93, 10, 67, 65, +107,171,139, 77,192,127,146,147,198, 32,173, 2,179, 45,189,167, 9, 29,200, 22, + 1, 77,242, 90, 24,142,175, 52,117, 60,127,216, 1,104,237,217,190,142,178,166, +246,190, 73,157,131, 93,207, 42,187,175,127,158,235, 55, 3,196,180,207, 82, 46, + 98,233, 44, 3, 92, 89, 22, 22,219,219,125, 70,210,201,112, 28,202,134,217,100, + 52, 18,172, 74, 7,243, 87,159,190, 95,107,169,103, 89,177, 61,235,171,199, 61, +232, 69,108, 68, 2,145,104, 21,165,178,116,109,109,194, 87, 45,237,233,245,123, + 92,195,174,178,235, 55,206, 63, 10,120,253, 0,224,194,105, 22,205,230,249,172, +222, 7, 0, 5, 76,187, 28,236,164, 9,210,140,235,239,125,174, 62, 49,151,227, +184,179,180,218,236,187, 22, 11,235,135,117,221,151,101, 12,108,202, 25,108,119, +236,152, 58, 71,163,217, 42, 22,169, 45,167,163,208,206, 24, 99,119,108, 43,115, +136, 68,174, 31,198,184, 97, 40, 83,122,198,245,113,216,132,217,109,145,226,182, +137, 54, 74, 87,180,227,234,103,250,225,136,227,252, 36,193,206,182, 54,118, 59, +219,254, 12,115,167,169, 12,241,127, 58,123, 1, 0,171,208, 14, 71,199, 22, 68, +204, 79,159,229,231,117, 58, 14,219, 71,147,134, 22,196, 93,237, 99,236,215,132, + 31,244,116, 99,246,250,234,218, 38, 88, 84,206,157, 76,121,227,111,210,183,135, + 55, 55,126, 13,200,195, 85, 52, 28,135, 2,210,108,184, 14, 6,224,253,172,134, +190, 12,215, 21,155,209,133,126,180,165,117, 35,118,236, 82, 6, 49, 28,185,174, +131, 89,147, 5, 76, 32, 64,132, 16, 98,102,231,226,139,217,182,166,206,235, 78, +171,176,111, 57,117,149,113, 69, 87,141,131, 65,222,234,181,157,160, 13,100,164, + 40, 23, 16, 26, 41,224, 30, 4,228,209, 28,106,133, 90, 68,249, 84,214, 78,190, + 90, 74, 40,108,116, 96, 81,132,238,203, 21, 33,147, 85, 0, 24, 90, 2,197, 0, + 6,142,198,147,239, 2, 64, 7, 20,185,194,198,196,216, 0,160,149,130,248,120, + 1, 56,192, 72,161, 5,228, 2, 28,146,110,152,202,190,223,130,205,133,145,127, + 22,249, 0,166,172,114, 19, 44,221, 97,129, 90,171, 22,251,200, 97, 35, 16,182, +120, 88, 65,255, 9,191, 8,225,220,184,109, 75, 50, 70,159, 94,152,167,183, 36, +135, 63, 88, 15, 39, 86, 68,186, 64, 37, 30, 34,240,171, 5,102,208,204, 60, 51, +221,134,208,106,243, 67,224, 56, 89,133,162,206, 13, } ; -// ../Source/JitKernels/GB_jit_kernel_split_sparse.c: -uint8_t GB_JITpackage_186 [328] = { - 40,181, 47,253, 96,205, 1,245, 9, 0,134,211, 63, 33, 0,241,230,238, 50,108, - 88, 84, 29, 3, 2,125, 57,231,168, 27,125, 12,171,202, 44, 52,237,122, 84,208, - 97,255,255,183,255, 80, 2, 52, 0, 55, 0, 54, 0,137, 75,245, 27, 48, 95, 44, -216,113,106,107, 86,129, 99, 71, 98,182, 51,198,216,105,189, 67,156,187, 95,178, -136, 95,255, 27,186, 36,187,140,195,177,188, 97,139,100, 87,110,198,148, 91, 97, -159,166, 25, 77, 83,216,155, 2,137,138, 26,244,186,177,222, 64, 54,150,224, 44, -246,167,136,186, 20,219,195, 89, 4, 73,108,210,215, 25,178,203,230, 94,102,112, -130,185,135, 97, 61, 37, 80, 2, 42, 42, 12, 4,212, 33,239, 57, 45,113,166, 11, - 13,238, 98, 60,171,149,150, 97,215,161, 88,204, 9,109, 78, 41,167,248,180,203, -176,147,156,214,250, 83,141,245,124,211, 26, 15,168,142,212, 26,159,200,166, 89, - 45, 98, 73,127,129, 9, 81,112,247,124,188, 28,113, 74,115,118,230,225,144,181, -151,101, 61,236,173, 72,236,185, 72, 98,114,147, 0, 79,234,220,133,163,165,243, - 5,188, 63, 76,232,137, 56,240,255,147, 51, 15,135,158,107, 14,141,219,238,101, -185,186,217,108,179, 55,187, 2, 22, 0, 77, 9,121, 67,112, 32, 0,139, 68, 72, -131,248, 58, 20, 76,128, 98,102, 94, 83,192, 86, 2,124, 19,144, 76,120,121, 20, -180, 77,243,231,129, 41,154, 73, 24, 2,198,172,229, 23,131,246,204,119, 0,111, -204,182, 76, 1,154,162, 96, 8, +// ../Source/Template/GB_math_macros.h: +uint8_t GB_JITpackage_181 [706] = { + 40,181, 47,253, 96,155, 5,197, 21, 0, 38,164,108, 32,224, 26,231,201, 71, 0, +188,143,108,167,114, 83,140, 76,168, 47,246,154,206, 81,212,123,234,211,218, 49, +140, 49, 24, 67, 8, 1,103, 0, 97, 0, 94, 0,225, 12, 96,134, 14,193,181,248, +201,148,247,198,237, 25,206, 92, 27,212,112,141,107,127,115,195,141, 42,159, 14, +108,214,109,220,160,227, 44,154, 38,232,148,122,223, 18, 8, 3,130, 99, 28, 12, +136,107, 95,246, 13, 79,150,172,188,243, 62,138,217,162,166,232, 91,200,219, 76, +196,148,188,152, 70,227, 43, 83,161,206,115, 21,194,254,166, 41,212,196,111,136, + 29,182,247, 19,179, 68,145, 38,152, 23, 10, 24, 87, 40, 4, 31,177,252,233,218, +150,197, 84,254, 90, 73,249, 59,109,240,194,185, 19,178,223, 78,217,127, 19,203, +210,181,225,193, 43, 51,190, 98,193,176, 88, 44,154,183,152, 95,237,113, 79,218, +247, 27,174,118,102,153, 87, 41,148,253,158,235,180, 41, 46, 75, 75,195, 95,123, + 49,213, 73,197,119,100,231, 96,149,223, 92, 18,245,173, 78, 20,214,117, 6,176, + 12, 41,228, 1, 81, 50, 34,143, 19, 54, 88, 3,242,227, 93,191,221, 15,231, 45, +174,119,149,251,226, 30, 93,225,155,150, 36,126,182, 53,127,187,205,234,150,205, + 68, 92,114,124,227,174, 75,254,184, 43,211,198,205,149, 65,254,106,124,239,106, + 71, 30,167,163,225,252,182,169,115,157, 29,110, 89, 74,173, 40,250,187,121,109, +203, 84, 93,155,213,223, 58, 60, 30,101,139,202,227, 41,230,217,122,127, 31,171, +188, 3,164, 43, 43,226, 24, 22, 78,176,118, 0,195, 0, 98, 55, 1,111,112, 69, +191, 58, 3, 88, 73,218, 86,169, 32, 31, 90, 58,251,123,116, 52,218,152,253, 92, +181, 85,211,184,236, 13,195, 33,145, 44,187,230,202, 66, 19, 79,211, 24,105,120, + 59, 75,106,232, 18, 29,130, 85,231,193,198,171,198,125,237,236,146,160,202,154, + 39,202, 10,154, 37,197,175,174,194,135, 97,248,195,129,114, 77,168,227,189, 69, +145, 45,109, 99,237,190, 1,113,168,225, 36, 99,140, 49, 19,153, 41, 72, 33,211, + 26, 48,132, 32, 67,103, 61,178, 41, 89,105, 8, 55, 66, 51,145,162,148, 31,229, +219, 1, 89, 11, 16,111, 68, 88,227, 19, 7, 92, 68, 51, 48,236, 23,234, 3, 66, +126,132,148,236,126,101, 83, 62, 53,209,176, 84, 0,144, 36,113, 38,222, 41,117, + 82, 54, 31, 45, 1,101,162,211, 78,164, 32,131, 46,188, 57,187,209,220,132, 90, + 92,158, 51,242,178, 51,205,203, 24, 79,219,174, 89,220, 25, 18, 30,164,171,125, + 92,138,152, 71, 89,183,245, 78,138, 77, 50,231,239,125,139,142,204,188, 91, 60, +159,147,250, 97, 96, 81, 2, 10,168,157,243, 60,190, 71,111, 14, 2, 89,236, 27, +182,198,150, 32, 76, 25,183,232, 53, 70, 3, 84,139,123,249, 90, 86, 44,189,142, +124, 4, 84,229,149, 7, 84,141, 33, 46,188, 28,199, 97, 55, 17, 68,111,120,241, + 14,227,220,200, 16,216,216,209,158,215,228,183, 66,128, 50,202,189,163,183,224, + 3,162,102,254,132, 86, 83,196,195, 95, 38,242, 4,179, 48,159, 24,203,123,148, +209, 36, 81, 1, 25, 83,210, 62,104, 82,149,153,178,126, 55,206, 67,236,220, 18, + 79,208,188, 53, 12,188, } ; -// ../Source/JitKernels/GB_jit_kernel_subassign_05d.c: -uint8_t GB_JITpackage_187 [614] = { - 40,181, 47,253, 96,196, 4,229, 18, 0, 6,162,104, 33, 0,213, 54,238, 40,174, -177, 33, 60, 21,144, 92, 46, 85, 42,205, 0, 16,200, 56,218, 86,102,134,161, 93, -107, 81, 85, 53, 84, 69, 9, 95, 0, 92, 0, 96, 0,122,131, 31,155,241,123, 53, -183, 14, 6,130,225, 74, 20, 8, 6,175, 42,229,150,182, 34,250,112, 76,243, 18, -220, 98,104, 53,110,117, 26,231, 0, 71,154, 35,217,235, 76,199,238,183, 37,187, -233, 53,126,207,181,245,205,241,131, 35,183, 50,189,180,106,103,120,163,178,216, -220,179,138,121, 8,194,196, 31,171, 53,245,144,122,222,199,249, 67,115, 91,208, -116, 68,124, 48,152,174,193, 32,141,107,115,113,251,214,180,122,233,209,207,151, -106, 28,183,177,132,100,173,244, 43,189,227,231,185,101,209,223,179, 93,201,188, -245,235, 75,191, 49, 20,235, 12,105,186,241,235,207,163,103, 86,231, 34,118,133, - 87,153,149, 81,155,103,238,137,224,254,202, 68,192, 12,215,131,149,142,154,103, -249,237,103, 55,126, 79,114, 85,203, 93,156, 7, 6,243, 94,148, 95,127,198, 3, -158,123,105,245,253, 31, 72, 69,162,177,108, 50,223,123,159, 13,184,187, 79,164, - 73,225, 21,229, 23,205, 37,131,153,150,136,164,235, 52,199,166,155, 28,196,146, -129, 80,156,211, 28, 23, 46, 50, 53,146,201,116, 68,166, 9,211,111,243,189,224, -182, 35, 47,239,103,127,143,111, 77,134,190,173,111,210,227,214,103,210,203,109, -181,151,152,250,139, 40,232,152, 86,159, 72,176,136,127, 44,119,211, 84,154, 20, - 94,117, 29,100,219, 54,221,116,228, 8,229, 56,147,251, 51,160, 98,191,233, 29, -195,223, 19,224,239,145,183, 98, 91, 85,149,128,162, 4, 84, 40,139,163,234, 16, - 76, 71, 51,183,233,179, 30,254,192, 55, 65, 77,142,226, 56, 67,249, 71,223,252, -106,175,158,161,175, 98,168,240,198, 53,203,208, 25,254,205, 50,139,225,135,243, - 63,127, 26,139,118, 87, 76,126, 30,170, 52, 75, 32, 48,132, 16,231,142,117, 78, - 8,217, 82, 7, 72, 1, 39, 56, 4, 31, 84,198, 25, 54, 66,144, 36, 19,102,204, -240,183, 80,184, 6, 98,135,130, 36, 56, 7, 76, 8, 5, 0,203, 3, 71,176,114, -128, 60,131,152, 67,201, 51,140, 57,128, 84,131,201,193, 95,160, 42, 96,204,212, - 79, 3, 43,237,248,131, 40,168,126, 10, 11,130,172,182, 5, 64,119, 13, 15,226, - 39, 24,210, 64,161,206, 24,201, 64, 6,202,254,192,209, 95,253,178, 33,122, 55, -176, 39,134,160,111,148,231, 95,139,179,116,206,225,116,177,107, 38, 24,212,114, -107,122,191,160,207, 23,181, 36, 21,161,239,231,132,188, 17, 17,240,180,244, 96, -240, 13,215,208, 98,102, 27,168,204,113, 41,115, 28,202, 0,195, 52, 49,163,118, - 91,102,122,223, 37, 86, 27,220,130,232, 81, 20,184, 1, +// ../Source/Template/GB_memory_macros.h: +uint8_t GB_JITpackage_182 [820] = { + 40,181, 47,253, 96,241, 13, 85, 25, 0, 86, 36,111, 39,208, 20,177, 14, 84,196, +253,186, 96,251, 85, 64,172,128, 59,183, 32,236, 78, 33, 15,224,254, 90,189, 89, + 2, 97,182, 31,127,204, 62,224,139, 7, 69,238, 47,103, 0,102, 0,100, 0,140, + 89,176, 94,110,177, 44,163,188,147,175,137, 9,247,100, 75, 78, 19,141, 7, 11, +202,197, 28,203,205,212,251, 98, 30,146,122,150, 93,254, 16, 42, 6,149,137,194, +129, 65,229,206,130,254, 90,114,224,195, 41,151,119,176, 75, 53,121,241,183,185, + 76, 13, 88,133, 54,194,194,109, 97,221,240,149,219,230,249,164,242, 66,139,102, + 25,252, 45, 24,165,169,181,160, 86,117, 44,213, 88,171, 26, 34, 46, 73,207, 68, +146, 2,175, 3,183,184,107, 32,251,235, 1,232, 1,208,227,157,210, 86, 18,231, + 92,133, 34,232, 4, 4,159, 38,140,138, 51, 0,188, 66,143,146,132,227,174, 95, +133, 48, 24, 10,226,255,159,199, 34,131,241,208,215,226,143, 14,250, 71,250,190, +147, 90,191,147, 39,212, 44,215, 91, 26,111, 97,182,145,173, 37,105, 15, 79, 41, +240, 72, 84, 27, 13,229,112,201, 84, 27,148, 38,131,201, 68,190,102,148, 2,143, + 1,165, 50, 9, 22,172, 13, 98,105, 72,148,215,228,206, 88, 64,228,111,254, 34, +174, 95,245,104,203,199,189,105,128,208, 63,182, 12,175, 14,132,190, 16,158,243, + 85, 12,245,107, 90,198, 53, 20,125, 33,210, 55, 93,116,200,245,227,218,185,111, + 66, 14,154,105,186, 56,148,212,187, 40,250, 37, 41, 7,130, 94,178,112,215,127, +174, 70, 80,197,196,244,170, 10, 51, 77, 64, 84,149, 20,253,145,244, 23, 48, 57, +182,108, 68,118,174,159, 12, 5,165,201,168,158,135, 34, 34,237,133, 13,143, 89, + 91,255, 65, 77,163, 54,114,124,164,124, 81,235,108,217,141,122,192, 75,239,179, + 45,114,111,239,130, 43,255,186, 3, 67,162,252,100, 14,230,167,176,221,238, 22, +167, 60,123, 76,136, 89,157, 11,239,214,241,199, 28,218, 1, 19, 26,222, 99, 74, +214, 96,159,177,123,122,189,147,221,201,214,110,214,185, 25,187,224,128,146,160, +113, 49, 83,104, 68,100, 72, 82, 90,201,176, 6, 64,134, 8, 77,205,117, 3,241, +112, 3, 95, 60, 34, 66,172, 22, 59,156, 67, 20,187,103,217, 24,214,152,113, 51, +220, 32,143,148,163, 24,163,216,248,195, 79, 18,155,111,253, 96, 63,174,118,146, + 9,206,182,185,181,184, 28,152,190,143, 4, 66, 11,201, 60,203,107, 65, 88,102, +219,164,225, 7, 91, 13,182,156, 60,216,164,192,159,226,188, 25,107, 16,205,199, +182,167, 92,163, 1,238, 62,240,153,232,122, 87,137, 10,104, 25, 51,123, 51,192, +156, 98,202, 40,217,171,174, 0, 43, 75,149, 34,222, 20, 78, 4,165,149,134,231, + 66, 41,187,161, 7, 24,161, 68, 99,212, 2, 28, 17, 32,123, 73, 7, 65, 43, 58, + 11, 54,115,212,209,129,215, 95,194, 53,173, 28, 43,193,103, 28,113,176, 92,170, +128, 11,210, 68,120,134,130,117,153, 1,171,117, 31, 5,207, 96, 1,112, 64,103, + 6,126,224,249, 28, 4,114, 13,120, 32, 4, 88,122,187,237, 32, 14,237, 64, 5, +200,108, 63, 1, 88,191,195, 6, 29, 30,200, 18,141, 60,122,213,118, 18,186,133, + 31, 34,113,101,213, 14, 65,239,233, 89,135, 66,186,131, 4, 11,162,244,240, 44, +161,177, 42, 0,247, 99,115, 39, 44,251, 44,133,163,136, 61, 62, 39,140, 42, 32, + 27,134,225,105,176,101, 39, 12,253,140, 3, 30,115,168, 6,195,227, 80,239,147, +215,137, 27, 0,145,126,138,100, 9, 9, 51,135,100,162,193,239,160,116,238,191, + 21, 58, 14,252,212, 8, 57,244,234, 90, 92,115,106, 71, 90,220,192,167,138, 0, + 26, 52, 49, 42, 51, 81, 47,192, 10, 39, 0,234, 62, 24,133, 62,188,162, 23, 15, + } ; -// ../Source/JitKernels/GB_jit_kernel_subassign_06d.c: -uint8_t GB_JITpackage_188 [781] = { - 40,181, 47,253, 96,125, 6, 29, 24, 0,198,232,120, 32,224, 88,231,208, 5,174, -249,187, 22,106,173,180,214,196, 24,175,107,194,237,185,129, 41,185, 43, 84,214, - 49,140, 49, 88, 35,224,113, 0,109, 0,108, 0, 93,187,154,109,115, 20,140,214, - 11, 6,138,108, 50,174, 75,183,113,115,142,179, 39,170,156,127,159,246, 11,113, - 40, 28, 48,133,161,112,248,128, 10,126,225, 90,154,145,103,218, 81, 94, 14,193, -234,249,213,209, 46, 16, 79,156,119,178,104,124,167,216,233, 92,199,142,213,216, - 54,119, 92,191,221,182,103,250,117,231, 55, 41,190,227, 15, 76, 99,251, 23, 52, -227, 18, 5,105, 69, 21,227, 25, 26,177,252,218,222, 38,201, 92, 71, 18, 50, 57, -129, 96, 97, 4, 66,217,246,195,236,251,198, 14,235, 42,134,167, 56,193, 92, 67, -239,208, 51, 30,193, 87, 40, 54,180,152, 83,189,121,130,218,229,242,201,128, 35, -165,179,233,252,196,190,114,187,225,251,139, 76,199,155,113,227,111,118, 34, 24, - 82, 73,194, 83,123,152,127,101,219,184,175,248, 5,215,120,214,111,190,239,188, -118,206,206, 99,126, 93,157,135,246,140,107, 90, 99,176,184, 22,130,237,139,115, -161,151, 27, 99, 21,178, 3,214, 30,157,162,246,197, 13, 29,121,145,100, 56, 18, -203, 47, 26, 68,115,153, 72, 15,165,130,178,243, 93,154, 94, 22,122, 96, 91,190, -141,109, 53,181, 29,116,245, 24,156,248,157,103,223,252, 14,225,198,147,190,113, - 15,170,151,191,111, 10,110,111,231, 60,197,219,246,242, 13, 59,202,159,181,200, - 78,143, 62,119, 56, 30,149, 43,206,245,250,133,111,139, 40,207, 78,250,237,207, -182,135, 92,211,145, 11, 43,238, 26, 2,195, 20, 30,189,204,117,238,175, 57,220, -245, 6,150,181,178, 24, 31,116, 58,146,109,131,220,137,224,246,142,185, 47,128, -102,157,231, 39,130,157, 37,224,205,141, 31,181, 86, 87, 57,219,129,220,184,147, - 30, 30,197, 80,148,164,219,166, 78, 54,173, 31,150,164,166, 33,200,248, 3,147, - 40,240,142,119, 18,117, 67,176, 65,217,125, 59,108,195,154,169, 29,187,147,232, - 12,125,223,164,207, 45,146, 96, 40,158,204,135,211, 53,215,213,192,255, 91, 42, -139,241,129,224, 26,143,134,179,145,153, 9,165,211,209, 32,159,124,168, 81,153, - 82, 10, 33, 42,210,180,160,146, 54, 3, 32,132, 16, 4,161,213, 1,178, 8, 73, -201,112,137, 33, 14, 10,104, 40, 80, 80,251,127,180, 1, 57, 36,146, 27, 49,183, -153,251, 10,220,101,157, 22, 43, 1,208, 63,109,224,182,207,198,211, 45, 23,176, - 43,234, 55, 8,119, 3,142, 41, 70,203,112,248,195, 72,178, 16,182, 37,114, 96, - 1,105,218, 24, 78, 20,149,132, 89, 30, 38, 74,238,191, 59, 38,149,142, 38, 16, - 86, 2,218, 36,251,176,158,224, 80,205, 46,249, 85,112,230, 72, 43,124, 33, 66, -145, 74, 1, 54,233, 58,219,103,125, 28, 43, 86,195, 59, 19, 29,146, 5,111, 33, -186,233,148, 87,161, 61,233, 10,172, 35, 74,174, 90,168,147,197,213, 95, 72,160, - 66,116,180,200,139, 34,145, 67,124, 34,134,198, 16, 31,179,155, 31,212,167, 53, -219, 83,162,125,251,152, 91,254, 59,159,121, 86,150,117,116,164,217,238,202,114, - 52,127, 82, 79, 48,111, 31,200,199, 52,166,177,158, 6,116, 25,221,174, 13, 12, - 79, 91,225,179,100,117,192, 94, 60, 33, 35, 98,116,222,121,113, 81, 70, 8,196, -170, 9,242,174,226,221,202,164,240,214,188,120,244,164, 33,122,178,188,148,249, - 64,153,249, 48, 77,164,106,227, 97,166,233,114, 54, 24,220, 18,143,210, 3,248, - 2, +// ../Source/Template/GB_meta16_definitions.h: +uint8_t GB_JITpackage_183 [2278] = { + 40,181, 47,253, 96,159, 48,229, 70, 0,138, 77, 84, 14, 45,176,204,138,117, 42, + 46, 0,184,110,151,240, 15, 1, 82, 30, 44,102, 91, 47, 54, 46, 41, 84,216, 84, +165, 0,211,237, 11,170,221, 6,144,231,148, 61,205,157,210,159, 6,255,193, 46, +215, 0,219, 0,216, 0,116,179,222,235,188,115, 20, 40,124,131,193,120,160, 0, +114, 50,255, 15,129, 68, 30,241,224, 58, 24, 9,122, 85,221,211, 30,174,164, 22, + 32,242,137, 40,208,123,101,142,121,190,177,242,237,207, 75,185,210, 83, 62,240, +193, 14,134, 98, 66, 96,163, 30,209,126,155, 94,177,213,190, 97,114,158,107,180, +108,117,182, 58, 47, 21, 61,117,122, 62, 43, 21,179,243, 4,196, 97, 2,193,192, + 22, 21,169, 59,165,114,123,250, 74,174, 50, 12,108, 37, 83,109,193,224, 96, 2, + 99, 82, 49, 71,101,203,155,219,107,109,244,230, 24,230, 30, 17,128,112,128, 96, + 56,240,224, 0,241, 8, 5, 61,178,205, 17, 39, 62,113,223,172, 59,179,238, 60, +226, 56,139,103,209, 88, 41, 40,204,225,219, 26, 7,242,226,221, 61,243,219,109, + 91, 35,181,103,235, 94,206, 87,146, 41, 87,191,209,186,183,213,180, 78,177, 38, + 86,206,190, 45,219,195, 21,140,120,136,151, 51,248, 40,222,208, 0, 97,104,104, + 8,242,146,173,142, 95,206, 87,163,217,164, 78,193,104, 46, 32,104, 52, 80,131, + 81,208, 0,126,224, 5, 98, 58, 12, 48,164,139, 75,124,212,237, 28,116,231, 92, +116,237,156,115,174, 93, 67,174, 47, 23, 37,209,185, 43, 62, 72, 50, 78,221, 45, +191, 53, 94, 11,157,139,176, 86,239, 21, 81, 32,119,230,184,160,139, 58, 19,121, +244,209,244,160, 63,248, 30, 5,228, 73, 1,172,201,190,145,233, 1,192,112, 82, + 39,243, 52, 30,205,120, 95, 23,244,190,213, 43,249,186, 7, 87,178, 47,111,156, +226, 0, 51,161,201,192,207,245, 30, 65,219,208, 65,236,141, 25,134, 69, 79, 87, + 82, 82,185,100,140, 99,250, 2,134,105, 30, 26,179,219, 83,197,132,230,226,130, +225,116, 24, 44,255,144,159,233, 65, 2, 53,174, 43,227,244,221,242, 71, 95,249, +117,221,242,207, 47, 44, 16,113,101,255, 90, 57, 41,182,253,199, 22,227, 8,195, +217, 56, 12, 78, 4,157,211,113,146,133,133,131,155,139, 4, 48,194, 3, 84, 14, +178,242,245, 78,166,226, 85,164, 99, 98, 60,157, 98,182,208,107, 71, 10,163,138, +111,100,224, 74,237,196, 0,219,104, 81,184, 0,173, 70, 49, 41, 8,159, 71, 70, +242,134,237,234, 50,246, 22,156,133,163,193, 76, 84,168,188, 37,146,190,104, 92, +104,198, 61, 46,116, 76, 39,179,105, 0, 43, 50,151,190, 22, 12,164,174,124, 66, + 68, 34,145,168,200, 72, 89,203, 84, 59, 99,123, 44, 82, 77,183, 91,177, 92, 54, + 94, 79,191, 98,108,202,180,207, 45,103,147,226,233,151, 8,196, 31,109,191, 16, +185, 71, 23,122,201,251, 2,125,163, 84,198, 89,195,194, 66, 67,103,131,225,112, +220,172, 62,239,175, 58, 59, 78,117,229, 76,147,159,242, 21,170,177, 57,101,155, +253,134,113,213,232,197, 52,203,245, 20, 10, 77,102,147,145, 50, 14, 3, 62,208, +184,137,251, 39,150, 43, 61, 79,191, 83,254, 90, 45,251,101, 99,246,203,198, 54, +100,219, 71,174, 23,244, 22, 44, 15,183, 88, 30,121,208,135, 12, 16, 72,133, 58, +239,176,197,108, 86, 31,136,106,215,156, 24, 79,205,146,171, 55,204,123,230,232, + 27, 49,174,183, 54,180, 41,217, 85, 94,177, 32,195,216, 20,239, 45, 27, 45,217, +151,204,209, 27,183,241,209,195,237, 22, 59, 48,139,228, 29, 61,106,232, 10, 46, + 27,135,225,192, 7, 27,167,201,188,135, 95,107,163, 43,141, 17, 73,155,158, 99, +115, 78,149,107, 72,146,244,233, 76,170, 60, 34, 81,232,159,134,146, 36, 73,146, +244,137,251,229,218,154, 4,174,147, 89, 85, 34,210, 50,118,219,210,173, 59,167, +115,141,119, 82, 36,147,208, 50,248, 33, 63, 89,132, 1,136, 35, 24, 48,224,159, + 16,129, 16, 94, 19, 58, 8, 2,153, 29, 44,167, 5,129, 36, 97, 81,246, 91,141, +178,167,215, 89, 35,203,198,174,109, 46,224, 7, 74, 80,227, 46,156,107,145,104, +180,196, 77, 96, 48,216, 46,205,216,211,167,125,189,247, 28, 26,218,110,127, 60, +234, 75,222,212, 37,222,175,220,193, 98, 28,130, 77,168,114,180,142, 41, 83, 35, + 34, 35, 41, 73, 10,173, 1,242, 40, 6, 33, 57, 28, 72,113,178,118, 3, 82,160, + 40, 11, 33, 17, 66, 18, 48, 34, 32, 4, 17, 1, 49, 2, 67,160,128, 8,132, 72, + 48, 34, 34, 98, 82,226, 28,164,252,234, 14,113,141, 98,179,139,200,224,224,240, + 16,102, 28,241, 8, 27, 33,158,197, 54,132, 57,143,170,217,173,254,228,120,189, + 78, 73,192,139, 75,209,192, 34, 85,183, 75,205, 28,118, 55, 41,173, 63, 23,128, +122, 39,112,204, 29,126, 83, 55,171,105, 41,146,221,244,148, 39, 27, 4,238, 23, +204, 92,233, 92,154,220,227, 41, 55,115, 99,126,246, 49,180, 10,167,173,122, 9, + 89,168, 65,230, 24,184, 82,189,211, 82, 14,138,216, 15, 4,183, 46,241,231,149, + 51,176, 71,229,200, 27,160,112,218,242,248, 16, 85,255, 3, 52,138, 29,159,227, +180,243,249,166, 29,176, 38,238, 72,117,231,184,110,166,145,235,208,144,247,138, +112,195,160,141,235, 30,109, 1,244,144,156, 97,232, 92,213,247,118,157,245,172, + 75,115,147,146, 29,155,180, 76,115, 21,249,119,220, 54,130, 27,253,180, 11,168, +172,215,195,136,135,211,134,116,118,217,120,117, 65, 67,194,113, 81, 57, 43, 15, +188,124,148, 88,180, 71,171,120,125, 87,217, 35, 0,154,252,191,179,111, 70, 32, + 90, 4,125, 50, 64,233,135, 40,128,203, 37,241, 9, 40,147, 21, 39, 69,108,106, +197,136,248, 92, 44,219,110,169,206,247,183, 11,193,204, 73, 73,188,231, 79,103, + 79,187, 26,168,138,241,115,240, 17,222, 60,164,134, 3,190,177,144,164, 35,237, + 17, 36,117,206,110, 63,143,123,198,240,143,142, 31,155, 1,132,225, 18, 93,101, +153,172, 80,202,252, 95,110, 36,122, 24,211,223,178, 80, 38,112,243, 43, 72, 77, + 14, 69,199,168,118,198, 28,101,104, 56,240,196,107,154,202,224, 46, 56, 66,168, + 51, 2, 22,184,155, 94,224, 46,145, 41, 52, 48, 14,249,138, 64,101,235, 52,242, +176, 0, 4, 99,252, 45,115,121, 33, 47, 61,210,157,101, 62,102,210, 73,228,114, +194,149, 36,245, 69, 53,101, 77,165,111,162,110,252, 28,107, 18,120,148, 73,150, +155,251,235,152, 6,200,111,162,161, 31, 79, 82,168,113,212, 31, 3,228, 72,111, +202,182,208,176, 16, 82,154, 10, 37,141,168,184, 4,149,200,125,236, 3,201,187, + 83,224,245,212,194,163,232, 45,143, 79,122,237, 7,149, 14,224,240, 29,215,211, + 65,142, 51, 46,164,211,137,245, 17,239,160, 16,192,152, 72,128, 67,184, 60,192, + 10, 61, 84,116,199,222,144, 44, 13,231,164, 73, 28, 5,234,169,175, 68, 84, 36, + 17,222,236,125,181,217,167,237,111, 43, 12,110,166,175,235,160,189, 60,116, 73, + 87,117, 84, 32,234,245,156,170, 90,245,125, 92, 13, 99, 84, 9,245,101,249,146, + 97, 19,155, 18,103, 95,213, 84, 55,194,216,181,128,230, 10, 0, 32,203,192,201, + 64, 32,180,237, 2,143, 8,179, 74,194, 41,136, 97,150, 80,139, 86, 13,131,130, +201,172,249,234,245,198,169, 79,147, 75, 4,166,198,180, 96,179,109, 77, 2, 21, + 45, 19,199, 25, 55,150,133,208,105,105,180, 90, 83, 22,145,140,109,240, 33,118, + 16,228, 9,192,188, 4, 83, 78,233, 29, 12, 30,102,142, 6,179, 43, 52, 55,254, +140, 66, 84,195,231,168,204, 10, 74,128,135,204, 30,254,214,246,222, 50,129,148, + 6,192,209, 38, 72, 40,192,244,120,157,206, 61,200, 66, 33, 48, 76, 3, 47,199, + 57, 54,173,215,163,222, 91,130, 31,205,109,231,116,143,192, 5, 57, 32, 38,123, + 16, 3, 58, 49,127, 99,241, 74,149,137, 91,193, 37, 26, 86,218,137,177,240,152, +146, 25,111,210,223,149, 87, 37,156, 40, 59,238, 98,140,100,143,173, 74, 36,193, + 95,155, 10,181, 67,150,190, 24,127, 28,253,147, 85, 68,180, 64,133,220,175, 82, + 60, 29,210,101,139,190,116,189, 95,120,122, 39,111, 43,126,225, 1, 99, 91, 28, +133,131,178, 63,240,145, 2,137, 35, 34,133, 8,200, 1,185,118, 43, 36, 93, 54, +136, 9, 40, 12,140, 43,160, 61,101,144,111, 8, 67,119, 54,163,161, 89,222,136, + 40,130, 55,132,222, 63,245, 12, 0,115,210, 30, 20,102, 22,195, 74, 35, 63, 24, + 86,233, 92,154, 36,196,228,239, 24,134,113,135,198, 60,142, 60,241,128,200,118, +210, 93, 29, 66,118,103,221,128,204, 2,206,244,215, 57,211,216, 14, 20, 80,155, +190, 25, 70, 34,120, 65, 29,134, 53, 63,198,138,135,194,234,161,251, 44, 68, 53, +127,123,144, 35,124,207,113,255, 48, 96,127,186,254, 71, 95,153,244,225,239,200, +109, 71,119, 97, 3, 89,192,107, 37,171, 1, 8, 89, 51,195,190,244,214,204,107, +129, 93, 16,225, 84,241,229, 78, 86, 55, 36,234,158,115, 87, 53, 71,157,237, 83, + 68, 48,157,143,238,163, 55,221, 86, 50, 92,247, 43, 7,150,239,142, 43,129, 31, +210, 70, 28,180,134,151, 87,170,159,171,168,229,116, 59,240, 64, 3,185,214,152, +200, 78, 65, 61, 89,196,206, 61,246,242,152, 48, 10,122, 52, 45, 4,245, 92, 38, +168,128, 98, 96, 47,207,242,139,247,121, 45,245, 15, 15,224, 58, 65, 31,193,193, + 5,206, 13, 47,204, 23,162,216,119, 95,197, 65,159,118, 55, 77, 38, 42, 13,167, +237, 44, 46,159,147, 53,162, 19, 77, 81, 75,158, 92, 1,207, 97, 63,112,113,185, + 35,159,205,250,128,224, 73,126, 8, 93,176,196,232,182,188,200, 71,239,108, 44, + 5,234,204,113,106, 62, 35,129,118,177, 97,225, 80,230,121,128,231, 87,204,150, + 72, 72, 50,185, 91,226, 75,106,246,211,155,131,117,165,198,188,106,172,204, 17, + 49, 61, 88,149,230,191,212, 13, 26,233,184,249,201, 81, 64,239,235,192,116,255, +138,137,173, 94,113,238,216,232,103, 78,197, 13, 79,225,114,239, 25,164,239, 48, +182,156, 59,250, 49,135,248,110,172,118,127,252,176,102,128, 62, 1,246,149,204, +246, 8, 94, 76,122,217,118, 82, 30, 8, 1, 62,145, 8,213, 52,184, 20,198,221, +228, 57,173,182, 17,254, 65, 75, 31, 84,117,180, 68, 62,225,193,149,112, 39, 45, + 22,164,145, 64, 98,174,142,209,151, 73,175, 50,131, 13,223, 55, 77,173, 86,152, +182, 22,255, 64,178,174,127, 18, 53,207,148,181,229,242,167,232, 27, 59, } ; -// ../Source/JitKernels/GB_jit_kernel_subassign_22.c: -uint8_t GB_JITpackage_189 [554] = { - 40,181, 47,253, 96,100, 4, 5, 17, 0,214,221, 93, 33, 0,181, 30,150, 87,176, -218, 72, 60, 52,116,220,140,243, 35, 64, 72,162, 20, 0,251,243,145,128, 4, 0, - 51,249,255,191,251,195, 11, 83, 0, 82, 0, 87, 0,151,165, 64, 28, 46,175, 40, -229, 4, 93, 69, 19,226, 5,204,199,111, 99,176,106,156,192, 97, 91,246,133, 51, -107,139,215,121,134,220,239, 42,114, 83,158,118, 82,237,115,116,194,235,251,157, -235,250,249,191,145,143,222, 24,248,195, 23,180,112, 93,242,126,170,214,211, 35, -106,105,255,230, 15,201, 93, 65, 50,211,220, 96,152, 44,131, 33, 34,165,243,233, -180,225,103,249,232, 62,227,251,169,190,216, 84,204, 91,191,182,211, 11, 65, 76, -101, 72,207,125, 95,127, 14,125,227,235, 11,194,117,121,135,191,253,149,233, 80, -184,172,255,232, 12, 49, 95,228,175, 94,221,247, 59,137, 69,235,102,113, 32,152, - 66,247,162,252,250, 51,174,247,247,169, 25,183, 22,115, 66,226, 58, 4,242, 63, -123,250,226,186,233, 21, 61, 15,209,233,177,118, 82,223,255,137, 84, 36, 26,203, - 38,227,125,231,213,128,187,251, 68,154, 24, 94, 81,126,209, 92, 50, 24,105,209, - 36, 28,135,101, 27, 78,110, 17, 75, 38, 66,241, 13,203, 46,155, 38, 53,146,137, -204,180,105,178,109, 27,139,228,126, 56,238,209, 97,225,237, 91, 79,234, 99, 55, - 63,219,137,129, 1,211, 84,154, 24, 94,113, 92,228,241,200,178, 70,249,205,226, -254, 12,160,133,223,211,134,224,111,153,105, 0,255, 78,180,244,214,170,170, 4, - 20, 37,160, 66, 25,143, 70,143, 96, 58, 26,217,153,188,218,221, 15,120,242,211, - 98,136, 67, 25,202, 63,242,228,211,106,181, 12, 61,197, 32,195, 29,150, 28, 65, -111,184, 39,199,140,193, 7, 3, 69, 32, 64,132, 16,100,200, 57, 48, 4,190,157, - 43, 57,211,241, 65, 36, 88,149, 25, 39,222,136, 64,146, 32,204,136,195,215,128, -226, 25,136, 15,117, 63,116, 3, 39, 4, 1,128,229,129, 30,254, 6, 72, 51,136, -114, 40, 61,195,224, 0, 72, 51, 88, 19,188, 26,170, 0,198, 76,253, 32,176,210, -142, 63, 68, 65,232,167,179, 32,200,234,153, 0,186,215,240, 19, 63, 65,148, 6, -171, 60, 99, 96, 86, 49,194, 44,205,135,221, 50,172,165,189, 66, 24, 0, 71,149, - 78,172,125, 78, 62, 56, 56,147,233,248, 29,107,168,249,122,199,136,111,238,132, -187,225, 14,166, 69,147,115,200, 89, 42, 98,135,105,218, 12, 98,182,204, 84,125, -157,174,214, 57, 31,207, 95,189, 1,129,162, 40,112, 3, +// ../Source/Template/GB_meta16_factory.c: +uint8_t GB_JITpackage_184 [623] = { + 40,181, 47,253, 96,110, 39, 45, 19, 0,102, 22, 70, 32, 32,145,117, 3, 79,107, +131,126, 89,140, 81,194,197,153, 62,122, 70, 61, 75,166,194,250,215,122, 10, 20, + 83, 1,140, 4, 32, 15, 59, 0, 61, 0, 61, 0,223,172,108,177, 74,249, 51, 69, +136,100,105,242, 54, 18,141,175,212,166,206, 85, 51, 57,233, 51,147,143,191,150, +126, 90, 43, 55,118,121,106,143, 27,203,234, 7,248,196,118,109,174, 36,165, 14, + 80,230,198, 40,169,113, 2,193, 65, 4, 66,125,205, 76, 90,239, 43,221,139, 10, + 80, 91,149,212,226, 19,183, 43,173, 57,235,249,128, 26,103, 93, 85, 8,100, 81, + 72,162,217,155,219,184, 39,199,217,202,212,201,175, 43,254, 49, 20, 94, 1, 66, +192, 87,248,160, 18,252,193,117, 35, 21,143, 98,255,100, 33,185, 56,224, 23,211, + 36, 74, 38,106,122, 80,209,202, 22,243, 75,142, 51,160,112,165,162,224,180,254, +191,227, 56,119,128,145,178,136,116, 86,105,207,128,115,209,117,105,232,175,253, +163, 73, 44, 87,204,159,219,218,102,253,193,137, 25,206, 1,172, 8,103,182,230, + 74,123,102,154, 0,181,223,114,221, 50,137,237,173, 36,214,215,185, 14,124,240, +193, 23, 57, 17, 62,248,224,195,245,177,241,213, 29, 64, 21, 97,192,123,106,174, + 42,171,210, 15,129, 84, 24,146, 24,161, 60,164, 23,125,160, 97, 46,153, 17, 10, + 82,146, 58,149,225,112, 2, 17, 17,177,177,217, 1, 36, 17, 50, 14,109, 77, 38, +197,130, 98, 39,179, 83,132,204,150, 58,185, 18, 76,100, 37,212, 78,166,128, 41, +164,163,132, 88,149, 82, 97,228, 74, 38, 67, 5, 10,203, 21, 43, 5,177, 86,152, +108, 6, 86,164, 58,168, 66,149, 80,104, 69,178,172, 82, 61, 82, 19, 42,165, 87, +110, 55,164, 50, 10,149,142, 50, 98,213, 88, 44,113, 16,219, 23, 11, 20,150, 42, + 86, 16,196,108,215,185, 75, 89, 80, 29, 92,177, 90, 80,136,133,207,118, 84, 29, + 9, 21,150,211, 27, 14, 31, 96,105, 74, 1, 67,249, 84, 84, 17,170, 95, 65, 62, + 98,129, 8, 88,172, 58, 64, 45, 18,139, 74, 58, 51, 97,169,122, 48,101,245, 16, +129,237, 60,187,137,154, 38,229,178,144,216,113,104,192,209, 48, 16, 75, 83,148, + 23,123, 79,208,166,246, 80, 82,146,163,140,148, 2, 62, 66,143,132,116,133,169, + 35,177,100,177,202, 32, 22,128,133,105, 63, 12,165,156, 82,200, 7, 87,164, 22, + 84, 14,194, 44, 29, 8, 9,179,139,202, 9,150, 4,172, 82,183, 27,229, 93,189, +147,247, 24,246,119,139, 85,200,214,181, 11,225, 47, 33, 61,251,172,145,192,141, +162,191, 95,142, 53,187,236,187, 40,189,238, 9,202,186, 17,112,208,148,142, 94, +115, 22,192,209,241, 72, 80,184, 34,110, 79,195,144, 82,233,118,119,111, 16,133, + 69, 4,196, 17, 74,101,151, 54,105,138,249,153,201,206,232, 90,160, 47,136, 42, + 69,193, 30, +} ; + +// ../Source/Template/GB_meta16_methods.c: +uint8_t GB_JITpackage_185 [400] = { + 40,181, 47,253, 96,135, 3, 53, 12, 0,118,213, 67, 32, 16,147,117,230,109,189, +195, 75,154,158, 23,212, 5,150,111,250,227,110, 85, 67,243, 67, 40, 80, 51, 98, + 35, 2, 0,168,242, 27, 60, 0, 56, 0, 55, 0,146,194, 80,168, 62,136,130, 19, + 48,237, 64,198, 39,247,207,204,118, 67, 45, 39, 92, 78,242,230, 6,239, 99,209, +248,194,237,234, 76, 57, 87, 20,167,207,181, 57,194,236,218,236, 95, 96,105,103, +194, 0,115,111,176,247, 56, 69, 69, 18, 69, 5,199,246, 70,184,121, 95,168,197, +150,167,168,255,143, 34, 80, 84,152, 42,169,103,132,155,251,226, 54,205,104,174, + 45, 35, 82,227,218,145, 74, 36, 12,195,154,100,119,110,227,174, 28,231,169,161, +149,107,154, 59,225, 80, 21,170, 86, 98,207,227, 6, 71, 88, 40, 12,193,101, 63, +203,145, 35,237,221,158, 45, 96, 78,184, 90,154,105,165, 89, 75,192, 91,114,180, + 88,105,224, 93, 86,120,247,204,254,147, 41,126,207,252,106, 47,107,111, 45,159, +225,204, 1, 81, 20,122,239, 61,137,228,226,176,220,196, 18,121,149,134,149,129, + 52,174,138,179, 46,236,138, 96,159,249, 25,149,181,114, 14,248,181,247, 54,174, + 42, 67, 99, 56, 55,236, 96,104, 92, 14, 98, 97, 7,173, 1,113,234, 12,181,109, +211, 25, 67,228, 47, 32, 80, 68, 48,136, 24, 15, 40, 4,203, 1, 25, 10,139,216, +208, 17, 76, 23, 14,173,251,132,151,103,215,137, 88, 50,160,188, 5,162, 73, 64, + 79, 0,112,162, 9, 44,192, 46, 33, 88, 2,186,229, 81, 68,163, 84, 70,196, 68, +220,227,144, 9, 47, 65,230, 94, 49,185, 83,200,143, 37, 44, 49, 48,113, 47,200, +107,196,106,104,196, 5,221, 30,130, 10, 85,160, 16, 1, 38,170,113, 11,202,160, +105, 8, 51,105,199, 2,107,112,197, 35, 36, 44, 18,170, 23,210,250, 21, 45, 67, + } ; -// ../Source/JitKernels/GB_jit_kernel_subassign_23.c: -uint8_t GB_JITpackage_190 [552] = { - 40,181, 47,253, 96, 86, 4,245, 16, 0,166, 30, 95, 33, 0,181, 30,214, 44,146, -104,166, 6,176,193,176, 9, 42,226,201,100, 81, 10,128,253,249, 72, 96,133,195, - 58, 75,255,239,254,240, 2, 86, 0, 84, 0, 88, 0, 22,115, 10,113, 25,174, 42, -113, 48, 92, 62,152, 2,167,114, 5,201,135, 91,152,143, 60, 13,126, 53,227, 20, -135,109,153, 23, 74,172, 41,184,215,117,115, 19, 6,253, 51,150, 97,198,156,250, -124,191,243, 92, 31,191, 23,114,204, 25, 4,119,184, 98, 90,136, 43,222, 78,205, - 89,114,118,142,246, 47,254, 79,212,213, 19, 51,205, 11,133,169, 42, 20, 2,151, - 19, 85,172,229,135,233,251,249,113,248,237, 57,229, 79,105,195,199,209,209, 61, - 6,111,167,186, 66,207,141,117,254,108, 37, 13, 63,112,198, 79,150,219,166,169, -184,130, 66, 92,222,129,158,126,202,100,176,174,234,189, 41, 67,204, 21,248, 43, -173,250,126, 23,169,102,221,170,205,227, 98,117, 15,194,159, 31,227, 89,123,157, -138,113, 27,223,129, 80, 34,153,138, 6, 67,191,163, 53,224,238, 62,145,166,133, - 15, 4,110,201, 88, 48,151, 88,209, 34, 28,135,101, 26, 46,110,144, 10, 6, 50, -241, 13,203, 44,155, 22, 51, 17, 73,204,180,105,178,172,221,180,162,181,202,210, -159,227, 58,239,207, 29,174, 55,199,169,199,219, 71,186,142,174,244, 7, 73,207, -175,156,142,121,119,165, 59, 36,145, 11, 6,211, 84,154, 22, 62,224, 56,136,195, -145, 97, 77,224, 23,111,253, 24, 48,173,215,210,134,223,235,152,105, 0,255,110, -219,121, 39, 90,187,251, 1, 26,189,188, 67, 48,140, 31,252, 33, 26,127, 86,155, -227,231, 39,248, 45,188, 81,197,209,231, 12,167,113,132,193,239,191,248,143,105, -190, 96,213,243,110,234,159, 41, 57,214,202,233, 58, 66, 32, 48,134, 16,100,200, - 57,254,128,111,249, 74,192,228, 65,162,100,102,192,240, 88, 80, 24, 4, 18,135, -194, 15,181, 1, 19,194, 0,192,242, 64, 15,127, 3,164, 25, 68, 57,148,158, 97, -112, 0,164, 25,172, 9, 94, 13, 85, 0, 99,166,126, 16, 88,105,199, 31,162, 32, -244,211, 89, 16,100, 53, 89, 0,221,107,248,137,159, 32, 74,131,103,158,225,192, -172,115,109,100, 55,100,248, 0,176,231, 3, 69,217,145,224,180, 89,212, 42,186, -248,210, 26,176,132,142,223,177,134,154,175, 7,140,136,230,102,184,113,237, 16, - 92, 52,239, 22,223,195, 52,109, 70, 45,219, 96,170,157,214, 5, 72, 13,150,143, -142, 68, 6, 60,223,242, 6, 4,138,162,215, 13, +// ../Source/Template/GB_nthreads.h: +uint8_t GB_JITpackage_186 [473] = { + 40,181, 47,253, 96, 62, 4,125, 14, 0,102,154, 78, 32, 0,149,117,214, 44,112, + 77, 54, 47, 29, 47,224, 10,164, 42,208,233, 12,229,178, 0,169,195, 6, 7, 8, +200,255,255,189, 62,132, 70, 0, 74, 0, 64, 0,175,240, 4,193,198, 47,237, 35, +153,173,103, 98, 94, 93, 52, 9, 67,126,224,125, 32, 26, 95,248,185,116,158,221, +229, 85, 59, 57,125, 79,155, 82,120,225,231,215,114,111,220,221,230,159,179, 7, +188,235,244,220,206, 29,143,144, 23,142,176,175,204, 85,195,120, 28,195,158,133, + 97, 1, 92,228,218,127,172,165,240,117,157, 92, 71,192,131,104, 46, 13,205, 97, +129, 96, 40, 92,199,202, 77,192, 19, 92,153,213,114,131, 31,237,136,219,147,155, +185,118,140, 88,141,107,111, 83, 98,101, 26,149, 43, 54,232, 54,110,203,113,150, +156,105, 57,165,218, 43, 66, 38,200,172,195, 64,144,157,218,166, 85,211, 77,103, +227,255,191,233,213,219,229,190,199,176,255,185,206,119,157,180,206,111, 51,195, +140,223,187,170,189,197,143, 21,190,234, 11,109, 40, 19,230, 27,211,198,221,241, +124, 87,251, 17,173,246,181,101,126,213,169,157,220, 2,217, 21,239, 92, 27,122, +239,113, 51,214, 6,188, 87,162,166,106, 58, 37,130,253, 90, 75,185, 83,211, 23, +215, 20, 12,255, 95,226,212, 96,122, 70,155, 68, 22,255,255, 78,122,148, 8,122, + 52,255,159,220, 58,207,241,148,249, 25,195,166,207, 80,110,176,223,160,201,177, +145,194,108,243, 49,236, 1, 59, 32, 48,132, 8,200,161, 62,161, 0,120, 93,226, +129,109,207, 70,193, 34,112,136, 52, 64,141, 6, 43,207, 61, 38,250,188, 96,206, + 97,119, 6,143, 6,190, 54,204,145, 9,194, 30,130, 51, 16, 39,208, 90, 24, 57, + 64, 29,188,233,148,190,128, 61, 14, 12, 36, 69, 49, 11, 30,157,108, 16,200,237, +136,106, 11,118,125,229,185,176, 93,123,201,168,179, 16, 94,203,217, 88, 33,237, + 63, 17,157, 54, 17,187,188, 13,109,107,195,185,252,165, 52,207, 5, 38,103, 79, +211,229, 52,222,238,119,200,224,240, 76, 87,178, 3,218,214, 30, 52, 49,207, 76, +181,101,172, 22,199, 24,114,106,117,159,162, 96, 8, } ; -// ../Source/JitKernels/GB_jit_kernel_subassign_25.c: -uint8_t GB_JITpackage_191 [731] = { - 40,181, 47,253, 96,210, 5,141, 22, 0,230,232,121, 39,224,206, 88, 7,104, 71, -209, 4,109, 75, 82, 7,112, 5, 92, 19, 3,143,228,101,230, 43,189,146,135, 60, - 22,242,101,108, 60, 92, 84, 35,198, 72,145,193, 33,117, 0,106, 0,105, 0, 18, - 95,202, 47, 94, 36, 8, 5,135,169,226,143,229,203,154,223,182, 34,162,230, 82, - 82,143, 8, 30, 2, 15,201, 96, 64,224,241,198, 99, 60,186,241,227, 20, 62, 81, -207,172,174, 51,114, 30,109,168,139,196,186,156,173, 64,248, 90,119,109,184, 35, -182,129,164,196,160,227,114,179, 99, 39,234,135,217,190,199, 60,114,234, 8, 79, -184, 17,230,160, 1,137, 32,140,201, 33,111, 42,120, 52, 26, 17,239,117, 29,236, - 54,201,212,178,167,117,148,104,146,202, 29, 14, 72,114, 56, 2,147,229, 43,179, -110,235,239,217,186, 99, 94, 81,247, 5, 11,173,148, 34,218,118,147,186, 92, 30, - 50, 19,123,207, 53,248,209,120,223,212,125, 88,178,125, 87,202,120, 38,249, 19, -251, 49,132,204,207,201,139,109,155, 96,182, 15,225, 43, 29,188,102,125,205,115, - 93, 83,190,108,175, 67, 36, 24,165,235,164,179, 88,148,245, 53,249, 55,126, 82, -240,120, 85,173,102, 12, 36, 48, 61, 36,182,158,187,168, 67, 44, 71, 24,155,114, -101, 9, 23, 74, 70, 67, 97,248,133,146, 52, 92, 42,141, 99, 89,104,146, 10, 4, -157, 58,140,175, 55, 86,203, 21,141, 9,163,130,210,223, 56,105, 26,221, 51,105, -113,254,169,177,139,198,211,122,204, 47, 79,119,207, 86,223,234, 56,193,246,186, - 87, 76,235,139,234,133,150,127,170, 88,118, 38, 38,145,185,121,204, 63,113,231, -150,173,142,252,190,216,124,199, 55,214,121, 68,249,195,143, 56,235,152, 81,119, -254, 56,235,212,189, 83,127, 16,116, 1, 69,222,216,108, 40,147,137,196, 86, 24, -167, 22,107,182, 0,111,226,118,242,154,220, 13,224, 92, 97,242, 81, 8,198,138, -114, 0,108,214,197,174,122, 53,143,229, 9,216,248, 69,121,155,135, 95,157,145, - 39, 72, 45,155, 71, 56,108,153,173,147,103, 99,182,240,210, 26,251, 81, 12,222, -243, 92, 71, 74,247,222, 28, 65,193, 88, 56,153, 7, 13,228, 10,198,128,255,135, - 44,160,200, 27,140, 55,112, 26, 52, 14, 45, 83,177,108, 54,148,228, 97,211, 2, - 97, 32, 32,132, 16,231,174,234,254,128,111,244, 74, 30,227, 64, 12,224,162,203, -204,152,195,111,128, 98, 5,200, 59, 20,252,112, 55, 96, 66, 60, 0,176, 60,208, -195,185, 1,242, 12, 98, 28, 74, 43, 24, 15, 0,213,130, 5,193,175,161, 42, 96, -204,212, 15, 2, 43,237,248, 79, 20,132,126,170, 5,129, 86,219, 4,160,189,134, - 15,241, 19, 28,105,176, 68,103, 8,156,193, 27,217,133, 13,243,176, 92, 44,105, -118, 19,236, 10, 45, 57,153, 65, 24, 40,245, 13,232,191,233, 90, 3, 80,135,255, -144, 99,224, 8,203,173, 99,142, 1,210, 12,201,145,136, 3,239,177, 81,194,130, - 65,164,179, 24, 32, 33, 24, 42,151, 81, 57,150,188, 57, 20,116, 25,211, 45,248, -124,196, 29,248,118, 13, 17, 70,195,160,143,109,117,224,139,176,132,113,210,226, -129, 89, 97,174,206, 76,103, 72,220,125,237, 97,243,210,163,193, 87, 93,131,139, -146, 91,104,155, 40,103, 51,100,108,133,191, 26,125, 54,205,207, 51,211,219, 64, - 88,173,127,130,166,142, 0, 64, 69,193, 16, +// ../Source/Template/GB_omp_kernels.h: +uint8_t GB_JITpackage_187 [599] = { + 40,181, 47,253, 96,119, 5,109, 18, 0,118, 95, 94, 32, 16,149,115,231,182,111, +244, 50,232, 92,214,162, 49,181, 58,233,130,120, 4,252,226, 98, 66,245, 36,194, + 17, 1, 0, 84,193, 13, 86, 0, 86, 0, 80, 0,149, 45,107,110,175,252,180,230, + 28,103,157, 74, 32, 12, 8,130,226, 96, 64,124,160, 9, 78,217, 22, 65,200, 43, +235, 37,121,105,215,155, 83, 19,102, 85, 28,210,131, 53,178, 96, 91,161,135,241, +237, 15,251,236,103, 44,147, 61,204, 63,179,237,119, 59,105,223,158,189,113,252, + 66, 86,150,227, 89, 25,148,121, 29,205, 28,145, 23, 10, 19,161, 80, 8,241,113, +194, 83,246, 86,234,121,159, 61,237,248, 93,236, 28,252,108,115,142, 89,254,127, +154, 30,152, 37,211, 92,149,201, 99,210,182,149, 69, 44,111, 87,249,114,156, 56, + 48, 73, 50,172,114, 93, 52, 23, 37,203, 88, 48, 27,199,185,117, 96, 50, 84, 8, + 2, 75, 13,122,214, 23,149,123,235, 59, 57, 78, 8,108, 39,107, 93, 33,120, 32, +153, 42,178, 40, 87, 6,147,253, 91,115,220,144,213,236,122,103, 51,206,241,227, +180,217,129,106, 32, 43,203, 86,240, 8,249,218,248, 95, 40,175, 54,191,237,252, +153, 80,106, 36, 46,112,133, 94, 71,181, 71, 6,105,148,171,124,103,223,246, 41, + 30, 81,201, 95,177,253, 32,167,157,235,119, 61,168,105,221,209, 11, 69, 80,254, +210,121,203, 52, 6,193, 65,192,150,187,190,163,255,178, 76, 54,157,108,115, 69, + 6, 23,220, 70,200, 85,222,140, 4,187,236,242, 39, 59, 6,177, 46,141,100,147, +121, 44, 75, 22, 39,220,166,105,235, 56, 25, 48,248,168,188, 61, 58,215,218, 95, +136,235, 1,181,178,194,112, 96,108, 28, 71, 85,190,144,123,165, 63, 84,137,230, + 95,251,117,183,149,185,174,116,112, 9, 82, 40, 32,132, 16,163, 28,154, 7, 18, +106,174,132, 84, 35, 68, 34, 18,205, 68, 52,241, 31,101,232, 1,226, 8,194, 68, +252, 53,193, 6, 4,213,236,208, 49,167,145,188, 97,179, 84, 15, 96, 30,234,136, +228, 27, 32,129,248, 4, 31,237,128, 30, 18,130,113, 16,187,182, 6, 66, 41, 3, + 65, 14, 45, 7,183, 16,128, 22, 25, 44, 50, 37,192, 18, 59, 3,218,241,110,214, + 68,114, 19, 61, 32, 10,120, 50, 29, 89,110,103,140,227,105,222, 52, 21, 21,210, +192, 8,130, 68, 19,104,217, 63, 3,162, 13,228,122,138,102,206, 33,162, 84, 8, +232,107,173,229,255,160, 27,244, 61, 10,244,123,191,177,168,233,254, 30, 84,153, +129, 47,121,118,233,164,119,111,196,214,172,241, 10,222, 71,227,109,211,220,232, + 24,237,194,213,235, 32,121,211, 80,231, 99,118, 43,212,109, 63,230,179, 80, 93, +211,246,160,233,223, 77, 2,224,210,168, 52,128,248,230,188, 70, 43,192, 13, } ; -// ../Source/JitKernels/GB_jit_kernel_trans_bind1st.c: -uint8_t GB_JITpackage_192 [417] = { - 40,181, 47,253, 96,198, 2,189, 12, 0, 22,151, 75, 33, 0,181, 30, 86,165,132, - 54, 37,231, 48,117,167,118,139, 25, 30,186,141, 99,136, 36,154, 53, 6,108,241, - 72,254,255,239,245, 33, 4, 66, 0, 66, 0, 66, 0, 84,223, 16,216,240,170,250, -104,179, 63,158,251, 57,245,170,102,109, 50, 56,102,138,215, 35,152,189,223, 23, -228,201, 73, 80,169,104,122,254, 56,195, 69,151, 43,194,106,107, 3, 6,223,139, -213, 24, 28,183, 21, 31,143,223,177,251,114,172,149, 57,129, 32, 41, 2, 33,182, -162,113, 92,125,124, 51,143, 9,200,137,115, 65,231,220, 80, 22,170, 3,245,155, - 16,204,213, 21,227,223,204,221,248, 49, 14,234, 53,254,240,106, 20,165,193, 85, -152, 15,141,175,191,115,189, 55,154,219,185, 40, 86,167,136, 67,225, 64, 37, 12, -133,131, 79,225,244,158,161, 17,113, 88,214,139,212,238,179, 26, 22,233, 48,136, -107,213,218,180,204,126,142,135,148,165,130, 83,167,215, 53,157,219, 48,207, 49, -193, 94,139, 96,198,105,205,213,233,135,101, 11,159,110, 97, 93,213, 46,172,225, -238, 78,146, 22,159,106,166, 87,158,220, 22, 82,150,228,194, 39,207,195,174, 75, -226, 89,107,204,166,227, 17,180,127, 4,132,213,111, 80,204,158,223,246,245, 39, - 3,252, 49, 32, 49,196,119,218,160,140,175, 21,249, 52,216, 26,127,194, 57, 7, -211, 49,174,242, 89,138, 37,201,233,219,183,117,156,253, 2, 39, 32, 48,198, 8, -198, 92,242,148,101,103,202, 5, 8, 7,249,128,100,172,223,216, 73,103, 48,170, - 8,152,132,147, 15,129,168, 1,222, 47,108,177, 20, 18, 0, 0, 72,121, 92,148, -121, 10, 48,149, 6,232, 7,128,131,177,214,140,201, 0,235, 10, 0, 7,135, 54, - 24, 17,135, 81,199,189, 3,141, 7, 83,251, 3, 23, 18,240, 47,106,180, 95,166, - 98,108,154,157,103, 38,219, 12,172, 86,188, 16, 40, 84,244, 14, 1, +// ../Source/Template/GB_prefix.h: +uint8_t GB_JITpackage_188 [259] = { + 40,181, 47,253, 96,202, 1,205, 7, 0,178,140, 41, 23, 32,221, 1,163,204, 96, +126, 23,192,172, 0, 23,171,218,171,103,223,123,129, 4,128,197, 3, 0, 48,110, + 17,125,119,199,158,110,122,245, 43, 48,176,134,133,101,150, 61, 8, 60,246, 97, +214,178,142, 5,133,123,162, 71,119, 0, 88,159,119, 81,147,150,141, 47,162,227, + 14,128,163, 72,136, 47, 67, 80,125,220, 89,127,143,187, 69, 95,188,136,103,209, + 15, 55, 70,120, 82, 86,136,255,174,207,190,230,108, 91,146, 91,115,211,124, 92, + 43,201,145, 16, 13,114, 36, 62,132,130,107,118,191,160,228,197,227,114,217,166, +231,230, 92, 59,207,174,160,186,125,187,221, 13,112, 18,221, 39,136,250,246, 96, + 80,169,130,107,229, 78, 89,196,123,252, 85,253,160,202, 13, 3, 32, 12, 35, 32, + 32, 64, 68, 32,144, 34, 31, 8, 0,156,230, 58,102,161,248,128, 7,130,106,185, + 12, 57, 16, 25,176, 70, 48,231,147,152,195,224,130,106, 28, 80, 24,192,238, 75, +163, 70, 6,216, 69,185,100,104, 95,160, 21, 24,103,207, 99,144, 2,196, 84, 96, + 6, 77,153,119,211,104, 80, 53,251,176,192,249,209,149, 27,123,138,186, 33, } ; -// ../Source/JitKernels/GB_jit_kernel_trans_bind2nd.c: -uint8_t GB_JITpackage_193 [415] = { - 40,181, 47,253, 96,194, 2,173, 12, 0,118,152, 79, 33, 0,243, 54,238, 78,154, -144, 55,131,212,134, 19,186, 85, 5,166, 96, 65,135,200, 50,194,187, 83,237, 76, -143,168,170, 90, 16, 8, 16, 70, 0, 70, 0, 70, 0, 46,137,145, 87, 19,119, 66, -204, 41,235, 31,204,230,108, 48,232,245,179,155,133,209, 97,169, 37,222, 44, 67, -253,253,198,231, 71, 37, 79, 21,216,200, 53,199, 23,238,185, 60, 33, 82, 99,174, -198,140, 43,215,204, 97,185, 47,249,185,124,205,221, 56,115, 45,205, 9, 4, 58, - 17, 8, 1,209,103, 28,160, 29,119, 39, 91,215, 89,183,252,152,207, 0,149, 62, - 94, 51, 56,204, 96,145, 22,168,106,122,140, 24,106,235,137,242,177, 5,239,252, - 35, 99,122, 51,191,136,183, 73,130,117,212,248,157,242,205,247,220,220,152, 11, -246,156, 36,173,215, 67, 85,168, 38,132,161, 80, 5, 94,119,177, 71,133, 61, 24, -214,253, 30,214, 3,239,150, 61,188,204,225,155,181,184, 77,187, 32,163, 65,105, -136, 82, 10, 94,189, 94, 87,228, 29,151,125,140, 72,246, 38, 25, 90,188, 90,237, -213, 99, 45,152,105, 10,151,108,230,217,237,202, 48,119, 74,113, 16,165,184,100, -117,189,116,148,134,168,194,165,239,203,174, 11,242, 93,171,212, 34,207,229,185, -191, 4,136,212,239,144,212,155,223,247, 77,142, 6,248,143, 39, 41,102, 28,112, -119,151,246,169, 51,190, 31,151, 6,219,204, 28, 49,138, 6,145, 47,252,227, 89, - 55, 1,239, 4, 68, 21, 46, 69,206,129, 92, 31, 32, 64,196, 8, 74,217,110,148, -201,190,204, 5, 28,148,254,224,109,195,120, 34,112, 11,144, 6,164,116, 92, 60, -243,116,128,234,229,130,131,241,239,140,185, 2,212, 3,128,237, 11,237,146,138, - 15, 74,142,223,111,201,110, 18,246,241, 59, 55, 74, 1, 81,163, 80,101,200,220, -166,249, 16,102,170,195,208, 26,196, 11,129, 66, 69,193, 16, +// ../Source/Template/GB_printf_kernels.h: +uint8_t GB_JITpackage_189 [763] = { + 40,181, 47,253, 96,240, 7,141, 23, 0, 86,163,109, 32,224, 88, 61, 24,247,139, + 43, 50, 6,117,163, 45,196, 88,112, 37,118, 66,155, 55, 17, 32,185,174, 43,155, + 51,152, 97,152,230,225,100, 0,102, 0, 97, 0,133,215,248, 65,171, 41,124, 38, +156,140,254, 41,191,254,206,245, 14, 69,182,243,123, 53,199, 20,137, 67,162,208, + 64, 28, 18, 62, 0, 47,199,180, 61,205,137,103,154,167,194, 45,150,236,231,152, +227,117,158, 38,239,183, 29, 61,203,211, 52,145,208, 52,243,230, 37, 49, 87, 23, + 97,235, 89,172,174,177,104,183,197,182, 62,117, 71,152,233,251, 56, 63, 73,214, +141,109, 54,201,200,230, 6,131, 85, 48, 24, 2, 46,110,119,112, 54,157,137, 69, +233,130, 49, 58, 64, 0,240, 81,255,120,231,201, 81, 79,241, 69, 70,242,134, 81, +138,167,143,247, 10, 60,117, 47,118, 76,139,176,205, 91,251,158,165,193,193, 33, + 16, 55,149,192,188,245,229,131,141,233,203, 34,249,180,141,220, 62,239, 3,150, + 69,122, 26, 10,215, 81, 50,178,242,113,151,142, 83,159,226,106, 3,214, 33, 75, + 20, 62, 4,167, 73,115, 71,126, 91,237,198, 79, 47, 1,245,225, 3, 41,189,173, +211,164,230,145,242,114,149, 5,242, 65,150,101,215, 24,176, 28, 96,200,222,212, +221,224,103, 75,221,191,100,183,227, 49,251,119,193,120, 38, 18,141,161,167, 20, + 77,164,235, 68,232,235, 17,196, 99,117,109,195,239,177, 72, 93, 91, 39,129, 31, +130,158,197,156,223, 69,206, 61,219,119,212,159, 67, 61,222,138,237,209,228, 52, + 79,138,231,214,254,225,222,163, 72,183, 14,150, 85, 45,197,239,159, 75,135,225, +139,227, 38, 28,229,250, 58,237,243, 48,237,242, 56,202, 68,254, 13,229, 49,132, + 39, 56,216,224,143, 66,226, 37,185,108,218, 70,102, 36, 20,139, 68, 30, 14, 86, +199,209, 58, 75,225,233,216,110, 17, 83, 49,220, 95,242,215, 27, 65, 70, 80,155, +255, 13, 77,176,144,239,157,158, 10,137, 25,156,165, 42,238,234, 26, 77,135,171, +214,179,232,216, 95, 91,125,118,156,213, 21,128,131,168,113, 41, 82,134, 72, 70, + 38,140, 36, 73, 37, 29, 48,132, 16,165,172,230, 3,130,184,108, 24,227, 48, 1, +105,148,137, 68,100, 40,144,252, 76, 84, 88,218, 1,222,140,186, 15,206, 2,155, + 40, 27, 31,147, 50, 41,247, 43,248, 78, 5,241,183,244, 47,103, 92,243, 26,168, +189,153,224,151, 52,152, 69,183, 77, 83, 15,206, 42,116,228, 64,140,151,156,112, +147,166, 14,107, 5, 77,156,243,131,197, 81,196,248, 67, 8,236, 6,147, 8, 58, + 24, 28,116, 27,224,184, 15, 70, 95, 4,251,177,142, 40,134,250,179,200,122, 86, +202,109, 74, 56,139, 69, 74,128, 72, 16, 94,248,193, 86,142, 61,247,207, 13, 73, +215, 72,201, 83,172,173,104,162, 80,216, 38, 99,108, 98,228,112, 21, 39,142,159, + 80,232,168,206,149,152, 51, 24,195,138, 86, 49,235,228,102, 68, 4, 35, 72, 26, +136, 45, 82, 35,142, 44, 88, 49, 17, 14, 0,174,163, 33,225,194, 97,122,146,128, + 14, 12, 43, 55, 60,216,166, 93,161, 21, 76,238,220,243, 48,132,181,175,168,248, +233,109,243, 5,184,185,105, 27, 22,106,226,126,153, 66,226,131, 97, 98,162,252, + 67,115,223,148,129, 76,155,198,163,200, 2, 14,240,161, 14,248, 82,146,234, 99, +162,227, 43, 41, 63,184, 82,213, 1, 93,248, 0,164, 80, 57, 40,187,199, 61, 71, +159, 76,161, 15,154,206,127,211,178,186,194,149,193, 67,167, 76, 63,197, 94, 85, + 7,176, 3, } ; -// ../Source/JitKernels/GB_jit_kernel_trans_unop.c: -uint8_t GB_JITpackage_194 [371] = { - 40,181, 47,253, 96, 11, 2, 77, 11, 0,182, 22, 73, 33, 16,179,115,230, 25, 36, - 36,130, 0,140,142,184,125, 54,212,214, 77, 75,220, 47, 98, 8,179,114,253,108, -117, 68, 0, 0, 8, 28, 4, 63, 0, 64, 0, 61, 0, 15,109, 50,232,161,149, 83, -155,196, 24, 27,203,221, 71,162,241,229,236,214,153,134, 91,180,224, 67,151,171, -225, 47,152,249, 36,144,210, 45,248,197,175, 39, 58,203,130, 53,156,184,114, 55, -207,175,235,237,206,204,148, 51, 25,143, 15, 6,177, 26, 12, 2,212,130,139,235, -137,172,145, 85, 34,193, 50, 84,189,233, 56, 43,159,184, 77, 51, 52,215,246, 32, - 85,227,218, 29,197,170, 75, 67,179,188,254,220,198, 77, 57,206, 27, 13,165,252, -251,228,169,131,129, 96,168, 16, 5,130,225, 83, 39,157,194,244,195, 53,110,201, - 49, 78,161, 83,156, 83,244, 20,136,233,148,242,167, 64,151,116, 45,155, 88, 38, -105,169,203, 74, 90, 54, 49,152,166,201,174, 52,211, 94, 32, 78, 28,202,113,104, - 7,106,175,210,131,249,153,222,171,157, 65,125, 5, 14,125, 21,188,215, 56, 60, - 14, 49,142,162,226,211,182, 57,174,203,178, 77,198,173, 55,204,125, 1,157,213, -153,251,172,167,243,108, 12, 90,192,219, 11,191,174,210,192,255, 71, 81, 84,124, -146,158, 85, 50,138, 54,183,137,164, 84, 38,230,152, 80, 28,146, 99,146,145, 97, -143, 89,129, 68, 2, 24, 0, 71,128, 66,169, 91, 60,162, 5, 1, 88, 18,130, 52, - 74,200,113, 38,220, 20, 51,243,154, 2, 22,192, 93, 9,240, 77, 64,108,162,234, - 82,160,137,148,254,224,102, 7,133,217,210, 94,242,217, 11,109,154, 54,207, 76, -209,214,176,213,166, 51, 12, 10, 21, 5, 67, +// ../Source/Template/GB_reduce_panel.c: +uint8_t GB_JITpackage_190 [1902] = { + 40,181, 47,253, 96,106, 38, 37, 59, 0, 54,122,171, 40,208,178, 58, 7,208, 43, +129, 98,255, 92,204,225,231,186, 85,189, 48,115,159,144,162, 23, 77,102,237, 58, + 80, 45,141, 77, 45,125,205, 23, 94,112,212, 14,170, 4,157, 0,158, 0,168, 0, + 83, 61,123,222,245,235, 94,253,148, 74,249,115, 13,122,188,210,217, 75,217,155, + 18, 82, 29,225,231, 57,157,219,181,201, 53,119,215,184,174,135,250,190, 67,194, +250,125, 19, 85, 40, 6, 20,115,217,122,213, 25, 40,195, 13,182,100,205,162,184, + 74,206, 32,134,202,176,104, 40, 26,127, 80,174,188,121,109,174, 3,110, 30, 99, +245,233,192,160, 98, 64, 45, 20, 84, 12, 46,101,146, 79, 21,126,172,229,148,234, + 32,174,103, 7,175, 79,156, 10, 19,193,121, 75, 39, 24,184,210,245, 56,220,240, +227, 68,116,227,102,245,251,217, 15,129,180,183,251,254,147, 84, 73, 30, 66,103, +136, 44,215,195, 56,251, 52,166, 88,196,196, 9, 8, 34,138,128, 32, 43, 57, 7, + 83, 93,100, 36, 0,201,175,205,133,195,169, 26, 30, 2, 65, 85,151, 36,127,120, + 72, 6,105, 87,166, 3,175,186,202,153, 85,239,255,143, 34,145, 40,218,160, 38, + 89, 32, 82, 40, 56, 75, 40, 16, 97, 46,153, 74, 35, 55, 14,193,250,142,223,110, +172, 5,112, 20,249, 5,156,181, 47,102, 18, 10, 92, 52, 26, 23,182,241,110,107, +131,196,125, 5, 45,165,123,140,107,154, 51,119,105,220,116,122,222, 87, 65, 94, +214, 45,252,200, 32,101,201, 29,175, 40,179, 66,109,185,171,132,223,185, 55,122, + 29, 55,134,205,158, 42,172,213, 55,139,161,167,155,161,131,228,158, 63,150,147, +188,237, 26,122,166,148,155, 53,148, 60,198,111, 3,113, 15,252, 33,231, 27,134, +240, 65,145, 46,127, 50,230, 50, 7,138,226, 56, 57,144, 95,174,202,162,177,192, + 44,157,207,196,155,120,222,227,194,166,117, 33, 38, 14, 13,222,236,199,216,242, +155,217, 71, 62,159,206,231,147,137, 67,195,255,145, 72,146, 91, 88,195, 59, 28, + 93, 41,220,184,134, 32,125,109,103,188, 84,160, 45, 83,174,165,164, 98, 1,174, +113,183, 79,159,166,234,186, 76,116, 10, 40, 14, 9, 20,161,198, 93, 55,129,104, + 75,254,108, 95,131, 83,206,238, 22,171, 34, 83, 65,129,105,100,170,199,149,176, +163,220, 33, 78,166, 66, 2,195, 84, 25,139, 98,115,185,176,203,166,194, 72, 92, + 44,149, 63, 60, 72, 77, 69,113, 89, 17, 24,199,146, 42,135,144,111, 12, 65,161, + 37, 12,201, 81, 52,130,225,125,239,190,186,205,215,142, 95,101,250,209,190, 92, +214, 6, 35, 70,238,238,254,255,201,169, 42, 39,108,128, 7, 75,117,217, 96, 18, + 22, 69,197,213,105, 25,157,114, 47,153, 61, 7, 45,119,254,226,126,220,131,159, +218,157,158,166,107,243,169,195,113, 12, 77,178,199,208,244,162, 19,132, 53,121, + 7, 41,131,189, 93, 37, 28,185,172, 94,194,186, 79,122,221,252,118, 29, 75, 61, + 13, 54, 93,239, 18,158, 51, 24,235, 37,200,124,109,248,122, 46, 91,142,115,122, +166,230, 10,185,238,216,184, 97, 28,191,103,186, 92,125,253,212,237, 41, 20, 42, +232, 84,164,145,207, 50,245,100, 42,172,203,178, 84,133, 4,131,131,104,129,252, +168, 33, 34,162, 25, 17,145,146,164, 32,201,176, 6, 49, 8, 1, 67, 97, 16, 66, +234,206, 7,194,136, 44, 13,225, 12,132, 49,134, 24, 73, 4,132, 8, 20, 33, 2, + 37,144, 24, 19, 74, 32, 52, 82,118,152, 24,246,107,223, 82, 10,247,126, 35, 47, +131,254, 55,247,126,103, 13,123, 65,131, 32,115,112,223,240,194,205,209, 38,220, +171,159, 54,146,198,253, 68,245,224,253,179, 95,248,115, 35,151,128, 80,170,117, +197, 4, 74, 57, 46,175, 62, 68,197,171,158,247,229,175, 37, 0, 2,131, 91,188, +195, 79,136,110,123,219, 3,128,217,170, 5, 6, 17, 30,184,171, 92, 12,225, 70, +197, 43, 29,179,246, 74,210, 20,174,123,146, 41, 18, 7,113,164, 97, 56,208,164, +108,117, 73, 13, 51,145, 12,101,126, 62,153, 65, 15, 50,153, 57,126,190,246,163, +193,123,241,203, 22, 62, 65,130, 23,120,122, 30, 11, 92,166,147, 52, 86,104, 1, +117, 2,155, 85,214, 49,105, 44, 36, 20,138, 82,160,196, 40,223, 15,161,236, 45, + 70, 12,157,120, 95, 54,217,229, 59,116,196,136,166,198, 21,160,167,145,143,218, + 68, 73, 4,209,132,188,234,150,224, 29, 86,249, 57,100, 98,229, 44,250,136,250, + 9, 0,231,221,122,184,106, 52, 11, 62,201,138,118, 80, 52,156, 93, 57,182,183, +218,146, 3, 91,209, 68,224, 24,184,204,122,112, 3,216, 75,211,153, 29, 68, 13, +199, 23,190, 74,222,203, 77,141, 32,237,203, 15,131,100,127,145,136, 0,157,114, +242,222,134, 89,248,176, 5,166,109,233, 86,232,160,180, 68,128, 44,148,227, 42, +130,150,200, 5,229, 53,137, 4,210,179,177, 49,117, 26, 49, 33, 2, 66,173, 96, +225, 35, 28,231, 81, 75,243, 41, 3,248,243,160,158, 94,198,137,155,125,162, 34, +170, 48,216,198, 94, 7,125, 93, 34, 33,124,119,192,157,243,159, 58,229, 2, 94, + 92,164,255,214,224, 46,227,231,254,124, 2, 44,204,136,255,166,146, 71,138, 48, + 93,240,123, 54, 70,152,157, 76, 56, 80,197,191,114,236, 21, 16,214,231, 45,247, +249,187,211,228, 81, 77, 80,217, 25, 45,195, 71, 53,111,208, 60,246,198, 93,232, +251, 34,162, 92,235,129,239,144, 72, 18, 34,158,148, 44, 91,180, 52,165, 88,247, +234,127, 7,241,212,238,180,145,225,155,253, 48,231,157,194,214,178, 56,194,157, +197,119, 0, 81, 16, 65, 15,241,101,148,182, 22,192, 61, 33,202, 4,191, 33, 28, +172,133,146, 96, 27,142, 75,202,219,111, 45,184,178,102,104, 42, 41,194,216, 66, +153, 8,118,243,180,177,158,186, 82,152, 21, 10,207, 60, 31, 76,114,108,198, 17, + 98, 74,192,163, 84, 43,140, 26, 90,150,190,128, 62, 59,181,237,240,152, 49,162, + 37,194,105, 25, 84, 71, 54, 97, 72, 62, 13,210,235, 96, 62,153,130,138, 34,190, +179,246,112,219, 71,183, 73, 5, 6, 31,167,122, 9, 75, 29,225,112, 92, 49,181, + 6, 95,140,194,124,180, 16, 55,202,143,232, 60,243, 75,239,252, 98, 10,180, 86, + 48,178,134,189, 87,103,213, 29,133, 97, 29,149, 3, 47, 1,218,238,121,152,147, +218,235, 78,163, 63,127,251, 82, 2,117, 54,233, 8, 16, 46,191, 20,196,161,132, +230, 47, 5, 9, 25, 86,136,227,186,229, 66,241,123,111,215,134, 55,118,176, 1, +189,248,228,239,177, 88, 32,216,165,118,184,105, 21,132,187, 0, 10, 13,231,124, +147, 62,182,128,183,241, 2, 66,144,150,219,183,148, 82,235,195,118,123,204,170, +206,214,245, 4, 82,165,168,202,213,241,145,132,152, 45, 8,226,223,163,126, 14, + 49,254,191,194, 72,158,182,243, 64,140,199,144,154, 7, 29,158,131,112,118, 67, + 19, 46,204,227, 28,122, 43, 61, 15,194, 23,153, 14,234, 95,164, 16,216, 85,152, +153,249, 91, 17,182, 15, 13,210,141,127, 67,237,111, 36,202,221, 73,236, 51,153, +237,252, 63, 97, 21, 9, 63,196,253, 66, 84, 39,141, 58, 95,229,181,145,232, 44, +106,135, 54,140, 68,211,237,242,161, 37,120,203,120,216, 66,108, 48,140, 98, 7, +173,153,122, 89, 41, 88,162,189, 69,104, 74,254,147,115,100,223, 82,243,254,244, + 17,136,182,119,229, 88,136,118,209, 86,146,174, 0,132,138,105,109,190, 98, 73, + 56,175,151, 4, 26,186,106,204,190, 50,255, 40,148, 76,108, 72,248,200, 17,178, +130,247, 11,139, 32,137,133,172,183, 69,179,174, 4, 39, 5,126,222,189,144,102, + 64,155,163,172,209,154, 50,210, 67,186,183, 20,231,119,215,214,176, 23,136,206, + 19,109,128,162, 11, 75,184,101, 53,116,248,221,177, 61, 40, 66, 93,232,187,245, +224,228,154, 75,136,125, 69,194,166,208,244,252,116,160,243, 19,248,197, 19, 18, +127, 98,137,245, 52, 96,242,122,203,217, 58,167,202,164,177,198, 23,242, 72, 62, +208, 83,106,238,107,176,200,141,226,136, 99,195,100,119, 27,183,201,213, 46,217, + 85, 75, 45, 51,102, 1,253,190, 6, 20,135,123,238,153,188,213,189,118,253,100, +180,212,100, 37, 16, 63,228,103, 33,131,106, 8,243, 74,190,158,218,158,128, 23, +172,211,147, 17,231,253,115, 31,161,148, 81,222, 57, 13, 41, 89,105,153, 29, 58, + 32,232, 44,249,105,184,147,104,132, 2, 96,128,239,249, 65,117, 61,207,181, 54, +253, 20,152,159, 21, 69,144,167,176,176, 19, 95, 4,119,159, 35,222,125,200,252, + 0,173,166, 58,153,102,226, 98, 5, 61,180, 77, 29, 41,140, 49,154, 80, 20,129, +115,192,169,217,149,158, 51,206,254, 1,225, 16,231, 70, 82, 9,254,237,164,239, +243,180, 55, 77,135,202, 76, 92,137, 97,194, 35, 94,168, 3,208, 17,139, 20, 13, +228, 1, } ; -// ../Source/JitKernels/GB_jit_kernel_union.c: -uint8_t GB_JITpackage_195 [345] = { - 40,181, 47,253, 96,254, 1,125, 10, 0,166,211, 65, 33, 0,243, 54, 62, 39,121, -224,154,217,106,195,174,130,223, 19,127,115, 26, 20,140,217,201,153, 28,230,209, - 65,254,255,111, 93, 2, 8, 56, 0, 56, 0, 57, 0, 28, 44,250, 20, 98, 94, 86, -158, 87,115,136, 71,245, 61,195,223, 56, 13,235,228, 81, 76,121,215, 29, 12, 3, - 18, 80,104, 62,101, 3,108,161, 57, 98,172,114, 7,231,212,154,159,245,111,236, -198, 26,155,113,110, 89,149,178,172,229,120, 79,204, 17,250, 49, 6,239,252,100, - 71, 61,154,127,196, 30, 85,105, 72, 42,242, 61,250,209, 7, 29,221,101, 6,131, -110,154,152, 79,134,139,112, 81,135, 2,225,114,105,140,124, 66,177,231, 54,188, -194,252, 83,238, 78,183, 60,205,235,155,196, 34,218, 74,193,183,176,163,108, 54, -236, 62, 99,204,147, 1,119,247, 10,170, 9,151, 34,255,196, 15,148,216,200,215, - 69, 38,214,219, 34,224,246,112, 15,203, 62,143,179, 98,231,176, 25, 87, 9,213, - 69,125,181,134,106,194,165, 48,220, 52,109, 18,218, 76,115,145,103,157,238,215, -128,177,250,125,205,147,243,219,146,228, 5,248,147,169, 57,102, 28,112,203,254, -139, 69,202,216, 74,130, 40, 18, 68,190,112,125,205, 59,162, 54, 27, 32, 96, 70, - 32,211,202, 3,132, 80, 37,131,174,133, 89, 27,177,225,114,216,129, 64, 25,140, - 43,144,193,195, 34,131,131, 5,178,163,205, 10, 13,227,205,109, 86,213, 62,206, - 1, 48, 15, 19,207,212,160,201,121,102, 66, 27,132,213,252, 49,178, 99, 86,191, -195,158,162,119, 8, +// ../Source/Template/GB_reduce_to_scalar_template.c: +uint8_t GB_JITpackage_191 [1289] = { + 40,181, 47,253, 96,186, 16,253, 39, 0, 86, 53,161, 40,192, 22,117, 14, 80, 61, +209, 98,243,219,127, 12, 93,218,216, 39,157, 48,152, 95, 92,129, 70,210,195, 9, + 49, 3,184,124, 96, 14, 33,219,166, 40, 16, 92, 55, 3,148, 0,150, 0,153, 0, + 21,115,109,237,104,217,171,215,164,101,202, 36,223,104, 60, 9,149,125,163,198, +158,167,207,181, 52,249,116, 65, 8, 6, 10, 21,230,180,232,193, 67, 88,150, 28, +217,148, 55,171,194,151,178, 38, 47, 21, 15,138,195, 96,227, 18,203,151,175,223, +230, 72,228,245, 57,225,167, 5, 5, 4,133,138, 67, 2,130,194, 37, 45,250,116, +101, 73,164,110, 0,239,225,186,118, 18,251,164,129, 23, 10,206,139,246, 2,130, +175,141,158,134, 91,126, 26,232,241,181,127, 34,109,199,238,241,159, 36, 24, 89, + 62,135,224,142,211,235,184, 51, 27,103,212,110, 86, 59, 99,237,219,216,102, 20, + 23, 63, 56,128, 42, 7, 7, 1, 82,116, 34,101,103, 12, 13, 17, 31,153,168,192, + 91, 62, 2,223,154,180,125,217, 18,252,239,236,161,169,124, 95, 90, 53,248,254, +127, 8, 66,145, 62, 83,103,218, 68, 31, 28,153,138,207, 45, 23,233,112,228, 70, + 89, 0,146, 94, 97,144,226,232,144,228,180,153, 62, 17, 83, 41, 0, 93,240, 2, + 43, 52, 89, 6,203, 62,224,117,193,140,162, 32,135, 55,202,169,244,147,136, 12, +249,230,150,130,127, 2, 56,250, 5,156,183,111,106, 84, 10, 64,144, 65,197,241, +129,101, 32,211, 38, 43,173, 29,167,126,206, 93,188,253, 27,185, 95, 79, 52,153, +241,155,232,221,142,173, 38,103, 14,251,239,247, 43, 63,153, 70,239, 1, 24,152, + 65,172,186,144, 34,239,211, 8,197, 5, 64,196,249,163,178, 37, 73,196, 11,185, +180, 6, 6,188,216,181, 28,169,212,214, 63,254,202,123,108, 83,150,247,100,231, + 40, 82, 65,129, 68,196, 17,110,185, 23,221, 86,206,121,146, 80,121, 47, 37,220, + 98,249,221, 34, 91,174,105,116,142,132, 51, 82,217, 89,238,143, 6,115,129, 24, +107,227,170,176,172,170,168, 40,169, 94, 0, 58,107, 29,225, 59, 89, 83, 89, 20, + 27, 25,144, 76, 3, 49, 46,203,145,174,126,178, 27,185, 12, 94, 42,204, 85,105, +100,152,149,129,240,137, 99, 87,165,209, 64, 9, 70,223, 38,115,217,135,210, 63, +226,210,135,198,232,212,165,194,192,156, 4, 16,148,242,251,113,230,119,217,122, +223,187, 47,101, 19,189, 55,150,139,108,178, 67,110,145,210,137,108, 43,204,186, + 54,181,111,235,156,220, 84,183,237,142,202, 42,172,141, 12,182,209,111,234, 62, + 48, 21,101,121, 90, 94,154,166, 41, 58, 38, 99, 97, 22,118, 65, 14,202,222,167, +182,177,239,237,220,216,244, 18, 82,194,164,201, 46, 82,207, 22,241,228,180,123, + 41,235, 62,234,117,245,177, 35,137,214,219,100,255,206,200,185,229,217,228, 57, +163,141, 30,107,114,222, 83,147,250,219,242,151,211, 34, 67, 80,138, 6,172, 46, + 10, 11,171,229, 9,223, 51,109,228,142, 70, 89, 25, 76,102,131, 10,129, 16,168, +209, 41, 66, 52, 50, 34,146, 36, 5, 41, 53, 6, 49, 8,194, 80, 36,234, 36,215, + 3, 50,145, 52,206, 66, 32,130, 16, 54,130, 33,193,132, 40,144,145, 32, 74,202, + 41,214, 3,185,215,129,143, 15, 87,114, 87, 96, 31,148,164,181,234,131,181,214, +249,124,178,117,143,102,107,122, 85, 87,123,220,110,138,169,162, 83,139,106, 52, + 90, 97,211,162,178,254,224,210, 75, 51, 99, 85, 28, 20,157, 43, 90, 65,202,159, +129,148, 46,167,234,164, 60,196,202, 69, 84,107, 14,104,196, 24,178,106, 40,157, + 12,118, 20,245, 38,142,162,175,114, 87, 95,128,242,251, 11,188, 55, 7, 64, 26, +194,248, 67,113,104,119,105, 5, 17,255,153,238, 19, 65,211, 92,144,102,230,131, +168,235, 43, 17,149,147, 34,244, 71,189,156,202,139,202,233,161,127,197,197, 48, + 37,165,187,183, 21, 36, 71, 22,114, 67, 36,169, 33,194, 12,137,196,240, 71, 58, +135,217, 30,181,245,101, 68,157,162, 13,249, 42,255,124,248,171,210,162, 82, 59, + 11,143,197,187,248, 24,166, 97, 49, 87, 41,198, 89,198, 99, 49,244,188,131,138, +119,110,219,149,236, 95,168, 10, 70,232,174, 96,244, 88,144,131,147,138,169, 53, + 21, 6,209,135, 51, 75,193,253,238,183, 62,233, 41, 32, 24,123, 9, 61,136,136, + 30, 82, 13, 42, 59,242,135,100, 62,201, 20,215, 61,233, 18,241,207,146,183,156, +197, 5,192,239,121,151, 51, 28,239, 24,145,129, 17,127,105,229, 56,166,104,122, + 84, 56, 0,168,220, 14,116, 57, 85,212, 17, 8,146, 26,144,125,117,121, 58,184, +201,201,231, 45, 45,120, 20,120, 31,162,166,179,233,102,209,122, 65,162,113,208, + 86, 21,199,166,253,111,134,241,118,139,127, 81,197, 93,229, 81, 78,151,121,234, + 20, 70,238,140,200, 56,123,139,114,167, 93, 21, 51,254, 38, 88, 88,117, 67, 28, + 6,226,225,209,125,230, 92, 73,201,182, 94, 76,169, 57,127,244,203,221, 89, 94, + 39, 48,230, 27,150,203, 74,226,219,173,216,205,165, 96,229,173, 1, 29,243, 40, +229,200,137, 34,181, 67,216,206,216, 24, 80,126, 9,111,166,249, 19, 78, 26,144, +157, 79, 44,230,174,201, 31, 65, 26, 33, 15, 17, 57,159,219,186,180,223, 32,223, +248,113,189,132,184, 99, 15,193,140,217,222,249, 6, 83,165,199,131,144, 48,191, +246,226,172, 74,185,244,184,171, 93,129,227,221,164,211, 34, 7,163,113, 38,182, +192, 34,186,192, 5,157, 78,146,217,174,122,231, 67,120,156,153,242,200,180,176, +176,205,142, 8, 1,141, 82,192,249, 10, 17, 5,194, 6, 36,127, 15, 24, 24,128, +153,250,112,173, 38, 80,183,160, 59,223, 83, 69,105, 63, 92, 93, 54, 77,196,109, +153,205, 60,137, 65,116,207,251, 72, 12,173, 35, 76, 65, 20,233,126, 42, 5,168, + 86,155, 80, 4, 33, 31,177,193, 77, 51,255,153,201,252,185,150,123, 58,198, 62, +246,166,116, 2, 23,190,238, 86, 39, } ; -// ../Source/JitKernels/GB_jit_kernel_user_op.c: -uint8_t GB_JITpackage_196 [298] = { - 40,181, 47,253, 96,158, 1, 5, 9, 0,214, 17, 59, 23, 16,159, 3,194,167,176, - 30, 15,242, 94,115, 48,129, 11,147, 53,148,136, 0,160,136, 3, 1, 52, 0, 52, - 0, 52, 0,125,150,201,248,235,180, 90,127,128, 12,211,164,220, 99,248,205,254, -170,103, 55,139, 39, 95,134,207,127,240,194,190, 41,141, 24, 30,229, 62,215, 99, -219, 95,185,179, 35,173,174, 99,100,253,113, 0,197,113, 4,165,170, 21,226,212, - 25,102,183,229, 62,119,239,103, 58, 69, 85,239,219, 22,122, 98, 81, 16,165, 96, - 18, 68,121,161, 12,158,152, 85,155,156,222,128,254, 78,105,216, 85,193, 39, 62, - 72,139,210,152,148,173, 38,193,255, 63,128, 3,206, 11,193,115, 32,231,117, 99, -199,141, 30,245,133,163, 70,109, 30,149,189, 6, 69,156,102,141, 99,100, 1,136, -161, 20, 61, 45,201, 24,250, 70,238,234,169,210,111, 55,175,162,207,111, 15, 0, -144, 3,206, 11,223, 71, 73, 82,248,141,145,108, 5,255,202, 53,221,229,173,162, -166,179,155,206, 11, 27,119,129,210, 22, 86,145,245,194,240,166, 10,219, 65,240, -207, 11, 47,172,210,229, 91,159, 67, 17, 0, 67,101, 66,202,128, 84,119,108,205, -158, 35,106, 60,175, 75,254,235,233, 40,174, 35, 98,178,152, 68,128, 27, 52,127, - 8, 51, 69, 7,198,214,192, 47, 6,195,207,181,147, 19,123,138,130, 33, +// ../Source/Template/GB_rowscale_template.c: +uint8_t GB_JITpackage_192 [887] = { + 40,181, 47,253, 96,233, 8,109, 27, 0,230, 43,132, 40,192,208,108, 14,248,118, +213,110, 18,204, 73,136,175,208,121, 36,118,103,197, 29, 83, 31, 91, 39, 14,132, + 31,165, 75,149,212, 27,224,224,186,138, 66,117, 21,128,122, 0,115, 0,121, 0, +161, 55,199,234, 9,183, 41, 72,115,237, 47,155, 26,215,246,104,101,146,184, 48, +143,175, 59,183,113,107,199, 57,212, 80,237,162, 88, 93, 42,144, 68, 36, 19, 2, + 65, 68,114,135, 23, 93,194,180, 51,175, 63,170, 99,132,217,110, 40,119,105,171, + 42, 50, 28,231,165, 36, 52,190,115,220, 58, 83,206, 6,125,232,205,115,115,113, + 86,171,153,244,123,223,201,185,192,159,199,244,215,251,118,232,185, 20,184, 40, +235, 9,157,167, 56,110, 58,119, 45, 78, 15,123,236,237, 36,229, 16, 8, 52, 65, + 32, 1, 87,116,128,201, 29, 14, 43,122,195,165,187,176,138,180, 60, 48,116,146, + 18,157,211,176,109,171,112,230,140,149,222,194,251,255, 67,144,198,237, 78, 87, +139, 63,233, 51, 39,115,233,250, 31, 95,139,153, 13,167,226,157,121,157,222,173, +127,117, 94, 62,170,122, 59,231, 57,190,195,124,208, 30, 99,180,222,228,177,225, +188,213,121,246,245,110,255,245,215,157,103,152, 47,138,243,237, 85,138, 47, 89, + 76,173,131,217,191,198,156,103, 91,143,105,200, 65,145,135,100,234,119,142, 31, + 55,246,115,163,153,119,252,104,150, 28, 50, 75,134,191,217, 55,204,245,212,177, + 5,158,185,190,182,216,201,168,149,250, 63,185, 35,163,102,162,111,149, 10,194, +129,230,206,224, 32, 87, 10,210,175, 74, 57,161, 68,107, 51,141,197,150,242,178, +101, 22,211,238,122, 87, 90,193, 28, 52,172,161,227,178,131,253,129, 52,192,178, + 44, 75, 74, 41, 39,255, 44, 76,215, 29,209,169,127,174,103,143,222,140,251, 10, + 28,195, 76,112, 93,245,140,171,245,228,245,220, 26,139,233,194,100,201, 16,180, + 1,109, 8, 80,143, 88,209, 49, 23,108,203, 34, 48,249,145,151, 42,104,134, 74, +244,210,231,186,196, 97, 20, 74,191,232, 21,166, 85, 21, 11,187, 42, 36, 26,201, +131,246,159,254, 42,189,199, 94,105,188, 68,101,116,217,101,244,227, 21, 62,126, +114,234, 24, 69,166, 93, 56, 11,131,232, 46, 75,182,117,149,133, 82,105,151, 46, + 25,151,113, 90,133,169, 61, 94,202,119,212, 24, 24, 80,152, 60,114, 42,114,120, + 52,207,140,163, 22, 57, 95,135, 30,190, 35,234, 54,156,250,107,193,139, 45,138, + 51,128,156,168, 97, 57, 82,102,102, 70, 68, 65, 65, 97,146,180, 6, 80,132, 8, +153, 89, 55,242,200, 72,203,164, 14, 25, 51, 19, 92, 32, 73, 38, 40, 41,255,242, +145, 90,166, 71,117,100, 42,184, 15,169,118, 32,114,100,161,213,240, 70,177,198, + 82,234,180, 24,128, 73, 25, 37,126, 76, 15,126, 24, 1,174, 79,247,204,235,178, +140,252,105, 29,187,240,182,125,231,193, 93, 3, 60, 26, 24,117, 39,178, 73, 34, + 42, 25, 71,102, 92,237, 35, 30,211,150,185, 13, 51, 75, 33, 1,107,194, 10, 32, +208,133, 25,136,133,155, 36, 46, 28,123,189,138, 21, 13, 55,185,233, 79,146,138, +206,210, 63,211,200,112, 43,101,139, 4, 58, 47, 21, 8,177,192,164, 94,135,237, +181,253, 16,209,207,233,160, 64,201, 48,211, 64,233,112, 28,168,247, 49,232, 83, + 26, 61,114,180, 17,200,172,146,146,148, 85, 3,121,131,186,158, 53, 68,123,203, + 57, 32,214, 8,155,253,145,131,235,170, 50,101,117, 97, 28, 70, 25, 26,240,222, +213,163, 35, 74,215, 79, 25,185,115, 40,189,105,119, 28,195,155,236,138,128, 57, +141,154, 8,175,240,138,161,226, 0, 64,176,232,120, 33,224,128,208,166,216,220, + 41,193, 99, 68, 50,110,106,183,199,102,108,162,129, 77,210, 33, 16, 49,174, 98, +230, 65,184, 43,136,236, 81, 44, 74,111, 10, 89,228,141, 67, 8,192, 2,202, 1, +162,135,234,141, 40,109,215,224,132,134, 18,128,179, 9,152, 55, 31,100,111,211, + 48,129,213,215,128, 18,194,116,136, 91,231,249,166,201,170,204,180, 97,100, 1, +132, 95,232, 74,119, 69, 12, } ; -// ../Source/JitKernels/GB_jit_kernel_user_type.c: -uint8_t GB_JITpackage_197 [290] = { - 40,181, 47,253, 96,154, 1,197, 8, 0, 54,208, 54, 21, 16,253,106,158,251,225, - 11, 88, 95,179, 57, 53,240,156,129, 69, 4, 0, 16, 56, 8, 48, 0, 48, 0, 48, - 0,244, 92,202,223,175, 87,251, 3,252,249,225, 21,253,103,225, 75, 63,199,168, -247,224,133,249,198, 52,190,140,215,228,252,105,155,116, 63, 60,255,150,172, 87, -150,140, 44,127, 28, 64,113, 28, 1,231,191,231, 79,127,207,211,181,154,174,158, -119, 93,200, 19,139,130, 40, 5,147, 32,138, 23,204,192, 19,244,122,151,147, 55, - 32,143,171,117,252,174,160, 39, 62, 72,139, 84,185,156,173,230, 7, 29, 73,117, - 35, 72,122,212, 23,146, 26,181,121, 84,230, 53, 40,226, 52,139, 36, 35, 11, 64, - 12,165,248,170, 89,202,144,111,230,191,162,107, 13,255,243, 42, 62, 13,127,115, -213, 10,113,234,140, 0,176, 3,142, 23,190,143,146,164,240, 35,163,217, 10, 60, - 60,219,245,159,183,138,154, 72, 24,253, 39, 26,251,199, 11, 63, 95,105,114, 8, -188,247, 30,208, 1,199, 11,129,231, 64,206, 11, 21, 0, 69,101, 26, 20,135,164, - 44, 77, 29,136, 35, 0, 18, 22, 80,101,120,101, 79,244, 22, 39, 65, 72, 3,197, -117, 70, 76, 22,139, 8,112,131,230, 15, 97,166,232,176,216, 26, 94, 49,120,147, -218, 19,212, 50,219,137, 61, 69,193, 16, +// ../Source/Template/GB_saxpy3task_struct.h: +uint8_t GB_JITpackage_193 [492] = { + 40,181, 47,253, 96,235, 3, 21, 15, 0,118, 24, 77, 33, 16,149, 30,166, 38, 44, +202, 36, 34,136, 71,194,103, 26,135, 18, 89,232,206,161,223,106,142,254, 98,201, + 48, 34, 0,128,170,154, 1, 68, 0, 70, 0, 65, 0,161,248,104, 43,235,143,102, +251,249, 75, 83, 90, 70,105, 80, 47, 94,136,194,241,141,158,230,249, 65, 26,148, +150,102,255,116, 55, 4, 25,195,209,215,206,198,213,126,254,250,211,101, 43,168, +149, 57,208,205,120,243,224,152, 11,159, 39,138,120,107, 64,250,186, 96,117, 93, + 1, 23, 7,198,114,209,182,137,150, 93, 10,154, 74, 38,211,166,203, 58,127,130, + 3, 11,171,156,114,209,203, 90,113,253,231,231,234, 82, 82, 57,174,206, 61,165, +202, 60, 42,150,244,208,117,236,150,198,153,114,222,210, 93,151, 53, 85,192, 6, + 88,133, 32, 12,176, 14,112,128,166,240, 7,247,198,143, 8,188,219,196,220, 20, + 71,218,211,250,232, 49,237, 16,170,133,172,238, 53,213,150,187, 54,115, 30,106, + 78,253,235,234, 69,231, 27, 51,238,188, 25, 14,185,126,119, 55, 36, 65,247,190, + 12,161,229,253,229,176,203,142,212, 18,101,238, 19,140,108, 1, 16,206,151,213, + 39, 8, 23, 13, 75,211,246,180,125,162,103,167,249,186,140,222, 53,126,154,251, +219,180,172, 32, 59, 59,208,161, 20, 0, 71,215,111,236,127,115,245,158, 22, 61, +170, 29,110,251, 62, 34,209,181,137, 57,229,219, 80,224,235,170,109, 12,232, 47, + 6, 74,160,177,165, 83, 67, 65,105, 74,202, 72,181,112, 80,134, 4, 68,105,117, +122, 68, 99,150,161, 9,173,247, 70,130,181,195,182, 7, 76, 46,208,118, 28,146, + 88, 82,216,245,104,103, 25, 33, 43,116,197,248,208, 83, 6, 73, 1, 30,182, 7, +133,232, 19, 19,244, 5,252, 2,128,218,112,120,131,146,134, 62, 5,187,110,171, + 41,161,184,117,225,120, 45, 3, 54, 8,110,140,125,163,203, 95, 55, 37, 25, 50, +190, 19,110,198,184,215,222,105,174,100, 1,173,177,253,232,162, 31,207,236,236, +181, 7,104,245,230, 18,167, 18, 40, 97,152, 40,244,219, 64,203,136,160, 13, 53, +246, 90,105, 83,237,240,208, 66, 20,120, 47, 62,230,128, 15,154,204,207, 76,235, +148,215,206, 39,138, 78,113,198, 84, 81,128, 7, } ; -// ../Source/Shared/GB_Operator.h: -uint8_t GB_JITpackage_198 [623] = { - 40,181, 47,253, 96, 84, 5, 45, 19, 0, 54,219, 83, 31, 16,119, 30, 79,151, 68, - 84, 48, 60, 26,205,139,166,206, 20,222,189,229, 97,246,135, 42,235, 27, 46, 34, - 0, 64, 1,172, 2, 76, 0, 74, 0, 71, 0,210,209, 22,226,128, 29, 8, 11, 3, -118,104,193, 11,180,117,255,228, 34, 93,112,244, 22, 49, 53,125,167, 45,142,195, -242,136,213,217, 9,195,175,117,149,227,248, 51,167,186,248, 57, 73, 68,155,182, -148,174, 53,218,119,210,199, 63, 95,115,216,140, 88,176, 20, 59,235, 53,147, 61, - 38,125, 93, 21,225,186, 2, 45,221,180,142,231,183,155,220,245,136,219,111,174, - 25,252, 92, 58, 39,123,160, 38, 13,167,251, 7,202,225,164, 88, 53,179, 89, 55, - 61,217,195, 78, 42,172,112, 32,120,124,174, 58,154, 97,253,181,199,211, 33,133, -224,119,250,123, 11,225, 19,209, 20,160,159,172, 95,223,244,197,113,244,155,150, - 1,237,117,235, 64,199, 14,251,189,176,143,186, 49, 51,235, 55, 15,218,186,248, -174,171,194,218,186, 31,113, 73,212, 16,240,168,148, 26,205,172, 67,231,241, 66, - 79,189,116, 51,247,104, 62,126,142, 29,182,165, 90, 55,250,253,200,153, 26,103, - 9, 69,119, 87, 85,193,109,198, 47, 91,124, 3, 85,117,239, 38, 39,237,107, 97, -173,125,188, 46,230,214, 28,210,118, 72,223,124, 44, 63, 99,221,136,120, 52, 93, - 30, 16,144,238, 80, 42,141, 14, 97, 36,150, 76,114,113, 96,178,143,227, 2,122, - 17, 10,254, 55,114,198,184,180,246,155, 89,171, 42,205, 22,139, 7, 83,233,124, -209,182,161, 80,169,186,225, 84,124,168,225,169, 98, 52, 35, 41, 73, 65,106,180, - 6, 48,132, 16,229,152,205, 3,210,224,128,227, 56,238,148,153, 10, 36, 73,152, - 52,182,234,103, 3,116, 40, 92, 56, 61, 6,204,113, 66,205,177, 64,205,254, 90, -240,111,137,131,193, 52, 51,192,126,215,173,110,141,203, 54,201, 42,111,158, 77, -250, 6, 84,109,184,225,221,250,184,139, 56, 43,202,206, 56,135,231, 44, 14,172, -179, 58,242,214, 7, 17, 13, 6, 80,145,204, 40, 17, 61,245, 92,189,105,166,244, -206,236,247, 14,155,125,113, 83, 10,193,225,180,194,174, 70,118,192,225,211, 45, - 24, 57, 82,200,112, 93,159,249, 26, 22,202,208,216,199,176, 38,166, 85,135,194, - 91, 36, 35,102, 3,153, 20,196,182,140,237, 33, 16,122,225,196, 54,244,161,184, - 87, 27,197, 45,135, 48, 46,209, 72, 77, 82,147, 75, 69,168, 12,202,222, 32, 13, -189, 88,100, 44,149,127, 88,235,195, 93,106,152,226,189, 17, 59,177,178,224, 45, -206, 52, 71, 37, 32,132, 88,196,173, 44,226,192, 65, 53,230,226, 27, 1, 43,106, -212,230,132, 19,179,125,202,254,112, 83, 50,170, 31,247, 15,165,146,186,127, 10, - 88,162,160, 9,120, 77,155, 38, 83,153,105, 47,148,101,174, 64,163, 23, 77,170, - 30,238, 19, +// ../Source/Template/GB_select_bitmap_bitmap_template.c: +uint8_t GB_JITpackage_194 [637] = { + 40,181, 47,253, 96,108, 7,157, 19, 0,182, 31,100, 32,208, 92, 23, 3, 24,157, +249,214,174,223, 80,173, 93,212, 20,227, 78,144,226,143, 28, 38,210, 92,171,249, +194, 11,142,170, 89,129, 91, 0, 88, 0, 87, 0,176,212,106,235,185,222,167,234, +122,142,162,224, 13,140, 69, 98,225, 61, 20,137,197,187,146,187, 65, 95, 88,189, +252, 0, 94,118,110, 87,235,142, 55,124, 64,177,114,230,154,102, 34, 86,167, 53, +127,236,190,175,207,118,125, 15, 62,117,223,177,240,235,220, 6,144,251, 44,143, +216, 93,209,220,178, 59,215,214,190, 40,114,151, 22,181,154,172,100,142, 64,108, + 30, 2, 17,132,239, 51, 76,241,108,150,109, 59,187,186,117,205,239,216,162,176, +250, 77, 54, 28, 27, 95,201, 99, 20, 15,124,199,253,123, 12,252, 46,111,186,181, + 77, 9, 15, 59,164,145, 4,183,198,174,242,255, 55,218,182, 29,108, 90, 15,222, +196,245,150, 45,113, 88,120,246, 44,107, 6, 31, 73,237, 77,221,141,173,169,241, +172,198,182,188,162, 55,186,116, 14,166, 13,166,197, 55,101,205,167,110,224,148, + 75, 71,129,168,242,155,132, 32, 86,130,231,127,191,167, 21, 10,147,231,103,174, +139, 20, 56,236,186,187, 76,191,153,222,149,119,215,173, 57,139,190, 76,123,150, +250, 29,230,180, 89,109,122,110,178,245,194, 79, 93,169,163, 22, 69,107, 90,243, +115,203,245,218, 82,213, 52, 7, 18,255,174,209, 10,195,229, 13,185, 62,219, 86, +219, 36,223, 59,139,154,184,158, 36,129, 43, 88, 82,215,196,247, 82,198, 76, 40, +174, 68,142, 37, 81,184,163,240,178,209,136, 56, 30, 0, 6,195,249, 50,160,230, + 66, 1,221,127,147, 95,111,197,125, 48, 16, 53,158,209,106,212,214,254,119,249, +134,108, 45,139, 59,134, 67,134, 32, 17, 12,145,227, 39, 28, 81, 37,247, 84,119, + 15,103,180,132, 98,248, 33, 73,158,113, 19,114, 15, 99,160, 81, 49, 83,140,140, + 76, 32,162, 73,146, 44,107,112, 68,166, 10,171, 3, 79, 36,220,140, 52,174,203, + 84,172,108,145, 89,233,144, 34, 25,226, 85, 71, 93, 49, 8,233,160,209,246,117, +156,133, 44,222,204, 12,244,152, 69, 53, 52, 5, 20,212,139,212,105,162, 36,218, + 58, 79,216, 58, 94, 26, 77, 76,108, 4,152,146, 38,161, 73,153,127,164,122,205, + 0,155, 13, 17,114,198,193,183, 7,215,156,108,179,102,107,143,204, 55, 91,251, + 13, 27,249, 16,239, 77,100, 48,250,131,141, 75, 54,194,144, 31,138, 95, 47, 62, +219, 65, 12, 29,160, 81, 66, 56, 60,121, 88,208, 14, 88, 25, 24, 29, 53, 96, 42, +130,172, 7,180,159, 32, 28,191,245,106, 6, 51, 5, 8, 34,255,230,179,250,229, +202, 68, 41, 76,245,178, 32,107,158,134,106,238,193,230,224, 29, 2,123,240, 92, +233,153, 37, 95,115, 43,154,219,196,111,184, 25, 90, 51,151,223, 52, 63, 42, 51, +173,219,112,205, 53, 68, 29, 39,156, 18, 25, 39, 77,144,162,188, 9, } ; -// ../Source/Shared/GB_apply_shared_definitions.h: -uint8_t GB_JITpackage_199 [406] = { - 40,181, 47,253, 96, 99, 2,101, 12, 0,214,217, 77, 32, 16,149,115,160,182,111, -244, 12, 59,151,173,220,153,150,101, 43, 1,206, 16,142, 96, 32,133, 94,101, 64, - 51, 1, 0, 84,193, 13, 70, 0, 69, 0, 63, 0,215, 43,235, 35,121, 41,168, 51, -159, 48,214,132, 33,185, 87, 33, 11,182,245,113, 24,190,221, 97, 36,187,241,172, -252, 57, 71,103,247, 74,227, 45,173,218, 3,125, 82, 16,136,106, 95,200,202, 78, -218,183,103, 71,134, 25,228,250,164,205, 70, 27,199,189,140, 1,121,161, 32, 81, -133, 66,242, 62,246,167,109,123,191, 91,247, 34,195, 91,134, 45,162,149,187,100, -168, 16, 20, 75,237,113,214, 23,149, 59,246,157, 12, 49,138,237,100,173, 39,212, -230,178, 84,144, 69,149, 45, 95,110,175,244,244,229,219,102,125, 74, 32, 12, 8, - 74,113, 48, 32, 78,208, 6,159,108,139, 94,151,151,118, 14,231,251, 52,170,244, -106, 47,126,210,186,242,100,207, 71,157,223,246, 51,127,197, 91,199,219,150,215, - 51, 91,192,176,219,180,217,129,211,251, 74,187,114,135, 2, 14,124, 50,119,126, -233, 60,139,158,188,101,251,180,111,175, 53,230,236, 57,146, 20, 27, 78,174,170, - 91, 72,229,101,208, 79,239,185, 11,245,236,238,147,247,245,197, 83,123,174, 44, -239,153, 45, 47,157, 82, 36,195, 80, 42, 88, 6,163, 96, 15,199,149, 93,142,139, - 21,193,100,156,137,197, 98, 69,134, 51, 2, 0,151,164, 42,131, 73,110, 93,154, -134,198,210, 8, 30, 32, 32, 66, 98,144,195, 30, 55,195, 95, 58, 68, 55,155,200, - 45, 75,183,240,244, 28, 44,180,231,182,132, 64, 62,168, 3, 24, 8,224, 55, 50, - 72, 16, 51, 29, 65, 96,120, 45, 49,136,159,126, 82, 49,204,124,169,174, 52, 39, - 11,114,183,113,123, 1, 8,141, 0, 59,218,125, 83,232,153,137,152,165,192, 4, -175, 44,244, 40, 10,220, +// ../Source/Template/GB_select_bitmap_full_template.c: +uint8_t GB_JITpackage_195 [607] = { + 40,181, 47,253, 96,127, 6,173, 18, 0,230, 30, 98, 33,208, 92, 23, 3, 24,221, +252,109,191, 67,231,188,177,160, 41,198,157, 32,197, 31, 57, 76,164,153,156,243, +133, 23, 28, 85,179, 2, 1, 89, 0, 87, 0, 84, 0, 39,234,118,142,241,247,194, + 66,129, 80,116,142, 4, 66,113,142,220, 94, 72,175,171, 90,110,248, 14, 59, 55, +107,117,197, 23, 60, 95, 72, 57,117, 69, 49, 16,155,162, 85,123,236,190, 45,143, +246,244,254,187,121,207,169,114,235,220,133,111,243, 42,135,216, 93,177, 94,217, + 61, 98,220, 50, 71, 93, 87,251,158,198, 77, 90,108,211,145,130,249,225,160,117, +135, 67,121,210, 89, 13,219, 54,118,211,213, 45,189,103,139, 93,245,123,100, 52, +118,190,145,191, 38,221,119,110,187,247,215,247, 77, 94,116,167, 22, 29, 28,228, +140,196,241,219,105,102,145,255,175,201, 52,205,112, 67, 69, 67, 24, 20,157, 61, +201,170,191, 67, 80,123,205,187,179, 45, 51,157, 77,179, 37,111,216,137, 44, 28, + 67,105, 93,168, 77,109,231,233, 14, 54, 95,211,150, 55,111,224, 68,126,143,143, + 67, 74,112,125,239,247, 50, 2, 65,114,125,189,113, 16,194,150, 89,119,147,232, +181,210, 57,242,238,186,211,205,226, 86,105, 79, 50, 61,151,183,180,172, 22, 61, +247,184,106,229,163, 44,243,216, 98, 92,209,170,175, 87,172,215, 21,170,162, 58, +128,184,247, 20, 87, 87, 38, 95,208,245, 3,239,177,154, 54,211, 34,222, 57,139, +203, 92,207,113,176,205, 8,222, 77,154,244, 83,197,188,101,190,119, 34, 98,192, + 48, 21,110, 42, 8,194, 21,129, 22, 77, 38,180,233, 0, 46,151,141,135,249, 50, +150,201,231,222,147,252,118,169, 45,204,116, 68,108,239,113,250, 5,109,173,106, +251,101, 51,130,159,240, 3,141,162, 7, 20,223,217,136, 21, 48, 4, 61,227,168, + 35,106,192,237,101, 90,160, 97, 53, 84, 21,136,144,148, 38, 5,133,106, 53, 96, + 68,166, 10, 89, 7, 79, 68,110,147,228,174,198,200, 73,202, 68,181,164, 9,181, + 86,231,248,173,234, 42,199,112, 1, 1,149, 40, 52,246,240,202, 73,109,116,230, +225,164,111, 52,133, 65, 15, 92, 45, 26,203, 75,253,232, 37,228, 20,203,117,140, +234, 16,164,139, 55, 52, 80,125,125,123, 36, 77,246,111,183,181,183, 0, 71, 43, +227,134,177, 66,148, 57,196,143,207,102,232, 79, 3, 82, 89, 56,214,192, 26, 80, + 27,179, 48, 48, 50, 52, 96, 44,198,177, 8,180, 27, 33,221, 95, 59,213, 13,177, + 1, 50, 52, 83, 51, 89,189,115, 69,146,212,102,116,178,160, 42, 49, 12,106, 88, +194,140, 1, 63, 5,230,240,201, 90,240, 70,178,252, 78,140,118, 7,117, 72, 54, +157,194,184, 22,103,161,213, 55, 77, 71,101, 38,239, 46, 88,113,203,177,195,178, +146, 69,176, 87,212,229, 1, } ; -// ../Source/Shared/GB_assign_shared_definitions.h: -uint8_t GB_JITpackage_200 [12579] = { - 40,181, 47,253,160, 88,108, 1, 0,189,136, 1,186,226, 64, 41, 49,160,106,202, -234, 1,246,208, 2,156,218, 72, 96, 44,128, 77, 55,137,162,177,103, 4, 13,146, -119, 77,121,174, 87,158,211, 83,158,231, 9, 18,229, 96,251,143,164,138,227, 41, -188, 14,190,195,171, 66,145, 2,123, 2,117, 2,177, 51,219,238,109,179,211,240, -226, 97,209, 81,194, 66,132, 58,251,158, 51,198, 24, 99,140,255, 49,198, 46,206, -216,146, 60,251,198, 24,191,239,131, 40, 40, 62,159, 15,148,201,100,100,100, 64, - 21, 21, 25, 25,223,247,201,160,178,130,126, 50,178, 97, 52, 27,126, 80,127,215, -102, 58, 99,103,235, 75,178,190,190, 59,107,195,199, 1, 37, 90,150,203,197, 66, - 33, 17, 43,180,122, 89, 99,212,207,120,210,198,220,111,103,251,218, 60, 55,143, -243, 40,157,213,132,148,177,170,170,170,170,170, 10,106,202,146,192,127, 85,212, - 59,181,138, 84, 21,247,137, 48,215,191,166,105, 52, 5, 84, 85, 85, 85,126,167, -167,105, 24, 27,171,179,171,138,171, 28, 83, 63,112,254,207,231, 63,210, 93, 3, -135,164, 41, 58,138,139,115, 29, 2,182,189,167,185, 52, 60,181,235,106, 16, 86, -132,184, 36,168, 11, 5,196,117, 17, 65,145,162,128, 69, 71,156,107, 61, 20,146, -144,110,112,225,199,254, 26,206,102,212,234, 91, 71,114,143,117, 40,109,199, 44, -189, 48, 13, 28,222,125,153,126, 34,168, 39, 4, 58,130, 62,216,219,206,203, 6, - 14,217,146,182,248, 47,217,155,181,154,142, 46,177,194, 76, 26, 46,107,146, 0, -234, 7,108,200, 70, 67, 9,245, 3,203,149,153, 72, 96, 98,117, 97, 36, 40, 41, -246,181, 93,181,150,223,211,152,227,249,219,108, 25,117,147,203,175,105,215,116, -182,181, 78, 10,113, 45,179, 99,244, 36, 47, 12,229,160,239,117,108,186,118, 89, -237, 94, 3,179,179, 85, 21,163,101,105, 21,239,151, 34, 41,135,124, 81, 40, 19, -149,132,190, 48, 54,253,106,143,150, 52,174, 13,177,207, 29,249,182, 89,157, 92, - 13,247,203, 29,231, 93,103,251,157, 27,197, 88, 19,202, 3, 43, 98, 46, 10,204, -165,162, 16, 64, 92, 86,197, 50,193, 76, 42,147, 7,202,225,114,160, 36, 34,132, -117, 85, 28, 76, 44, 43, 54, 76, 88, 78,171,237,140,189, 77,123,181, 88, 4,203, -253,102,215,231,111,158, 85, 85,197,104, 89, 13, 51,151,205, 87,133, 86,209, 80, -171,240,140,199, 87,195,140,159,194,193, 19,179, 0,234, 40, 95, 1, 12,144,235, - 55,196,168, 93, 5,234,139,229,114, 61,144,160, 32,180, 3, 8, 22,104, 10, 37, -122,217, 99,213, 21, 32,136,180, 2, 4,148,140, 23,235,129,132, 5,194, 69, 81, - 18, 15, 53,195,188, 54,158,141,121,163,209,142,121, 27,173,175, 0, 65,102,155, -122, 55,227,106,105,187,150,237,165,147, 67,240,144, 24, 28,174,209,217,197,158, -174,127,246,185, 58, 54,113, 56,174, 78,159,226,200, 56, 92, 36,204, 59,215,177, - 75, 52,206, 26,198, 75,244,182,197,134, 0, 48, 60, 24, 28, 4, 64, 30, 12, 29, - 81,168, 33,254,206,116,104, 41,246,167,101,203, 61,166,161, 21, 41, 13, 90, 55, -175,131,201,241,157,157,229,249, 61, 11, 1,222,188, 94,231,180,198,195,215,102, -221,147, 38,225,106, 63,127,253,204,177, 11,243, 59, 53,124, 85,140,199,120, 94, - 13, 14,122, 97, 1,129, 99, 97, 33,155,230,243,196,223,244,108,243,225,204, 38, - 16, 98, 78,231,214,249,149, 19,158,209,167, 37, 80,115, 82,158, 31,119,139,125, - 91,181,217,117, 92, 47,216,111,103, 29, 99,119, 98,248,109, 8, 29, 42, 22, 73, - 89, 92,132,251,173,235,220,171,173,124, 58, 87,231,124,163,174,197, 28,195, 38, - 22,125, 96,118, 60,243,196, 58, 47,179,248,181,220, 61, 77,216,183,174,189, 51, - 53,233, 27,246, 83, 20, 97, 75,186, 65,117, 64, 4,135, 67,190,132,185,107, 50, -246, 56,207,126,211, 84, 38, 34,244, 67,189, 94,166, 48, 20, 5,234,206,102,124, - 62, 23,177,251,160,207, 87,241, 53,204,128,186,162,225, 7,106,137,194, 71, 97, - 34,101,162,251,251,190, 47,138,157, 66,119, 52, 19, 98,116,188,121,140, 48,198, -205,207, 8, 29, 1, 38, 68,178,131, 32,133,238,175,163,156,115, 50, 1,230,223, - 38,129, 31, 9, 93, 20, 23,139,156,215, 59,171,160, 16,101, 90,129,130,238,160, -142, 50, 16, 38, 67, 85, 36,175,182,243,199,171,205,237, 29,203, 69,236,237,186, -122,108, 24, 29, 3,128,254,166,199,193,208,208,102,192,134,215,230,233,133,144, - 18,145,178,174,156, 97,136, 61,155, 27,226,192,170, 79, 24,117,222,175, 30, 70, - 54,189,254, 67,183,116, 61, 74,109,165,237,116,222,198, 13,189,227,220,108, 43, -121,221,230,219, 54,239,236,174,135, 97, 78, 61,204, 94,215,244, 55,185,246,120, - 37,179,173,209, 59, 29,119,101, 2, 90,212,132,114,169, 46,100,103,177, 96, 65, -130, 86,232,124,103,198, 23,103,210, 48,126,119,198,191,109, 40,171, 34,223, 98, - 5, 16, 80, 5,240, 38,179,218,107,155,179, 55,107,236,156,252,254, 56,247,217, - 17, 65, 32, 75, 83,236,117, 94, 87,120, 17, 39, 76,202,203,132,242,112, 69, 77, - 77, 26, 42, 75, 5,132, 47,161,158,252,133,213, 89,116,151,137, 7, 22, 11,229, -178, 46,105,181, 99,175, 53,250,154,103,131, 15, 6, 3, 30,120,128, 71,195, 0, - 30,109,115, 63, 30,141, 49,171,101,175, 38,242,119,220,111, 40,254,111,236,245, - 57,199,218,226,109,194,252, 13,167,202,121,155,165,211,234,186,122,231, 29,112, -237,177,219,102, 51,233, 98, 99,209, 17,155,139,183,232,201, 67,172,122, 54,179, -221,245,235,154,167, 37,135,214,183, 93,207, 25,109,224, 67, 86,127, 55,215,168, -126, 99,155,107, 80, 99,155,244,175,115, 94,109, 96,186, 37,238,122,206,179,107, -250,155,213,112, 95, 20, 1, 39,144,148, 88,173, 97,120,246,106,185, 59,143, 99, -237,214,243, 59, 29,201, 13,148, 15,201,254,172, 39,106, 54,125, 60, 53,150,101, - 89,150,101, 89,150,245,154,102, 89,243,230,143,183,101,117, 52,193, 9,138,152, -124, 92,211,216,230, 89,106,245, 68, 73, 76, 96, 38, 30,174,237,175,206,235, 29, -175,141,191,173,248, 65, 77,113,221,185, 77,138,163,180,230,156, 80,140, 17, 34, - 8, 23, 18,108,144,228,240,104, 77,170, 76, 46, 7,149,137, 67,133,186,124, 26, -155,251,122,101,144,217,246, 60, 51,254,124, 45,173,175,145,223,230,247,125,163, -120,251,153,117, 54,201,212, 49,206,147,252, 89,142,234,123,133,100,227,217, 82, -236,175,179,212, 86, 91,109,141, 84,251,184, 78, 24,227, 39, 35, 68,228, 85,101, -132, 72, 71, 22, 18, 50, 87,102, 86, 59,127,243,156, 95,137,150,109,131,132, 83, -198,194, 66,202,178,251,141, 96, 15, 47, 44, 90,114,156,193,111,251, 56, 78,184, -104,181,216,107, 49,224,181,216,225, 23,207,135,216, 35, 8,163, 36, 51,168, 17, - 25, 61,250,128,140,205, 24, 95,187, 77, 79, 87,175,235,126,203,166,173, 84,226, -216,155,152, 99,119, 82,143,229, 42,196,182, 37, 9,123,155,134,243,111,219,166, -119,255, 58,118, 45,196,222, 22, 95, 60, 97,157, 25,214, 56, 69, 16,157,152, 9, -114,185,115,206,135,177, 84, 42,147, 72,174,111, 55,248,177,174,194,243,212, 60, - 26,184,253,204,142, 93,203,125,188, 61,182,198, 71,148, 65, 21,231,225, 24,241, -180, 53, 3,240, 61, 24,219,172,102, 39,230,154, 59,183,231, 30, 71,149, 66,246, - 61, 77,232,248, 61,150,233, 57, 2,227,157, 95,157, 92,246, 44,142,142, 85,207, -117,214,159,156,223,142,146,170,106,199,169,189, 99, 53,211,122,240,189, 48,215, -217,241,205,239,253,106,130, 32,121,181,120,250,197,215, 59, 20, 66, 96, 38, 16, -112,172, 86,195,170, 97,172, 82,102,189, 51,190,159,245,180,109,238,105,220, 82, - 70,182,165, 34,101, 95,109,204,239,103,223,181,253,142, 61,250,121,206,111,182, -121, 17,219, 14,215,121,163,227,109,102,222,249, 76, 61,203,188, 47, 25,201,155, - 55,179,238, 47,197,142, 65, 36,146, 40, 66, 25,181,194, 25, 91,106,116,100,195, -245,103,134, 56, 62,141, 3,178,145, 68, 52,124,201,164,161,188,156,243,219,199, - 27,103, 42,101, 30,232,105,202,170, 71,213,182,167, 78,115,234,220, 52, 48, 3, - 53, 90,189,150, 19, 82,232,179,199, 44, 23, 21,164,199,107,245,156,255,122,174, -119,108,148,116,126,235,110,207,108,103,219,212,170,115,102,238,234, 24, 78,121, - 60, 30,143,199,227, 97,177,182,154,131,228, 32,101, 32,146, 74, 78,144,139,134, -116,108,217, 22, 81, 66,117, 58,215,176,145, 45,214,104, 56, 52,184,175, 54,238, -220, 60,217,112, 72,120, 66,253,128, 84, 12, 34, 3,215,204, 45, 50,144, 24,100, - 38, 8,163,104, 3, 69,192,136,207,164,115,230, 91,103,223, 3, 64, 48, 54,148, -214,179,148, 82, 16, 73, 5,192,132,233,235,217,135, 0,156, 1,130, 61,233,129, -156, 76, 36,112, 61, 76,174, 10, 37,129,243,124,234, 93,254,182, 56,199,220,126, -223,107,192,111, 79, 82, 78,157,173,218, 0,144,123, 61,250, 16,121,236,141, 30, -130,124,115,140,115, 39,151,241,197, 31, 49,124, 30,146, 4,241, 95,163,209,180, -133, 4,217, 79, 83,132,180, 40,137,166,236,129,133,203,108, 91,113, 66,137,215, - 70,135, 74,188,162, 66, 55, 44,160, 97,117,101,212,234, 64,161, 32, 42, 87,117, - 85,125,113,252,170,186,186, 58, 9, 25, 53,207,173,227, 60, 83, 42, 37,167,122, - 26,245, 44,214,208,149, 63,242,170,222,167, 97,140, 26,221,104, 84, 13,168,163, - 9, 97, 5, 93, 20,165, 65, 98, 98,211, 92, 15, 95,146, 8,196, 49, 33,176, 57, - 32, 82, 31,221, 32, 82, 56, 0,234, 48,231, 80,215, 60,182, 86,119, 79,254, 59, - 53, 56,191, 95,247,116,244, 69, 10, 12, 12,125,217, 92, 43,164,240,217, 84,139, -232,251,129, 7, 14,128,160,111,207,245,156,205,169, 49, 64,215,118,180,249, 9, -167,250,237,232, 11,136,130,164, 43, 52,213,174,126, 62,155,141,164,191, 37, 13, -101,195, 8, 90, 0, 93, 26,134,103,171,183, 99, 92,252,122,184,186,101, 81, 82, - 78, 88,176,209,144,161,107,139, 47, 36,237,241, 90, 33,156, 71, 37, 16,103,252, - 54,235,103, 61, 85, 19, 86, 53, 33, 91,162,160,224, 90,234,215,179,185, 57, 15, - 67,186,235,119, 94, 55,175,167,167,203,196, 37, 74, 64,248,170,171, 12,118,111, - 56,140, 21,101,117, 81,117, 22,173,169,170, 90, 69, 15, 93, 17,147, 10,227, 89, -151, 40,108,155,151,125,130, 13,132, 27,140,166, 7,217, 16,106, 9, 35, 54,180, - 62, 86,125, 51,213,199,112,205,166, 49, 53, 26,255,181,114, 19,193,205,213,189, -137, 44,248, 60,197,213, 53,212, 50, 27,152,129,157,153, 88,253,135, 11, 35, 17, - 49, 12,221, 49, 78,106, 2, 15,213,249,119,122,182, 9, 36, 64, 28, 45,163, 65, -142,150,145,148, 2, 20, 7,234, 75,131, 11,142,197, 38,147,233,224, 4,101, 98, -103, 56, 13, 55, 13,187,140,127,195, 76, 7, 57, 80,151, 11,132,178, 34,196,229, -202,102, 87,219,216, 33, 14,232,154,219,220,164, 11,139,110, 9,103,193,130,185, - 76, 36,164, 21,177,144, 96, 0, 1, 2, 0, 0,113, 11,106,240,225,120,106,221, -133, 97,179, 66,210, 95,126, 92, 63,178, 96,230,122,254,136,204, 4, 98, 47, 55, -180,100,196,223, 25, 43, 83,209,153, 85,200,180,164, 43,242,124, 48, 48, 64, 10, -120, 64, 26, 26, 48, 64, 1,144, 11,171,243, 98,192, 78,173, 39, 91, 32, 96, 34, - 17, 17, 13, 39,181,225,164,161,132,208, 37,121,102,103,234,247,177,172,161, 45, -246,121, 78, 21, 84,127,195, 61, 81,114, 66,177, 46,170, 98,137, 40, 36, 44, 21, - 85, 93, 15,150, 11, 51, 97,129,252, 70, 32, 10, 16,214,132,211,217,181,231, 73, -237, 84,145, 22, 10, 37, 78,143,173,222,117, 83,171, 84, 30,143, 71,149,108,197, -248,248, 57, 56,100,118,230,233,180,190,213, 29, 31,143, 73,147,221,210, 67, 76, -250,213, 73, 61, 91,168,218,134,223, 89,218,223, 17,226,239, 33, 31,111,233,204, -228,116,236,142, 59,130, 33, 6,175,199,106, 13, 35, 70,125,215,116,108,220,121, - 60, 40, 36, 48, 21,234,146, 36, 7, 9, 78,252,210,214, 40, 5,144, 98,168,228, -149,154, 65,234,156,154, 17, 1, 0,160,160, 0,147,129, 24, 24, 14, 7,210, 68, -114,209,100,210,229,246, 68,194,199,132,152, 6, 4,201,195,128, 25, 56, 14,131, -131,101, 80, 0, 44, 0,132, 32,128, 5, 0,128, 3, 40, 0, 0,176, 4, 89, 4, -189, 90, 3, 44, 3,175, 2,121,228,239,184,228, 4, 40,240,130,175, 80, 71,159, - 99,143,158, 88,246,249,252, 60, 5,110, 12,162,167, 27, 39,146, 27, 61, 66,240, - 98, 35, 75,173, 4,160,235,166,223,144, 35, 68,132, 67,237,126,222, 72, 80,208, -164, 90,150,199,247, 50, 56,159,218,200,134,185,103,234,106, 22,193,142,231,207, -251, 95,213,188, 63,208, 37, 48, 54, 92, 44,175, 32, 69,140, 6,110,158,163, 43, -107,180,251, 29, 80, 22,121, 12,188, 41, 15,212, 19, 14, 5,193,197, 78, 2,194, -247,160,186,200,179, 93, 92,174,242,138,113, 65,136,166,208,223,143,161,245, 59, -183,217, 97, 58,168,143,222,169,232,208,121,135,160, 98,120, 3,117, 4, 80,167, -168,149,109,202,233, 92,227,209,124,174, 93,150,189,218,157,117,158, 31,139,194, -220,147, 1, 7, 9,234,211,147,102, 25, 73, 21, 37, 57, 69, 82, 62,245,134,121, -219,195, 16,125,139, 19,222, 83, 53, 5,251, 8,252, 67, 60,146,215, 85,174, 46, -230, 18, 24,207,232,175, 82, 42,156, 66,112,170,215,149, 75,141,250,134, 4,146, - 19,119, 35,103, 84,141, 10,237,241,173, 30,208, 41, 22,162, 87, 84,121,164,135, -203, 63, 86,166, 97,238, 99,222, 0,155,234,110, 55,194,175, 65, 58,202, 8, 74, -169,251, 17,107,218, 79,138,139,165, 75, 93,145, 46, 98, 52, 4,154, 98, 15,186, -206, 65,210, 61,180,194,122, 81,155,109,251,201,113, 22,253,249,137,249, 11, 51, -205, 89,104,242, 67,147,143,175,225,255,124,115,200,253,102,153, 47,229,106, 0, -136, 85, 46,111,113,130, 85, 18, 11,159,158,253, 25, 74,154,182, 66, 8, 37,189, - 13,237,165, 56, 83, 34, 36, 21,184, 27,194,184,161, 25, 53,253, 49,148,250,141, - 30, 90, 61,195,104, 70,230, 10,113, 81, 9, 16, 99,205,252, 77,141,212,127,226, -183,142,172,118,126,232,133,232, 37, 99,212,244,231, 88,231, 62,135, 93,109,194, -127, 31,189,155,164,217,169, 38, 64,163, 31,252,134, 84,233, 8,127,177, 29,240, -212, 68,153,123,120,178,107, 89, 3,133, 65, 80, 89,166, 83, 73,241,232, 72, 37, - 62, 22,238,171, 35,169,140, 89, 64,143, 35,145,120,210,157,188, 64,117,202, 79, - 69,162, 16, 93,213,108,220,160,138, 37,134,183, 74, 41,232, 75,131, 92, 29, 35, -169,227, 23, 30, 28,197, 80,177,241,210,180,185, 59,156, 83,249,217,213,213,157, - 36,116, 95,223,122,193,140,113,143,216, 60, 98,172,150,178, 98,250, 52,107,253, -133, 1, 93,133,240,160,227,237, 50,106,116,216, 90, 22,206, 62,117,159, 20,116, - 55,194,161, 70, 28, 22,120, 11,188, 80, 20,205,210,149,198, 80,250,129, 46,119, - 51,159,139, 86,217,140,218,245,146,150,196,239,134,182,103,198, 45,110, 45,191, - 99,199, 57,209,250,199,188,187,228, 28,205, 63, 53,162, 27, 86,244,151,170,167, - 84, 71, 31, 72,184, 68, 42, 65,201,217,232, 20, 36,156,163,121, 10,175,236,223, - 20,212, 27,212, 45, 34,187,231, 32, 1, 39, 94, 53,114,167,184,106,130,193, 80, - 80,169,241,153, 66,208,172,125, 8,238, 88,255,192,102,201, 68,250,237,176,135, -108, 66, 5,239, 67, 24, 87,177,100, 52,154,243,254,137,105, 94,152,108,186,172, - 24, 45,171, 68, 14,142, 58,231, 43,247, 57,148,109,245,223,122, 19,161,209, 32, -145,177,187,144,153,104,197, 1, 21,129, 67,237, 86, 30,205,117, 22,128, 56,108, - 75, 69, 60,159, 81, 16, 33,133,248,237, 93, 4,115,164, 4, 72,140,100,221, 42, - 67, 89,104,141, 19,156,127,226, 85,140, 89, 26, 79,200,198, 35,128,114,106, 2, -147, 24, 18,186,242, 44,159, 78,186,229, 30, 0, 82,139, 2, 81, 93, 95,253,105, - 66,241,145, 90, 44,124, 17, 84, 0,191, 26,119,228,172,174,192, 96,162,174,126, - 2, 16,187, 29, 57,152,217,175,245,222,221,145,137, 29,127, 98, 44,111, 28,225, -194,230,144,193, 45,153,245,212,164,132,135,248,227,179,242, 85, 59, 87, 85,193, - 2,162,161,143,109, 73, 75,252,248, 8,217,183,136, 59,219, 40,197,147,218,178, -146,100,243, 53, 48,250, 43,232, 87,191, 24, 39,130,245, 80,208,158,202,131,190, -248, 78, 91,219, 11,120, 87,111, 88,128, 25,146,232,201,198,149,207,156,151,222, - 40,251, 50,125, 81, 98,203, 94,209,215,224, 27,241, 18, 77,226,123,243,223,189, - 19,255,194, 17, 19,221,126,162, 71, 90,136,111, 44,244,104,144,243,156,189, 69, - 82,218, 3,105,150, 73,146,186,132,138,101,210,213,197,178, 15, 9,116, 42, 63, -194,213,132,154, 7,193,146,167, 12,222,204,132, 69, 29,230,109,143,178, 18, 50, - 27,104,177,228,137,220,118,199, 3,195, 7,208, 36, 31,171, 5,118,206,236,168, -143,147,200, 79,195,178,214,248,190, 37,235,174,200, 57, 69,107,194, 97, 13, 19, - 56, 64, 45, 87,204,218,162, 71, 14,111, 74,115,234,112,240,229, 36, 4,185,152, - 94, 80,170,112,212,126,190,198,125, 93,119, 82, 29,127,132, 93,237, 9,187,240, - 21,228,226,248,226,216, 16, 14, 97, 95,200, 74, 89,176,240,157,220, 80,119, 25, - 91, 67, 18,198, 85,241,172,123,195,231,242,239, 48, 73,227, 55,203, 87,224,247, -107,190,221,198, 82, 67,218, 71,126,224,160, 31, 65,139,187,161,251, 67,221, 8, -137,180, 2, 58,242,196, 88,111,116,224,177, 47,150,191, 49,243, 15,184, 3,206, -166,243,233,189, 70, 13,234,190,196, 26,240,170,111,194,226, 87,127, 35, 66, 14, -191, 54, 73,242,211,234,103, 4, 97, 83, 88, 48,232,165, 23,171,251, 96, 47,167, -221, 97,226,224,105,250,148,172,163,202, 17, 20, 78, 4,249,165,253,112, 62, 52, - 55, 27, 11, 56,125, 45,196,183,151, 24,155,254, 40, 67, 40, 58,107,228,105, 21, - 6,138,150, 0, 14, 7,157, 71, 74,193,143,236, 31, 90,232, 58,103,208, 81,196, -185, 62,225,214,121, 3, 94,232, 86, 48,203,121,160, 88, 35, 45, 51,187,210, 5, -161,237, 50,237,136, 4,254,228, 70,148,134,188,237,181,131,223, 21,229, 44,140, - 99, 35,151, 68, 79,126, 76,116,109,206, 71, 94,165,212,154, 22,146,165, 39,107, - 71, 15,148, 57,142,242,159,182,192, 78,184,122,148, 87, 90, 81,123,190,165, 30, -119,227, 64, 72, 46,132, 50,141, 13,150, 26,159,163, 51, 19, 84,216,253, 46, 76, -232,138,229,120,171, 83,251,232, 42,149,227, 53,134,176, 19,120, 68, 35, 11,202, - 5,120, 0,195, 56, 89,190,173, 22, 38,125,131, 4,148, 55, 84, 10,171,156,242, - 20,132,153,149,212,209,180,201, 84, 89,215,100, 94, 80,153,168,126,241, 87, 43, -170, 98, 60,244, 42,185, 70,193,138,201, 58, 97,189,206,219,217,232, 88,118,252, -105, 6,145,150,228, 60, 57,107,238, 2, 52,113,132,227,106,183,218,233,178,130, - 1,209,102,247, 33,211, 37,127,123,155,140,174,200, 97,184, 45,242,152,239, 23, -148,248,173, 98, 9,188,171, 34,222, 83, 19, 11, 57,177, 94, 2,239, 66,236, 86, - 75, 21, 82, 47,241, 76, 72,219,173,176, 1,120,191,166,134,143, 79,171,179,248, -109,109, 4, 50,180,198,201, 62,161, 14,120,132,104,201,245,206, 54,126, 84,253, -123,216, 35, 99, 26, 28, 0, 13,155,181,223,238,123,240, 26,225,241,207,114, 25, - 78,179, 84,168, 24,142, 57,230, 28, 8,108,219,120,129,239,235,195, 96,115, 51, - 49,230, 12,208, 57, 17, 39,235,212,124, 49,204, 98,102, 64,206, 26,121, 41,153, -148,145,216,130,101, 70,141,184,109, 41,192,130, 29,135,254, 11, 90,198,180,112, -109, 6, 43,205,128, 71, 28,177,189,106,121,199,228, 46,113, 59,108,238,104,111, -152,189,165,160,140, 19,127, 85,124,233, 75,222,146,226, 68, 78, 80,227,135, 83, -146,192, 81, 73, 48, 67,238, 15,182, 30, 53,234, 49, 24,125, 78,217, 19,201, 22, - 22, 56,246, 41,195,163,199, 83,129, 64,226,250,196, 20,108,119,241, 86,240, 4, -146, 64,100,232,171, 39, 77, 28,129,120,204,253,240,103,181, 19, 14, 53,108,151, -242, 78,195,246,164, 31, 81,198, 6, 21,145, 29, 39,157, 45,215, 29, 5,147,118, -251, 49,234, 82, 32,109,212,107,113,219, 89, 82,156,159,152,185,177,100,141, 89, -142, 17, 98,101,211,151, 83,236, 20,137,175, 54, 18, 37,229,138, 16,238,167, 40, -126,108,202,218, 25,192,126,104, 89, 80,194, 41, 73,124,146, 48,150,118,218,242, -115,160,166,100,163,146, 7,140,100,151, 2, 30, 15,229, 82,168,198, 93,110, 72, -232,224,228,162,118,235,104, 1,148, 23, 27, 22,191,246,188, 2, 82,131, 9, 95, -221, 64,131,206, 64, 58, 35,192, 47,251, 32,226, 48,228,181,158, 77,171, 37,195, -192,145,178,216,148, 34, 57,229,250,150, 53,235,226,158,135, 18,205, 43, 19,190, -180, 73,149, 88,183,107,160, 5, 84, 13,135,112,145, 6,137,208,119,124,148,114, -209, 68,197,129, 78,214,234,144,181,144,130,220, 68, 77,116,100, 7,152,210,167, - 85,196, 81, 71,243,242, 42, 7, 59,221, 18, 54, 71,111, 92,129,130, 59,219,211, - 61, 50,203,132,205,250, 87,241,199,232,170, 60, 75,164,251,179,152,253,160,238, - 1,230, 52, 59,178, 81,193, 98, 83,134,191, 15,104, 45,151,158,237,175,147, 77, -215, 92,165,176, 56, 65, 95,218, 62,171, 94,158, 24,160,117,242, 27,232,124,223, -194,210,205,169,195,176,204, 22, 72,216,122, 7, 55,113, 77,226,245,211, 72, 4, -203,107, 75,193,144,103, 6,255, 82, 25, 49, 48,131, 55,218,126, 81,164,143,113, -121,229,147,230,108, 29, 68,165, 46,112,252,126,231,160,230,186,186, 63, 28,216, -240,109,137,183,126,124, 1,242, 62, 1, 46,125,203,185,141, 53, 12, 49, 29, 76, - 59,235, 55,107, 5, 34,221, 44, 63,227,100,169,140, 48,161,182,147, 30,208, 72, - 67, 63, 96,136,243, 3,165, 78, 21,108,191,222, 9, 3,212,166,243,146,179, 37, -169,107, 65,152,213,129, 8,115,251, 40,191,126,129,187,168, 95, 24,165,144,148, -166,103, 32, 82, 76, 27,152, 41, 0, 3,221, 17,196, 15,202, 26,241, 92,117,198, - 36, 49, 68,130,197,103,115,242,126,126, 10, 2, 51,167,163,188,211,112, 5,227, -217, 34,142,217, 31,141, 97,220, 11,186, 35,202,245,165,213,215, 21, 34, 38, 25, -124, 55, 80,143, 21,138, 23,105,165, 11, 9,107,109,161,225,126,215,239, 99,157, - 65, 27, 61, 35,100, 63, 68,254, 77, 27, 76, 98,164, 57, 9, 43,217,129,197,120, -208,254,152,237, 92,162, 60,183,140,252,202,235,158,103, 47,148,102,248,155, 5, - 6,161, 16, 1,115, 69,190,221, 29, 23,158, 37,195,122,181,194, 4,165,100, 95, -136, 68,136, 52,245, 42,144, 11,136,178,170,136,246, 24, 67, 45,245, 83,110, 2, - 27, 71,202,139,177,158,240,160,104,130,174,132,161,136, 5, 65, 49, 58, 86, 71, - 23, 1, 69,148,194, 74, 78, 19,159, 72,234, 35,118,201,147, 37,188,116,153,117, -108, 62, 54,217, 45,222,180,250,192,190,138,121, 22,201,156, 48, 94,183,196,172, -170, 24, 15,245,215, 33,108, 97,109,196, 5, 13, 65, 21,227,209,152, 70,217,149, - 40,163,190,115,145, 61,212, 55,141, 37, 87,121, 25,150, 6, 72,168,193,172, 89, -175,163,219, 73, 46,129,121,226,249, 86,225,172,209, 52, 54,116, 65,147,164,160, -192, 38, 52,247, 32,161, 26, 5, 28,165,252,227,253,180, 32,238, 47, 69,118, 70, -142, 9,144, 84,227, 22,243, 40, 81,145, 28,109,222,153,135, 46,129,214, 99,228, -224, 68,172, 19,246,165, 75, 86,149,200, 73,229, 14, 13,231,219,108, 47, 97,163, -168, 54, 6,247, 61,138,222,245,246,160,150,213, 72, 95, 91,237,105,164, 11,224, -145,152, 89,157,189,241, 44,179, 78,120, 37,151,240,132, 0, 98, 47,133,112,224, -254, 65, 57,113, 93,247,179, 64, 35,150, 0, 63,151, 6,186, 24,251,211,160,251, -231,120,253, 69, 43,238, 61,140,215, 3, 42,125, 62,218,177, 9, 65,194,175, 97, -113,119, 57,173,152,132, 28, 87,199,209, 35, 83, 71, 67,113,218,232,102,201,207, -250, 3,182,241, 62,191,148, 74,221,150, 23,184,137, 0, 70,157,104, 24, 23,126, -198,165,177,191, 57, 25,132,195,174,198, 32, 67,109, 7,162, 5,248, 19, 39, 55, -140,223, 6, 98, 31, 97, 88, 83,185, 41, 30,168, 18,249, 28,128,254, 16,170, 59, - 85, 62,105, 81,195, 1,203, 11, 67,175, 35, 12, 1, 54,196,147,244,118,203, 75, -129,248,227,226,226, 51, 95, 52, 98,244,152,247,252, 4, 90,243,137, 43,159,157, - 41,148, 56,159, 10,153,178,100,247,193,187,121, 13,241,177, 19,135,172,120,235, - 69, 36,179, 29,184,107, 37, 41, 62,138, 38,175,248,204,101,245, 44, 28, 28,132, - 73,199,238,117, 68, 30,163, 12, 14,172,118, 71,103, 94, 88, 3, 64, 68,245,198, -216,102,128, 99,155, 72, 8, 6,113, 96,132,189, 14,160,108, 98,114,150, 42,118, - 49,197, 14,179,203,108,185,195, 65, 88,222,121,177,226, 9,151,205,134,114,232, - 7, 15,255, 20,152,232,175, 20,118,184, 28,194, 88, 42, 31, 54,113,220,148, 26, - 45, 63,230,108,218, 58,113, 6, 5, 82, 76,232,186, 22,219,253,158,173,196,130, - 49,111,196,108,192, 54, 7,245, 7,147, 70,160, 8,132, 33,111, 87, 77,241,119, -118,133,158, 81,159,123,203,142,169,156,165,214, 72, 61,201,210, 43, 40,228, 95, -207,124,216,247, 54, 31,158,191,152,186,214,127, 37,158, 98,195, 48, 7, 79, 84, - 84, 51, 74,178,211,179,205,106, 50,177,179,169,190, 63,135, 19,119, 1, 75, 58, - 52,168,192,243,219, 1,163,219, 58, 43,243,144,166,128,140, 33, 76, 55,114,122, -193,135,171, 81,101, 6,219,129,108,199, 99, 71, 43,240,234, 93, 44, 14, 45, 76, - 54,222,191,221,226,157,166,200,188,120, 96, 58,162,101,250,168,225,165, 26, 94, - 82,213, 1,115,228, 94,231,145,176,128,186, 78,114, 99, 16, 85,195,117,199,111, -248, 13,178,212,167, 87, 22, 5, 28,172, 95,154,103, 37, 96,165, 29,222, 46,137, - 42, 28,147, 74, 1, 42, 39, 22, 24,253,190,113,214,184,183,149, 13, 93, 17, 15, - 65,235,251,240, 10, 98, 56,117, 74,132,236, 8, 98,134, 46,214, 91, 69,146,233, -248, 59, 97,200,251,217,237,160,212,201,118,209,143,237,242, 19,186, 78, 75, 34, -122, 10,162,218, 73,255, 75,183,112,184, 37,169, 14, 1, 92,151,239,131,171,165, -115,242, 34,121, 9,204,136, 23,206,251, 8,215, 3,134,228,195,218, 55,210, 25, -158, 31,213,206, 48,107,215,168, 80,237,146,231,237, 58,140, 80,158,247,183, 91, - 89,201, 51,149, 27, 3,167, 55, 2, 95,254,166,139, 9,213,234, 65,231,135,159, -234,140,196,203, 37,128,180, 53,188,251,139,138, 63, 96,195,137,218, 64,120, 6, - 65,154,226,204,219,227,243,223, 13,200,147, 92, 55,246,104,156,134, 73, 16,239, -197, 65,248,212,152,179,215, 59,118,253, 85,228, 12, 95,244,138,249,182,163, 38, -213, 62, 53,238,202,100, 89, 73,184, 60, 20, 72,100,173, 81, 0,220,135, 53,153, -200,136, 18, 66, 57, 58, 12,145,168, 44, 24, 37,216, 49, 5,213, 78,209,147,178, -220,206, 53, 59,215,215,182,208, 51, 89,204, 0, 59,229,248,154,172, 30, 0,133, - 29, 43, 71, 58, 6, 68, 1,154,247,176,161,233, 68, 8,219,202, 12,212,127,161, -221, 53, 55,104,198,228,170,251,188,197, 59,153,253,118, 37,155, 1,219,195,222, - 20,108, 44,223,236,210,250, 15,244, 26,212, 47,124, 60,112,169,143,173, 83, 75, - 82,157,215,118,198, 68, 0,218,190,146,168, 9,198, 73,122,218, 45,181,228, 71, - 73, 8,217, 45,218,110,117, 55,241,173, 76, 0, 18, 94,113,164, 74,125,131, 74, -196,239,240,120,104,233, 17,143,150, 18, 50, 36,206, 29, 67,141,158,228,219, 80, - 97,111,177, 75, 33,240, 44, 56,241,150,176,169,253,132, 97, 58, 16, 82,217,206, - 60,244,230, 38,233,148, 84,128, 68, 52,174, 34,162, 70, 13, 88, 61, 52, 85, 5, -207,164,181,242, 19,113,200,160,210,201,233,166, 65, 9,235,203, 34,121, 25, 29, - 72,111, 57,193,105,227,164,132,198, 80, 76,137,250,252,161, 34, 70, 21, 88, 76, -117, 0,251, 57, 73, 1,130,124, 45,200,176,112,192,140,121, 61, 57,104,249,243, -207, 6, 26, 65,204,127, 3, 9,208,180, 38,112, 81, 19,208,248,114,131,215,232, - 28, 38, 38,146,150,213, 20, 92,209,169, 14, 43,120,157, 84, 16,218,117, 9,103, -173,168,190,170, 49,175,144, 40, 34, 35, 64, 63, 86, 81, 18, 58,114, 33,112,121, -182,109,208,205, 18, 89, 15,208, 57, 31, 83, 99, 9,197,137,136,150,252,159,239, - 53,196,222, 93, 90, 67,105, 6,207, 81,214, 62, 81,120, 51,141,183,140,192,161, - 46, 41,142, 67,200,179,129,210, 79,224,110,255,150,101,189,126,196, 42, 12, 61, - 34,104,108,145,162,159,121,141,115, 63,193, 29,127,174, 64,132, 74,115, 10,253, -217, 70,143, 50,136,106,212,246,120, 19,108,146, 29, 86, 18,247,199,209, 78,230, - 47, 20,133, 99,223,206,253,231, 38,185,160, 31,235,158,142,106,131,226,181,241, -146, 30,233, 86, 7, 64, 28, 1,199,191,142, 60,151,176,187,118,243,218, 90,221, - 0, 63, 43, 30, 72,143,254, 64,163,237,167,231, 53,158, 28, 32,149,160,184,184, -103,115,245,145,141,131, 71,249,224,148, 80, 26,232,165,250,107,195,181,253,182, - 80, 74,239, 14,228,174,132,237, 44, 85, 75,220,130,223, 99,165,112, 18, 22, 81, -241, 83, 69,199,231,179,177, 99, 40, 20,123,116,152,240, 75,145, 0, 58,244,120, -171, 82, 26, 17,157,202,189,206,186,177,120, 29,179,170,129, 59,141, 25,152,120, - 51,156,246, 83,163, 45,124,191,237,241, 55,185,238,149, 77, 92,195,116, 38,216, -176, 60,153, 26, 60,247,234, 57,129,202, 44,179, 5,247, 88,140, 9,211, 93, 58, -223, 10,145,122,242, 47,211, 56, 56,219,126,154,197, 14,145, 0,135, 52, 44,191, -131,233, 21,158,112,243,240,247, 60, 32,130, 18,164, 38, 33,205, 66, 87, 8,212, - 76,192, 9, 98,210, 26, 29,171,197,190, 65, 42,245,214,139, 84, 42, 27,146,149, -136, 26,166,234,220,139,130,232, 26, 76, 13,132,119,178,229,158,150,189,162,112, - 42, 26, 49,205,103,220, 80,129,186, 34,109,101,233,159, 20, 88,205,211,252, 54, -140,196,130,233,144,103,175,250,104,143,106, 59, 91,158,145,180, 94, 51,104,105, -166,169, 41,192,180, 82, 4,120,219, 91, 73, 94,227,250, 78, 16, 24, 15,189, 34, -187, 61,248,170, 72, 52,198,171, 90, 4,101,140,246,201,189, 52,226, 49,241, 55, -199,135, 34,156, 9, 54,246,196,246,180, 14, 22, 37,228, 90, 97,106,241, 63, 41, - 43,133,180,173,228,242,238,249,225,159,104,172, 52, 18,100,223,129, 82, 22, 90, - 2, 73, 89, 46, 30,109, 65,172,146, 20,128,155,228,168,196,166, 27, 23, 85, 56, - 69,190, 93, 80, 63, 45,171, 68, 20,161,135,188, 18, 50,148,124,145, 90,131, 88, -249,210, 34,165,255,218, 90,204,154, 96, 61,138, 56,162,116,237, 50, 82, 16, 54, - 9, 95,119, 56,205,224, 68, 88,194,252,250, 26, 48,208, 89, 7,137, 30, 24, 82, - 16,238, 58,192,227,169,255,181,204,120, 6,253, 29,162,223,152,115,101, 32, 5, - 54,163, 40, 39,243, 42, 2, 37,244,138,122, 29,164,174,205,110, 44,107,245,110, -204, 44,174, 50, 89,157,201,240,189,227,163, 1,232, 8,180, 18,133,131,179,195, -111, 68,242,222, 14, 37,134,208,115,101, 60, 49,215, 36, 54,148,248, 90,162, 63, -163,102, 91, 96,106, 19,108,196, 34,235, 68, 77,228,117, 39,124,102, 17, 22,106, - 61, 18,105,117,122,159, 9,109,197,203,231,189,112,243,150, 50,188,194,197,112, -129, 94,208,141,135,248,248,233,179,217,219,143, 34, 76, 55, 58, 15, 5, 68, 90, -128, 90,230, 43,126,114, 85,254, 32,158,167,233, 61,141,217, 33,170,141, 10,221, - 83, 23, 51,224,225, 35,181,132, 82,109,173,133, 96, 8, 56,209,103, 16, 55,219, - 5,177,181,199,100,140, 53,163,124, 65, 49, 33,120,105,151, 92,187,136, 78,161, -214, 87, 85, 77, 69,247,107,105, 65,111,149, 82, 89,224,111, 90,194, 57,144,191, -135,196, 12, 46,221, 9, 9,244,134,255,198,229, 37,153, 66,194, 35,112, 52,187, - 63,108, 65,165,139, 65,234, 12,192, 68,144,204,116,199, 35,232, 93,189,206, 28, -137, 13, 36, 97,185,145, 25,179, 77,194,167,112, 14, 73,220,184,200, 95, 44,229, -203,193, 46,253,227,109, 14,166,224,205,172, 12,170,117,152, 60,146,111,175, 31, - 91,199,160, 80,250,101,195,155, 24, 98,230,121, 47,177,104, 79,107,170,112, 85, -126, 98, 10, 67, 83, 27, 75, 98, 64,133, 4,242,186,236,207,101, 62,194,161, 77, - 61,240,252,166, 56,158, 79,185, 93,146,251,117, 63,209, 35, 49,198,193,237, 88, -181, 27,253,112, 33,188,208,196, 39,186, 2,232,195, 14,115, 36,195,133,158, 51, -185, 30, 63, 32, 97,130, 37, 2, 14, 0, 89, 15,131, 3,194,123,224,169,177, 97, -182, 53, 4,184, 79,112, 23,148,238,203,180, 52,189,180, 92,145, 49, 1,143,180, -179,138,200, 93, 94,249, 23,112,220, 81,210, 52, 36,112,196,200,106,165, 63, 26, -216, 94,223, 45,225, 98, 53,216,106,144,119,201,179,177,209,200, 67, 4, 12,175, -136,175, 8, 80,192, 1, 58,160,236, 74,126,250,179,142, 1, 22,163, 15,237,193, -169, 1,243,172,253,149,180,104,199,197,174,248,157, 57,167, 71,160,231, 62,204, - 22, 14, 3,152, 53,151,126,132,201,155,120,173, 23, 32, 69,252, 18, 41,185, 54, - 35,186, 83,155,247,193,181,131,213, 61,167, 83,208,251,165, 0, 67,117, 84,141, - 18,250, 26, 89,169,234, 20,240, 65, 95, 43,168,210, 84,124,232, 47,165, 89,185, - 13,139,195, 16, 67, 47, 29, 99,161,134,163, 12, 7,124,166,115,218,188, 27,181, - 2, 35, 81,106, 34,126,219, 1, 53,112,118,168,116, 60, 7,132, 40, 46, 15,146, -255, 98,139,248,116,155,115,238, 58, 44,126,149, 8, 78, 23, 78, 89,144, 13, 33, - 61,210, 44,138,255, 72, 51,240,201,241, 38,133, 26, 75, 96, 57, 59,178, 31, 63, - 12,121, 20,137,207, 85, 47,206,130, 2,184,138,123,123,184, 96, 38, 28,139, 11, -191, 66, 79,252, 55,117,223,108,164,122, 75,243, 88,167,255,236, 13, 53, 63,237, - 57, 28, 84, 84, 82,239,144,182, 47,131, 19,202,206, 6, 68,179, 39,228, 9, 18, -123,122, 30,118, 48,209,146,130, 78, 25, 31,111,233,214,171,211, 75, 69, 33, 33, - 87,223,194,165,208,228, 20,167,176,150,245,251, 84, 37,121, 90, 5,104, 43,184, - 83, 84, 4,213, 48,142,235,109,174,174,228,103,250,183,134,203,188, 74, 85,137, - 37, 35, 47,129,143,169,120,100,251, 42, 37,184,181,251, 28,210,195,173, 25, 1, -126,160,209,104, 66, 93,122,204, 92, 88, 46,150,106, 97, 55, 65,158,105, 70, 38, - 18,232,135,153,159, 21, 24,221, 3,236,253,111, 72,137, 11, 97, 9,181,199, 20, -180, 81, 23, 42, 69, 0,210,198,168, 15, 63, 25, 64,158, 90,181, 17,203,202,243, - 53,167,118,253, 6, 10, 35, 65, 75,111,106, 62,247,181,138, 32,138, 97, 91,124, -215,246,149,243,196,100,206,250,251,134, 39, 48,195,153,184, 54, 57,131, 79, 75, -178,251, 62,208,228,194,239, 77, 19,124, 27,143,230, 61,157, 48, 41, 78,144,131, - 93, 81, 22,173, 67,166,101,114, 29,160,129, 26,118,204,245,230, 47,219,251, 16, -206, 23, 85,135, 68,185, 64, 14,148,138,211,149,179, 10, 5, 31,152,116,111, 28, - 91, 26, 45,121, 39, 49,115,187,202,154,188, 50,207, 39, 21,232,145,175, 66,182, -247, 92,107,196, 65, 32, 76,130,228, 68, 73,112,112, 13,186,167,102,201,176, 25, -157,121, 36,107, 50,160, 83,252, 74,151,113,190,155,165,177,154,119,206,188, 22, - 25, 52,208,194, 44,173, 71,121, 28, 36, 31,115, 4, 1,211,210, 63,136,248, 54, -109,210,104,137, 96,192, 37,212, 63,166, 8,213,118, 88,162,146,109,186, 11, 96, -204,155,110,182, 35,112,103, 85, 42,179, 61, 5,189,125, 0, 50, 24,227,213,233, -177, 5,204,207, 92,142,169, 27,182, 27,234,155,170, 49,115,106, 49,217,221, 98, -205, 83,204, 92, 7,180,218,225,117, 28,179,140,251,235, 57, 63,232,221, 68, 31, - 4,248, 48,169,135,165,134,136, 40,193,141, 70,205, 69, 62,187,216,121,230,143, -124,241, 79, 5, 96,107,152, 81, 8, 91,160,244, 19,173, 8, 52,245,196,155, 48, -201,188,194, 69, 44, 14,218,144,135, 4,155,128,170,197, 42, 89,208,148,107, 70, -105, 26,188,137, 72,200, 45, 83,251, 75, 80,196,163,171, 41,109,121, 76, 74,235, - 75, 46,102, 27,244,228,137,170,211, 81,188,253,170,163,226, 98,114,103,200,226, - 9, 84, 64,253, 40,251,189,215, 49,211,254,146,106,123,235,175,104,219,121,190, -141,232,255, 85,185,105, 25, 74,181, 36, 0, 65,217, 86,119, 69,155, 37,200, 28, -116,129,167,242,231,246,177,137,130,100, 18, 64, 54,113,189, 11,204,178,205, 31, - 80, 26, 52, 67, 6, 40,175,152, 20, 68,149,204,212, 18,175, 44, 69,253, 98,124, -206, 96, 16, 90,173,146,155, 68,187,226, 34,182,129,160,202,100,150,176, 64,247, - 82,208, 22,165, 21, 3, 71,233,246, 74,140, 2,202,204, 18,153, 61, 84,176, 95, -114, 53,136,213,236, 75, 86,138,152,245,143,109, 64, 44, 51, 27, 24, 17,200, 78, -146,163,191, 72,158,127,146, 35, 61, 68, 0,221,255, 35,152,215, 75, 10,173,175, - 71,179,105,235, 7,215,208,243,194,158, 67, 16,138, 12,169,167,173,150,213,224, - 29,248, 86,241, 87,127, 2,158, 25,190,154,158,127,164,252,107,124,189, 11,196, - 94, 7,172,167,117, 96, 25,123, 63,118, 4, 52, 30,247,177, 0, 27, 51, 80, 2, -110, 42, 13, 84,224,255,217,196,109, 91, 67,114,208,230, 78,131, 62, 30,254, 51, -162, 10,194,223,222,108,148,125,194,248,139,103, 9,246,105,219, 53,130,166, 65, -217, 47, 33, 57, 82,154,126,173, 84,187,142,105,154, 66, 51, 78,250, 40,202,156, - 3, 30, 11,203, 61,214,171,251,110,147, 37,124,248,241,113, 33, 28, 36, 59,150, -105,110,174, 81,195, 64,113,210,114,244, 9,157, 22,104,191,171,119, 66,159,212, - 98, 60,154,237,128, 90,192, 74, 4,206, 70, 73,189,106,212, 13, 32, 9, 81,201, -137, 19, 95, 56,184,211,219,222,147,203, 14, 34,251, 40, 81, 28,160,197,241, 98, - 84,236, 87,250, 67, 46,109, 16, 51,237,198,108,154, 78, 27,236,154, 98, 74,183, - 22,177,219, 71,151,159,190,215, 71,134,143,232,172, 87, 79, 84,143,229, 82, 75, -138,135,202, 85,182,177, 15,201, 15, 62,255, 71, 90, 53,161, 34,195,188,230, 5, -215,194, 17, 61,221, 38,223,155,143,122,208, 96,130, 64,101,139,127,167, 19, 88, -234, 78, 76, 67, 28, 86, 93, 23,152,129,191,144, 46,155,106, 42,131, 6,246, 68, - 50,164, 92, 99,110, 4, 83,171,181, 48, 97, 8,105,250,163,111,203, 63, 44, 61, -252,216, 86,121,216,213,138, 15,139,202,248, 70, 93, 49,108,169, 7,157, 4,229, -247,132, 17,205, 73,193,145,102,235,239,211,160, 12,253, 42, 69,110, 77,175,249, - 84,200,232, 80,118,167,161,136, 40, 12,165, 75,198, 33,167,121,143,233, 4,154, -169,178,252,248, 78,198,113, 57,208, 11,143,249,140, 90, 83,178, 98, 73, 34,111, -185,232, 99,128,152,225,127,138,158,196, 63,134,174,154, 73, 69, 69,155,155,166, - 91,157, 25,172, 8, 24,230,145, 89,222, 46, 99,200,155,132,108,191,152, 4,223, - 0,139,194,186,131,138,107,202, 13, 41, 55,253, 60, 87,196, 7, 71, 86, 82,233, - 12,172,192,121, 48, 58, 20,236, 35,238, 48, 86,139,162,106,213, 6,117,138, 8, -211,168,134,138,137,255, 95, 81, 98, 2, 79,162, 46,110,104, 85,228, 7,220, 67, -221,104,171,143, 40,196, 68, 70, 59,169,106,123,254, 35,255, 79,212, 79,117, 93, -138, 4,252,154,125, 57, 3,160,158,137, 20, 83, 20,247,250,143, 16, 80,251,180, - 48, 32, 66,210,113, 61,251, 31,110,232,188,106,122,109,140, 84,230, 13,172, 9, - 44,217,242, 60, 17, 45,229, 38,102,153,108, 21, 99, 1, 50, 80,252, 20,211, 34, -251,216,234, 88,108,208, 25,216,233,121,102,161,191, 18,137, 50, 22,208, 69, 68, -153,111,147,224,138,224, 1, 15,117,200, 6,117,153, 10,253,121,210, 34,165,240, -170, 45,170,221, 97, 19,111, 26,249,242,160, 68,228, 84, 86,202, 9, 30,205,186, - 48,239, 92,219,197, 59,172, 75,219, 17,224,185,187, 39, 23, 80, 36, 26,252,169, -139,106, 38,194,183,225,245, 10,171,130,238, 44, 34,214, 18, 1,198, 60, 75, 10, -178,204,211, 82,151,208, 45, 56,128,253, 73, 29, 9,132, 13, 38,185,141,185,238, - 69,186, 0, 14,233,211,233, 64,139,212, 91,233,191, 98,241, 93, 6,111,195, 27, -113,195, 15, 4,238,226, 57,242,201,207, 66,190,195, 69, 27,132, 36, 4,172, 0, - 65,154, 38,248,146,125, 83,115,213,237, 67,115,171,233, 45, 49, 85,155, 98, 73, - 50,238,167, 14,186, 67, 50, 84,147,147,251, 31, 68, 41,224, 24,241,111, 68,243, -146,222,227, 1, 14, 17, 55, 10,224,240,183, 0, 96,128,228, 5, 0,192,140,212, -114, 60,238, 32,199,156,225,180, 52,130,247,121, 46,221,141,100,139,242, 74, 95, - 37, 26,162,105, 50, 12,145,103,101,227, 45, 58,107,142,119, 76,140,151, 94, 92, -112,160, 8, 78,145,235,227, 51,206, 0, 71,163,159,177, 5,183,226,189,198,195, -222,154,167, 20,140, 42,124,123,132, 78, 72,132,188, 79,180,165, 39,113,212,168, -207, 92,159, 92, 19,102,178,220, 18,129, 58,164, 97,245, 31,198,151,179, 96,197, -117,115, 58, 9,208,241,207, 30,104,173,101, 48,216,139,132, 16,153, 10, 53, 2, -153,166,112,171, 71,209, 66, 27, 26,241, 20,234, 91,242,144,158,181,237,150,170, -166,185,113, 91, 25, 22, 91, 78,103, 74,135,154, 32,131,164,230,192,114,201, 36, -149,177, 38, 4, 1, 96,167, 24,216,221,125,247, 26,230, 19,195,128,120,174, 8, -251, 55,192,138, 22, 60, 44,140,245,238,155,118, 9,163, 62,170,140, 56, 10,146, -225, 43, 45,244, 21, 27, 31, 76,240, 66, 78, 84,230, 40,172, 81,207,148,105,248, - 87,251,161,162, 6,221,113,143, 25,147,186,110,221,235, 84, 38, 55, 4,104,228, -221,145, 48,205,240,131,200,194,219,236,240, 94,206,144,126,119, 31,162, 26, 5, -153,179,190,210, 62,116,221,242,164, 47, 31, 62, 76,151, 87, 9, 4, 16, 10,143, -135,147,197, 49, 17,185, 4, 99, 48,217,105,171,228, 48,246,134, 15, 0,134, 27, - 81, 69, 34,180,126, 49,200,187,167, 30, 31,174,123,147,163,101, 52,254,153,204, -246, 80, 59,180,203, 95, 94,219, 62,254,226, 15, 63,132,147,215,143,228, 15,139, -136,163, 50,235, 91, 37,215, 43, 17,137,184,141,222, 33, 86,122,236, 77,139,174, - 56, 55, 17, 95, 11,219, 54, 58,148,255,115,102, 22, 69,203,227,108, 68,110,229, - 30, 70,156,149,167,114, 6,212, 11,107,249,150, 6,201,217, 58,113, 83, 29,199, -184,237, 94,193, 57, 8, 86,155,210,173, 21,117,152,205, 13,104, 60,199, 76, 77, - 33, 0, 41,243,130,137,217,248,100, 44,136,193, 91,157,229, 13,117, 72,182,105, -213,122,144,160, 75, 42, 65,153,131,221, 34,125, 37, 78,146, 38, 62,162, 18, 70, - 6,248,166,120,200,157, 22,252,132,158,161, 84, 96,153,248,103,183, 42,124, 22, -133, 72, 92,146, 34,241,225, 65,114,223, 83, 3, 87,186,244,237, 48,140,124,155, -153,184, 27, 67,100, 76, 55, 3,252,206, 43,120, 39, 35, 4,103,140, 81,106,182, - 76, 84,228,198,173,255,193, 72,161,204,247,185,173,125,163,146,107,100,120,127, -191,191,116,151,212,176,220,136,171, 84, 92,204,245, 75,232, 80, 17,144, 30,167, -217,102, 45,173, 83, 48, 38, 6,168,199, 7,150, 78,183,199,231, 16,117,203,229, -110, 94,193,123, 19,180, 47, 27, 36,191, 41,101,176,192,201,225, 78,199,167,203, - 6, 95, 13,198, 66,130,117,130, 65,188, 83,181, 63, 71,133,177,194, 5,239,214, - 81,153,184, 25,100,138,137,223, 32, 44, 2,139, 31,141, 88,194, 93,128, 45, 34, - 18,244,208,192,111,226,205,120,223, 57,159, 5, 98, 64, 82,162, 62,166, 15, 21, - 86, 15,218,227, 18,192,124,137, 84, 17,144,191, 32,200,170, 73, 33,117, 36,192, -126,154,114, 84, 98,209,124,252,164, 5, 73, 75,159,131,198,250,241,129,142, 97, -152, 53, 17,252,201,207,238, 21,139, 56, 79, 68,158,143,218,101, 12,188, 93, 16, - 99, 67,117, 9, 57, 40,143,200,223, 96,197,201,106,201,156,147, 0,229, 89,222, -198, 66, 36,182,126, 46,118,136,254, 66,186,225,161, 22, 72, 45, 23, 24, 99, 5, - 46,206,207,248, 47,137,149,155, 74,213, 55, 57, 83,229, 71,180,189, 30,182, 6, - 46,152,102, 40,189, 26, 18, 97, 68, 18,133,144,242, 85, 62, 83,167,220, 31,123, -105,188, 90,184, 62, 35,208,231, 40, 30,130, 34,171,101,236, 94,141,180,184,151, -110,214,225, 33,164,106,162, 70,213,252,124,176,208, 61,176, 71,207,194,134,157, -170, 57,227,130,194, 98,238, 76,112, 6,170,183,172,132,131,172,113, 74, 34,157, - 76, 72, 3, 10, 34, 32,228, 58, 40, 9, 9,102, 85,204,200, 18, 78, 0, 37, 96, -209,193, 85, 37,134,124,246,135,220, 32, 19,161,204, 24,108, 53,190,228, 30, 6, - 5,222, 26, 5, 20, 25, 75,213, 43,197,150, 60, 10, 75, 6,169,106, 41,104, 84, -107, 37, 61,215, 1,112, 76,243, 40,251,133,148,147,169,188,211,184,179,128,190, - 94,203,148,132, 76, 95,122,181, 73,136,106,227,229,142,155,155,176, 12,111, 35, -237, 72, 12, 46,218, 67, 43,231, 69,178,206,163, 19, 4,230,209,103,147,253,186, -228, 99,182,182,113,109,249, 7,115, 65, 60,110, 4, 24,195,161, 77, 79,157,253, - 40,213,211,113, 56,194,188, 17, 19,166, 60, 66, 74,175, 12,113,254, 79,134, 85, -153, 24,141,152, 8,235,169, 34,120, 75,119,136,144,117,224, 10,211,140, 45,247, -210, 5,161, 33, 47,212,126, 73, 12,161,204,140, 79, 79,131,103, 7,122, 26, 84, -112, 88, 97,192,174, 93,136, 64,173, 0,127,142,238,237,120,204, 75, 5,246, 72, -156,172,209,192, 47, 23, 70,121,137,129, 44, 72,100,160, 55, 67,135,202, 26,180, - 33,169,180,154, 31,118,172,157,128, 32,185,102, 54,208, 71,189,180,227,114,131, - 81, 41,102,198, 62,138,102, 86, 5, 99,188, 94,115, 79,122, 8,253, 28,201, 7, -200,191, 57,132,128, 34, 69,221, 19, 24,100, 21,116,225,223,253,222,253,192,194, -227, 30,226,162, 52,123, 78,121, 14,197, 54, 84,251, 70,226,227,197,222, 88,203, -184,171,222, 86,163,202, 49,112,146,144,160,238,174,230,188, 44,124,187,166, 4, - 71, 27,235,107,107, 2,238, 92, 6,221,133,210, 78,226,171, 64,188, 55,171, 71, -168,114,211,153,116,246,201,211, 25,213,214, 31, 3, 66, 80, 41,124,195,129, 98, -109, 7, 8,179, 42,116,175,129,148, 12,137,238,100, 58,144, 89, 0,238,149,248, - 30,135,190, 80,253,123,158, 37,251,159,240, 98,163,243,138,210,226,157,124, 72, -193, 40, 49,215,189, 97, 89, 80,164, 71,105, 67,138,107,239,238,129,133,176,140, -106,188, 67,129,192,125, 17,126, 92, 54, 11,133, 91, 59,145, 22,254,201, 78, 0, -189, 30, 73,154, 87,244,134,209,149,174,253, 16, 13, 44,193,249,186, 55,225,155, - 78, 64, 5, 96,160, 47,140,244,161, 0, 88, 18, 59,147, 36,116,226, 39, 60,130, -224,106,105, 43,177,231,158,181,200, 33, 55,207, 99, 57,102,115,211,110,162,178, -204,179,103,119,112,177, 86, 76,109,112,209,235,234, 92,220,127, 89,153,165, 15, - 27,248,231,132,216,100, 67,203, 29, 15,115,247, 80, 34, 34,107, 27, 42, 9,217, - 51, 97,229, 34, 39, 49,172,158,204,219, 20, 88,183,134,189, 7, 93, 99,130,106, -252,149,127,251,173,199,150, 28,144,230,129, 73,146, 27,220,158,232,225, 77,233, - 33,243,114, 91,177, 11,199, 84, 11, 74,247, 60,117,251,179, 50, 92,165,177,162, - 92,106,102,200,132,131,153,100,199, 66,176,223, 46, 78,109,219,134,158,153, 62, - 62, 49,126, 44,252,207, 36,107,248, 84,209,211,104,115, 18, 25,180,127,116, 33, - 57, 5,139,141,204,188, 79, 13, 65,250, 38,228,236,167,128,254, 83,185, 21,143, -232, 46, 16, 17,165,116,131,165, 46,187, 24, 98, 19, 93,121,187,206,243,150,153, -213,226,150,151, 62,249,114,112, 27,197,194, 64, 11,250, 76,211,161,104, 22,179, - 39,150,120, 53, 69,115,109, 13,212,169, 27,133, 62,202, 90, 24, 50, 18, 23,147, - 27,245,127, 36,140, 25,193, 4, 24, 44, 57,130,140,107, 20,193,225,196,216,132, -157,141,197,202,176,217,155, 96,187, 79, 1, 34, 89,222,171,125,162,201,190,195, -207, 62, 89,238, 20, 10, 31, 77, 45, 33,181,158, 55, 63,171, 7,133,213, 64, 10, -215, 69,138, 41, 13, 65,149, 20, 7,163,242,239,137,136,139,250,217,220,162, 96, -213,251,128, 97, 42, 53,186,100,154, 33, 4,202, 60, 10, 0, 64,137, 75, 5,244, -149,217, 3, 79,140, 97, 96,250,119, 16, 69,123, 8, 25, 0, 26,239,206,121,231, - 49,215,221, 23,142, 79, 67,124,142,230, 30,166, 99,183, 76, 12,182,250,106,241, -216, 90,251, 30,254,241,209,125,187,107,115,211,122, 36,212, 5,149, 2, 93,232, - 50,131,202, 0,223,221,200,125,137, 86,181, 14,236,101,124,142,174,204,122, 49, -219, 47, 42,145,194,170, 31,241, 30, 93,119,216,130,250, 42, 63, 57,132,117,143, -189,248, 45, 5, 41,228,143, 21,188,215,130, 71, 71,232,211,161, 38,178,179,240, -159,136, 38,115, 16, 11, 19, 1,228, 19, 21,131, 11, 36,223,121,119, 5, 18,184, -166,111, 25,193,165, 98,216, 69, 25,251,108, 35,133,253,147,191, 24, 82, 93,220, - 30,106,102, 37, 21, 27,131, 27, 36,130,242, 3, 93,116, 94,160, 44, 97,121, 83, -192, 35,251, 16, 82,146, 10, 44,142, 51, 9,205,203,121, 70,255, 25,175, 63,185, -212,153,192,181,176,111,147,103,244,124,225, 27,125, 51,218,129, 25,150,134, 39, -159,254,134,102, 85, 10, 62,242, 24,206, 19, 51,180,120, 63, 35,215,212,175, 92, -253, 87, 2, 46, 72,149,199,250,143,168, 40,192, 19,241, 45, 1,186,122, 40, 19, - 77, 60, 5, 86,222, 64,243, 80,169, 95, 72,176, 58, 89, 50,203, 87, 94,181, 76, -251,203, 60,140,166, 48,107,177,173,119, 65, 26,122, 18, 5,167,247,213,118,113, -127,159, 55,189, 18,109, 83,179,235, 33,174, 36,177,104, 53, 99,132,250,130, 82, - 94,147, 90,204,243,242, 4, 36,186, 41, 44,104, 91, 72, 5,106, 34,160,128,156, - 73,232, 12,150,179, 71,225,248, 88, 0, 25, 16,112,238,139,134, 12, 5,130,154, -242,182, 86,243,146, 30,166,164,142,238,188,176, 61, 16, 58, 1, 74,218, 41, 31, -112,196,209,125,130,237,161, 24, 58,233,168,165,237, 44,152, 15,208,110,250,197, - 83, 44, 13, 79, 36,131,101,204,230,105,101,146, 45, 7,104, 37, 0,225, 16, 35, -120, 33, 48,154,156,186,151, 41,120,170,183,109, 59,151, 73,146, 32, 94, 87, 62, - 84, 34,235, 43,208, 10,241,226, 32,100,131,211,199, 43,228,148,146,136,191,199, - 36,113,139,164, 11,143,154, 77,246, 16,145, 50, 70, 36,219, 36, 54, 32, 5, 27, - 50,178,103,193, 99,120, 68,255,222,219,226, 52,108,224,179, 51,235, 23,163,242, -114,190, 73,163,137, 6,109,131,195,243, 51,165, 53,206, 6,244,174, 69,141, 95, - 99,190,236, 89, 91,182, 19,166, 8,172,181,213,243, 67,224,186, 57,110, 63,252, -198,165,153,185, 32,111, 5, 85,246, 58,214, 18, 74,156,248, 54, 15,108, 92,243, - 59,254, 2,149,226,199, 40,201,152, 55, 62,201, 41,204,127, 40,191,200, 23,233, -176,145,229,163,171, 61, 16, 16, 69,167,163,108,127,247,191, 23,146,198, 72,105, -121, 63,118,254, 12,209,110, 25,238,105, 58,158, 75,172,145,213,128,135, 30, 3, -151,163, 38,227, 45,232, 24,220,214,239,138,152,171,206,195,175, 11, 20,126,253, -218, 55, 32, 58, 61, 55, 28,253, 56,238,127, 93,176,205, 0,196, 15, 96,171, 87, -196,146, 42,245,142,146, 24,211,244, 24, 73, 49,128, 3,224, 32, 89, 44, 7,192, -168,194,106, 99,223, 98,244,134, 72,163, 96,162, 52,130, 74, 53,154, 25, 19, 64, - 79,111, 44,184,178, 13, 79,166, 87, 9, 92,161,169, 61,145,150,159,145, 93,251, - 61, 47, 13,155,181,211,122,101,216,245, 77, 46,165, 73,106, 96,220, 1,142, 33, - 65,228, 86,240, 55,189,180,146, 0,221, 1,190,231, 26,147,209, 66,230,171,180, - 6, 77, 29, 89,176,148,107, 92,188,246,230,255,235,134,245,141,254,165,134,116, - 52,155,176, 2, 19,192, 84,163,238,110,143,216,201,109, 37,183,127,122,228, 88, -227, 5, 2,115,129, 28, 98, 77, 16,126, 86,171,171, 11,219,135, 17,204,242,125, -226,211,179, 22, 32, 26, 55, 4, 22,163,157,202, 9,227, 47, 75,215,137,101,241, - 14, 70,227,138, 83, 58, 4,226, 33, 22, 55, 63, 25, 19,192,114, 87,130,141,170, - 24,172, 45,199,214,187,235,109, 36,156, 49,190,255, 54,250,202, 9,106,196,145, - 9,246,254,163, 37,132,154,178,128,179,250,196,153,125, 15, 16,161,241,174,184, - 92,105, 40, 74, 57,101,183, 26,123,129,235, 67, 5, 54,234, 5, 91,212,147,116, -238,120, 42,136,246,140,122,170, 85,105,217,177,172, 16, 91, 98,244,131,236,176, - 98,198, 48, 91, 85, 30, 80, 55,214,233,155,234,107,207,148, 95,124,240, 73,171, -228, 68,108,227, 97,244,164,165, 65, 14,156,100, 40, 44,178, 43,111, 50,186, 87, - 78,241,138,119, 52,135, 20, 95, 59,237, 57,115, 69,119, 50, 99, 78, 29,162,166, - 57,234, 29,236,184,255,138, 34,244,216,179, 13, 89,137, 21, 73,244, 23, 26,156, - 17,206,226,162,148,185, 46,228,221, 93,110, 36, 23, 8, 70,229,170,227,196,156, - 45,158,139, 3,106,196,147,155,146, 34,190,139,107, 57,179, 41,116, 71, 11, 75, - 30,186,193,118,135,130, 40,235,163,103,228, 98,194, 98,240, 84, 0,130,194,138, - 31, 94,152, 20, 36, 77, 6,197, 56,164,249, 20,205, 25, 15,225, 91, 48,252, 21, -204,218,232,214, 0, 48,123, 71, 7, 12, 70,239,183,184,129,112, 93,142,154,232, - 98,196,159, 35,219,102,216, 23, 95, 41, 66, 67, 52,198,246, 8,197, 47,245,118, -201,122,208,234,219,164, 84,180,171,107, 3,105,222, 54,127, 80,119,190, 88, 48, -221,129,123,102,137,123, 59,132,188, 81, 86,125, 34, 50,144,140,163, 56,139,214, -227,230,228, 30,145, 15,175, 54,207, 65, 5, 70, 60,197,109, 14, 11,155,147,192, - 59,144, 83, 28,214, 27, 90,151, 89,171, 39,227, 38,150, 21, 60,152, 6, 45, 20, -229,190,137,150, 17,214, 34, 74,148, 62, 71,201,193, 6,227,250, 49,104,224, 22, -246,122, 6, 16,231,120,255, 88, 35,168,204, 45,225,139,114,130,174,251,160,166, -242, 71,254,173,184, 84, 3,199, 58, 52,246,104, 38,219, 33,171,233, 53,166,121, -110, 82, 45, 24, 11,145, 78,211,147,243, 74, 54, 45,203, 93,102, 60, 5,127,128, - 29,149,101, 52, 43,148, 75, 17,249,160,204,255,194, 53, 24,239, 68, 95, 93,146, - 29, 18,117,229, 66,212,117,119, 25, 23,189, 11,109,100,224, 81, 53,184, 37, 8, -123,227,132,103,242,239,117,112,106,113, 39,211,118, 80,249,150,228,153,177, 6, -148, 79,214,198,216, 0, 67, 13, 17,214,166, 89,169,249,192,238,123,145,237,172, - 97,233,224,251, 75,117, 22, 34, 77,157, 94, 78,100,212,252, 19,147,175,158,178, -174, 80, 83,116, 54,237,102,149,135,182,160, 73,181,177, 50, 77, 75, 83,159,166, -136, 62,113,240, 16,176,226, 72,119,112, 71, 23,187, 54,200,127,238, 93,102,139, -104, 71,203,114,160, 24,167,197,238, 25, 3,148,119, 72, 9, 40, 8,147,155,119, -222,163,247,184,125,101,149, 79,183, 52, 26,138,153,186,119,104,145, 35, 4,253, - 92, 83,254, 17, 47,152,197,182,135, 53,155,137,242,202,219,145,181, 73, 22,121, -135, 95,135, 3, 0,243,115,254,164,172, 12,189,238,112,151, 74,116,238, 36,198, - 71, 48,235,105,211, 56,207,144,131,228, 17,217, 60, 59,142, 75, 90, 55,121, 9, - 52,158, 55,170,152,105,144, 49,130, 78, 34, 51,110,173,170,118, 54,243,174,197, -192,224,242,138, 42, 44, 72,125,103,100,249,203,236,105,191,170,105,235,252, 66, -234,206,103,234, 45,157,250, 80, 16, 12, 18, 89, 24, 74, 90, 40, 98,188,204,109, -222, 23,143, 84,153,149,152, 22,207, 86,204,144,118, 66,193, 98,135,136,131, 47, -179,109,155, 76,119,136,238, 11, 56, 72,138,102,182, 68, 7,191,200,106,177, 24, - 31,115, 16, 66,147,161, 67,214, 54, 58,111, 51,230,196,236, 93,152, 64,173, 42, -128, 42,100, 17, 46,183,138, 66,201, 80,170, 91, 62, 50,105,117,213, 85,228,135, -249,183, 74,124,206,238,178,251,203,216,124, 11,183, 22, 53,229,123,196, 62,232, -113, 67,129,151,130,230, 42, 85,103, 59,220,120, 58, 2,135,100, 50,249,248, 65, -243, 22, 40, 35,160,140,140,154, 21,128,190,120, 33,255, 87, 8,238, 21,214, 0, - 16,177,146, 52, 93,237,208, 63,205,254,146,157, 12,183,181,241,240, 34, 34,252, -251,115, 80,159,104, 48,154,209,175,209,246, 50,237, 37,186, 38,246,128,168, 34, -192, 42, 47,208, 92,141,247, 4, 54,244,111, 17, 66,161,194,234, 89,105, 39,222, - 71,125, 59, 7,233, 6,217,255,227,133,132,217, 55, 63,162, 43, 52, 99, 96, 9, -224,171,108,217,163,166, 0, 92,240, 96, 65, 59,119, 18,180, 75, 92,108, 93,160, -127, 93, 46,205,209, 32,166,238,194, 63,199,234, 3,120, 66, 76,117,187,148, 20, -100, 0,168,245, 71, 92,177, 8, 22,253, 23,106,225, 99,211,116,186,207, 76, 27, -157,159,228,206,145,113,237,116, 55, 33,129, 9,202,202, 91, 41,213, 57, 8, +// ../Source/Template/GB_select_bitmap_template.c: +uint8_t GB_JITpackage_196 [410] = { + 40,181, 47,253, 96, 93, 4,133, 12, 0,198, 83, 66, 33, 0,243, 54, 62,167, 5, + 18, 73, 57, 58,225, 4, 74, 85,224, 94, 42, 59, 16, 26, 55, 70,110,196,209,144, +199,168,170, 90, 16, 8, 16, 55, 0, 56, 0, 56, 0,229,103,102,139,215,230, 87, +118,191,241,217,209,156, 79,209,205,142,187,198, 94, 93,196, 78,216,144,231,184, +163, 58,104, 88,190,248,253,229,146,243,251,150, 31,103,227,204,221,224,231,215, +247,145, 57, 69, 81,137,162, 2, 34,222,228,135,154,244,154,124, 16, 91, 9,115, + 85,166,240, 61,230,235,231, 92,239, 81,131, 57,207,185,122,132,168, 12,149,148, + 56, 24, 42, 39,128, 3,143, 52,246,124,151, 79,213, 63,227,238,112,176,231, 81, + 87,237, 99, 12, 36, 22, 48, 60,227,144,170, 55, 60, 83, 11,190,175, 98,147,152, +162, 42,117,226,105,143,219,105,183, 90,140,194, 97,146,235,105, 17,241, 67, 17, + 11,220,221, 41,136,210,201, 39,139, 26,166, 74,250, 17,252,202,234, 11,243,113, + 20,179, 94,134, 89,187, 89, 24,236,162,104,151,141,131, 64,182,172,106,151,133, +219, 60, 11,179, 88,119,173,198,121,228, 41,160, 52,228, 78,176,214, 66,241, 6, + 96,224, 34,166, 34, 14,201,215,249, 67, 1,112, 10,248,135,103, 6, 3, 52, 32, + 64,134,136, 49,186, 14, 85, 56,160, 53,110, 91, 99,118,141,205,140,143,230,142, +224, 0, 77,166,175, 13,249,255,196,213, 78,131, 16,197, 64,213,116, 43, 7,229, + 16,133, 44,198, 13, 6,230, 43, 64,251, 12, 24,140,193,129, 7, 96, 6,181, 59, +241,182, 66,220, 5,246, 8, 64, 35, 65, 39,192,219, 69, 27, 20,137,128, 16, 65, +208,225, 17,142,135,117, 15, 71,102, 2,109, 0,111,124,240,134,217, 0,225, 0, +198, 33,151,179, 42,209,104,179, 25, 44, 54, 77,204, 51,147,219, 56,172,214, 55, + 66,135, 3, 14,105, 15, 68, 81,231, 6, } ; -// ../Source/Shared/GB_complex.h: -uint8_t GB_JITpackage_201 [1759] = { - 40,181, 47,253, 96,222, 40,173, 54, 0,230, 53,159, 40,208, 22,113, 14, 84, 6, -228,105,178,113,251,208, 63,149,223,228, 22,177,106,232,169,151, 34, 54, 66,115, -211, 0,254, 96,185, 44,189,200,213, 12,120,225,124, 1,148, 0,151, 0,151, 0, - 19,179, 64, 32, 80,165,146,161, 91,173, 90,134,185,115,107, 22, 20,112,190,215, -106,131,142, 49,108,246, 92,214, 31, 36, 33,220, 83, 57,223,126,206,148,181,141, -200, 98, 97, 42,214,222,110,154,103, 38,119,214, 53, 50, 38, 81, 49,141,252,186, -162,242,104,200,176, 48, 46,153, 76, 89,227,180,106, 33,173,113, 8, 53,167, 12, - 48, 22, 76,149,112,177, 96, 62, 61,233, 20,237,146,109,184,165,121,167, 85,249, -233,141, 83, 29, 77,197, 70,219,118, 66,100,152,206,221, 58, 92,155,235, 68,148, -183,174,254, 83,102,167, 81,118,237,216, 25, 99,207,104, 86,136,225,246,145,239, -218, 64,188, 82,137,170, 74, 37,111, 45,152, 66, 14,216,252, 0,225,127,152, 66, -246,211, 33, 10, 46,207,144,132, 49,152,176, 40, 38,181,202,159, 83,200,113,242, -200, 53, 13, 28,156, 91, 23,123,241, 41,159, 69,137,211,202,109, 89,159, 41,199, -217, 82,158,251,142,181,122, 73, 79, 55, 9,179,203,120,137, 93,179, 98, 31, 35, -216,132, 32,206,116,223,225,190,254,255, 40,234, 96,104,112, 52, 22,151, 7,231, -234,104, 34,166,172,143,155,245, 69, 28, 16, 69, 92, 30, 14, 21, 25, 22, 24,156, -140,177,152,117, 64, 20, 5, 40, 96, 16, 46,150,131, 3,133, 75, 69, 86,143,233, -228, 26,187, 98,173, 86,177,171,215,149, 63,115,171,138, 69, 61, 30,137, 5,153, - 72,148,117,146, 80,234, 89, 9,183, 16, 79, 29, 5,146, 91, 38,131, 77, 33, 41, -123, 18,157, 11,205,244,235,226,112, 58, 46, 80, 80, 62,157,114,112,123,215,117, - 41,114,217, 99, 87, 21, 54,231,201, 26,139, 28,176,217,108, 54,155,129,215,147, - 35,135,108,206,208,195, 73, 76,250, 1, 66,202, 52,153,124, 34,144,164, 19, 72, -143,147,171, 60, 47, 12, 7,177, 44, 28, 4,243,113,147, 71, 39,175, 91, 47,140, - 1,231, 33,163, 56,117,198,154,118,176, 62,158,141,213,184,251,216,243, 1,142, - 13, 99,255,117,221, 74, 7,152, 78,221, 62,108, 72, 76, 72, 20,229, 23,114, 44, -110,173,171,213,211, 41,169, 14, 70,249,183, 88, 56, 78,183,156,250, 39, 18,166, - 29,151,161,228, 72,194, 7, 0,224,248,255,209, 36, 93, 64,224,103, 96, 32,225, -157, 91, 73, 85, 1, 65,157,114,219,184,164,235,198,255,213,169,170,218, 16,142, -175,170,183,179,122, 56,250,255,212,212,189,224, 5,215,167,238,127, 79, 10, 93, -171,210,115,158,172,129,222, 17,152, 60,211,193,173,171, 8,146,167,181,101, 99, - 92,237, 28, 46, 71,187,227, 53,147,205,233, 88, 92, 26, 14, 21, 18, 37,177,247, - 20,229, 98,127, 78, 97,216,158,170,144,251, 60,179,147, 55,249,154,174,231,114, - 89,109,183, 82, 42, 95,108, 58, 55,130, 47,168, 50,117,198,208,204,136, 4,145, - 36, 73, 50,172, 1, 50, 98, 4, 33, 65,146, 6, 61, 91, 30,162,152, 28, 7, 36, - 36,195, 64, 16,134, 8, 33,132, 24,162,140,128, 16,162,144,128, 37, 81,148,130, -236,173,208,226, 88,252, 75,160,227,178,137, 57, 17, 44, 41, 16,165,167, 88, 4, - 83,217, 36,234,240,242, 90, 28,108,236,133,117, 2,240, 94,118, 40,163,197, 99, - 25,187,101,117,113,168,195,112, 30, 97, 21,173,157, 53,119,228,143,127, 72,188, -173,210, 5,104, 46,204,181, 13, 43, 16, 92,210, 30, 2, 44, 82, 0, 13, 74, 16, -208,224,208, 52, 0, 41,105, 64,191, 66, 72, 61, 15,111,180,152,100,116, 27,172, -199, 97,123,232, 96, 24, 49,226,224, 46, 86,225, 53, 58,172, 75,173,179,218,128, -210, 99,222,128,134,233,145, 46,152,161,139,224, 46,110, 52,175,242,121, 21, 76, -146, 9, 8, 22,213,101, 45, 90,154,178, 27,217,138,135, 98,243,182, 44, 71,162, -106,158, 85, 50,247,252,229, 37,253, 16, 86, 93, 43,150,194, 4, 58,106, 33, 31, -197, 28,204, 53,114, 97,117,134, 91, 97,235, 98,221, 5, 48, 90,133,146,158,132, -221, 92,239, 92, 19, 75, 91, 85, 6, 41, 99, 46,122,177,121, 48, 58,145,225,100, -217, 27,177, 44, 4,249, 21, 29, 23,130,196, 50, 6, 2,119,175, 31,190,120,111, -180,182, 10, 58,108,162,225, 85, 7, 75, 35, 31,126,182,169,226,226,112,212, 11, -167,161,137,165,217,220,214,104,126, 58,182, 75,167, 44, 55, 34, 64, 74,203, 30, -223, 21, 15, 10, 87,125,200,147,242,224, 96,104,241,132,180, 5, 1,152,104, 62, -197, 29,134,100,113, 16,166, 42,125, 40,205,161, 9, 35, 85,159,112, 84, 40,194, -211,135, 40,167,151, 26,191,160, 9,161,218,220,161,124, 92, 24, 82, 20,140,207, - 79,160, 24, 71,144,158,213, 82, 24, 66, 24,175,225, 0,184, 35, 2,225, 46,100, - 4,174, 94,189,149,137,211,181,181,230,235, 15, 23,108,203,122,177, 63, 14,178, -172, 53,179,137,253, 89,125,196,180, 40,108, 45, 6,164,182, 8,214, 45, 6, 36, - 92, 4, 78, 46, 6, 2, 93, 4, 95, 23, 3,242, 46, 2,151, 23, 71, 97, 47,134, -205,151, 65,222, 47, 4, 2,152,136, 79, 48,129, 62, 24,195,180, 48, 26, 47, 57, - 76,110, 98,153, 94,156,185,219,120,133,121,156,187, 16,121,199,150,204, 52, 75, - 57, 26,177,108,252,135,153, 64,207,140, 5,221,204, 13,235, 76,224,242,153, 34, - 4, 77, 66, 20,141,171, 43,254, 11,233, 43,212, 79,241, 61,136, 14, 41, 58, 26, -117,252,119, 11, 29, 55, 64,219,161,133,241,140, 5,236, 22,133, 62,174, 49,185, - 92,199, 72, 92,157,194, 9,139, 43,110, 16, 73,209,117,116,137,172,149, 25, 50, -147, 17,146, 2, 97,107, 63,228, 63, 59, 40, 99,155,192, 9, 67,188,185,238, 99, -136,216, 77,161,193,232, 99, 70,178, 15,177, 29,209, 40,136,119,157,163,138,183, - 40, 8,165,193,174, 66, 63,128,246, 71,111,236, 81, 35, 17, 55, 30, 69,255,138, - 15, 68,231,209, 44,137,171,118,160,112,209,165,244, 42, 63, 34,229,114, 30,149, -153, 85, 78, 28, 77,136, 66,146,201, 35,206, 88, 52,190, 25, 3,126, 38,137,177, - 68,172,213, 25,114, 50,116,201, 37, 73,180,168,166,243, 88,203,232,160,149, 96, -154,119, 36, 68,176,197,245,172,207,252, 83,225, 23,231,195, 31,219,185,186,126, -185, 59, 71, 68, 55,119,248, 10, 58, 29,182, 70,154, 64, 81, 50,182,104,250,180, -165, 38, 15,131,208,194,211,143, 30,185,182,151,161,202, 43, 80,243,158, 22, 95, - 38,201,107,155,158,111, 77,249, 89, 23,111,152,168, 42,226,127,221, 92, 21,187, -137, 70,186,234,148, 11,174, 55,177,241,193, 13, 71,195, 96,148,210,101, 16, 70, -249,181,156,170,178,249, 77,103, 82,199,202, 77, 3,243, 17, 84, 82,226,130,255, - 60,123,208,130,161, 19,146, 14, 73,190,118, 68,167,183,161, 43,123,223, 17,130, - 78,104,223,239, 47,112, 79,182,190,189, 1,151, 29,164,230, 57, 94, 16, 61,100, -136,181,248, 35, 73, 99, 96,157, 79,114, 34,120, 96,199, 15, 30,118, 82, 71,136, - 83, 30,160,129,155, 20, 51, 28, 51,155, 97, 20,142, 89, 60, 69, 37,158,101,250, - 24, 59, 69,162, 95,158,165,114,211,250, 96,144,177, 54,102, 59, 6,158,166,144, -250,129, 6,140,254, 47, 37, 64,116,214,208, 45, 27,186,197,113,106, 95,193,180, -158,198,211,148, 0,200,131, 85,205, 28,107, 64, 15,147, 11,171, 20,248, 4, 54, -191,146, 43, 3,173, 16, 1,219, 1, 91,130,254,110,160, 82, 3, 22,105, 33,103, -217, 25,163, 0,100,147, 18,173,182, 66,186,187,244,140,191,148,111,189, 65, 64, -241,132, 58, 19, 79,175,104, 7, 11,159, 11,135,140, 6,129, 97,208, 23,200,185, - 98,172,168, 86,253, 74, 60,106, 88, 49, 76,241, 24,159, 50,177,154, 14,161,253, -180,132, 8, 76,250, 89, 97, 81, 36,155, 48, 38,169, 49,162, 2, 56,216,255,180, -189,127, 33,224, 63,242, 75, 44, 33, 66, 70, 21,208, 75, 65,167,174,253,212, 57, -142, 77,179, 92,203, 76, 84,194,164, 12, 31, 20, 70,114,120,173,232, 58, 46, +// ../Source/Template/GB_select_entry_phase1_template.c: +uint8_t GB_JITpackage_197 [1235] = { + 40,181, 47,253, 96,252, 16, 77, 38, 0,182,115,152, 39,208, 22,173, 14, 84, 95, + 81,123,110,255,103, 90,124,249, 35, 8, 46, 78,165,226,106,139,189,196,236,196, + 21,135,193,244, 28,176, 29,228,106, 56,128,223, 11,142, 0,134, 0,142, 0,147, +250, 72, 72,193,104,111, 47,124, 37,249,238,183, 63,255,255,202, 73,101,224, 66, + 48,245, 69, 49,117, 79,168, 13, 45,120,101, 87, 18, 83, 91,217, 20,172,152, 58, + 28, 50, 46, 85,143,212,182,205,185,189,215, 7,114, 30,163,123, 43, 32, 24, 32, +152, 16, 48, 3, 4,151,168,232,205,194, 17,118,248,197, 61,116,221,153, 65,207, + 91,199, 85, 48, 92,148, 43, 68, 66,219,202,180,211, 23,130, 58, 21, 9,147,160, +235, 54, 23,105, 26, 94,167,117,219,240, 87,130, 38,245,132,190, 28,105,214,247, + 97,218,242, 69, 95,168, 94,217,239, 82, 29,219, 62, 6,136, 11, 8, 84, 38, 1, +129,161,144, 14,121,136, 51,254,101,201,157,193,139,228,205,154, 29,146,129,228, + 59, 99, 27,138,215, 7, 52,235,229,188,149, 19, 94,219, 23, 68,179, 73,189,226, +174,215,253, 69,241,230,191, 72, 88, 68, 27, 42, 71,166,108, 95,247,243,190,106, + 10, 84,117,189,133,151,176,150, 16,185,143,252,186, 88,143,192,120,107,246,229, +169,243,215, 80, 61, 34,101,199, 17,134,240,186, 28, 93,152,168,203,156,224, 1, +149,175,165, 22,179,124,165,133, 99,230, 15,235,231,174,121,187,119,109,133, 22, +246, 75,193,122,109,215,128,223,103,112,112, 37,252,181, 50,145,132,105, 20,204, + 88,134,170,168,227, 69, 89,249, 92,244,104, 54,207,217,135, 43, 5,136, 29, 35, +195, 75,146,217,125, 78,196, 81, 80,190,233,112, 92, 70,231,117, 36, 50,151, 36, + 23,157, 2,227, 57,108, 42, 24, 44, 52, 38, 60,156, 77,167,227, 50, 88, 45, 76, + 77, 67,151,255,251,218, 4,218, 18, 41, 42,217,100,120,120,158,171, 92,218, 71, + 66,146, 25,227,180, 26,198,194,145,227, 5, 51,205,123,140,229,253,145, 44,225, + 49, 27, 35,223, 90,104, 89,243,157, 77,251, 89, 77, 27,217,222, 25, 29, 51,213, + 9, 43,125,119,100,120, 43,211, 10, 94,233,151,150,178,235,204, 30,149, 74, 74, + 37,115,169,181,214,104, 67,116, 76,127,106,103,175,227,249, 31, 9, 45,232,214, +172, 36,223,148, 55,112,228,216, 54,182,230, 41, 22,139,100, 65,137,118, 99,209, + 61, 56,158,139,205,123,192,120, 27,141, 10,183,241, 60,157,141, 7, 94,225,142, + 62,115, 19, 41, 66,129, 96,166,203,229,114, 71, 63, 36, 4,193, 88, 26, 8,246, +113,218, 90,107,173,146,253, 28,125,115, 52,227,121, 54, 16,153,183,203, 69,119, + 47,130, 1,226,154,139,204,107,205, 74, 66,235, 10,199,158, 57, 71,230, 32, 31, +154,200,191,124,172, 78,146, 79,121,219,179,146, 11,183,224,137, 69, 33,243,129, +107, 2,129, 8,168,113,177, 67, 67, 51,129,136,130,130,164, 32, 73, 99, 81, 8, + 98, 16,244,210, 65, 62, 98,128, 64, 81,132, 32, 2,149, 34,138,137, 36,144, 56, + 9,100, 70,146,100,148,206, 3,127, 75,199,215, 15,101,158, 93, 61, 1, 76, 23, +187,177,126,245, 17, 82,182, 42, 16, 41, 66,189, 88, 11,165, 15,209,173,209,252, +118,122,170, 32,137, 61, 18, 35,214,108,107,201,100,250,142,103,188, 80, 45, 70, + 85, 41, 29,150, 45,234, 58,160, 91, 9, 62, 26, 3, 55,245,115,123, 71,164,191, + 75, 23,118,222,146,239, 46, 88,197,237, 19,156,129,142,164,105, 87, 44, 85, 65, + 8, 19, 92,180,213,181,125,124, 70,198, 73, 28, 58,164,199, 18,216,161,235,246, +211,128, 80,193,135, 99, 82,252,200,103, 90,127, 82,253,232, 58, 52,198, 29, 60, + 3,119,108,207,160, 79,162,212,165, 57, 37, 33, 48,244,234,174,199,172,162,212, + 91, 10,129,177,243, 81, 99, 18, 29,115,181,160,164,106, 74, 12,248,114,191,225, +132, 96,199, 68,179,202,172,238,208,115, 75, 43,168,247, 83, 28, 84, 81,223, 25, +169, 49, 43,208, 64,214,220,201, 94,240, 21,244,240, 25,119,135, 82,160,159,199, +138, 4, 5, 6,107,132,242,197,240,211, 84,184, 25, 63,236, 8, 3,205,230, 81, +151, 12,221,126, 58, 22,214,237,196,120,192, 72,247, 80, 41,205,195,125, 80,206, +183,224,155, 12,230, 36,105, 0, 79,208, 76, 58,196,115,152,184, 12,152,122,188, + 99,236,175, 44,219, 28,117, 34, 87,203,150,158,130,199,145, 99, 40, 46,147,111, +141, 92,138, 49, 6,119, 0,131, 47,209,156,231, 97,219,115, 4,208, 13,206, 40, + 70, 73, 69,102, 90, 48,147, 86,156, 0,190,145,218,241,178,232, 82,171, 19,137, +130,144,182,253,241,148,173,144,209,207,110, 30,199,147,189,142, 52, 36,158,136, +231,189,165, 13, 39,128, 16,145, 41, 84, 66,160,128, 32,167,150,169, 75,203, 97, + 14,120, 33, 24, 48, 54,203,162, 28, 6,144,143, 56,242,170,174, 80, 25,174,234, +175, 82, 31, 45,151, 36, 59, 75,116, 16,100, 12, 78,152,232,127, 73,139,194, 39, + 46, 52, 88,195, 79, 12, 16, 18,104,205,149,143, 13,189, 7, 52, 98, 99, 6, 39, +141, 76,204, 23,250,242, 99, 82,131,255, 9,140,239,201, 39, 95,103,155, 70,138, +136,103, 6,159,173,192, 37,102, 49, 50,242,154, 81, 60, 4,246,167,211, 1,117, +230, 20, 0,127, 82,160, 70,137,244,202,229, 87,157,161, 71,170, 47,163,230,157, +241,110,141,115, 19, 27, 8, 8,165, 85, 86,142, 72,217, 30, 58, 64, 64,100, 37, +177,157,205,160, 97,159, 12,133, 27,133,143, 36,106, 43,200, 70,194,222,225,124, +203, 56,182, 17, 2,236,138,190,124,156, 73, 9,110,110,113,208,160, 9,127,102, + 98,118, 80, 96,231,196,124,253,249, 1, 64,165,194,181, 9, } ; -// ../Source/Shared/GB_ewise_shared_definitions.h: -uint8_t GB_JITpackage_202 [618] = { - 40,181, 47,253, 96, 14, 5, 5, 19, 0, 70, 31, 97, 32,240, 24, 61, 20, 35, 65, -146,186,180,209,252, 88,170, 2, 86, 93, 75, 66,107,138, 22,149,176, 96, 15, 15, -120, 6, 38, 45,194, 11, 87, 0, 83, 0, 91, 0, 30,134,210,163, 34,113, 72, 16, - 22,136, 67,194, 7,221,229, 81,215, 19,133,120, 65,186, 10,220,183, 84, 53, 30, - 55,105,153, 32,166,121,194,120,157, 41,222,126, 87,211,102,233,240,109,126,146, -123,190,159,235,155, 59, 90,114,123, 75,165,219, 57, 3, 44,104,123,235,174,182, -126,239,113,222,103, 10,106,238,117, 69, 61, 55, 39,110, 48, 88, 4,131, 33, 97, -103,107,192,239,246,124,107,198,238, 9, 62,224,246, 63,228,251, 90,255, 19, 5, - 93,191,166,157,135,180,118,143,181, 63,184,253,171, 30,195,144,250, 14, 77,212, -245,123,245,116, 51,118,235, 80, 72, 16, 30,236, 40,150,206,200, 95,191,186,237, -123, 25,225,181,253,174, 90, 8, 29,136, 86,240,254,148, 95,127,198,245, 6, 69, - 53, 19, 26,230,146,205, 24,113, 76, 97,151,134,105,212, 80, 28, 85,122, 57,190, -238,240,193, 40,214,203,162,112,219, 5,147,105,178, 75, 38,137, 64, 56, 72, 36, - 35, 41, 27, 23,217, 50, 78,196,126, 0,128, 91, 86, 65,147, 85, 92, 66, 54,216, - 70,195,220, 82,143,170,124,119, 71, 63,143, 93,205,111, 95,228,170,144,187,198, -189,240, 97,253, 92, 87,112,139,108, 21,188,103, 10,115, 34, 92, 70, 52,143,230, -177,170, 68, 37, 54,231,140,115,206, 57, 65, 3,137, 47,103,248,193, 31,151,196, -174,174,156,140, 82, 70,140,187,155,147,156, 71,195, 96,119, 75, 87,225,219, 29, - 28,114,193, 96,145,141,219, 50, 78,195,120,246,118,159,239,166,249,241, 69, 12, -226,234,194, 52, 27,109,245, 85,207,126,192, 26,140, 60, 86,119,143, 32,252,113, - 15, 95,168, 97, 61, 99, 70, 72, 68,146, 20,149, 22,134, 3, 96, 36,152,162, 51, - 15, 66,249, 56,201, 82, 66, 4, 19, 9,164,162,164, 60,146,162,186, 3, 75,111, -150,136,168,225,145,174,220,237,148, 40, 87,154,234,242,145, 81, 50,104, 82, 19, -223,153,222,179, 52, 24,139,208,142,184, 33, 33, 4,207, 71,248,247,114,192, 52, - 63, 90, 27, 21, 75, 49, 20,145,145,208,171, 24,179,131,197, 68, 11, 17, 70,118, -192,168,221,110,104,208,140, 45, 49,129,232, 11,134, 7, 75,237,125, 25, 37,112, -123, 94,241, 48,254, 6, 80, 31,194,197,188,255, 0, 4,204,125,121,174, 45, 98, - 70,174,228, 76, 14, 35, 67,149,134,225,233,210,226,224,112,157,169, 11,252, 42, - 12, 2,121,121, 31, 35,233,193,144, 25, 94, 68,238,193, 86,174, 71,211,175, 60, -103, 18, 68,185,217,183, 27, 61,156,204, 17,222,118,196,132, 46,213,181,176,185, -120,223,204,127,102,154, 46,215,128, 91,162,103, 69,171, 42,237,142, 1, +// ../Source/Template/GB_select_phase2.c: +uint8_t GB_JITpackage_198 [1500] = { + 40,181, 47,253, 96, 44, 27,149, 46, 0, 38, 58,172, 40,176,146, 85, 29,170, 38, +139,138, 75,130, 61,172,200, 6,243,136, 8, 45,127, 75,155, 91, 3,244,133, 30, +235, 74,242,196,141, 13,154, 59,165, 63, 77,239,142, 75,159, 0,160, 0,155, 0, +184,177,212,158,113,253, 78,231,179,230,167, 88,249,229,249,249,109,143,166, 81, +100,125,163,242,112, 90,135,214, 58,150, 31,121,180, 62,211,198,125,109,158,207, +161,207,225,109, 59,234,126,235,241,241,188, 37,169, 80, 46,147,238, 52,105,227, + 19,110, 79,110,102,218,155,102,210,152,182, 54, 55, 19, 11, 6, 14,101,107,143, +219,184, 59,199,185,227,152,157,123, 94, 60, 44,184, 84, 46, 19, 4, 75,229,242, + 73,147, 14,241,244,144, 12,167,196,143,186, 92,191,137, 29,122,226,102,161,179, +242, 58, 36, 52,190,210,122, 58,207,144, 71, 50,129,104,168,203, 48, 74,149,245, +132, 75, 99,217,217, 44,107,237, 53,206, 22, 28, 78, 64, 32,153, 16, 16, 4, 22, +131,176,204,148,146, 30,230, 28,116,102,160,206,180,233,225,152,101,124, 39, 7, +226,230, 70,251,155,205, 68,195,179,109, 77,212,199,189, 85,205,214,123,176, 35, +129, 89,215,230,242,100, 92,111,148,155, 1,211, 20,165,115, 34, 4,166, 89,200, + 60, 26, 0,233, 88,231,242,120,226, 38, 59, 99, 58,191, 53, 14, 29,143,228,135, + 39,111,125,119,249,144,155,223,220,104,123, 30, 82, 97,146,229,115,214, 32, 19, +139, 38, 73,116,113, 46,176, 44,206,217,117,152, 91,133, 73,124,117, 27,159,181, +121, 51,238, 59,240,231,204,224, 32,211,249,140,105,213,226,115,115,252,255, 37, + 33, 18, 9,197, 33,106, 24,126, 43,119,207, 11,113, 31,125, 42,246,228,105,211, +122,221,176, 76, 78,161, 80,158,177, 81, 41,237, 87, 53,204,167, 13, 80,198, 45, + 20,156,108,148, 30, 51, 78,102,173,195, 67,120, 8, 58,132,150, 61,220,104, 31, +102,209, 74,183, 56, 25, 67, 68,204, 34, 39,195, 46, 7, 60, 71,159,211,250,173, +179,188,109,235,251,243,154, 63,129, 96,130, 20,207,213,231,141, 78,238,153,131, +142,121,205,216,227, 95,189,220,105,157,152,111,100, 84, 89, 30,116,235,199, 43, + 61,238,186,157, 42, 60,132,162, 50,152, 87, 94, 73, 22,168,205, 79,210,209, 38, +181, 23,218,186,211,240, 39, 9,111,178,111,151,179, 47, 68,251, 74,123,251,213, +203,143, 67, 94,187,205,252,234,214,229, 3, 87,102, 28,146,107, 51, 17, 10,200, + 88,168,145,202,226, 98,136,208, 52, 52, 72,216,195,169,177,228, 74, 33,236, 79, + 28,221, 76,251,158,164,149, 67,206, 13,211,143,250, 44,187,201, 35, 52, 53, 95, +155, 9, 57, 32,146,152,184, 58, 0,169, 79, 75,250,200,106, 95,127, 25,234,182, +203,245,243,190,242,175, 92,193,126, 82, 29,132,142, 62, 40,221, 34, 66,104, 50, + 91, 51,198, 49,135, 10,137,142,198, 69, 68, 62,125,163,233, 96, 94, 75, 70, 40, + 74, 20, 69,150,104,190,250,134,101, 89,168,204, 45,123, 1,129, 87, 10,183,236, + 57,219, 13,146,222, 32,145, 93, 19,155, 72,145, 97,158, 11,219,152, 17,175, 0, + 62, 99,204, 96, 94, 61,218,238,161,122,199,244,139, 14, 22,113, 73,223,154,206, + 63,129, 89,168,161,173, 51, 66, 35, 34, 18, 36, 73, 82, 72,107, 97,136,192, 40, + 40,153,244,204, 3,130,192, 44,149, 81, 36, 66, 24, 33,198, 56,129, 33, 2, 67, +130, 34,129,136, 72, 32, 35, 18, 69,129, 40, 29,144,224,146,127,198,252,216, 10, + 77,130,142,224,155, 8,120,216,247,106,212, 23,191, 87, 83,241,112,149,227, 98, +228, 67, 35, 21, 10, 99, 88, 34,173, 23,152,242, 16, 77,186, 42, 48, 51, 61, 21, +110,122,204, 25,234, 15,151,255, 0, 35,158, 49, 99,131, 17,195,143,180, 56, 31, + 1, 56,218, 77, 13,117,127, 31,220,110,193, 84,113,141,143,243,106,245, 35, 31, +104,163, 19,218, 46,140, 64, 60, 20,227,210,115,175, 34,115,234,121,247,132,125, + 79,149,175, 84, 91,191, 45, 97,215, 2, 54, 17, 32, 73, 41, 82,221,131,237, 60, +179,196,165, 23,226,169,214,203, 75, 19,155,142, 57, 90, 85,251,211, 39,246,101, + 71,134,245, 26, 69,145,134,197, 86, 14,185,124, 39,197,200,239,189, 50,164,204, +244,249, 76,219, 97, 4,253,235,131, 20,146, 44,191, 21,190, 61,249,189,123,167, +188,162,199,245, 22,248,232, 74, 98, 23,172,187,223,144, 8, 8, 93, 26,164,237, + 61,152,205,137, 28,145, 12,192,198, 95,144, 65, 98,227,149,207, 33,227, 54, 44, + 2,195, 33,252, 84, 92, 50,183, 62, 63,134,244,250,102,156, 97, 65, 40,190, 21, +116,218,156,164,106, 30, 44, 61, 36,213, 61,195,200,120, 38,254, 84,136,251, 75, +211,155,187,139,143,147,128,125,150,142,146,229, 78,192, 31,122,140,129,207, 3, + 97, 64,187, 47,239,252,197,182,151, 10,149, 79, 40,224, 39,206,144, 39, 40,193, + 71, 25,184,149, 97,171, 64,201, 0,177, 34, 42,123,160,122, 30, 38,189,211,132, + 4, 72,180, 25,151,156, 1,118, 32, 82,131,233, 80, 39, 62,254,122,230,148, 1, +170,195,229,207, 45,198,162, 54,102,234, 90, 21, 33, 38, 14, 69, 86,130,125, 27, + 97,184,151, 86, 61, 30, 81,228,148, 8,125, 34,106,196, 83, 43,252, 99,175,119, +166, 21,207,122,211,113, 95,149,250, 82,198, 37,253,244, 39, 16, 76, 60,169,138, +243, 85,158,110, 9,236,242, 78, 72,214, 94, 43, 9, 63,184,190,103, 36,208, 34, + 94, 74, 15,188,109, 5,242, 85,155, 25,220,221, 97, 68,142,206,236,154,182,207, + 75,184, 17,163, 13, 74,141,158, 39, 14,127, 36, 92,157,138, 92,149,195,218,194, +120, 97,100, 80, 26, 21,167, 95, 83,185,196, 0,131, 53, 38,226,209,127, 30, 74, + 68,136,121,173, 5, 28, 27, 6, 98,194, 2,237, 38,165, 33,101,214,160,242,209, + 27, 18, 46, 21, 81,220, 64,170, 24,227, 7,228,135, 35, 32, 98,126,200, 11, 2, + 3, 83,207,133,108, 56,252,185, 73,106, 2, 69, 45, 66,133,188,242, 72,172,236, + 89,231,143,232,194, 1, 81,141, 78, 51, 74, 59, 50,180,136,103, 75, 75,248, 6, +123, 61,129, 69,157, 91, 48, 32,188, 29,219,194,160,179, 23, 77, 10,104, 28,201, +153,162, 15, 59,115,219, 18,219,101,131, 79,186, 84,130,125,137, 40,196,153,217, +162,247,142,125,253,129, 49,159, 91,192, 95,129, 6, 54, 9, 67,195,142,138,237, +220,238, 85,152, 23, 83, 83, 51,152, 98,131, 9, 4,195,253, 95,119,180,190, 72, + 68, 11,145, 11,104,120,140,246,126, 11,220,140, 14,186,216,100,193, 18, 67,161, + 21,115, 26, 4,200, 12,237,179, 8,239,188, 66,102,211,245,124,131,181,237,250, + 72,213, 26,148,161, 68,220, 94,211,111,169,144, 65,173,100,194,135, 18, 40, 1, + 92,153,224,168, 36,207,141,123, 64,253, 80,176,197, 37, 26, 73, 63, 33, 76, 89, +196,213,208,166,169, 80,153, 9,231, 81,175,190, 99, 60,180,152,106,101,117, 2, + } ; -// ../Source/Shared/GB_hash.h: -uint8_t GB_JITpackage_203 [965] = { - 40,181, 47,253, 96, 95, 7,221, 29, 0,230, 51,154, 51, 80,141,210, 1, 48, 51, - 51, 51, 51, 51,139,200, 20,123, 75, 67, 91,110, 51,178,187,255, 19,210,136, 36, -161,120, 4, 4, 79, 7, 24, 83,124, 34, 18,240,161, 30,131,181, 79,202,212,133, -110, 84, 13,171,135,147, 0,134, 0,132, 0, 26,105,186,211,184, 91, 73,123, 7, -195,197,194,158,126,106, 24,176, 22, 28, 48,168,245,142,174, 73,237,124,181,190, -222,204, 40, 11, 64,233,128,116, 62, 86,231,101, 12, 64,201, 80,213,101,181, 75, - 55,235,156,184,156,113,191,197, 38, 46, 43,223, 94, 92,113,225,120,240, 80,216, -138,196,149,155,113,217, 90,136, 51,238,156,245,169,160,202, 84,151,141, 38, 83, -221,114, 85, 62, 73, 22,209,135, 83,214, 75, 90,195, 17,107,124,250, 88, 21, 13, -218,166, 81,130,179, 50,234,246,217,230,249,161,132, 30, 63,194,236,242, 65,110, -126,156, 45,118,142, 70,105, 82, 53,144, 6,137, 99, 48,148, 11, 6, 19,170,245, - 75, 81,101,220, 44,227,203,109,138, 32,116,239,183, 51,100, 37,104,202,141, 8, - 3, 21, 27, 77,117, 6,134, 10,219,184,221,122,201,111,212, 75,209, 5, 29,232, - 61, 65,231, 72,118, 14, 94,119,250,100, 67,199,177,156,224, 22,132, 43, 40,220, -194,149, 79, 92,137,160, 44,149, 7,220,178, 57,168, 6,184,178,154,198, 79, 85, -207,224,227,146,224, 86, 82,146,211, 46,214, 72,211,146,176, 60,116, 19,131,110, -202,141, 61,183, 17,188, 68, 82, 71,191, 94,242,101, 51, 8,100, 29, 72,251,241, -249,113, 67,219,143,247, 82,183, 29,246, 55,110, 17,102,113, 61, 23, 45,196, 29, - 4,234,154,110, 54,252, 49, 86,178, 48, 37,177,238,102,198,209,130, 83,182, 90, -156, 53, 9, 91, 63,159, 84,164, 82, 67,122,241, 21, 77, 57, 59,254, 81,121,112, -226,110,186, 93,178,214, 31,193,152, 29,139,219, 59,210,168,219, 35, 75,141,202, - 23, 38,136, 12,210, 62,216,239,149, 61,161,194,239,116, 42,242,118,250,169,231, -246,248, 15,227,216,219,109,177,151, 92,191,141,113, 94,111,248, 46, 23, 98,125, - 40,177,149, 51,244, 24, 4,227,246,168,251,184,226,167,176,229,109, 94, 23,124, - 9,211,141, 29, 20, 74,198,216, 91, 42,110, 75,205,174, 36,232,220,181,102,210, -177,141,163,184, 61,109,220,206, 31, 96,217,100, 52,173,153,106,147, 80, 85, 5, -152, 3, 3,141, 6, 19,138,144, 98,136, 97, 48, 28,185,117,107,156, 9,140,135, -140,198,164,228, 68,243,201,160,224,235,172,207,198,167, 14, 81,132, 29, 39,237, -197,167, 82,220,167, 22, 14,202, 23,148,146,178, 32,104, 4,238,241, 56, 76, 84, -164, 92,183,206,105, 84, 15,149, 61,232,112,202,105,189, 49,160,228,198,217,215, - 54,107, 87,180, 54,194,139,219, 77,139,138, 11,138,187,237, 55, 33,251,154, 24, -140,158, 95, 70, 56,126,175,167,163,128,143,168, 33,161, 66, 16, 25,153, 25,146, - 36, 73, 33,173, 1, 48,132, 16,164,174,110, 3, 2, 65,117, 76,140, 50,100, 42, -168,145, 32, 97,168,252, 63, 59,199,134, 10, 42, 62,105,191, 92,115, 60,215, 42, -145,149, 37,203,167,194,242, 29, 61, 78,186,158,178, 69,182, 67,112,225,161, 75, - 36, 10,249,100,195, 86,207,184, 1, 66,136,171, 84, 34,181,244,240, 87, 59,101, - 54,123, 51,115, 71,228,149,120,217,144, 64,168,216,169, 41,162, 60,110,103, 12, -225,176,214,122,135, 94,103,160,139,208,171,232,204, 33,152, 94, 50,219, 52,119, - 90,123, 0, 84,180, 10,170,102, 41, 81, 38, 71, 90,211,128,227, 0, 14,181,210, -177, 73, 20, 84, 37, 15,230,251, 51,177,134,198,169,172, 32,219,230,188, 22,222, - 15, 79,168, 59,243, 20,106, 3, 0, 27,229,115,255, 4, 56, 6, 71, 62,248, 17, - 63,209,202, 29,207,223, 55,219,101,143,206,159,244,175,120, 10, 68,148, 13, 67, - 18, 66,224,143,186,119, 80, 22,214,230,177,213, 62,138, 10,236, 86, 19,110,170, - 38, 10,128, 21, 58, 22, 63, 82, 59, 6,143,163, 57, 33,231, 41,117,137,172,117, -254,160,126,132, 63,144,123,184,162,144, 96, 92, 52,223, 52, 3,131, 13, 50,250, -178, 22, 62, 52,197, 28, 89, 23,101,146, 28,237,160,198, 47,202,103,101,220, 16, -166, 14,229,114, 35, 76,135,219,145,111, 64,104, 30,116,147,225,202,191,216, 85, -173, 43, 60,176, 82,170, 29, 68,102,208, 36,149,153, 98,251, 41, 93, 7,152, 55, -174,175, 52,160, 4, +// ../Source/Template/GB_select_positional_phase1_template.c: +uint8_t GB_JITpackage_199 [1796] = { + 40,181, 47,253, 96,176, 36,213, 55, 0, 70,187,176, 40,176, 86,117, 14, 20, 56, +163, 9,104, 20, 95, 66,172, 50,227,177, 72,160, 20,174, 11,111,178,224,100,179, +230, 36, 87, 51,165,119,252,160,255,160,243, 83,130, 11,161, 0,164, 0,164, 0, + 89,215,107,185, 14,252, 98, 7, 8, 87,246,175,149, 51, 19,201,206,218,179,183, +183,175,201,120,248,203,162,255,127,165,114, 82,201, 96, 10, 40,230,178, 72,225, + 55,149,123,235, 43, 89,179, 40,182,146,179,246, 80, 25, 15, 31,140,198, 34,149, + 45,131,110, 47, 39,106,208, 61, 15,126, 50, 40,200, 20, 80, 9,154, 76,193, 45, +153,244,201,182, 72,124, 56, 6,190,132,187,115,212,161, 79, 23,244, 52,112, 52, +214,136, 13,219, 26,233,197,183,191,171, 98,233,228,199,221, 9, 74,149,195,235, +220,110,185,235,149,252, 43,191,153,125,195, 55,122,116,196, 23,211,176,141, 28, +197,188, 40,103,223,182,147, 98, 55, 99,143, 45,214, 16,113, 2,130, 10, 69, 64, + 16,149,187,216,232,147, 30,123, 94,172,145,158,142,230,227, 72, 20, 43, 13,232, +234,188, 25,139,156,203, 34, 95,246,185,172, 70,182, 47,169, 81,246,199, 55, 31, + 72, 17,178, 26, 0, 48, 58,229, 71,162, 53, 22, 1,173,135,170, 58,107, 51,163, + 83, 2,117, 62, 26, 18, 71, 65,121,231, 2,193,207,133, 93, 22,231, 22, 11,148, +254,208,241, 52, 80, 92, 76, 0, 72, 15,129, 58,215, 5, 45, 3,222,204,126,167, +252,253, 62, 62, 13,140,204,186,109,243,147, 40,182,246,233,235,122, 63,121, 93, +175,116, 58, 95,101, 44, 34, 37,123, 34,177,155,227, 32, 93,160, 40,228,188,224, + 3, 53, 94, 75,109,103,227,149, 24,252, 37,122,156, 99, 29, 99,240,213, 25, 98, +215,214,222,186,223,150,231,115,105,234,161,165,251,213,133,115,254,234,213,110, +187,162, 92,231,198, 31, 11, 41,253,202,119,139,231,209,204, 46,219,243,226, 79, + 20,222, 91,107, 18,164,251,196, 73,128, 64, 64, 88,124,250,116, 49,121, 44, 80, +136,109, 40,162,227,241, 56,160,169, 87,183, 28,100, 17,114,232,120, 58, 23,150, +209,121,168,176, 48, 44, 64,210, 53,150,189,177,246,173, 3,168, 79,109,117, 75, +240, 37,204,221,204, 23,164,111,156,179,245,226,246,234,154,252,230,252,160,162, +137, 4,201,170,107, 46,191, 38,121,234, 62, 81, 40, 29, 98,159, 99,144, 90,186, +105, 35, 93, 46, 10,239,206,121,230,213, 59, 73, 99,173, 63,145,196,222,167, 49, +151,217, 91, 36, 6, 37,171, 69, 14,149,139,141, 53,249, 5, 68, 47,229,178,185, +230, 12,167, 23, 16,176,109,229,200,252,141,220,167,140,244, 12,232,113, 5, 15, +205, 69,122,133, 69, 97, 97, 10, 30, 28,213,141,239,234, 28, 57, 79,109,225, 10, + 90,223, 95,217, 21, 76,157,178, 59,140, 58, 92, 36,251,102, 95,189, 86,106, 92, +251, 11,169, 30, 26, 10,131,201,112,216,232, 97, 96,156,239, 71, 83, 28, 60, 58, +142,211,141,219, 93,239,179, 92, 69,211,171, 96, 46,173,113,170, 46,109,111,214, +143, 41,185,116,196,156,107, 63, 16,234,159, 44,153, 87, 11, 18, 5,192, 17,201, +150, 29, 79,153, 44,219,152,157,187,243, 99,100,202,203,133,106, 46,211,214,217, +188,167,167,204,221,116, 9, 7, 16,236, 92,152, 6, 8, 86, 88, 13, 88, 40,129, +198,168,193,161, 66,102, 68, 68, 68, 68, 36, 73,146, 12, 7, 65, 12, 66, 16,115, + 88, 66,106, 7, 50,136, 28,143, 66, 12,138, 80, 12, 2,209, 16, 65,132, 16, 98, + 4, 68, 96, 4,226,136,140, 80, 32, 97,130,106, 14,136, 98, 60,242, 43, 5, 15, + 63,243,240,209,209,252,192,130,185,241,127,131,219,178, 43, 37,243, 19, 44, 49, + 82, 38, 64,166, 97,111,211,207,125, 64,191,225,103, 99,233,193,154,201,129,232, +107, 14,186, 54,195, 4,161, 19,205,234, 47,249,166,215,139,141,197,224, 49, 40, +181, 48, 55,216, 62, 40,199, 56,216, 5,189,212,130,208,135,202,122, 23,150,249, + 92, 13,101,213,189, 1, 37,127,161, 48,157, 26, 54,197,207, 11,247,243,245, 42, +245,241,230,176,193,246,219,207, 76,114, 68,118, 48,161, 7,184,196, 29, 40, 34, +249,126, 18, 94,173, 89, 51,154,118, 97, 45, 0,250, 35,234, 12,160,109,148,225, +244,120,105, 0, 88, 10,205,254, 2,140, 85, 38, 70,104,247, 6,211,240,147,138, +183,100,211, 37, 63,182,110,147, 32,212,156,196, 30,142, 99,126,188,201,150,217, +197,236, 72, 53,115,121,207, 54,212,163,194,181,131,192, 11, 12, 95, 5,103,224, +160, 85, 64,244,208, 49,188, 98,212, 12, 99, 68,180,138, 0,114,141,169,199,186, +219,146, 62,182, 47, 59, 42,103,116,198, 8, 68, 48,237, 43, 48,193, 55,126,120, +197, 16,104,153,177, 19, 88,171, 9,165,190,220, 48,161,195,146,157,118, 41,121, + 75, 84, 28, 26, 8,168,218,236, 82,254,101,192, 15, 62, 92,156,141, 64,149,142, +124,237, 91,164,177, 30,164, 92,141,236,252, 71, 68, 67,129,101,150,202, 68,103, +243,195,206,160,190,188, 52, 78,104,233, 64, 68,204,213,142,106,123,129,156, 57, +205, 57,148, 81, 7,214, 51, 88,217,125,123,114,173, 13, 85, 35,116,239,180, 57, + 15,243,217, 80,255, 97, 23,179, 81,183, 56,132,235, 71,199,123,225,106,215, 11, +206, 19, 71,169, 42,116, 81, 67,237,148,204, 38,234, 15, 39, 68,198,126,161,194, +214,206,210, 4,220,225,113,185, 52,129,167,173,121, 34, 71, 63, 85, 88,201,237, +179,196, 83, 42, 35,222,166, 10,198,227, 56,240, 13,234,129, 1,219, 11, 31, 27, + 27,194,188,101,200, 98, 63, 73, 95,128, 29, 46, 65,177,125,236, 13, 1,180,121, + 89, 31, 61, 90, 24,252, 22,147, 55, 25, 74, 46, 82,111,189,242,126,221,197,182, +237,210,196,183,152, 69,213, 28, 34, 36,205, 56,233, 17, 45,132,107,201, 33, 44, +109,248,194,202,132,105,151,157,104,199,239,162,223,216,193,171, 42, 95,116, 34, + 64, 20,153,130,132,192,228,132, 13,126,144,244, 21,174, 27,177,169, 93, 51, 27, + 87,120, 12,109,148, 77,161,181,119, 74, 12, 87,239,117,121,169,216, 10,224,144, +167, 60,220,103,169, 62, 17, 76, 90,168, 58,237,231, 14,100,183, 8, 54,232,195, + 49, 39,123,169,197, 34,186, 28,234, 8,212, 60,157,172,151,177,116, 59,110,243, +118,142,185, 65,252, 14,248,214, 67, 11, 84, 83, 20, 99,163,226, 92,238, 96,128, +171, 11,180,112,200, 75,193, 65,133,215,165,240, 87, 28, 38,120, 41,216,236, 77, +186, 88,130,254, 79, 72, 71,104, 11,227,205,247,235, 77,128, 66, 33,193,214, 75, +137,124,199,225, 96,193,122,139, 84, 50, 50,184,157, 44, 72, 21, 82, 37,146, 12, + 50,221,229,156,246,121, 17,128,231,206,200,219, 40,196, 13,239,235, 22,145, 72, + 61, 70,218,155, 92, 40,176, 69, 33, 64,125,231, 40, 67, 52,194, 10, 9,184, 68, +107, 7,248, 16,103, 10,255, 43,211,124, 69, 95,247, 99, 72, 93, 46, 10,184,181, +167,203, 30,206,108,141,197, 98,120, 15,248, 32, 92, 22,251,134,157,206, 68, 63, +142,151,146,112,198,183, 69, 38,231,229, 59, 77,105,111,143,112, 95,181,188,242, + 30,176,161,146, 11,150, 77,242,201,112, 71,143,233,143,175,204,117,200, 97,192, + 17, 5,182,206,167, 96,129,213, 80, 48,130,119,175, 23, 24,250,211,202, 71,255, + 64,217,182, 69, 80,129,148,162, 70, 67,143, 40,150,114, 12,102,156, 45,170, 80, + 2, 41,213,176,127,174, 14,190, 38, 77,124,227,171,245,177,209, 45, 91,124,125, + 91,212,174,203, 23,170,250,222,145, 26, 11,172,157,199, 67, 79,193,255,233,171, +232,253,171,113,122, 58, 19,196,177,222, 57,201,175, 16,116, 25,187,119,165,191, + 86, 82,196,222, 18, 9,134, 92,150, 94, 76,202,173,159,105, 17,196,239,164,135, +216, 68,251, 42,116,212,116, 45,146,127,228,196,101,142, 50, 17, 98, 44,185,246, + 56,242,106, 38, 77,216, 60, 69,241,172,113, 90,207,200,136, 74,249,254,211, 18, + 25, 97,140,155,117,227,109, 23, 25,110,112,121,229,192,113, 42, 52, 96,202,114, + 15,217,229,136,237, 78,134, 41,236,243,216,196, 32,148, 34, 19,219,166,211,249, + 98,111,102, 28, 9, 66, 64,124,168, 67,240,152, 40, 21,146, 72,206, 93, 31, 52, + 79, 63, 51,133, 69,102,206, 67,130,187,107, 53, 74, 29,107, 19, } ; -// ../Source/Shared/GB_hyper_hash_lookup.h: -uint8_t GB_JITpackage_204 [1171] = { - 40,181, 47,253, 96, 88, 14, 77, 36, 0, 38,238,138, 40,208,178, 58, 7,200,165, - 65, 66, 79,228,128, 88,140, 80,237,152,155,233, 49,161, 36,188,170,240,200, 10, - 85,218,211,192, 14,187,186, 69,174,102,192, 15,102, 9,128, 0,129, 0,128, 0, - 0,144, 36, 66,145, 56, 98,144, 82,175, 84,110,173,175,228,236, 34,177,149,140, - 53, 70,194,112,168,136,100,236,169,108, 57,115,123,227,166, 51,231, 56,234,143, -128, 34,161, 72, 8, 19, 9,229, 16, 44,250,179,237,129, 14,143, 80,255,196, 59, - 59,109,241,167,161, 48, 12,145,194, 26, 81, 97, 91, 33,213,240,237, 78, 3,189, - 90,144,168,115,188,223,200,182,221,159,198,150,241, 72,125,154,206,249,133,241, -126,218,111,207,100,107,175,208,110,155,147,179,162,133,209,170, 76, 63,209, 98, -136,248,192, 0, 36, 13, 12, 4,153,199,222,190, 56, 56,186,171,106,222,219,202, -147, 82,250,160,173,243, 94,155,191,182,185, 87, 52, 38, 18,198, 30, 25,137, 72, -254, 34,245,139,117,189, 1,215,202,137,101,217,236, 60,123, 59, 42,251, 27, 44, -127, 40,130,158, 16,169,105,226,252,215, 42, 56,184,178,255, 48,113,193, 76, 92, -172,134,139, 5,101,161,129,100, 55,181,223, 41, 39,210,180,189,206,191, 43,217, -114,165,215,250, 15, 2,225, 68,127,156,104, 99, 12,203, 6,128, 44, 86,197,133, - 4, 5, 5,198,178,104, 40,139,149,121,168,168, 44, 26,103, 82,235,156,240,233, -159, 95, 35,227,180,202,120, 87,175,112, 40, 16,147,108,120, 51,174,155, 27,151, - 55,172,187, 88,118,167,242,229,140, 63, 32,239,109,150,134, 12,245,160,177,170, - 12, 53,113, 97,152, 92,250,244, 74, 37,156,115,199, 65, 79,213,230, 35, 86, 33, -219,127, 42,148,125,101,124,177,174, 78,121, 15, 8, 6,115, 49, 65,171,232,218, -150,112,182, 28,212, 62,157,155,243,130, 60, 32, 8,164, 49, 17,224,119, 43,188, -150,222,110, 66,234, 28,206, 68,226,142,182,103,238,130,247,182, 31,177,142, 27, -127, 19,169,211, 1, 16,164,117, 38, 25, 96,139,100,219,190, 83,126, 10,136,120, - 3, 65, 56,175, 18, 81,153,132,181,187, 92,255, 52, 72,242,105,225, 91,180, 65, -174,215,231,186,100, 79,111,182,115,229, 74, 87, 2, 2, 10, 17,119,250, 74, 21, -178,108, 12,205, 56, 71,117, 15, 58, 61,178, 97,240,226, 32,252,116,248, 35, 5, -159,247,148,119,102,213, 44,111, 36,172, 80,123, 6, 39,247, 72,219,230,184,137, - 85,190, 58,157,140,155,142,255, 84,246, 28, 90,238,122, 37,191,178,103,222,226, -192,128,242,133, 67,164, 72, 10,129, 11,168,209, 49, 51, 50, 51,146, 20,148, 36, -133, 97, 13, 65, 16, 66, 24, 37,165,119, 61,194,248, 44,141, 96, 28, 6, 42, 67, -202, 68, 23, 72, 52, 82,146,146,114,138, 29, 20, 0, 68, 76, 17, 37,112,148, 58, - 68,254,188,111,138,190, 74, 94,155, 84,141,190,186,139, 61,138, 51, 31,142, 92, - 10,141,232,242, 3,154, 15,214, 58, 5,176,174,139, 0,165, 39, 80,153,134, 22, -148,179, 35, 69,173,156, 3,185,193,185,175,248, 88,104,185,196, 35,252,109, 72, - 4, 64,151,107, 62, 40,160, 92,156, 84,104,202, 37,124,154,126,182, 17, 94,194, -243,253, 7, 68, 52,138,121,130, 53, 63, 41, 33,139,234,205, 12,199,143, 45, 31, - 88, 39, 42,204, 76,247,135, 27,108, 42,139, 95, 19,164, 94,143,239, 54,111, 79, -231, 62, 84, 68,115, 32,111,135, 92, 61, 96,163, 63,121,100,187,107, 49,159,156, -167, 13,145, 32, 13,122,108,154, 20,197,201,202,224, 92, 76,210,209,237,176,122, -141, 71, 76,109,119, 57, 12,209, 36,131,160, 47, 42,132, 83, 8,220, 95, 81,178, -252, 19, 68,112, 73, 18,114,134,162, 85, 62, 62, 35, 5, 30, 42,186, 93, 69,220, -110,197,156, 24, 20, 58,114, 0,188,220,218,218, 21,160, 14,177,173,158,173, 0, - 21,205, 90, 1, 99,232, 17,185,173,195, 60,220, 17, 62, 44,148, 7,249, 11,117, - 74,185,210, 16, 34,204,215,137, 59, 53, 39, 39,123, 23,130, 81, 27,206, 49,193, - 90,143,234, 9, 10,212, 26, 91, 75,170,104,144,186,250,217, 65, 94, 44, 1,101, - 55,141, 88, 56,113, 59,136,136, 67, 64, 92,210, 20,246,101,241,206,157,147,144, - 67, 90,195, 85, 50, 73,187, 71,161,211,140, 37,179,129, 47, 55, 50, 35,106,104, -158,191, 63,128,172,101,112, 56,176,103,232,169,164,209, 24, 54,177,228,252,163, -183, 35,249, 65,232,230, 31,240,102,214, 49,130,160,173,172, 78, 99,124,254, 53, - 18,159,213, 75, 8,158,222,121, 24,115,253,195,118, 17, 14, 68, 65, 99, 76, 62, - 5, 92,250, 94,116,253,144, 23,136, 14,244,157, 27,140, 99,133, 1, 31, 39,232, -166, 94, 48,124,198, 51,189,102, 33,241, 75,153,150, 36, 61, 61,225, 88, 90, 34, -219,120,206, 19, 10,136, 64,181,184,190,201,116,226,160, 24,195,187, 12,214, 38, -244, 88,249,133, 8,229,178, 56,202, 76,156, 41,130, 66, 65,201,106, 47,144,107, -155, 95,243,141, 19, 50,130,208,254,138,148,199,212, 79, 86,158,133,241, 54, 37, -207, 67, 82, 20, 37,120, 99, 59,192, 26,219, 61,162, 2,173,146,178,140, 14, 16, - 24, 23, 95, 71,154, 18,106,168,248,173, 96,156, 29,254,133,228, 33,110, 96,107, -160, 35,140, 35, 15,196, 38,158,228,103, 58,103, 62, 26, 52,165, 42, 51,221,164, - 4,242,145, 78, 41,130,139,170, 30,172, 39, +// ../Source/Template/GB_split_bitmap_template.c: +uint8_t GB_JITpackage_200 [585] = { + 40,181, 47,253, 96, 81, 5,253, 17, 0,198,155, 87, 32,224, 26, 29, 3,212,159, + 96, 2,110,167,154,216, 43,110, 92,212,176, 94, 82,243, 32,143,234,249, 7, 95, +141, 24, 35, 69, 6,135, 78, 0, 77, 0, 79, 0,162,252, 32,129, 48, 32, 58,198, +193,128,248,246,105, 31,104,203,162,148, 19,228, 93,225, 86,141, 22,244,193, 71, +106, 38, 33,166,217,226,168, 58, 83,252,169,219,174, 62, 89, 21,237, 86,237,107, +223,178,121,211,241,167,191,163,110, 42,226,177,110, 15,211,113, 91,147,183,173, +136,181, 55,177,188, 80,200,186, 66, 33,146, 78, 62,242, 91, 69, 22,253,246, 20, +139,125,173,166,178,241, 84, 50, 30,232,130, 57, 85,240,100, 1,242, 53,220, 7, + 47,253,252,174,168,255,127,150,193, 50, 3, 1,209,213,240,163, 88,222,145,171, + 61,217,125, 43,120,233,170,190,245,179,154, 46, 68,233, 16,192,202,202, 85, 87, +207,245, 14, 81,214,115, 49,215,155,154, 6,105,205,225,246,198,213,125, 86,157, + 46, 86, 81,164,153,226,227, 81,117, 58,162,104,198,134, 71, 62,241,156,115,182, + 54,173,210, 17,129, 60, 9,186,104, 58, 31,143,243,185,220,147, 5,111, 5,204, +105, 50,201,239,207,230,173,107, 22, 52,182,190,170,239,187, 32,242, 22, 29, 95, +119,180,224,252, 30, 1,153, 92, 1, 34,215, 34,101,221, 44,198,113,155,196, 31, +136, 58,156, 86,107, 30,182,105, 63,149,100,105,226,209, 77,147, 94,112, 41, 45, + 78,177,236,185,239, 76,183,182,244,145, 75, 91, 72, 61, 2,145, 91, 24,199, 65, + 38,214, 54, 7,167, 93,149,221, 95, 38,125,251,236,166, 91,107, 85, 92,129, 53, +252,244,183,100,160, 33, 69,199, 8, 13, 73, 10, 10, 10,146, 74,107,112, 68,166, +204,186, 1,211,154, 92, 75,100, 32,145,252,177,148,189, 4,166,225, 45,143, 64, + 72, 20, 6, 8, 6,175,205,168, 5, 39, 64, 52,105,217, 23,136, 27, 62,163,202, +159, 37,179, 81,198, 22,100,179, 52,130, 41,154, 28,145,101, 96,246,131,166,150, + 76, 69, 25, 95,150, 35,180,172, 60, 76,100,250,140, 75,244,186,234,249,160, 45, + 1, 15,106,168,206,139,124,173, 29,244, 97, 45,173, 70, 58, 96, 54,248,216,176, + 80,247,179,106,133, 32, 20,242,190, 32,143,193,252, 28, 69, 9,137,110, 4,131, + 57,192,218,179, 82, 13,108, 62, 70,181,131,173,173,253, 89,213, 95,104,157, 5, +240, 41, 87,105,177,227, 24, 13, 0,220,225,200, 38, 35,201,162,107,129,217, 85, +231, 22,238,186,253,165,188,221, 95,100, 93, 45,244,195,133,150,198,137,169,100, +147, 28, 81,115,208,236,168,204,180,110,131,149, 92, 83, 84,226, 32,242,208, 81, +111, 95,209, 59, 6, } ; -// ../Source/Shared/GB_index.h: -uint8_t GB_JITpackage_205 [386] = { - 40,181, 47,253, 96,169, 3,197, 11, 0,118, 20, 66, 32, 32,177, 30,243, 11,206, -174, 21, 33,110,130, 0, 61,253,239, 23,194, 16,222,133, 71,244,255,255,197, 19, -154, 64, 34, 20, 22, 8, 53, 0, 57, 0, 57, 0,243,106, 5,199,119,102,164,231, -215, 72,136,179,117,207, 90, 30,227,217,245,107,236,153, 78,110,106,103,227,140, - 31,211,125,191,218,216,126,159,223,126,117,218,133,110,226, 56,181, 79, 57,104, - 77, 81, 80,162,168,254,245,179,117,186, 73,142,173, 87, 62, 74,147,236, 49, 81, -223, 92,199,206, 53,206,157,229,185,198, 96,176,142, 4, 87,117, 73, 4,171,186, - 26,170, 60, 29,225,223,204,172, 39,172, 59, 93,254,188,135,116, 36,177,120,232, - 50, 1,134,142, 49, 98, 61, 13, 61, 79, 79, 48,198,181,223, 99,235,222,211,190, - 95,174,248,166,239,215,156,191,121,122,237,105,188,231, 76, 15, 58, 0, 42, 40, -147, 68,214,216,170, 83, 91, 31, 0,171,233,146,188,171,204, 12,214,133, 27, 80, - 16, 29,136, 75,226,224, 14, 17,217,208, 54, 41, 5, 13,145, 91,188, 58,145,109, - 28, 68, 90,157,208, 26, 24, 87,117,140,216,252, 59, 55, 29, 45,182,142,234,215, -212,254, 37,208,128,245,169,117, 0,132,172,150, 26,170, 6,109, 8, 41, 32, 48, - 66, 67, 77, 89, 15,184, 20,188, 70, 12,240, 43, 69, 76,181, 4, 26,108, 68,151, -181,179, 92, 46,199, 13,206, 16, 56, 77, 56, 23, 47, 9, 2, 63, 37, 10,162, 12, -216,239, 90, 99,135,180,197,172,129,144,177, 9, 17, 14, 60, 89,151,156, 12, 45, -225, 62, 3, 30, 51,153, 29,219,201, 36,176,247, 77,152,239, 85,206, 55,125,108, - 51,157, 25, 51,180, 68,195,186, 7,205,205, 51,211,109, 25,173, 22,142, 9, 61, -240, 11, 79, 81, 48, 4, +// ../Source/Template/GB_split_full_template.c: +uint8_t GB_JITpackage_201 [538] = { + 40,181, 47,253, 96,101, 4,133, 16, 0,246,156, 89, 33,208, 90,231, 64, 7, 28, + 75, 96,220,125, 44,237,204,237, 32, 4, 97,104,189, 17,129,135, 39,245,162,116, + 25,165, 30,120,129, 82, 2, 81, 0, 76, 0, 82, 0, 57, 52,213,207, 69,113,222, +192, 88, 36, 22,135,135, 34,177,248,192,203,110,192, 53, 69, 43, 71,204,179,194, + 76,142, 53,116, 3,104,110, 40,225,165,229, 5,210,184,164, 23,212,185,162, 64, + 88,139, 53,147,217,214,175,106,153,233,248,211, 31,210,153,138,119,236,220,137, + 34, 10,236,114, 21, 47,238, 40,151,107, 26,118,208,180,253,129, 53, 48,255, 89, +122,238,185, 77,255,127, 12,115, 97, 24,130,196,245, 93,210,227,246, 58,204,183, + 29,170,254, 53, 70, 61,147,246,184,254, 35,195,220,227,113, 13, 67, 88, 2,177, + 56,116,232,209, 59, 15, 41,187,130, 53,219,254, 48,135,198,182,189,186, 57,136, + 42, 30,196,215,169,178,113,127,142, 3, 36,120,177, 69,145,150,244,254,142,228, +233,104,162,229,229,238,128,196, 21,144, 61,244,177,128, 64,147,227, 56,110, 53, +200,190,125, 53,159,113,151,132, 91, 60,163, 80, 55, 51,182,164, 7,214,207,118, +192, 59, 97,123,203,142,245,227,188,200,228, 48,191,221,182,152,162,207, 93,195, +145,109,221, 88, 56, 31,139,166, 11, 97, 50, 96, 24, 6,246,103, 81, 1, 12,123, + 97,175,193,188, 55,140, 60,157,210,156,223, 94,226, 46, 73,211,232, 9,159,179, +222, 83,170,190,240, 92,210,140, 43,253,246, 89,181, 83, 68,176,189,222, 85, 40, + 72, 34, 79,124, 59,119,179,129, 87, 51,205, 56,107, 17,245,117,232,225, 15,108, +199,101,248,163, 93,134,185, 27, 81,246,101, 72, 32,128, 2,153, 42, 43, 15,242, +204, 64,222, 96,152,219,187, 83, 15,208, 14, 40, 13, 8, 9,220, 7,135,107,128, +225,181, 14, 26,102, 49,147,152,206,124, 5,135,233,101, 93, 7, 70, 52, 37,136, +126,159,214, 65, 32, 3,189, 97,115,136,126,199, 70,247,130, 91, 71, 21, 32,209, + 16,110,100,130, 58,209,185, 31, 86, 11,144, 39,112,220, 71, 97, 17, 34,188,125, + 66, 80,194,161, 62,212, 23,235, 70,124, 28,207,209,215, 35, 29,195, 18,227,138, +178,100, 7, 22,148,141,245,236,178,112, 39,246, 23,120,117, 7,147, 85,213, 2, +120, 88, 8,137, 39,225,111, 64,138, 25,152,147, 32,134, 45, 97,111,211,244, 60, + 51,177,173,146,213, 58,197, 72, 27, 63, 41,215, 0, 17,156,162,124, 8, } ; -// ../Source/Shared/GB_int64_mult.h: -uint8_t GB_JITpackage_206 [638] = { - 40,181, 47,253, 96,160, 9,165, 19, 0,198,223, 95, 32,224, 26,231,160,158, 22, -173,175,165,247,188,116,127,101,136, 68,205,194,119,253,234, 10,200, 79,251,210, -132, 25, 82, 98, 76, 8, 89, 0, 83, 0, 84, 0, 32, 40, 57, 65,145,144,137, 66, - 3, 33, 19,215,104,118,194,173,168, 73,185, 65,242,213,215,161,169,122, 78,232, - 72, 48,147,239, 52, 69,139,131,175, 56, 79, 29,238, 58,118,176,254,173,103,253, -178,248,109, 5,178, 55,239, 47,143,224, 68, 93,228, 17,183,173, 15, 83,253,145, -173, 43,240, 84,239,104,112, 52,137, 22,140,182, 85, 52,177,252,112,192, 10,135, - 67,118, 50, 24,134,220,231,173, 56, 54,139,239,208,254,114,216,117,125,207,175, -223, 39,166, 42, 62, 97,188,243,235,179,105,222,243,215,191,220,227,201, 20,210, -135, 34,157,166,223,250,121, 48,105, 72, 20,248,163,243, 36,185, 67,228,234,213, -182,220, 93, 10,124, 45,211,138, 41,128, 40, 27, 67,199, 40,145, 47,115,126,251, - 27, 85,206, 3, 25,219,234,113, 7,192, 60,152,143,199,157,245, 42, 0,195, 12, -242,144,200,153, 51,125,245,206,206,171,126,109,253,215,225,228, 55, 92,113,164, -212,171, 7, 73, 50, 30,205,133,246, 29, 73,239,122, 66, 55,185,175,189,252,134, -142,155,114,115,151, 10, 65, 79,100, 84, 40,134, 23,249,107,254, 82,231,158,180, -118,253,209, 4,189,151,194, 7, 24,230,213,206, 50, 0,123,109,167,153, 28, 92, -147,138, 63, 30,116, 27, 92,118,162, 53,151,235, 24,185, 80, 33, 56,129, 68,112, - 2,196,108,185, 29, 83, 81,168,228, 3,114,227, 30, 8, 68,184,237, 82,241, 72, -228,243,144, 35,248,130,252,218,174,177,178,115,119,185,158,221,171, 43,110,187, -166,202,174,101,135,124,190,223,194, 66,215, 86, 4, 21,129, 21,111,160,209,173, - 33, 11, 70, 38, 41, 40,104, 74,210,106,160, 72, 68,200, 88, 7,127, 94, 38, 57, -101, 18,102,174,196, 20,190, 58,151,169,113,132,130, 7,204,151,224,122,204,186, - 94,203, 0,201,107, 61,234,155,116, 4, 2,248, 37,130, 37,111,172,230, 61,203, -161,146, 70,179, 12, 69, 47,197, 42, 15,184,196,160, 89, 95,199,118, 30, 8,209, - 58,189,227,172, 89, 94, 95,117,128,176, 85, 57,175,155, 8,138,195, 65,118, 39, -103,183,202,202, 64,115, 31, 3,126,183, 70,129,114,192, 64,100, 44, 92,101, 13, -185,166,220,214,129, 50,150,251,246,243,214, 0,119,189,178,124,239, 55,245,203, -208, 17, 76,183,146, 40,128,114, 96,240, 95,167, 15,178,152,151,102,232,185,163, -247,189,183, 34,243,204,208,144, 79,229, 73,253,165, 99, 81,102,235,121, 1, 73, -188,195, 88, 1,163, 0,156, 16,194,105,223,164, 60, 99,169,109,109, 84,222,199, -156, 47,161, 60, 14,141, 11,152,220, 2,201,153, 56,221, 90,116,211,196,168,204, -180, 46,138, 85,123, 8,168, 9,195,160, 25, 4,117, 14,188,162,193, 9, +// ../Source/Template/GB_split_sparse_template.c: +uint8_t GB_JITpackage_202 [803] = { + 40,181, 47,253, 96,167, 8,205, 24, 0,198,163,108, 32,224, 88,231, 24,203, 4, +119, 25,145,215,107, 59, 67,106,120, 21,143,129,176, 1,154, 44, 51, 74,240,205, + 25,204, 48, 76,243,112, 99, 0, 99, 0, 99, 0, 89,227,219,157,205,100, 33, 9, +135,224,117,170,108,220,157,227, 12,150,108,231, 97, 72, 63, 19, 8, 3, 34, 99, + 28, 12,136, 7, 58,236, 19,219, 84,149,156, 64,191, 2,243, 40,218,207,167,135, +102, 34, 32, 89, 75, 74,195,211,217,162, 60,151,202,150,185,138,127,189, 56,150, +223, 59,180,249, 29,150,174,197,175,127,163,115, 13, 73,177, 51,215,184,172,217, +134, 36,230, 34,148, 23, 10, 87, 86, 40, 4, 32, 73,102, 78,177,200,215,102, 38, +154,206, 4,195,125, 44,151,207,122,183, 1,219,182,109,191, 28, 87, 65, 50,250, + 0,118,237, 42,250,220,217, 50,227, 46, 5,159,112, 68, 31,142,102,124,199,238, + 99,201,112, 60,220,198, 99,249,218,187,159, 5,108,255,198,151,174,237,108,136, +223, 96,158,219,189, 91, 79,159,187,244,255,191, 46,214,101, 32, 32,178, 6,187, + 74,210, 55,202,182,159,205,183, 61, 75,218,169,233,225,248, 73, 35,237,172,193, +224,225,184,225, 26, 22, 56,204,206,138,245,174, 60,172, 67,148,215, 96,135, 31, +184,220,134, 97,175,118, 9,102, 78, 68,221,151,227,247,176,195,176,150,149, 60, + 41,142,175, 98,169,150,164,103,243,243,181, 99, 62, 5,243, 87,228,216, 33, 46, + 40,107,198, 36, 62,225,154,239,160,134,220,169,185,222,184,140, 75,251,157,200, +109,211,126, 59, 76,117,214,130, 1, 23, 69, 1,174,171,117,181,166,136,179,177, +245,153,118,210,182,153,166,197,174,245,110,253, 44,136, 41, 57,186,165,214,145, + 13,180, 83,211,164, 22,163,255,198,171,218,187,246, 15,199,175,125, 35, 95,142, +185,235,212, 7, 7, 53,254,190,145,163,164,195, 96,206, 57,231,244,110,127,114, + 27,201,225, 62, 19,202,105,164,221, 64,222,107,175,251, 62,143, 55,112,170, 19, +164,216, 41, 87,137, 80, 30,128,157,168, 81,193, 66, 52, 67, 34, 73, 10, 82,200, +178, 6, 80,132,204,148, 29, 61,226,184, 84, 74, 98, 28, 66, 84, 96,136, 21,136, + 4, 34,129, 72,152,168, 41,111, 7, 14,135, 80, 28, 61,225,160, 41,203,110,126, + 98,162,185,113, 77,124,219, 13, 72, 64,204,124,149, 56, 56, 66, 30, 43, 43,182, +130, 82,194,143,200, 8,155, 33, 64,129,149,128,155,111,176,196,133,197,188,226, +199, 72, 94, 5,225,247,245, 80, 48, 89, 91,215,233,235,145,247, 9,200, 93,196, +204,122,175,138,149,174,147,168,150,155,226, 43,229,100,186,127, 62,184,115, 35, +202, 6, 32,226,175, 2,206,130,107, 24,197, 28,203,113,204,161, 12,236,199, 27, +131,172,186,148,218,178, 28,187, 40, 98, 84,221,147, 40, 90,142,135,185,134,115, + 79, 40, 76, 22,188,125, 12,236,240,145,121,131, 85, 2, 92, 4,248, 67, 40, 46, +141,101, 26,229,130,100, 24, 28,208,144, 70,179,192,141,209, 17,100, 26,164, 96, + 66, 61,169,118,150,232, 2,169, 51,149,248,237,126,229,205, 56, 83,183, 70,133, + 43, 10, 51, 73, 52, 35,147, 38,114,185, 10,205, 85, 79, 16,197,171,151, 64, 17, + 56, 95,211,201,243,180,112, 3,165,245,139, 3,221,168, 77, 49,182, 56, 35,112, + 27,130, 19,160,181,216, 53, 88,200, 65,107,186,160, 18, 40, 42,151, 15, 21,193, +189, 64, 75, 12, 38, 94,166, 0, 12,110,250, 96,140, 29,188,141, 30, 24, 34,109, +212, 87,148,206,232,233,193,171, 12, 1,223, 3, 83, 9,166,100,144, 92,104,115, +208, 68,213, 96,178,186,134,108,216,128,107, 74,188, 71,248, 21,227, 71, 6,105, +184, 52, 1, } ; -// ../Source/Shared/GB_kernel_shared_definitions.h: -uint8_t GB_JITpackage_207 [1189] = { - 40,181, 47,253, 96, 39, 21,221, 36, 0,198,114,150, 40,208,178, 58, 7,168, 74, -160,216, 63,199,203,122,124,109,237, 99,168,116,141,185, 74, 72,117,138,212,253, - 23,151, 5, 14, 87,198,225, 69,174,102,192, 15,102, 9,138, 0,147, 0,139, 0, -116,106,171,241,174,223,198, 35,193,198,143,203, 36, 11,188,242,233, 70,184,219, - 43,111,160,168, 66, 93,166,221, 50,232, 85, 79,160,203, 26,183,220,120, 77, 91, -229,102, 28, 49, 89,104, 58, 84,220, 14,186,117, 61,175,189,133,216,115,142,171, - 46, 21, 92, 42,151,233,192, 82,185,124,146, 73, 46, 85,238,128,154, 83,213, 65, -182,158, 29,131, 46,125,170, 8,134,205,131,116,147,176,149, 66,239,179,205,223, - 39,170,113,110,189,221, 57, 14,158, 78,237, 79,216,168, 42, 39, 55, 75,214, 54, - 98,113, 41,220, 42,198,173,164,203,129, 49,108, 78,161, 68, 19,133, 18,209,228, -149,134, 34,147,185, 60, 22,199,218, 0,124, 96,224,147,127, 64, 23, 3,150,185, - 36, 38, 64,149,228,241, 26, 71,185, 2, 81,229, 22, 86, 68, 71, 98, 34,131,125, -174,144,107,124,203,122, 32,125,216, 48,222,234, 92,128, 48,140,173, 55, 36,225, -150,125, 44,101, 41,124,198,221,108, 24,173, 64,228,128,125, 56, 19, 23,232,226, - 92, 13,150, 6,211, 88,158,202,225,131, 69, 88, 28,143, 5, 33,181,143,157, 89, -192, 70,197,173,159,252, 2, 30, 69, 84,198, 18,232,122,216,156,206, 83,116, 50, -151, 30,183, 33, 93,185,161,105,169,247, 4, 16,185, 13, 57,175,219, 62,136,132, - 15, 73,174,223, 55,219, 49,228,110,125,105, 63,218,175,124, 11,116,121, 42, 62, -149, 3, 55, 83, 15, 3,140,180,156,198, 55,163, 1,198, 0,179,245, 82, 0, 39, -167, 61, 74,120, 41,184, 20, 96, 44, 24, 11,198,130,128, 61,202,248,119,169, 49, -132,150,140,192,237, 36, 46,229,186,241, 82,220,206,214,251,216, 75,189, 33, 10, - 91, 98,109, 56,149, 67,198,194,194, 38, 33,201,148,187,173,167, 12, 61, 44,238, -202, 41, 43, 95, 88,160, 54,132,235,169, 54, 63,209,238,148,228,169, 57,254, 52, - 46,167, 55,183,126,151,112, 82,183, 65, 52,142, 96,112,233,114,201,114,169, 34, -137,255, 31, 5,209,202, 41,163, 74, 68, 69,116, 74,216,217, 82, 90, 9,154,225, -183, 3,110, 59,227, 35, 65,101,237,170, 45,109, 95, 70, 97, 48,126,153,228,218, -245,235, 90,110,148,235,109,148, 31,125,101,202,217, 27,118,116,123, 35, 87,223, - 83,110, 40, 58, 41,221,111,199, 61, 45,199, 28,148,147, 91,110, 75,150,240,231, - 56,246,152,253,144,228,246,186,237,174,232,148, 72,234,136,194,194, 39, 33,151, - 36,231, 80,116, 46,114, 74, 78,174,116, 59, 94,121,235,215, 89, 57,120,170,165, - 16,137,166,178, 60, 20, 75, 20,225,210, 75, 18,190,194,128,229,160,129, 37, 53, - 68, 35, 34,146, 20, 36,165, 12, 7, 48,132, 16, 50,101, 86,220,162, 17,129, 36, - 73, 87, 46,168,150, 38, 31,225, 19,116,146,179,228,218,223,138,203,212, 36,212, -124,177, 87,136,161, 64,124, 36,130, 34, 23,128,100, 99,232, 51,156, 70, 17,202, -107,102,251,215,159, 86,109,223, 14,121,157,216,190,128, 16,248, 93,156,102,187, -248,242,189,212,142,127,138, 84,112,167, 2, 75, 18, 36, 96, 24, 55,167,208,216, - 27, 76,149,185, 94, 26,250,139, 27,105,145,205,171, 49,164, 19, 73,198,255, 11, - 16, 2, 75,225, 30,158,179,228,185,141, 12, 36,254,154,112,174, 76,140, 12, 63, -139,168,217,197,254, 87, 8,238, 5, 59,221,132, 61, 92,232, 58,156,117, 34,209, -208, 21, 5,146, 99,209,209, 2,201,144,154, 20,173,114,131, 27,133,208,147, 5, - 85, 35,250,128,104, 46, 12,161,159, 38,127,248,188, 62,105,139,128,102,216,150, - 40, 58, 85, 17, 80, 34,250,241, 97,128, 45, 10, 33,178, 34, 2,163, 25,185,126, - 67, 26, 61,183,179,156,110,220,156, 30,100, 61,127,176, 2,177,230,184, 3,142, - 23,252,183, 73, 56,231,146,105, 34, 39, 70,132,118,177,149,234, 87,165,139, 37, -109,145, 34,110,139, 61,221, 40, 23,232,130,103,228,148, 8,189,123,202,221,136, -212,205, 93, 64, 45,180, 91,142,107,148, 63, 13,168, 51,132,196,155, 28, 55,185, - 56, 1,231,204,168, 29,177, 41,127,209,134, 69,169, 5,103,233, 81,137,137, 60, - 22,214,228,162,115,203,217,203,252, 77, 7,174,227, 38,224, 39,197, 9,112, 82, -238, 10,110, 6, 38,196, 73, 48,158,234, 98,150, 13,116, 8,122, 62, 19,146, 75, - 98,113,109, 12,123, 36, 87,168,140, 14, 18,227,241, 55, 62, 39,217,214, 66,152, -178, 61, 3,172,201, 69, 11,254,204,115, 70,116, 17, 3,192,133, 59,240,184,175, -117, 51,131,146,168,122,122,119,129,230,108, 96,136, 67, 21,210, 13,180,117,199, - 94, 97,224, 55,186, 28, 77,207,140,224, 77,253,186, 61,128,162,161,182, 8,107, - 33, 4, 17, 15,124, 18,200,100,170, 10, 66, 94, 2, 81, 99,129, 44,229, 42,242, - 13,164, 39, 84, 5, 32, 17,136,226,115,184,185, 15,109, 34,122,210,138, 1,212, -208,127,245, 98,199, 89, 54,243,138, 52, 69,212,146,206,188,107,101,132, 5,153, -111,142, 47,182,154,166,210,231, 22, 56, 98,197,100,165,184, 11,194, 2,130,203, - 15, 32,158,208, 46,240,141, 1, 81, 39, 19,253,160,210, 70, 81, 56,118,110, 57, - 34, 56,109,121, 24, 0,145, 23,100,107,166,110,154,155,159,153,222, 41,174,111, -159, 80,228, 83, 38,254,138, 94, 60, +// ../Source/Template/GB_subassign_05d_template.c: +uint8_t GB_JITpackage_203 [1166] = { + 40,181, 47,253, 96, 56, 15, 37, 36, 0, 54, 49,153, 41,176,148,117, 14,100,161, +216,231,123,124,194,197,117,107, 15,192,171,196,169,118,156,102, 12, 33, 19,162, +209, 66, 24,219,129,249, 9,255,148,254, 52,249, 15,118, 1,143, 0,141, 0,140, + 0, 26,118, 97, 50,113,244,181, 1,211,179,236,162, 24,166, 65,220,235,238,150, + 2, 38, 11,193, 65,165, 63,174,138,215, 47, 99, 91,207,230,219,157,167,210,248, + 54,103,179, 10, 6, 7, 68,208,117,200,216,184,181,227,252,121, 88,237, 32,120, +221, 66, 56,176, 28, 84, 24, 12, 44, 7,175, 56,234, 22,182, 33,149,115,130,235, + 36, 95, 14, 73, 54,116,107,187,178,205, 39,214,177,115,105, 60, 86,113,235,108, + 75,219, 4,130, 37,239,216, 94,190,199,254, 68, 62,242,204, 53,211, 65,254,210, +185,130, 34,169, 51,237, 20, 44,244,122, 88,140,171,168,132,233,166,243,130,130, +169, 82, 80, 16, 33,143,103, 3, 66,108, 53, 21, 9, 80,125, 40, 7,203, 54,179, + 66,130,122, 72,195,182,237,154,239,110,189,124,110,143, 91, 92,135, 92, 77,101, +158,242, 91, 13,183, 38,245, 9,237,115, 65, 49, 60, 90,232,154, 20,147,158,108, +171, 58,176, 63, 90,114, 47, 39,195, 34, 40,232,196, 93,237,241,179,240, 8,215, +124,233, 60,166, 93,153,196, 56, 24,251,208,187, 30,186, 25,241,232,150, 62,238, + 93,151, 88, 92, 1,107, 9,164, 31,206,247, 47, 96,131, 96, 29, 43,232,147,201, + 52,157, 96, 94,101,154,176,144,175,189,229,113, 45,103, 65, 76, 71, 77, 39,117, +208, 7, 68, 39, 2,239,216,152, 52, 3,130,245,185,126, 52,134, 34, 15,239,113, +135,221,237, 47, 87,112,116,205, 51, 30,173, 55,186,103, 41, 20, 7,204, 45,207, + 80,149,129,197, 89, 82,189, 36, 29,213, 96,169,235,143,195,175, 40, 74, 42,221, +143,161,119,241, 34, 41,124, 37,121,212, 81,236,172,228,164,148,242, 54, 24, 50, + 71,168, 95,158,101, 21, 20,127,160, 94, 81, 35, 24, 40, 35,100,237,247,137, 68, + 13,162, 56,109,143, 3,159, 60,219, 93,140,166,210, 34, 73,206,156,244, 76,159, +241, 13,185,198, 96,135,100,133, 22,218,232,196,118,101,174, 52,102, 92,103,134, + 81,104,216, 4, 13,211, 73, 21,218, 46, 89,137, 54,222,116, 98, 73,241,214,136, +164, 46,105,152,233, 88,193,202, 97,154, 1,250,112,207,188, 67,138, 27, 31,177, + 30,138,188, 3,230,207,124,138,152,134, 71,251,132, 36,102, 65, 57,211,179,209, +107,118, 46, 13, 68, 77, 68,243, 2, 2, 25,234,222, 7,102, 32, 83,125,200, 48, + 31,231,107, 67,241, 82, 52,160, 88,149, 8,178, 44,171,187,125, 43, 99, 58, 69, +234, 23,136,134,176,206,173,111, 82,159, 52, 98,211,249,192,150, 68,244, 27,190, +235, 92,199, 22,195,183,232, 97,126,117, 47,124,238,174,245,238,240,209, 49,175, + 46,214,133,194, 4,128,236,168,113,189, 66, 51, 34, 50, 34, 41, 40, 72, 82, 24, + 14, 64,132, 24, 83, 69,214, 13,194,216, 48,138,242,156, 34, 76, 17, 34,193,136, +144, 4, 18, 72, 32,161, 4, 18, 69, 73,230, 24,216, 20,136,204,121,220, 50,191, + 56, 69,109,116, 85, 23,224, 19,112,100, 68, 25, 66,141,103, 76, 56,104,190, 72, +178,133,169, 38, 65, 54,101, 30,100, 96,145, 39,209,125,247,132,210, 11, 18,210, + 84, 28,200,116,235,145, 86,140, 64,147,114, 22,109,179, 89, 22,138, 48,214,154, + 96,142,160,193,202,129,104, 78,170, 14, 81,140,227, 46,196, 50,128, 53, 74,134, +233,143,109,248, 85,128,212,241,196,224, 4,141, 23, 3, 63, 44,172,240, 60,185, + 40, 99,248, 68,244, 53,133,126,232, 12, 11, 79,138,177, 97,100,111, 59, 67,223, +137, 68, 61,192,245,135,141, 96,196,101,221,248, 82,140, 46,142, 61, 11, 54, 83, +151, 14,187, 17, 59,195,184, 35,120,224, 93,184,165,146, 68, 39, 34, 70,183,170, + 0,158, 58, 63, 14, 40,221, 99,249, 47,134,245,168, 26,209,232,223, 24,155,155, +124,196,203, 27,168, 76,174, 4,126, 77, 13, 27, 44,140,197, 39, 14, 68, 68,205, +206, 15,150,210, 15, 49,245,171,160,167,115, 80, 96, 11,153, 94, 48, 10,252,173, + 6,151, 48,199, 36, 0, 83, 67, 93,199, 22,196, 43,194, 47, 55, 84, 58, 77,234, +169,137, 42,143, 21, 42, 86, 22, 12,176,204,109, 1,110, 10,216, 85, 8, 11,204, +166,178, 37,167,194,239,160,183,129,222,198,135,137, 65,102,187,102,229, 69,111, + 15, 87, 69,235, 32, 72, 47,236, 70,241,172,229,199,247,129, 21, 36, 88,250,100, + 78, 87,135,201,110,127,192,105, 58,150,150,110, 80,198, 51, 73,151, 12,224, 18, + 91, 5, 62, 58, 5,180, 56,176, 37, 13,127,137,128,141, 22, 89, 54,119,122,232, +117,114, 5, 83,195,213,166,221,133, 64, 57,169, 23,235,127,143, 5, 12,127,162, + 22, 6,129,241,192,220, 45,157, 55,176,218, 88, 49, 33, 79,211, 42,149,228,234, +231,130,191,150,141,221, 52,108,140,220,101,116,126, 29,229, 55,196,114, 91,216, +255, 99, 26, 8,236,212, 71,250,109, 78, 15,135,140, 84,244,166,193,139, 22, 25, + 8, 18,148, 85, 33,121,116, 19,143, 8,242,193,126,200, 47,204,186,190, 80,122, +193,113, 6,181, 41,156, 89,128,230,251,244,209,246, 38,106, 83,241,245,166, 16, + 86, 93, 62,102, 58,184,128,153, 91, 12,160, 65,211,255,153, 41,207,120,133,209, + 23,181,149, 58,128, 19, } ; -// ../Source/Shared/GB_matrix.h: -uint8_t GB_JITpackage_208 [7468] = { - 40,181, 47,253, 96,194,110, 21,233, 0,170,161, 72, 28, 44,160, 82, 81, 55,210, - 1,233,175, 11,171,245,204,242,121,158,206,210,154, 85,250,103,109,218,179,218, -169,150, 13,160, 84, 91,224, 74,124,255,218,114,188, 28, 47, 57, 29, 94,169,170, - 1,178, 1,192, 1,146,177, 12,170,229,150,227,198, 1,177,192, 86,185, 28,227, -234,116,168, 78,185,174,218,113,124,216,139,177,164,120,238,228,159,232,103, 17, -149,107, 57,200,100, 66,249,190, 38,231,152, 99, 36, 83,203,214, 67, 40,254,232, -183, 48,211, 12,236,201,148,244, 25, 91,186,231, 7, 8,222, 91,185, 12,181,242, -169,150,219,222,116,171,177, 62,198,179, 85,102, 94,233,124,217,149,228, 76,198, -159, 74,151,146, 21,114,157, 89, 76, 45,139, 73,175, 96,171,235,223,201,138, 64, -172, 41, 77, 20, 23,155, 61, 97, 96, 92,168, 48,241,220,114, 66,214, 75, 83,181, -118, 92, 74,217,160, 15,123, 35, 50,250,107, 69, 6, 18, 73,253, 21,170, 64,126, - 81, 39, 70, 2, 1,235,111,187,121,171, 19,234,222, 97,158,251,100,129, 86,165, - 71,136, 30,205,113, 45, 25,178, 4,140, 90,179, 55, 74,241,103,213, 79,206,240, -235,136,185,155,217,228, 83, 95,242,132,237,145,192,132,160, 50,116,157,159,121, -248, 84,201,112,249, 57,229, 73,169,151,249, 70,231,133,106,244,211,101,114,190, -238, 91,183, 1, 77,101,159,106, 69,156,113,216,232,176,149, 34,192, 84,246, 28, -236, 0,252,186,181, 98,163, 66, 95,114,220, 44, 9,116,168, 21,201, 54, 73, 48, -133,171,191, 74, 61,182,244, 91, 82,141, 38,228, 9,221,253,100,108,161, 78,200, -146,171,170, 41,101,185,250,211,177,199,228,202, 22, 7,132, 18, 69, 72,216,114, - 27, 37,181, 72,238,170, 39,100,234, 66,194, 15,217, 53,134, 68,195,131,140,136, - 98,141,228,103, 13,253,105,101, 90, 67,223,147, 20, 50, 16, 65,137,144, 36,168, - 80, 34,244,113,142, 66,223,154,125,160,145,164,155, 53, 29,107, 14,133, 54, 36, - 12, 7, 86, 92, 41,193,194, 47, 55,110,240,236,108, 3, 34,125, 58,198, 64,193, - 85, 10, 24, 7, 82,130, 74,175,244,161,247,108,216, 21, 83,106,177, 34,173,229, - 92, 12,227, 64,130, 78, 38, 16,201,100, 18, 44,153,122, 38, 95, 46,187, 64,119, - 46,144,122,157, 77, 24,204, 54, 41,197,176, 49,249, 29,177,241,168,107,185,190, - 40,191,105, 39,180,214,114,114,249, 97, 79,155,185,207,189, 76,233,145,165,191, - 94, 74,193,174,250,173,103, 32, 77, 75,136,217,229,191,213,111,164,133,248, 18, -201,192,182, 52,173,187,167,105,178, 44, 11,122,158,219, 4,153,166, 8,196,191, -165, 51,144, 68, 52,213, 34, 74,181,107, 62,224,182,170,165, 11,196,248, 84, 32, - 71, 91, 44,162, 64, 41, 24,204,239, 7, 55, 14,175,170, 39, 34,229, 73,183,247, - 54,155,110,117, 91,140, 63, 82,141,248,123, 35, 93, 66, 52,214, 38, 23,107, 25, - 91, 98, 26,215,133,249,119, 92, 27,160,205,114, 21, 9,124,233,127, 77, 88, 22, -221,209,119, 84, 10, 68, 81,212,225,177, 65,219,241,251,229,183,237,107,172, 95, - 55,201, 26,221, 85,150, 62, 95,181,136, 82,153,162,217, 20,181, 51,178,211, 88, - 33,215, 19,140, 96, 58, 49, 10,212, 1,244,112, 16, 90, 54,174, 1, 49,141,127, - 91,117, 96, 2, 98,171,198, 27,151, 81,223,163,206,109, 39,194, 34, 79,165,192, -229, 68, 68,133,176,200, 85,137, 29, 21, 73, 68,180, 84,226,134,199, 3,178, 56, -146, 66, 44,123, 94,129, 65,165,176,168,165,159,201,239, 40,197, 20, 51,252,166, -120, 15, 98,121,164,235, 3, 41,228,168, 90, 42,234, 57,101,249,233,220, 73,241, -204,190, 35,198,152,170,157, 53,125,234,109,182,190,151, 85,111, 51, 14,252, 48, -122, 36, 71,181,197, 48, 31, 16,118,124, 75,158,222, 78,159,176,159, 93, 83,176, - 33, 90, 83, 44,208,200, 37,127,116, 80, 54, 64,149, 2,219, 74,185,210,246, 88, -211, 19,154, 44,173,161,237,105,218, 73,178,180,150, 20,138,146,134,100, 13, 75, -136,233,183, 74,202,146,173, 13, 6,157,159,179,183, 26,245,205, 84,126, 8, 21, -201, 84,138,114, 6,174,132,128,152,252,253,170, 0, 58, 79, 10,215,169,204,118, - 46,245, 44,183, 14, 21, 46,236,156, 52, 61, 55, 67,177, 62,237,100, 92, 96, 68, -216,214, 16,136,177, 95, 69,224,123,159, 13, 59, 43,231,122,187,174, 42,118,140, - 63, 91,199, 27, 63,138, 47,185, 88,116, 8, 8,149,122,194,252, 35,211,210,191, - 33, 75,111,254, 12, 99, 7,123, 99,226,227,101, 31, 78,211,182,237, 27,250,199, - 89,102,197, 55, 84,161, 20,110,211, 20,250,112, 84, 45, 7, 88, 86,120,244,110, - 18,122, 54, 72,115, 40, 62,214,249, 84,140,122,230, 73, 58,150,193,214, 44, 79, -153,182, 60, 61, 25,142,114,104,216,155, 48,150,187,189,217,212,134,161,245,219, -219,166,127,118, 78,186, 63,244,243, 29,187,124, 42, 37,215,170, 30,255,132,222, - 66, 11,199,108,251,101,184,145, 9, 25,227, 7, 1,115, 89, 41,164, 4,244, 33, -201,209, 41,199, 20, 2, 34,131,106,228,175, 62, 63, 32,188,118, 66,223, 56, 85, -181,245, 78,245,107, 20,153,126,184,207, 47,102, 20,228, 75, 5,150, 23, 8,100, - 18,129, 68, 36, 80, 64, 65, 32, 97, 96,114, 64,162, 82,137, 40,149, 73, 70,122, -212, 78, 77, 38,150,143,115, 90,202, 48,155,160, 80,133, 62,185, 25, 26, 61, 92, -201,161, 20, 42, 32,166, 44,184, 53, 25, 83, 11, 95, 85, 75, 3,165,150,231,195, -158,144, 15,215,178,156, 32,243,212,151,238,240, 20, 40,176, 64, 99,199, 6,231, -241,160,184, 52,214,217, 23,139, 37,173,118,105,154, 78,120, 64, 64,116, 71,149, - 2, 49, 94, 34, 19, 74, 97,121,134,139,101,236, 32,101,241, 10, 94,236,160,133, -217,174, 95,212,158,139,163,179,119,131,169,154, 98,217, 25, 7,150, 10, 91,130, - 51,235, 18,211,123,189,105, 9, 76,110,181,113, 11,198,122, 58, 22,164, 43,133, - 53,107, 49,181, 61, 59,165,209,163,149, 94,174,111, 15,200,147, 62, 21, 9,228, -225, 68, 68,176,216,144, 44,244,241,112, 42,157,140, 1, 9, 64, 73, 36, 16,112, - 84,184,120,168, 19, 26, 61, 79, 61,190,215, 73,230, 6,203,254,215,209,167, 75, - 65,151, 15,230,252,236, 9, 23,115,157, 72, 86,169, 16, 72,213, 20,228, 0, 61, -161,156,193,126,158,168, 10, 0,138,207,165, 90,169, 37,179,224,145,120, 12,240, - 63, 6,240, 68,168, 82,232, 68,236,168, 26,193, 72,113, 66, 41, 16, 40,234,136, - 34, 10,236,117,150,199, 29,116, 44, 29, 20,199,191, 49,146, 38, 57, 26,172,203, -186, 32, 75,114, 44,174,120, 65, 81,114, 50,166,202,244, 68,104,146, 28, 7,146, - 90,244,113, 84,128, 62,209,209,133, 34,212,146,115, 17, 0, 98, 97,135,245, 99, - 48, 21, 83, 85, 7,144,239,101, 78, 65,230,169, 33, 43,147,185,156,148, 92,190, -118,165, 59, 79,211,173,140, 10, 29,131, 40, 8,161, 30, 99,171,121,131,185,108, -195, 33,140,146,139, 12, 73, 43, 50, 8,254,173, 17, 79,153, 7,180, 77, 24,247, -151,139,166,117, 79,147,101,109,177, 21, 19, 89, 86,219,229,118,218,184, 73,199, - 88,179, 31, 51,141, 46, 63,245, 67,135,128,216,118,191,223, 66, 11,238,132, 78, -230,250,171, 50,252, 14,159, 8,157, 56, 51,194, 96, 50,151,122, 30, 39,242,240, - 67,166, 48, 20,250,110, 62,207, 8,243, 6,130,202,132,194,114, 48, 18, 33,233, - 51, 61,235,188, 76, 30,184,112, 92,108,104, 72, 25, 27, 24, 11, 28, 23, 90, 49, - 23, 16,180, 57,152,184,246,153, 89, 54, 46,177, 8, 3,132, 10, 27, 23, 41, 3, -134,244,174,165, 63,180, 77,235,164, 59,235, 28, 26, 81, 96,166, 79,161,184, 52, -233, 93, 47,197,115, 89,186,247,162, 5,140,132,201, 95, 70,119, 54,108,185,202, -129,113, 65,138, 0,225, 1, 70, 3, 66,198,197,226,123,190,108, 43,166,254,210, - 1, 3, 24,240,182, 22,158,136, 72, 4, 94,234,193,131, 86,124,206,150,153,228, - 57,247,233, 63,191,235, 65,200,188,153, 60,109, 44, 55,123,243,207,229, 68, 6, -109, 15, 69, 25, 56,151, 99,203,205, 44, 62,159,176,229, 70, 45,203,237,161,171, - 31,124, 89,205,126,237,182,242, 55,165, 91,255,145, 41,118,251,226, 90,180,195, -236, 23, 42, 36,247,101, 25,150, 79, 68, 6, 97,171,229,161,255,178,124,175,101, - 95,120, 52, 75,137,226,168,228, 84,106,100, 41,116, 76, 72, 4, 5, 32, 0,160, - 0,179, 96, 0, 12, 14, 15, 79, 70,227, 41,109, 87, 62, 84, 2,139,218, 4, 85, -233,193,232, 20,218, 80, 28,202, 40, 0, 8, 34,192, 8,196, 8, 0, 4, 68, 0, - 96, 2,168, 19,209,140,140, 13,122,155,139,211,222, 22,114,241, 27,142,146,185, -144,171, 22,142,157,184, 76,227, 65,254, 47,236, 25, 87, 73,156, 40,150,242, 96, -229,214,114, 5, 99,210, 66,177,126, 98,237, 51, 16,114,109,206,109, 88, 49,234, -231,167, 1, 45, 78,240,217, 71,169,126,254, 60, 10,176,247,146, 95, 29,228, 58, - 43,248, 67,244, 86,113, 51,241, 14,218, 43,188,199, 17, 30,206,177,115,138,156, -188,121,149,185,119, 29,179, 77,133, 79,234,195,101,132,239, 53,183,148,173,166, - 64, 69,177, 83,210,248,224,234,201,115, 73,254, 1, 55,123,204, 13,119,104,169, - 85,188, 87, 35, 51, 72,105,151, 78,196, 41, 32,159,158,150, 59, 4,158,145,134, - 21, 40,163, 4,144, 58, 65,142,202, 85,175,173,225, 56,137,145,214,172,148,180, -107,250, 15,180, 8, 52,116, 3, 62,121, 22,155,213,185,118, 14,170, 31, 66,231, -146, 44, 29,197,190,158,218, 73, 32,184,242, 73, 89, 14,118,119, 83, 76, 70, 74, -228,230,184, 89,220, 83,180,237, 55,141, 51,194,104, 77,179,148, 75, 52, 38, 27, - 9, 4, 33,240, 85,123,199,196, 98,144,145, 68,211, 88, 40, 40,209,109,130, 72, -211, 10,107,205, 27,101,158, 34,213,101,156,161,141,147,194,127, 40, 98,142, 24, -215,130,106,111,130,157, 65, 37,241, 4,178,199, 8, 40,125, 58, 32,212,244, 97, -253, 18,192, 80,173,108, 89,121,113,198,133,160,164, 66,219, 92,154,122,247,133, -133, 38, 68,137, 80,203, 62, 97, 2,133, 59,234,171,126, 18,211,200, 17, 91,130, - 59,103, 68, 54, 21, 98, 69,133,212, 66, 85,150, 44,189, 25,131, 50,230, 57,163, -212,207,196, 92, 2,228, 35, 23, 8,170,193,122,218,230,162,182, 99, 28, 39,176, -189, 46,177, 18,173, 19,127, 30, 24,205,213,139, 43,130,250,216,121,130,158, 17, -183, 15,190,131,127,114,222,177,250,101,186, 25,189, 41,233, 46, 58,223,218,109, - 14,136, 62, 71, 56,190, 45,229, 76, 49,223, 30,114, 36, 64,233,239, 62,136,221, -254, 98,197, 20,173,173, 69,241,217,210,254, 34, 92, 18, 86,209, 39,176, 46,213, -215,164, 8,201, 4,114, 13,226, 16, 12,187, 65,181, 90, 59, 68, 46,102,208,157, -221, 23, 35,223,153, 14,253,234,113,243, 74, 5, 82,215,183,101, 24,160,226,123, -111,137,249,100, 63, 50,232,160, 83,123, 96,217,242, 34,246,228, 96,215,178,159, -217,148,237, 38,169,184, 7, 39,251,199,226, 18, 55,133,184,177,132,125,179,249, -246, 73, 45,142,200,253,233,209, 27,201,147,171,230, 60,114,176,216,174, 69, 29, - 25, 11,172, 24,216, 88,222, 33,160,186, 10,215, 52, 6, 71, 44,138,235,153,104, - 5,170, 60,173,208,202,231,109,176,222, 80,175, 7, 86, 13,182, 41,148,125,182, - 73, 65,198, 2, 48, 71, 43,241, 5, 93,131,237,172, 8,158,132, 85,210, 40,222, -178, 53,111, 98,118, 6, 70,159, 74,205,134,233, 27,149, 0, 30, 88, 12, 94, 63, -206,171,201,175,184,128,119,137, 80, 26,122, 23,232,250,156,241,229, 79,155,121, -154,109,203, 73, 62, 43,234, 86,248, 66, 72,176, 53,179,208, 16,188, 52, 46,176, - 75,132,237, 79,109,217, 82,154, 95,172, 35,162, 10, 32, 92,212,113,221,244,111, -101, 36,176, 97,235,162, 55, 99,111, 57,192,158,225,189,251, 37,120,108,163,252, - 46, 61, 41,245, 96,124,192,100, 19,127, 57, 26, 1, 42,254,182, 45, 70,139,234, - 71, 9, 63,233,244,122,161,140,144, 77, 32,247, 7, 72,213, 40, 75, 81,168,204, -240, 52,219,243,102,203, 28, 20, 55,170,179, 27, 41,165,101, 31,165,121,123, 26, -123, 78,101, 86, 9,159,102, 77,107,171,225,141,188,178, 31, 19, 84, 72, 5, 75, -239,217, 89, 55,205,168, 81,214, 46,132,213,245,166,107, 64, 75, 90, 7, 18, 35, -114,191, 31, 26, 79,203,194, 30,121, 32, 9,165,131, 96,154, 2, 31,164, 69,193, -223, 50,198, 49,144, 52, 37,195,209, 44,208, 91, 13, 89,146, 78,254,201,191,157, -153,117, 59, 73,251,251, 29, 58, 72, 43,191, 28,250, 39,185, 88, 9,147, 38,113, -224,189,119,188, 65,109,172, 70,218, 83,152, 49,129, 52, 34, 92,190,213,163,198, -200,124,113,188,176,132,189, 15,162,210, 66,199,248, 98,117,162, 59,146,163,105, -185,233, 53,179, 70, 2,179,131, 74, 64,252,248, 1, 72,166,125,226, 46,223,159, - 91,208,229, 11,157,156,143, 67, 8, 76, 33,151, 21,245, 19,184,122,233,223, 11, -172, 39,146,240,126, 70, 70,147,139, 97,201,184,130,129,228,130, 7,192, 32, 39, - 34,197,129,179,136, 39, 41, 69, 35,136, 50, 26,213,248, 28, 26, 61,124,110, 26, - 1, 62, 28,141,104,124,128,166, 58, 74,141,234, 56,116, 84, 60,144, 5,140,146, - 96,230,129,178,203, 73,152, 30,196,106,119,106,124,187, 2,232,132,180,104, 70, - 43,192, 77,173,181, 36, 30,241, 39, 79, 93,242,244,231,200,129, 24, 54,200, 73, - 11, 29,118,115, 19,232,125,229,200,247,100, 83,166,148,224,161,183,214,213,200, - 32,155,101, 26,136,213, 60, 9, 38, 96,249,187, 40,253,138,180,223,178,111, 24, -216,112,209, 48,104,222,146,225,236,124, 30,160,129,176, 49, 14,215, 62, 67, 8, - 90, 52,141,209, 96,106,141,240,155,221, 34, 94,192,255, 49,248,131,157,220,108, -130, 63,110,110,116, 41,144,116,203,111, 62, 10, 4,123,202,189,138,235, 90,210, - 72,102, 42,233,138,176,104,105,101,207,205,135,119, 74,106,220,214,125,112,186, -235,119,121,122,124,156, 43,227,183,239, 74,189,161,144,222, 24,154,151,254,185, -237, 39,222,163, 19,131,254,184, 76,139, 21,181, 4, 45,251, 13,223, 37,158,138, -185,135,111,142, 45, 67, 31, 85,250, 52,100,116,127,112,176, 77,116,175,231,153, -157,176, 35,162, 92,197, 31,108,166,112, 7, 45, 41,103,150,107,153,132,148,207, -160, 78, 46,120,110,136,142,126,120,167, 6,103,127,183,234, 35, 39, 84, 86,140, -112, 70,247, 84,115, 4,153, 64,151,201,245, 89, 79, 31,172,162,182,120, 68, 22, -246,235, 42,250,102, 17, 44,124, 97, 33,142,249,206,124, 19,147, 90,158, 25, 45, -142,239,209,175, 93,151, 97,214, 94,126,106,124,139, 76,107, 71,102, 7,121,100, - 19, 12,190,218,165, 33, 13,252,124,139,219, 60, 55,222,167, 25, 51, 85, 21, 66, -106, 26,196, 92,192,188,160, 11,201,215,104, 79,121, 81, 77,130,252, 35, 58, 61, - 72,168,215,139, 51, 89,248,122,245,197,169,239, 3,231,163, 25, 20, 43,177, 75, -125,107,143,185,228, 17,229,151,123,209,138, 82, 37,112,251, 76, 55, 73,155, 33, - 0,174, 47,127,109,229, 64,234,154,104,153,174,234, 15,150,185, 53, 36, 78,196, -206,206,255,109, 61, 21,141,184,249,128, 49,236, 18, 7,174,133,101,229,212, 68, -200,113,140,241,192,162,181,112,105,101,201,238, 12,239,208,227,211,137, 0, 6, -224,250,150, 20, 75,171,217,110,214,220, 49,209,140,168,190,229,170, 34, 50, 77, -136,160, 78,254, 41,192,243,135,126,237, 56,187,104,230,176,224, 39, 88,254,186, -236,139, 53,184, 15, 69,112,129, 19,152,106, 51, 99, 61,234, 48, 71,250,113, 3, -234,106,242,113, 34,199,159, 39, 36, 30,188,190, 93,145,193,155,163, 64,166,241, - 58,198,184, 38,153, 97, 45, 59,215, 75,243, 18,113, 60,123, 13, 25, 79,124,228, -194,183,200,228,158,140, 82,220,187, 68,178, 77, 80,175, 43, 42,110,208,210,120, -162,112,130, 13,230,238, 6,125,254, 91,159,101, 9,144, 96, 84, 4,114,225,106, - 95,115,189,163,131,251, 48,161, 16, 0, 98,233,140,104,104, 53,206, 20,148, 78, - 21,179, 53, 49, 73,112, 77,209, 17,255, 50, 67, 54,100, 41,135,101,232,179, 0, - 25,173, 46,167,200,234, 18,166, 75,246,120, 58,202, 8, 76, 29, 89,166,140,101, -239, 26, 98,135, 33, 91, 9,144, 62,201, 78,202,120,154, 49,222, 78, 68, 79,188, - 85,124, 58,173, 12,227,200, 6,110, 67,227,184,151,129, 40,134,203, 6, 10, 27, - 52, 77,121, 84, 13,249,108,139,221, 91,126,160, 55,149, 73,170, 76, 87, 32,119, - 66,213,186,218,156,101,169, 64, 96, 49, 15,220, 98,191, 67, 94,249,146,145, 61, - 4, 39,253,235, 59, 64, 50, 20, 67,249, 32,164, 11, 8,162, 3,109,135,176,123, -148,193,192,251,131,190,131, 44,216,120,132, 74, 33,164,184, 51,138,224, 67,237, - 78,131, 24,150,244,107,217,248, 91, 23, 96, 14,153, 20,233,215, 17,129, 3,133, - 43, 81,252,177,120,197, 41,141, 9,140, 37,189,144, 77,176,184,166,165,157, 41, -199,207,107, 40, 99,135,103,235, 64,227,169,120,108,104,168, 6, 39,224,189,168, - 93,163,233, 2,162,219,108, 35, 41, 49, 79, 70, 7,154,210,185,179,213,102, 3, -193, 55, 83, 87,242, 64, 21, 88,214,232, 58, 50, 55, 38,108,182,186, 88, 25,140, -119,250,155,179,194,155,214,255,178,160, 54,126,125,175, 99, 44,107,245, 30,159, -111,176, 48,143,228, 61,130,130, 24, 89,245,196, 96, 59, 52,144,211,111,213,176, - 30, 89, 75, 59,179, 28, 23,106, 74, 9, 65, 60, 31,184,142, 80,208,217,146,162, - 55, 49,212, 58,144, 90, 4, 17,198,175,254, 54, 21, 44,254, 79,148, 77,210,179, - 60, 70,220, 0,151,225,211,115,205,185,127, 54, 37,243,109, 7,150,124,159, 91, - 4, 67, 67, 27,193,179,252,244,100, 99,108, 79,221,126,139,102, 52,241, 94,137, -158, 5,119, 80,189, 2, 36,212, 71,165,207,107, 64,110,236,163,241, 9, 85,246, - 92,214,211,241,167, 3, 23,151, 9, 29, 33,248, 74,123,151, 61,245,197, 10,140, -216, 81, 4, 70,108, 52,107,177,148, 17,210, 69,182,111,134,167,130, 94,210,177, -181,220, 26, 12, 4,253,232, 26,120,198, 93, 14, 90, 8,174, 68,190, 81,159,160, - 73,140, 8, 8,109,184,238,189, 62,233, 90,237, 85,238,210, 43,253,228,255, 72, - 10, 11, 30, 32,125, 31,155,101, 54,220, 85,210, 37, 36,138,233,196,152, 63,149, -237,140,133,189, 58,232,159, 90, 66,165,118,168,133,194, 16,146,169,242, 45, 51, -111, 86, 10, 18, 56, 85,204, 56,132,168,145, 84, 83, 94,163, 16,167, 82,128,147, -242, 63,224,216,160, 94,204, 76,224, 48, 67,114, 70, 24,237, 41,163, 82,183, 36, - 62,138, 55,215, 82,174,209,173, 67,173,120,106,161, 32,138,145,182,107,171, 44, -214, 49,170,179,213, 65, 33,121, 60, 8, 76, 67,171, 55,127,123,206, 22, 10,126, - 31, 96,210,215,192,204, 31,137,129,184,179, 52, 20, 10,207, 98,152,172,149,145, -139,199,203, 22, 69,175,205,100, 12,192,118, 35,234,149,135,176,118, 71,242,125, -174,250, 58,215, 99,112,144,219, 51, 23, 74,114, 45, 18, 74,159,151,186,132, 49, -102, 23, 5,147, 39,132, 10,234,216,233, 80,120,152,184, 32,110,166, 56, 44,110, -165, 13,244, 8,164,159, 78, 55,147,200, 48, 98,135,153,237,145, 24,183, 52,126, -146, 0,222,111, 25,220, 99,207, 42, 69,236, 96, 2,103,146, 83, 31, 86,104, 70, -105,152,240,115,243,212,139, 57, 27, 93,155,233,197,213,242,158,204,178, 45, 26, -179, 26,162,155, 40,202, 54,227, 56,180,130, 85, 29,202,221,151,122, 20,193, 19, -219,156,160,121,135, 14,127, 0,163, 65, 77,140,135, 79, 13,201,218, 16,167,183, - 56,156,244,117,160,114, 46, 15, 17,254, 66, 53,201,144,205, 97, 11,238,107,134, -178, 16,195,125, 91, 39, 58, 61,110,203,105, 56,125,231, 86,242,126,171,234,110, - 1, 56,252,170, 69,115,102, 39, 23,253,187,102, 85,155,141, 85,161,137,117,230, - 60,186,186,210,238,110,189, 24, 5,254, 35, 7,195,181,246,203, 98, 8, 1,149, -202,231,219,106, 70, 37,155,103,169,227, 68,100,141,241, 28, 6, 58,209,140,177, -134,148,149,230, 80,112, 59, 1,207, 44,186, 20,108,241, 50, 86, 1, 45,190,210, -120, 73, 84, 67,219,188,160,203, 20,137, 19,215,145, 84,116,249,229, 37, 85, 57, - 39, 46,159, 27, 36, 36, 12, 51,189,188,237,111,107, 94, 65, 13, 95,106,250, 21, - 61, 2,104,115, 52, 19,255, 28, 44,107, 44, 54,167,157,234, 53,246,146,228,251, -251, 90,167,116,183,164, 35, 8,118, 64,119,125, 39,218,111,225,227,219,246,197, -187,240,249, 41, 97,233, 4,195,145, 93,152,147,125, 27,178,218, 3,163,146,131, - 82,118,183,222, 58,104, 90,152,193,244,171, 64, 57,152,126,136, 12,219, 3,175, - 19,248, 28,196,132,165, 91, 37,212,190,154, 17,217,102,201,176,209, 19, 36,215, -129, 11,131, 3,183,109,171,163,109, 80,233, 23, 10, 84,107, 18, 30,119,142, 67, -193, 99,177,148, 88,160,119, 54,116, 92,145,191,154, 42,187,215, 8,100,183, 82, -238,174,212,188, 13,112,205,121,193,132, 24, 82,211, 63,181,110, 22, 75,252, 16, -223, 60, 53,215, 94,214,252,124, 53, 62, 88,208,117,142, 1,173,197,155, 46, 2, -163, 49,164, 55, 68,192, 41,237, 18,118,140,221,176, 85,195, 11, 39, 18,232,160, - 87, 32, 92, 85, 17, 55, 76,230,212,145, 80,208, 1,106, 9,171, 83,181, 34, 73, -154,131, 21,185, 34,237, 80, 53, 97,204, 3,125, 74, 85,115,229,227,160, 39,214, -238,211,144,234,245,243, 60,101,214,237,170, 19,233,210,151,195,253,187,127,152, - 90,145, 2, 60,232, 58, 46,193, 49, 60,120,238, 8, 16,144, 86, 4,109,219,211, - 77,167, 33,241,211, 76,114, 44, 80, 26, 48, 78,124, 18, 40,113,201,243,148, 11, -134,212, 62, 11,183,207, 91,240,241,208,162,131,149, 3,202,236, 78,175,180,182, -191,204,119, 45, 92,150, 53, 6,136,221, 95,174,136,171, 43, 94,195,245, 98,227, - 82,187,124, 14, 55,229, 70, 68,170, 20,105,117,111,242, 72, 5, 38,203, 17,215, - 84,133, 29,252,184,121, 64, 69, 94,225,162,191, 74,183,194, 82, 89, 0,114,187, - 39,182,100,111, 53, 13,107, 67,136, 34, 65,142,205,203,150,197,202,230,174,155, -148,166, 67, 87, 14, 44, 91,176,237,103,128,161,234, 55,160, 28,135,215, 78,172, - 85,248,113,132,226,131, 48,117,248,132, 15,200,196, 24,135,196,145,134,253, 81, -230, 77, 51,236, 99,192,172,228, 68, 52,220, 55,121,202, 67,119,129,224, 14, 49, - 65,126,247,114,110,143, 97,147,147,108, 42, 33,252, 42,113, 3,137, 69,105,240, - 90,181,117,165, 41, 67,190,235, 22, 52,159,243, 28, 14, 86, 37,172,134,160,147, - 4,105, 37,103,228,138,174,117, 57,211,187, 59,255,216, 77,177,221,172,216,100, -235, 24, 37, 38,150,133,246, 97,135, 53,172,138,255,194,221, 96,126,169,130, 22, -122,157,171, 41,143,254, 71,123, 44, 67,143,114,159,193,138,249, 14,148,216, 88, -161,217,117, 11,163, 19,148,127, 16, 84,137, 10,240, 20,116, 43, 46, 38,196,247, -179, 38, 27,132,147,255, 42,249, 80, 84,196,120, 81,103,162, 96, 22, 88,139,212, - 58, 28, 38, 54, 26,135,219,113,110,228,234,100, 22,207,134, 1,141,138, 27,154, -216, 7,151,185,152,144,192,192,149,160, 5,248, 31, 37,108,166,174, 67,110,115, -211,129,243, 52,240, 59, 1,248, 0,151, 82, 26, 70,138,193, 1,145,223,220, 80, - 16,119, 48, 52,173,151,189,172, 25, 19,176, 2,201, 57, 29, 17, 30, 92,228, 4, - 92,205,146, 5,102,236, 63,213,152,100, 49,128, 14, 58, 47, 92,252,161, 12,190, - 29,195,147, 28,206,103,233, 89,190,221,169, 20,242,179,107, 17, 44,238,168, 40, -168, 16, 82,193, 51,166,178, 95, 23,209,251,110,231, 52,244,177, 69,150, 66, 85, -235, 92, 5,121, 2,188,147,151, 42, 13, 9, 86,211,175,215,207, 30, 79,201, 10, -185,101,242,170, 9,154, 81, 92, 0,191, 69,113,244,122, 51,239, 6,136,107,214, -210,213,149, 99, 2,215,226,181, 27,173,204,225,131,171, 36,126, 16, 87,188, 77, -200,126, 11,175,211,169,101,110, 1, 41, 5,153, 6,229, 75,150,160, 26,194,212, -219,117,252,123, 2, 56,247,163,134,128,208,172,218, 2, 79,121, 27, 35,211,210, - 86, 7, 51,175,150,231, 2, 33,103,114,130,109, 66,229,142, 43,209, 20, 75, 99, - 70, 16, 67,254, 42, 54,116,224, 17,186, 81,130,236, 74,171,162, 75,153,108, 71, - 82,203,215, 71, 73, 98, 80,247,151,168, 4, 21,249, 31, 42,205, 93, 6,177,201, -117, 14,241,108, 54, 43,211,210, 49,136,134, 98, 75,199,116,128, 44, 33,200, 93, -171,189,195, 99, 5,154,200,199,201,235, 14,114,199, 63,198, 15, 21, 48,180, 28, -117,114,251, 24, 61,142,144,141, 96,190,155, 27, 48,241,240,177, 41,213,244,175, -182,121, 98, 56,232,100,241,115,135, 42, 55,199,197, 53,180, 87,209, 7,125,147, -109, 5,242,227,242,194, 38,158,179,237,228, 39, 24,223, 4,165,255, 44, 60, 3, -136, 65,182,199, 74,169,161, 75,178,190,227,143,237,129,105, 4,125,168, 18, 26, -126, 32, 1, 55, 89,156,218, 48,163, 3,182,142, 68, 8, 97,200, 57, 61, 4,109, -130,200,173,182,197, 38,145, 94,240,170,154,224, 77, 33, 0, 89,154, 17, 68,174, -165,165,201, 39,209,144,102, 29, 62,170, 37,136, 48, 77, 35,132, 21,250,151, 37, -120,225,178,190,210,171,110,186,245,144, 41,253,178,186,144,160,250,158, 49, 9, -201,137, 73,192,141, 7, 10,118,200,140, 41, 72,157,187, 92,140,233,117, 62,246, - 36,190,108,236, 80, 56, 3,160, 37,125, 13, 69,204, 70, 98, 15, 8,148,239,217, -220,201,195,245,102, 71, 99,240,173,129, 22, 64,120,115,187,196,103, 72,209, 60, -255,129,128,174, 91,202, 88,102, 51, 87,215, 29,133, 42,231, 36, 18, 60, 14,101, -163, 39, 59, 43, 17,250, 68, 4,121, 90, 28, 4,174, 54, 9,148,118,206,159, 79, -196, 79,175,146, 32,213, 28, 24,145, 34,201, 25, 56, 79,130,203,142,255, 49,159, -219,179, 9, 41,177,157, 44, 12,153,248, 34,176, 45, 82, 72, 23,107, 62,109,198, - 82, 79, 97,230, 54,118,231,165,186,116, 21,156,228, 5,129,249, 68,247,116, 27, - 93,112, 10,165,157,101,163,157, 20, 49,217, 64,215, 71, 73,220, 98, 19, 4, 3, -146, 73,249,237,201,188, 90,170,115,140,120, 22, 5,188, 92,168, 66, 64, 19, 17, - 39, 29, 79,250,141, 93,224, 29,164, 28, 66,239,182,121,168,222,171,176,142,139, -123, 34,216,109,203,200,113, 59,149, 39,164, 74,153,168,159,209,214, 68, 12, 33, -119,229,244,207, 4,166,241,174, 73, 9, 12,223,120, 92,120, 2,220,174, 59, 55, -156, 76, 66, 94, 5, 99,128, 23, 29,198,208,164, 46,173,147, 75, 27,148,146,215, -193, 27, 55,117, 3,191,140, 78, 65, 33,240,137,209, 7, 91, 46,166,155, 36,170, -233, 80, 36,116, 87, 46,174, 78,200,172, 4,240,128,200,115,128, 5,100, 57, 41, - 58, 96, 74, 55,235, 38,163,187,175, 83,124, 92,170,199, 33, 75, 51,231,124, 51, - 92,183,190,220,223, 3,203,122,101, 82, 50,239, 40,252,178, 78, 77,215,143,153, - 5,136,208,139,194,135,145,107, 21,222,209,197,205, 4,192,231, 33,243,205, 4, -224,195, 33,147,205, 4,224,163, 33,147, 61,144,152, 63,225,163, 2, 6,172,245, -164,170,210,219, 92, 16,244, 0,170,197,156,117,103,154,232,127, 84, 75,128, 60, -238,237,170, 90,130,155, 40, 36, 0, 61,202, 92,242, 12,162, 42,227,173,254,111, -200,150, 3, 33, 97,138,188, 21,122, 91,209, 30,223,251,252, 10,248,229,217,176, -148,102,240,144, 61,245, 85, 70,215, 91, 10, 88,195, 63,114,204,243, 49,155,174, -127,160, 50,131,174,195,190,192, 4,128, 5, 19, 37, 5,112,140,216,144,135, 19, - 10,189,226,199, 0, 92,232,252, 19,127,240,201, 23, 52,192, 0,238,248,236,103, -111,204, 40,186,121,245, 70,224,178, 16,216, 39, 26,223, 5,102,165,212, 88,166, -230,228,159,187,220, 30, 32,249, 10, 25,240,171,246, 14, 63, 85, 77,156,211, 34, -149,135,113, 62,175,164,185,205, 95,202,235,134, 4,122,106, 48,234,203,152,196, - 28,227, 55, 50, 26,174,253,149, 76,110,245, 35, 14,104,179,246,212, 68, 10,178, - 11,202, 45,239,202, 6, 85,215,167,230,242,171, 1,220,220,174,131,185,213,115, -187,195, 57, 14, 61, 8,175,197, 24,142,123,241,106, 57,147, 29, 29,151,213, 1, - 85,119,124, 17,163, 87,135, 14, 27, 51, 96, 8,112,121,222,102,126,157,132,167, - 85,229, 62,122,120, 73, 79,234,201,228, 1, 49,142,230, 65, 60,213,137,246, 58, -221,139,202, 12, 83, 97,246, 9,137,218,118,230,203,220,157, 98,227,225,205,174, -119,230,103, 2, 73, 48,142, 83,183,121,226,147,231, 35, 81, 47, 15, 68,178,126, -208,148,206,134,160, 37, 21,209,172,246,136, 70,113,117,116, 28,137,216,182,246, - 55, 38,134, 29, 98, 0, 6,183,199, 33,139,236,134,105,122,171,138,247, 23, 47, -113,117,149,117, 6,182, 59,167,150, 51, 1,222,226, 83,132, 98, 16,111,241, 5, - 39,230,102,101,110,253, 99,105, 95,218, 45, 23, 21, 85, 15,165,168, 24,218, 65, -172,141,240,194, 82,223,229, 39, 88,227, 22,227, 70, 2, 35,166, 28,249, 64,216, -162, 85, 82,123,126,220,211, 41,166, 10, 91, 62,174,174,101, 16, 66,178,238,238, - 74, 95,215,141, 29, 73, 38,197,213,105,120,183,211,193, 15,242,134,159, 46, 99, -225,251, 56,141,249, 67,140,214,133, 30,156,139,114, 69, 1, 20, 60, 79,204,224, - 76,112,113,193, 62,251,172, 64, 48,205,197,231,196,255,198, 60,245, 73, 64,204, - 42,119,228, 92, 11, 46,204,224,182,172, 57,152,218,156,245, 26, 60,190,189, 53, -120,119, 99, 29,102,248,176,220, 40, 36,130, 68, 28,133,227, 33, 46, 46,108,179, - 98,188, 22,199,136, 15, 30,242,107,252,130,142, 78, 58, 99,166, 35, 85,101,239, - 64,111,244,133,107, 38,144, 0,130, 82,228, 68,128,234, 2, 15,117, 94,147,146, - 95, 46, 82, 52,196, 60, 74,247, 96,217,239, 76,201,228,143,204,160,127,211,243, - 79,209,108,182, 80,247, 3,140,158,144,116, 46,203,126, 17,184,162, 48,246, 53, - 97,143, 80,236, 56, 77,194,126, 61,137,153,171, 53,102,196, 27,215, 83, 41, 88, -210, 36, 0,254, 60, 11,124,169, 83,120, 1,113,225, 82,114, 42,154, 55,207,155, - 41,232,110, 82, 88,112,176,204, 60,118,236,185, 42,180,132, 81,142, 45,156,216, - 32,151,120, 23,234,126,176, 52, 28, 38,244, 11,168,118,190,103, 36, 82,159,216, -178,150, 2,130, 27,127, 11,222,160,193,224, 44,159,167, 70, 44,255,166,221,218, -155,135,247,234, 53, 61,220,220, 83,244, 46, 52,216,178, 61,232, 50,145, 33, 18, - 43, 16,126,114, 27,186, 0,188, 34, 89, 39, 18,135, 60, 90,221,242, 20,166,129, -126, 23,157,191, 3,172,235, 66,189, 45,234,122,150,211, 50,104,224,132, 14,136, - 90,112, 11, 44, 86, 69, 44, 20,199, 82,197, 68,103,148,206,111,109, 51, 33,112, -134, 23, 28,219,104,170,136,239,125, 12, 73,220, 97,239, 90, 51,207,200, 28,230, -253, 4, 25,250, 19,251,238,142,141,193,216,137,251, 57,234,121, 48, 48, 14,251, -237, 26, 36,253,166,228,136,255, 69,148, 51,136,109,192,125,102, 29,105, 91,116, -234,194,242,251,162,120,162,100,172, 60,192, 50, 31, 74,182, 90,108, 35, 88, 44, -160, 49, 90, 17,148, 53, 27,137, 50, 90,147, 64,138, 56,206,229,148, 28,140, 14, -127,222, 8, 39,178,128, 22, 13,210,134,142,134,183,111,138,254,169, 36, 43, 44, - 56, 75,176,161,141,174,145,227,223,102, 17, 54,118, 44,119,158, 11, 54, 96,233, -117, 4,160,195,102,213,180, 59, 8, 79,248,151, 81,123,140,201,200, 13, 64, 48, - 4,208,238,142,119,135, 90, 96, 54, 0,166, 88, 36, 2,228, 88,131, 72,227,220, -224, 14,130,253, 83,135,216, 36, 32, 11,182, 49,116,181, 13, 84, 67, 72, 53, 24, - 50,245,235,138,244,255, 15,128, 13,116, 9, 34, 72, 1, 38, 38,131, 21,207,246, - 87,162, 27,144,159,227,252,225, 88,152,176,243, 60,255, 86,145,107,157, 4, 69, -110, 30, 69,244, 68,178, 5,161,199,102,161,161,221, 41,172,114, 15,117, 51,181, - 87, 77, 64,185, 82,222, 17, 60,171,211, 58,156,174, 63,147,225,225,169,225, 91, -158,164,235,191,245,254,210, 76,128,160,211, 88,161, 56,241,225, 32, 40,205, 45, -190, 54, 22, 63, 81,103, 33, 27, 97,141, 40, 24,133, 54, 46,231, 63,174, 58, 1, -171,179,134, 73,190,228,221,116, 36,114, 0,245,166, 31,241,166,232,211,164,148, -211,146, 9, 95,135,188,175, 94,189,171,204, 73,143, 13, 86, 10,201,171, 6,134, - 76,120, 78,195, 9,230,183, 22,209, 52, 97,237, 52,227,122, 6,212, 58,226, 56, -243, 97,140, 25, 58, 5,243,124,182, 68, 72, 96, 26, 16, 39, 46,130, 62,167, 75, -128,172,181,107, 65, 66, 48,161,209,115, 60,154,252, 21, 15,177,226,121, 46, 96, -120,213,156, 16, 27, 58,234,115,206,188,221,162, 98, 57,153,122, 0,198, 91, 73, - 90, 13, 97,176, 57, 45,185,219, 44,224, 36,132, 35, 2,205, 67, 32, 32, 49, 91, -205, 52, 41,245,217, 54, 88,209,119, 12,223,161, 66, 24, 89,123,138,188, 67,108, -251,158, 3, 17, 15,119,253,156,192,244,215,108,197, 96,151,200,132,127,179, 7, -205, 40, 82,135, 74,100, 51, 86,229, 41,192, 95, 46,254,130,255, 8,211,147,119, - 27,105, 76,146,156, 29,217,252, 98, 89, 39, 62,110, 91,163, 45,242, 33, 92, 16, -118,114, 1, 96, 73,188, 26, 18,159, 82,173, 4, 7,141,116,240,141,182,187, 14, - 99, 98, 48,248, 29, 87,124,227, 8,155,103,234,179,150,170,243,108,125,152,199, -231,232, 82, 64,124,145,171,124,115,242,113,111,195,199,117,118, 23, 20,233,167, -111,127, 18,215,146, 50,243,117,169,132,226,181,174,128, 29,205, 34, 65, 30,193, -219, 47, 12, 54,202,174,216, 91,213, 32, 63,187,156,237, 56, 67,124,170, 12,203, -155,112,230,162, 5, 71,132, 56,242,135,164,156,253, 5,124,189, 9,118, 15,122, -142,107, 48,147, 27, 60,213,249, 8,240,252, 6,208, 68,167,208, 21, 16, 45, 93, -239, 19, 26,136, 8,129,155,230,131,159,153,214,199, 24, 17,238, 56, 42,229,233, -226,224, 10, 88, 75,189, 8, 12, +// ../Source/Template/GB_subassign_06d_template.c: +uint8_t GB_JITpackage_204 [2482] = { + 40,181, 47,253, 96, 36, 80, 69, 77, 0, 26, 74,220, 13, 40,176, 86,117, 14, 84, +114, 79, 19,104,134,208,160,171, 26,251, 89, 97, 43, 12,243,105,120,183, 22,226, + 76, 23, 78,137,212,133,129,227, 7,253, 7,189,159, 18, 92,215, 0,214, 0,201, + 0,191,231,133,156,148, 30,201,201,176,136, 9,194,166, 5, 82, 82,174,161,137, +235,180, 50, 11,227,147,129,166, 5, 72,114,178, 22,222,140, 41,103,115, 93,124, + 46,139,153, 97, 21, 92, 13,192, 57, 4,109,125,119,249,185, 69,159, 78,166, 41, + 5,243, 42, 79,133,133,108,235,163,200, 86,173,122,120,142,122, 74,234,158,142, +103, 90,124, 46,141,255, 39,211,199,219,214,128,105,179,145,243,186, 62, 18,231, +122,179, 97,192,100, 64,128, 96,233, 78,163,160,252,229,118,229,106,182,189, 97, +150,198,182,181,186,177,108,104, 60, 4, 91,143,220,198,253, 57,206,157,168,126, +238,121,242, 49, 1,193, 0,193,194,112, 96,128,240, 74,163, 30,113, 29,161,154, + 19,200,151,186,252,145,106,246, 8,146,155,136, 14,164,119,226,210,248, 82, 16, +212,185,134,160, 73, 62,243, 7,233, 96,253,210,153,122, 32,169,243,220, 22, 12, +166, 21, 85,140,105, 40,196, 51, 98,226, 5, 5,147,165,160, 32,119,224, 19, 23, +152,230,226,242, 88,116,166,230,218, 68,112, 48, 36,117,208,133, 69,112, 58, 29, + 0,242,155,149,242,216,240, 40,169, 91,124, 58, 26,115, 3,251,100,146, 51, 47, + 11,219,128, 82, 6,222, 64,253,242,131, 67,188, 58,120,134, 42,161,164,249, 24, +169, 47,255,179,211, 79,184,219,162, 75,189,211,227,173,219,254,219,215,229, 38, + 97, 6,142,144,160,245,136,173,252,153,143,238, 71,242,246, 66,225,183,225,141, +246,237, 34, 30, 97,154,237,148, 55,177,148,186,102,115, 81, 92, 76,215, 71,110, +172, 75, 51,178, 97,167,125,179,120, 52, 20,233,127,242,253,139,215,158, 71, 47, +245, 84, 22, 10, 10,245,236,115,129, 64,146,171,155,197, 60, 88, 26, 44,229, 60, + 31, 44,159,148,152, 87, 22,245,140,247,125,161,103,108, 63,173,177,215,127,172, + 74,228,171,129, 95, 30,142,108, 82, 20,245, 12, 36,173,170, 77, 42,166, 81,130, +177, 68, 82, 27,157,111,179,193,144, 8, 22, 60, 72,250, 78, 73, 34,122, 65,155, +109,227,190,224,113, 87,207,163,191,120,244,134, 24,139,253,108,135,110,169,118, +249,190,221,145, 60, 86, 90,238, 71, 11,206,242,123,171, 35,117,251,229,210, 55, +204,161,133,193, 54, 26, 60,198,249,229, 25, 82,233,228,240,116, 38, 16, 3,143, + 74,251,228,185,239, 29,122,116,228,211,168, 91,150,101, 89, 37, 85, 9,192, 5, + 4,222, 84, 83, 7,109,100, 6, 65,149, 97, 21,241,126, 89,163,220, 99,219, 22, + 81,247,218,222, 30,189,180,117,174, 37,239,214,173, 20,250,214, 56,180, 95, 99, +170, 29,215, 46,251, 9, 42,210,253,184,127,182,116,179,237,183, 39,162, 47,121, + 61, 82,179,214, 28,215,191,223,111,109,235, 98, 2,155,150,102, 89, 27, 15, 7, +203,141,111,187, 67,199,180,139, 29,222, 72,194,182,226,219,246, 70,104, 40,212, + 80,107,215,129,160,124,214,234,205,184, 3, 83, 24,240,204,100,107,135, 68,159, +151,146, 34,155,163,190,117,232, 25,135,164,148,171, 3,251,116, 50,235,202,144, + 82, 86, 75, 74, 25, 43, 22,134,230,250, 76, 13, 7, 3, 77,201,153,144, 31,143, +149, 25,120,200, 51,150, 5, 30, 84, 98, 5,122, 98,140,210, 51,179,107,226,177, +147,212,229,164, 8,233,145,119,121,244, 88,133, 56, 96, 62,170, 46,241, 66, 97, + 14,226,145,201,244,179,199,253,109,249, 15,231,170,195, 65,212, 42,137,218,210, +118,132, 15,128, 21,234, 97,254,140,156, 25,223,202,141,168,117, 76, 5, 41,174, + 23,185,157,152, 11, 77,185,193,245,241,126,143,248, 54, 88,234, 14,158,169,132, + 50,167,126,209,193, 50, 44,251, 72,207,140, 49,223, 41, 29, 46, 21,202,126,247, + 91,205,143,211,193, 99, 40, 55, 38, 53,105, 74,145,143,224, 99,137, 5, 2,254, +164, 82,113, 56,120,204, 13,168,154,105,198, 84,123,225,214,157,134,169, 73, 10, + 3,130,148,168,162,172, 20,161,153, 17, 25, 73,146, 82,161, 49,114, 24, 4, 34, + 81, 26, 72,121,180,119, 30,146,160, 40, 15, 66, 24, 66, 65, 40, 66, 12, 33,196, + 16, 66,140,192,145, 9, 39,144, 64, 68, 68, 36,184, 77, 58,133,129, 65,123,218, + 2,106,135, 86,180,202, 86,174,243,116,154,144,217, 44,188, 87, 85,161,186,135, + 58,179,255,247, 11,241,248,105,239, 60, 34,235,172,136,130, 31,212, 45, 38, 87, + 55,144,158,208, 22,201,171,167, 16, 7,102,234,239, 50, 9,250, 3, 74,104,132, + 84,162,212, 90,253,244,207, 97, 8,208, 66, 15,144,151, 21, 84, 56, 37,124,163, +227,171,105,165, 49,106, 33, 66, 67, 89, 63, 83,166, 56, 45,238,173,130, 30,220, + 94,133,104,140, 61,104,186,152,171,189, 51, 24, 18,231,180,219, 49,101,173,188, +231,241, 35, 22,254,212,149,221,188,209,125,143, 45,129,153,177, 32,185, 20,200, +209, 6, 48,219, 93,123, 53,126, 3, 31,205,249,162,236,238,118, 44,156, 60, 55, +123,179, 61,142, 38, 49, 80, 23, 53,194,221, 78, 84,215,105,124,226,245,253, 46, + 65,190,248,145, 39,137, 46, 67, 99,142,235,254,234,235,107,125,177, 99,241,237, + 86,243,147,134,228,182,161,210, 18,134,143,253,112,212, 0, 27,189, 0, 30,251, +223, 69,253, 35,214,184,178, 6, 88, 67, 0,151,109, 10, 73,128, 87, 29, 0, 64, +157,255,199,225,207, 23,232,135, 11,126,147,194,190, 38,160, 47,143,157,128,192, +255, 1,247,195,192, 0, 75, 65, 0, 23,245,191, 9,180, 9,246, 35, 63, 30, 13, +176,140, 89,115,187, 31, 87,188,241,252,187,114,108,206,199,242,232,114,108,188, + 40,248, 45,241,157,224,177,249,163, 5,223,248, 19, 20,191, 39,170,122, 44,253, +118,108,210, 26, 11, 3,164,217, 98,254, 76,210,238,175,183,170,106, 33, 21, 30, + 6, 9,106,177, 4, 15,114, 98, 18, 14, 44,165,141, 78, 15,119,187,248,101, 98, + 61,138,183,196, 11,158,222, 54,134,139,227,148, 44, 19,107,158,105,183, 23,173, + 78, 33, 83,220,192, 74,189,140,128,140,147, 23,255,247, 66,172, 81,113, 93,103, + 53,247,224, 7, 80, 63, 5,199,135, 28, 42,150,129,251, 62, 44,101,114,117, 18, +182,131, 20, 49,133, 53,152,112,163, 63,109,169,236, 85, 2, 12,106,179,141, 97, + 29,131, 68,183, 71,253,174, 56,148, 56, 35, 15,147, 24,155,133,227,139,247,254, + 7,174, 70,144, 5,169, 16, 57, 50,229, 32, 92,161, 72,149,121,167,102, 98, 15, +115, 95, 36,212,209, 53, 35,195,126,100,171, 79,250,215,199,235, 3,112,173,147, +104,212,151, 70, 94,250,190,111,137,200, 29,194,234, 62, 35,199, 77, 96,172, 28, +236, 54,167, 13, 41, 93, 81, 89,146, 96,254, 39, 17,184, 39,177, 2, 50, 47,133, + 39,218, 24,194, 28,135,212,220,188,146,120, 71, 25,130, 92, 92,104, 23,131,186, +163,225,216, 19,221, 34, 51,166,188,235, 10,223,145,155,215, 32,186, 12, 99, 81, +254,185,152, 46,193,137, 10,198,171, 37,144, 89,238,237, 97,174,228, 21, 9,160, +179, 28,124, 62,182,148,238,183, 39,148, 3,125, 44,102,103, 44,128,131,157, 55, +170,141,210,190,221, 23,139,214,230,200,103, 79,253, 23,121,129,202,104, 93, 67, +115, 18,206,165, 52, 94,147, 11,207,242,207,153, 61,101,230, 89,231,200, 65, 70, +142,203,136, 80,164,198, 92,111, 2, 91,182,108,199,112, 40, 27,254, 0,207,123, + 83,150,156,238,198,229, 83, 89, 48,214,207, 14,186, 41,247, 34,165, 65, 67,202, +178, 51,121,243,197, 22,246, 89,246, 55,216, 11,196,141,126, 97,126, 82, 14,188, + 31, 20,175, 43,246,194, 49, 18,147,120, 23,180, 95,140, 19,186, 24,154,230,177, +164,116, 93,137, 76,139,201,244, 94,254,255,152,253,204,221,104, 60,253,161,113, +157,252,188,219,116, 52, 73,203, 45, 99,206,241,190, 16,248,109, 14,112,209,223, + 14,216,245,197, 99,133, 90, 72,111, 67,199,160,180,191,249,246, 66, 31, 74, 58, +207,199,176,210, 77, 88,212,148,148,116, 24,234, 17, 0,227,173, 2, 83,231, 80, + 0,139,134,140,250, 56, 25,233,116, 20, 37,198,232, 15, 50, 92, 26,176, 15,139, +169,209,233, 51,157,234,221, 68,158, 40,112,148, 75,152,226,209,190,145,201,148, +188,106,116,239,247,116, 3,147, 47,122, 47,200, 90,118,189,163,173,220, 50,128, +193,179,178, 11,140,184, 22, 83, 51, 2, 58,216,166, 19,238,211, 21,252, 90,209, + 82, 10, 0, 74,224,120,192, 0,170,215,231, 2, 95,200,201, 50, 87,185, 58, 49, + 5,233,246, 98, 21,233,181, 64,255,135,164,234,205, 15, 65, 90,134,247, 95,168, +182,161, 92,177,200,130,195, 11,141,124,117,229, 10,101,158,246,104, 85,181, 30, +165,243,218,239, 17, 64,121, 49,156,155,225,130, 97,113,231,157, 8, 64,169, 49, + 31,207, 8, 83,172, 44,212, 58,135, 57,234,230,197,158,146,107,238,104, 99, 49, +142, 41, 80,152,245,181, 4,182,104, 76, 58,101,219,175,128, 35, 99, 98,117,161, + 40,172,205,175, 7,149,204,169, 96,151, 72,104,246,220,248, 34,134,208,159,236, + 10, 91,127,184, 66,116,145,218,124,144,147, 46,130,169,139, 35,231,167,202,242, + 60, 3, 0, 11,183,127, 44, 25, 82,248,223, 50,126,155, 0,227,141, 73,180,129, + 47, 58,165,250,148,151, 72,220,140, 9, 19, 86, 64,219, 77,193, 48, 7, 82,115, + 27, 12, 27,143,110,149,213, 98,192, 17,157, 87,223,112,178,196, 51, 63,194,193, +170, 40,190, 68,113,140, 57,229,205,222,159,157, 0,180, 32,243,188, 64, 73, 62, + 38,168, 53, 81,104,148, 34, 16, 32, 49, 60,138, 60,206,255,136,217,162, 91,210, +188, 97,108,115, 74, 16, 20, 6, 83, 95,184,135, 25,218, 19,201, 33,222,255,140, + 19,168,166,221,127, 92,174, 8, 32,224,184,117,154,116, 65,180, 10,214,136,169, +102, 59,173, 15,144, 50, 33,118, 89,103,153,207, 4,233,128,191,146,124,234, 51, +136,164, 76, 32,124,159, 5, 21, 10, 0,103, 99,211,198,183, 10, 90,224, 99, 7, + 81,198, 37,204,112,108, 30, 63,116, 52, 8, 95,185, 62,130,211, 32, 47,176,251, +121,142,254,254,108,250,202,100, 91, 99, 68,211, 86, 10, 83, 36, 88,120, 3,138, +203, 41, 54,131,119, 41,149,159,206, 5, 40,114,170,160,113,133,246, 80,237, 1, + 56,231,241,161,139,137, 51,243,115,154, 42,218,202, 87,218, 71,108, 61, 13,205, +165,219,134,127,197,143,114,215, 95,232, 65, 76,188,170, 19,101,202, 40,106,171, + 45,194,240,119,230,160, 85, 24,235,236,208,239,255, 93, 4,168, 54,146,200, 37, + 42, 1, 15,205, 23,128,192,255,145, 55, 68,228, 70, 57,204,174,187, 37,187,234, +152, 61, 19, 33,168, 4, 13,236,112,106, 63,160, 47,126,220, 38,187,172, 29, 53, + 37, 93, 28, 20, 72, 31, 19,128,159, 91,128, 11, 49,100, 0, 12, 65, 51, 38,241, +115, 31,151,201, 8,199,211,188,245,160, 23,153,227,112, 61,217, 61,102, 87, 94, + 81, 59,160,184,132,195,255,145,234, 21,113,225,253, 81, 86, 22, 24,201, 42,156, + 9, 21, 94, 72,241, 23, 1,176, 52, 40,192, 55, 90, 73,100, 96, 42,107,232,213, + 89, 10,101,246, 37,217,173,231, 42, 66,127,217,227,122,170, 76, 98,176,217, 78, + 75,170,193, 45, 81, 55, 26, 52,133, 7,102, 90,242, 40, 23,248,206, 79, 83,206, + 84, 18, } ; -// ../Source/Shared/GB_monoid_shared_definitions.h: -uint8_t GB_JITpackage_209 [1355] = { - 40,181, 47,253, 96,173, 18, 13, 42, 0,230,187,177, 40,208,178,234, 1, 16,219, -136,157,133, 86,245, 41,107,222,152, 45,183, 50,195,200, 22,150,119,116,252, 27, - 76,173,188,203, 79,229,240, 34, 87, 51,224, 7,179, 4,163, 0,170, 0,163, 0, -185, 57,245, 9,124,122, 84,214, 23,104,155,127, 18,184, 64, 87,247,141,206,182, -182,119,226,134,163,108, 26, 95,122,135,219,183,220,218, 75,148,198,206,212,139, -141,125,126,199,222,174,161,200,164,112,224,155,140, 29,213,146,235,175,125,174, - 62,175, 3,199,213,229, 87, 14, 46, 42,204, 52,189,115, 29,123,166,113,222, 56, -159,105, 74,169,150, 22, 20, 34, 10, 7, 14, 9, 17,133,134,200,168, 37,252,157, - 88,245, 68,245,103,203,150,123, 77, 75, 25, 85,137,216,186,120, 37, 36,142,111, -236, 50,207,239,101, 16,238,107,181,198,246,202,200, 53,103,101, 75,182, 9, 87, -251,249,235,107, 62,225,244, 27, 55, 12,231,219,106, 57, 24, 33,209, 8, 8,208, - 1, 2, 66,181,181,199,158,227,236,188,150,207,217, 28, 33, 95, 52,217,192,202, -114,101,144,178, 72, 80, 25, 76,252,254,218, 44,189, 99,107, 75,159,141,105,154, - 52, 10, 32,159,196, 32,234, 56,219,145,227,196,219, 9, 72, 62,185,227,252,218, -150, 56,245, 61,150, 82,171,217,246,106,219,226, 89, 99,215,225,141,127,211, 84, -251, 89,122,211,111, 79,238, 49,133,226,116,195,179, 51, 71, 75,181, 11,234,194, -215, 57,158,235, 87,175,167, 87,206, 99,236,178, 48, 52, 40, 44, 76, 40, 48,219, - 84, 48,218,207,234, 2, 80,164, 97,118, 97, 96, 84,227,239, 4, 8,154,128, 25, -118,185, 52, 23,118, 81,172, 10, 86, 86,134,154,200, 96,117, 93,176,139,165,106, - 1,212,235,117,142,128,134,160,201,233,107,248,183,146,244, 69, 93, 85,148,199, -107,246, 58,206, 74,136, 20, 53,182,169,255,213,239,236,156,182,185,171,215,125, -104,215, 65,184, 71, 99,199, 78,136,158,212, 78,231, 60,140,227, 67,127, 93, 67, -162,134,232,238,134, 60, 32, 72,110, 11,131,161,145,190,174, 32,234,235,216,131, - 48, 78, 79,206,183, 29,168, 62,173, 15, 97, 67,232,242, 59, 62, 33,108,249, 57, -102, 92,177,176,140, 69,145,177,178, 13,118,105, 42,215, 38,130,170, 54, 19,140, -229, 98,105,168, 10,179,129,147,203,114,209, 80, 48,163, 38, 96,134,116,220, 52, -202,207,127,101,199,246,249, 51,122,198,245, 59, 99,143,107,159,174,119,214, 41, -167, 62,238,216,241, 59,237,213,206,174, 81, 74,211, 95,203, 54,211, 87, 80,123, -203,239,233,207, 96,154, 38,131,207, 64, 70, 90,125,243,216, 25,137, 56,126,207, -245, 45,219,158, 84,210,252,242, 41,198, 78,171,119, 99, 59,166, 22,151, 10, 37, - 99, 85, 92, 46,152,196, 53,177,252,235,156, 87,219,214,118,121,109,229, 60, 71, -244,187, 65, 65, 89,153, 8,202, 85, 37, 52,196,171,173, 17, 70, 4,196,208, 92, - 26,204,170,174, 60, 61, 71,239,252,230, 47,210, 76, 96,133,194, 46, 75,198,210, - 64, 43, 67, 85, 38, 86,101,107,227,184,121, 44,213,174,119,108,123,247,201, 95, -115,234,211, 77,154,213,202,158, 53,210, 88,159,187,158,123,160, 63,249, 63, 0, -162,118,250,155,231, 3, 34,117, 81,103,212, 68,242,161, 52,230,239,143,246,211, -114,185, 3,129, 16,168,145, 33, 82, 8,209,136,136, 72, 82,152, 66, 90, 3, 81, - 12, 66, 20,229,165,116, 30,194,120, 44, 77, 1, 13,134, 64, 2, 68,137, 67, 68, - 36,144, 64, 68,130,137,100, 2, 9, 19,164,160,121, 22,238,184,187,180,245,135, - 19,209, 22,234,243,157, 95, 88,106, 97, 30, 85, 56, 78, 5,103,225,154,240,147, -244, 47, 87,196,234,191, 16, 98, 53, 45,201,219,180, 87, 73,211, 50, 80, 86,210, -253,181, 53, 68, 36,132, 39,178, 23, 69,109,246, 99,226,188, 41,251,231,137,239, -128, 16, 27, 72, 10,218,244,136,210, 55,139,240, 9,250, 89, 24, 27,174,143,133, -224,155, 0,229, 21,140, 95, 92, 53,137,161, 20, 32,211,125,135, 46,129, 21, 30, -133, 39,180, 88, 29, 14,109,117,172, 66,188,163, 19,234,154,102,161,151, 93,145, -125,226,172,195, 98,174,157,117, 95,160,160, 98,175, 60, 53, 2, 58,223,170,188, - 84, 17,119,203,154, 92, 93,107,222,164,225,107,134,210, 18,206,128, 1,107,121, - 87, 81, 11,231,220,124, 23, 44, 78,194,142,181,204,177,242, 95, 95,199, 79,194, -237,104,198,100, 42,171,171,220, 93, 73, 11,151,218, 0,116, 98, 5, 22,207, 28, - 85, 21,126,170, 93, 72,182,235, 45,223,203,119,198, 93,187,252,116,166,231, 65, - 15,205, 69,142,155, 96, 23,177,241,166, 92, 53, 50,218,201, 33,219, 34, 59,157, -149,139,166,235,145, 10, 12,184,127,132,116,188, 94, 60, 84,238,132, 19,154,100, - 43,136,102,254,237,153,200,193,137,193,223, 76,138, 3,167,222,208,127, 97, 52, - 42,128, 46,172,184,199, 81, 85, 2,184,254,199,141,158, 8,104, 15, 92,155,226, -101,224,158, 10,251,223, 63,161, 49,199, 52,218, 91,186,162,205,143,139,110,138, - 13, 41, 51, 94,227, 32,148, 43, 29, 34, 47,147,134, 1,201, 71,109,217,156,105, -172,136,217,245,108,243,212, 30, 1,229,200,108, 97, 33,217,193, 99, 36,159,199, - 97, 32,137,187, 76, 77,240, 22, 2,212,120,144,214, 51,209,118,168,240,214, 75, -208, 64, 23,207,202,175,217, 34,142,143,126,172,136,233,234,200, 88, 86, 23,184, - 5,132,171, 1, 12,188,245, 66,142,183,219, 65,159,144,144, 76,208, 82,166, 25, - 98, 39,236, 78,137,155,137,204,116, 67, 90, 22, 75, 56,100,196, 41,147, 97,100, - 33,164, 47,129,107, 39,182, 68,215,151,227,228,101,235,131, 81,117,231,236,129, -143,220,210,232, 0,131,246, 91,172,246, 64,178,216, 10,195, 77, 1,220,177, 65, -231,153, 71, 0, 66,157,221,109,216,226,153,213,162, 60, 13,113,193,223,240,218, - 88,143,189,178,140, 98,161, 43, 42,194, 65, 13,128, 89,194, 84,161, 6,129, 29, -219,118,247,225, 0, 54,183,127, 13,193,215,146, 67,197,152, 83, 56,238,195, 64, -128,225,211,128,110, 0,106, 60, 22,250,185,226,203,213,177, 14,154,146,202, 76, -107,201,197,230,145,123,145,220,243,195, 48, 85, 7, 96, 7, +// ../Source/Template/GB_subassign_22_template.c: +uint8_t GB_JITpackage_205 [578] = { + 40,181, 47,253, 96,145, 5,197, 17, 0,102, 30, 94, 32,240, 24, 61,208,133,145, +136, 47,145,124, 48, 47,150, 42, 43, 50,238,192,245,239, 45, 28, 36,253,232,202, + 5,158,129, 52,135,191, 85, 0, 84, 0, 82, 0,135, 77, 99, 32, 14,155, 11, 40, +230,153,174,167, 57,241, 2,231, 42,112,139, 97,229,120,214,113, 23, 9,136,103, +174, 52, 94,231,137,187,223,117,236,174, 60,237,164,218,167,202,191, 59,221,218, +145,228,186,186,244,207, 15,162, 92,229, 16,130, 75,111,252,158, 22,135,191,189, +109,243,110,169,106, 61, 71,163,246, 36, 21, 55, 24, 46,205, 96, 8,250, 51, 14, + 71, 74,231,211,105,241,103, 79,126,159,197, 91,170,222,216,116,204, 91,191,182, +147,132, 67,145,122, 38, 61, 47,151, 78,198, 27, 95,182,109,254,137,224,126,204, +117, 40,108,218,131,116, 98,206, 27,249, 43,169,238,251,159, 69,123,125,159,214, +139,246,153,104, 10,223,159,242,235,223,184,222, 96,169,110,220, 90,206,179,196, + 22,155,214,188,245,231,129, 83, 52, 32,142,244,253,165,212, 12,189,204,116, 71, +144,122,118,125,235, 43, 82,137, 93,136,251,246, 20,139,125,171,187,195, 5,171, + 75, 49,239, 46,156, 39,227,201,215,163,139,219,245, 55, 63,131,219, 73,162,231, + 31,133,227,245, 7,183,255,173, 97,254,253,159, 95, 23,235,186, 10, 87,188,157, +115,251,126,215,213,186, 90,153,196,158,165, 36,230, 81, 56,220,165,131,233, 72, +201,153,178,136, 18, 73, 28,242,148,179, 8,132,135,195, 15, 14,113,137, 49, 1, +173,123,110,141,189, 29,191, 7,169,118,193,197,188, 44,146,220,190,181, 51, 79, +236, 56, 20,125,134,165,153,113, 64, 98, 81, 87, 0,230,156, 13,165,235,184, 84, + 68,147, 46,192, 28,226, 41,233, 1, 73, 32, 32,132, 16,197, 84,157, 7,222, 32, +224,117,112,246,203, 14,140, 12,111, 35, 15, 18,149,128, 8,252,197,230, 13,186, + 23,147,104,215,211, 78,162,129, 35,175,192,186, 54,129, 46, 56,199, 26, 0,118, + 61, 67,154, 77,200,152, 2,155,120,224,183,113,112, 77, 56,144,125, 78,227, 4, + 7, 69,185,108, 26, 44, 97,152,212,162, 52,161,136, 37,135,197, 19,110,196, 50, +164,103,208, 98, 98,164,105,111, 27, 12, 5,144, 1, 99, 13,154, 18,196, 27, 39, +152,156, 89, 21, 43,252, 5, 70, 79,197,133, 68, 2,130,232,181, 54, 16,129,225, + 25,132,222, 14,141, 35,117,138,160, 33, 95,183, 6, 4,161,227,239, 88,133,154, +170, 7, 28, 17,195,205,120, 35,244, 68,230,224,184,204, 57,231,108,173, 50,156, + 77,179,243,204,132,182, 77, 87,235,154,226,209,152, 43, 84, 20, 12, 1, } ; -// ../Source/Shared/GB_mxm_shared_definitions.h: -uint8_t GB_JITpackage_210 [1360] = { - 40,181, 47,253, 96,100, 23, 53, 42, 0,198, 53,164, 40,176,208,217, 28, 61, 55, -193, 62,251,137,120, 85, 52, 60, 84, 15, 61,166,245,242,176,253,169, 88, 43, 23, -127, 45,145, 39,151, 79,126,208,127,176,244,131,115, 1,148, 0,150, 0,159, 0, - 34,126,131,249,223,164,176, 69,157,119,134,141, 79,169,124,166,163, 60,110,111, -138,236, 21, 47, 25, 64, 34,143, 6, 59, 41, 90,159,220,158,223,204,181, 61,236, -209,184,118, 55, 55,143,144,229, 3,241, 90,116, 27,119,118,156, 65,139,153,157, - 82,235,148, 36, 98, 16,121, 40, 84, 6,145, 59,186,233, 20,158, 34,105, 57,196, -250, 8,204, 54,156,219, 41,205,218, 80, 64, 81, 94,204,164,241,149,162,214,121, -142,154,132,105,215,219, 24,167, 12, 88,191,246, 59,182,183,147,225,171, 13, 67, -219,125, 2, 66,112,181, 51,207, 58,191,246, 56,175,175, 4, 49, 23,106,132, 28, - 5,243,130, 2,233, 81, 80, 16, 87,198, 57, 52,154,138,215,158, 90,203,208,180, - 98,180, 94,150,150,126,167,110, 91,116,174,115, 58,214, 64,155,207, 55,189,218, - 1,146,193, 49, 29, 44,195, 56,151,198,113, 26,150, 97,214,135,131,232, 88,239, - 38,181, 21,225,168,146,164, 12,167,117, 60,216,134,117,176,203,101,225, 44, 87, -102,101, 52,142, 19,226,212, 15,192,155,182, 90,128, 75, 18,100,195, 52,150, 5, - 84, 1,125, 42,175,242,148,215, 89, 62,250,138,167,186,121,187,182,197, 71, 21, - 63,158,223,126, 72,211,249,225, 41,208,222, 72,187, 58, 3,110,243,175,157,158, - 64, 7,188,118, 87, 60,219,250, 22, 73,240,184,177,236, 78,229,236, 58, 88,165, -197, 81,222,144, 29, 62,237,218,235, 43,109,253,228,255,165,106, 49, 49,150, 84, -118,243,118, 56, 86, 10, 37,187,182,205,242, 26,227,238, 58,105,253,179,199, 61, - 82, 41,210,104,182, 75,187, 92, 60,149,198,210,241, 84, 46,237, 84,133,101, 23, -182,249, 96,219, 6,196, 57,158,191, 86,180, 31, 81,113,102, 58,134,214,214,185, - 56,215,230,195,193, 56, 78,179, 50,156,204,181,195,249,200,181,143, 84, 8, 33, - 7,235, 85, 30, 75,240, 33,139,163,217,180, 12,187,112, 29,140,115,144, 16,145, - 84, 46, 24,140,114,144, 16,145,124, 46,160, 83, 7, 9, 83, 68, 18,145, 36, 84, - 9,213, 2,104, 97,235, 96,220,198,227,161,100,158,208,102, 99, 5,213, 29,211, -228,152,254,217,222,152,248, 3,211,116,136, 19,193,165,137,231, 83,211,127,125, - 32, 54, 46, 2,146,241,157, 57,227, 49,204, 35,190,157,235,180, 98, 87,199,143, - 26,137, 93,216,225, 41,236, 89, 48,119,120, 12,196,155, 86,148,109, 61,229, 53, - 30,223, 21,183,249,248,121,118,147,138, 26,253,190,115,204,232,219,184,193,141, - 82,217,152,118, 64,245,142,199, 62,227,190, 20,196,167,194,185, 56,115, 82, 61, -106, 83, 2,113, 66, 96, 89, 62, 32,130, 59, 46,102,118,101, 54, 11,147,169, 57, -133, 50, 51,147, 41,113,218,176,236, 33,191,225, 20,162,196, 53, 42,142,139,217, - 77, 87,102,109, 42,151,133,211, 4,129, 52,168, 1,150, 66, 70, 35,146,148, 20, -150, 10,195, 1, 97, 8, 49, 12,130, 10,235, 28,178, 88, 60, 9,161, 36,130, 33, -136,177,144,128, 24,227, 8, 65,136, 68, 73, 36,146, 36,202,204, 7,111, 26, 70, -192, 95,163,250, 68,216,183,241,159, 75,236,200,186,117,182, 18,123, 98, 25, 84, - 68,107,206,199,162, 63,231, 23,182, 56, 28,105,231, 70, 8,137,112,175, 84, 66, -156, 98,236, 65,146,223,118,224, 38,116,102, 66,157,132, 13,134,128,163,159,226, -134, 68,132,199,132,195,121,130, 14, 52,237,218,233, 29,216, 1,218, 28, 79,163, -111,132,151, 30,183,203,148,239,109, 71, 77,121,100,162, 30, 13,105,160,207,203, -208, 10,190,166, 72, 42, 99,131, 97, 76, 41, 14,147,213, 87, 70,223,169,224,163, -110, 80,225,235, 28, 66,168,140,147,193, 90, 16,255,215, 21, 91,199, 23,120,180, - 37,215, 61, 14,110,196,220, 35,207, 38, 5,204,162, 36,205,136,155,123,202, 75, - 58, 51,128,139,138,119,203,239, 33, 93,187, 55, 2, 73,198,200, 66, 80,156,149, - 32,142,233, 38, 80,208,170, 3, 89,243,202, 8,141, 60, 38,125, 0, 50, 1,141, -193, 46, 10, 24,219,111,190, 43,174, 93,240, 34,103,163,197,134,129,248, 74, 26, - 39,201,137, 86, 83,103,179, 99,172, 2,200,141,188, 57, 37, 30,180, 69,118,140, - 56, 74, 91,109, 89, 6,170,190, 32,217, 83,117,100,125, 94,178,229, 67, 77,108, -218,181,208, 73, 18,132,237,240,190,241, 9, 67,192,215,255,142,201, 55,182,197, -186,124,159, 97, 6,113,151,222, 44,155,204,206,119,217,132, 82, 27, 62,120,134, - 65, 69,201,185, 38, 49,129,188, 44, 14, 72,245,237,153, 44, 58,226,240,245, 22, - 75, 70,254,237,159,247,253,145, 67, 70,185,197, 18,130, 27, 25,151, 40,136,252, - 38,135, 81,160, 43, 4,137,220,244, 9,199,112, 51, 49,218,114, 38, 32,250,102, - 13,140,100, 22,218, 97,227, 58,219,178,195, 72,250, 55, 99, 28,164,251, 94,166, -128, 28,221,239,199,221,109,161,212,157, 86, 57,101,138,189,165, 50, 65, 47,177, -117, 95, 16,212,156, 75, 41,197,119,219,206,186, 12, 50,236,201, 92,118, 99, 89, - 81, 43, 9,156, 58, 47, 82, 88, 89, 38, 83, 66, 22,120,104,204,113,119,132,133, - 74,183,118,204, 13, 51,101, 99,152,200,185, 27, 68, 50,152,150, 72, 69,218, 81, - 6, 19,185,104, 54, 29,181,241, 65, 92,231, 21,240, 18,147,101, 92, 40,174, 43, -200,169, 75, 31, 44, 29,172, 10,168, 6,164, 32, 77, 1,225,245,255, 25,149,246, - 9,210,124,190, 87,134,177, 61, 33,195, 3, 81,103,127, 1,232, 49,250, 14, 5, - 69, 85, 66,137, 34,204, 37, 79, 14,109,217, 96,198, 76,115,227,237,101,120,122, -145,117, 76, 76, 5,101, 35,163,106, 44,240,228, 87,118,123, 32,175,154,230,181, - 74,188, 97,139,155,224,120,122, 16,141,174, 12, 45,250,217, 35,220, 72, 61,240, - 1,129, 22,234,155,190, 96,143,212,233, 47, 16, 11, 90,192, 78, 72,185,202,189, - 35, 61, 89,206,225, 12,162, 91,204, 52,202,134,137,254, 75,194,181, 60, 21,155, -165, 14,235,194, 2,139,102,254,153,105,114,194,193,122,151,176, 82, 90, 97,155, +// ../Source/Template/GB_subassign_23_template.c: +uint8_t GB_JITpackage_206 [1589] = { + 40,181, 47,253, 96, 52, 27, 93, 49, 0,166,184,172, 41,176,148,177, 14,180, 64, +128,155,185,229,142,112, 94,128, 59, 82, 73, 16,216,154, 94, 73,180, 8, 34, 37, +222,203, 16,232,157, 37, 74,127,208,127,176,191,177, 43, 1,163, 0,161, 0,161, + 0,148,195, 50,164, 37,164, 14,250,128,100, 69,232,202,248, 95, 66,241,120, 87, + 42, 64,233,116,160,188,174, 80,196,181,206,234, 23,176,225,175,126, 1,239,236, +227,176, 74, 5, 40,151, 2,140,165, 55,108, 94,248, 6,175,169, 70,115,237,140, + 99,105, 92, 27,163, 29,139,198, 6, 84,144,181,201,107,220,161,227,188,129,208, +208, 57, 14,222, 66,192, 92, 48,150,133,131, 11,230, 21, 70,221,194,212, 52, 55, + 47,128, 63,109,217,118,116,116, 75, 4, 59, 16,219,157,158, 68, 67, 99,111, 94, + 81,103,250,137, 40, 28,247,105,199,244,241,237,245, 38,114,120, 77,229,241, 13, +157, 39,119,187,206, 18, 1, 35, 43, 8,197,120,146, 62, 44, 33, 36,110, 96, 64, +177, 24, 24, 4,109,178,239,252,221,206, 98,183,249,157,177, 19,139,107, 52, 31, +133, 46,145, 40,243,203,200,236,100,253, 54,236, 22,229, 89,248,236, 37,149,137, + 9,117, 13,107, 83,173,104, 30,226, 89,145, 55, 71,250,108,150,113,189, 73,146, + 90, 79, 82, 39,245, 77,231,154,176,192,217,108,111,179,112, 8,158,185, 74,248, + 43, 4, 59,241,218,140, 80, 47,207,238,240,189,229,183, 70,179,154,121,176, 64, +155,113,181,152,134,179,150,212,152,235,143,237, 92, 68,252, 32,232, 25,113, 32, +164,136, 35,225,157, 93,166, 36,137,169,132,157,203, 34,116, 85,200, 17,135, 66, +163, 2, 56,127,183,210,231, 6, 57,165,132, 66, 57,201,188,202, 50, 65, 33, 87, +122, 11,164, 82, 44, 29, 8,207, 5, 5,214,222,222,252,150, 45,233,214,141,212, +175, 17,236, 92,120, 46, 98,220, 50,173,124,164,191, 74,115,245,113, 59, 0, 42, + 21,135,223, 75, 85, 24,205, 51, 99,170,185, 47,235, 13,195,175, 40,217,125,245, +158,213,206, 53,199, 77,111,222,223,206,126,118, 32,211,187, 2,151, 68,202,146, +161,246,231,229, 91,151, 91,150,180, 89,150,232,148, 27,160, 79,252,184,116, 84, +167,141, 60,177,190,167, 12,175,217,247,199, 77,211,109,117,162,190, 17, 49,172, +170, 98,140, 49,142, 84,212, 53, 31,129,207, 24,245, 50,110,143,224, 23,104, 99, + 20, 1, 34,192, 45, 12,194, 45, 72,189, 34,244,201,144, 26,156,208, 8,122,228, + 21, 57, 29, 17,188, 23,148, 19, 10,127,114, 2,255, 67,250,202,227,189, 69,115, +234,144,249, 53,135,247,226,224,132, 62,163,120, 97,200,141,135, 35,146,208, 35, + 1, 67,160, 99,122,128, 15, 12, 16,188, 20,171, 82,180,249, 56, 87,106,239,227, +197, 42, 11, 69, 93,243,198,181,179,210,188,101, 89,214, 45,121,234, 64,114,116, + 73, 28, 84,222,214, 5, 73,120,111,109,144, 58,148, 19, 37, 10,166, 91,142,149, +102,159,179, 74,181, 59,100, 94, 53, 88, 13, 84,230, 31, 29,243,121,218,122,220, + 54,171, 15,215, 40,197,225,192,194,104, 55,235, 41,203,232,189, 91,153, 92, 6, +202,140, 61,170,133,100,205,145,186,175, 20,177,218,156,105, 82,186,109,247,126, +228,230, 10,129,133,168,113,185, 82,102, 68, 68, 68, 36, 41, 72, 65, 50, 28, 97, + 12, 98, 20,148, 16,106,230, 1,146,120, 80, 20, 5, 41,144,193, 4, 17, 68, 24, +145, 64, 68, 68, 66, 17, 17,145,160,156, 77, 7,176, 64, 48,165,157, 92,226, 77, +180,100,153,206,226,137,220,161, 42,211, 77, 20,222, 88,215, 64,168,211, 17, 14, +217,255, 73,127,224,232,164, 2,222,156, 68,198,183,174,253,242,230, 26,189,131, +218, 31,237,105,228, 0,151,199,224,107, 27,229,203,213, 35,121,132,160, 69,113, + 17,178,160, 41,138,153,185, 26,251,115, 91,194, 85,159,125, 43,124,204,183, 90, + 17,251,125,100, 58, 42, 4,156, 72, 33, 38,151, 29,109, 46, 1, 40, 0,124,157, + 65, 99,125,150,140,254, 17,164, 62,144,211, 48,229,248, 87, 49, 42, 80,124,107, +191,248, 56,213,232, 18,160,247,216, 16,204, 48, 0,237, 71,160,255, 77,104,144, +164,153,143, 31,182,124, 64, 37,121,161,106,140, 69,206, 2,162, 32, 16,143, 62, +120, 25, 6,206, 26, 75, 78,131, 36,255,133, 6,153,175,188,239,191,203,146,246, +189,252,174, 0, 60, 67, 4, 27,181, 33,156,231,255, 45, 44,157,115, 5,247,176, +136,124,140, 30,115, 97,135, 79,177,102,163, 86,106,226, 71,116,116,157,145,225, +190,148,113, 2,138,143,190,178,153,141, 16,130, 56,240,124, 18,154, 24,180,163, +221, 42, 0,175,120, 20, 38,160, 97, 13,129,202, 91,141, 39, 20, 67,138, 70,245, +126,169,186,234,152, 33,133, 44, 79, 41, 49,219,160,225, 0, 55,243, 64,165, 33, + 50,130, 63, 36, 26, 2,193,196,139, 98,144,171, 48,208, 10,140,191, 0,148,192, +193,102, 63,112,179, 11, 96,223,218,100,254, 79,196,146, 95,219,152,237,213,208, + 72, 45,247, 0, 29,204, 90, 36,172, 36,177, 5, 42, 18,194,229, 14,209, 7, 18, +152,225,104,184, 31, 24, 88,177, 35,149,242, 81, 49,142, 37, 92,145,197, 97,196, +203,113, 47,145,195, 13,226, 11,100, 51,188,119,244, 99,153, 68,138,185,153, 16, + 3, 0,201, 53,103,120,144,246,170,193, 1, 80, 64,203,129, 0,237, 10, 22,169, +189, 64,197, 20,159,165,156,129, 57, 45,121,224, 68, 92,110,182, 2, 60, 10,102, +128, 23,195, 38, 65,127, 69,168,237, 99, 56, 78,158,156,143,187, 86,121, 92, 96, + 77,126, 73,114,148,183,100,160,148,193,102, 67, 0,213, 62,166,148,214,193,217, +233,143,139, 61,218,234,147, 56, 20,253, 12,132, 3, 88,205,204,235,228,130,237, +130, 9,103,165, 2,222,213,233, 5,154,161, 66,104,202,181, 42,131,190, 16, 21, +123, 64, 26, 96, 40,155, 64,178,195,139,103, 51, 27,105,111, 97, 97,190, 62,141, +153,248,136,216, 29,138, 76,163, 53, 65,214, 21, 72, 48,237,238,179,236, 9,100, + 25,105, 71,168, 74, 86, 1, 50,133,121, 73, 67,175,116, 93, 77,250, 85,196,151, +144,151, 18, 76, 85,103, 22, 21,239, 68, 94,143, 44,130, 89, 6, 7,110,218,154, +102,189,208,165,228,189,253, 59, 12,233,252, 20,210, 5,147,209,133,121,167, 95, +237,173,187, 56,213,243, 80,232,170, 55,152, 91,109,147,238, 68,194,130,176, 46, +142,184, 98,238, 33,131,254,217,184, 14,122, 39, 53,125,248, 63, 50, 94,163,210, + 35,243, 2, 0, 1, 39, 24, 99,210,105,157, 37,250,104, 16, 50, 73, 40,195, 20, + 89,253, 84,129,122,220, 84,157, 35, 17, 28,245, 83,212,118,158,214,122,197, 89, +206,245, 75,119,225,193,159,188, 85,105,160, 75,120,212,239,188, 85,150,204, 31, +245,182,119,246,160,103, 87, 20,150, 29, 22,198,168,175,200, 85,149, 90,119,238, +187, 56, 29,198,238, 17,159,232, 39,140,112, 44,150,122,196, 38,222,240,126, 17, +213, 91, 26, 13,190, 29,228, 1, 62,109,221,117,119,147,142, 66, 12,166,173,129, +227, 67,115,155,204, 41,178,170,204, 39, 15,101,173,139,137, 45, 56, 88,187, 2, + 22,222,196, 66, 1,205, 10, 27,175,174, 46,210,191,223,209,155, 99,125, 67,211, +206, 25, 47, 55,130,195,174,253, 8,137, 77,174,197, 41, 26, 52,159,159,153,154, +137,116,184, 28, 81,165,138,182,198, +} ; + +// ../Source/Template/GB_subassign_25_template.c: +uint8_t GB_JITpackage_207 [1745] = { + 40,181, 47,253, 96,136, 29, 61, 54, 0,198,190,188, 41,176,148,177, 14,180,128, +192,141, 72,117, 36, 16, 19,131,205,214, 96, 4,104,153,188,130,232, 17,196,244, + 12, 38,227,151,160,191, 8,255,148,254, 52,189, 59, 46, 1,174, 0,182, 0,175, + 0,213,235,123,226,238, 52,101, 58,186,103, 15, 97,215,125,164, 99,176,211,181, +218,179, 54, 71,250,117,146,236,171,215, 57,207,219,156,232,199,192,110,122, 95, +214, 62, 15,211, 99,135,243, 56,123, 51, 99, 74, 6, 83,112,105, 78,155, 55, 94, +227, 53, 37,209, 92,123,187, 46, 26,245, 92, 48, 58, 32,204,214, 33, 94,227,206, +142, 51,231, 65,179,119, 93, 60, 52, 40,200, 20, 92, 20, 8, 50, 5,175,104,212, + 33,166, 33,179,115, 76,252,137,203,214, 68, 69,135,161,232,113,224,238,244, 32, + 52,141,189,121, 67,157,233, 23,162, 52,174,189,197,111,117,254,148,143,233,171, +183,215,156,200,227, 57,111,192, 24,170,107, 58,207,238,154, 58, 75,132, 2, 89, + 61, 40,198,115,244, 97,233, 0,241,129, 1,202,101, 96, 32, 19,217,231, 66, 98, + 92,153, 40, 98,210,170, 46, 79,168,178,117,205, 73,146, 90, 59, 30, 43,130, 66, + 98,184,132, 39,196,219,108,143,203, 85, 98,183,178,232,169,172, 78,169,126,156, +246,173, 73, 40,190,116,243, 3,233, 91,236,125, 77,215, 93, 55,189, 9, 50, 49, +241,120, 42, 30,168,139, 50, 43, 20,138, 36,186,213, 77,195,197, 70,234,156,206, +218,209, 27,119,253,177,160,136,137, 46, 7, 25,186,100,148,152,202,232,177, 40, + 50,107, 66,138, 46, 9, 18, 13,192,249,187,149, 62,183,199, 41, 37, 20,202,201, +230,149, 44, 15, 18,114,165,135, 30,149,106,180,195,178,212, 18,163, 14,250,128, +228, 68,102, 93,252, 47,161,112,188, 43, 13,160,120, 60, 81, 90, 86,246,112, 82, +111,245, 11,160, 80,240,108,211,196,111, 46,159,203, 84,228, 91, 7,175, 80,210, +244,213,123,150,244,251,107,178,159, 38,143,233,221,128,141,230,111,158, 57,167, + 86,157,103,123,218,123,244, 58,181,227,166, 35,147, 37, 57,129,153, 67, 40,109, +150, 31,116,202, 12,208,199,234,124, 42,217,137,152,231,134,253, 60,185,252, 74, + 43,139, 15,237,245, 99,182,198,223,189,246,168,182,187,173,199,148, 19,117,100, + 54, 42,154,205,207,120,106,125, 79, 57,246,215,205,144, 18, 25,169,147, 74,158, + 21,209,168, 87, 85, 85,141, 84,168, 17, 17, 0, 5,196, 37, 57, 85,156,163, 81, +252, 66,237, 46, 4,163,148,227, 46,231, 23,155,248,200,142,229,113,192, 42, 36, + 50, 11,148, 17, 17,202, 34, 40, 84,157,115, 90, 61,107,212,203,184, 61,129, 87, +135, 90,135,212,134, 11,118,203, 15, 23, 14, 3,148, 47,128, 94,150,198,149,125, + 68,149,101, 33, 59,216, 21,146, 17,131,136, 25,200,155,125,239,124,215, 81,145, +122,139, 57, 22, 74, 29,116,121, 30, 42,139,229,243,184, 77, 86,235,209,201, 33, +188, 35, 21,245,170, 82, 74,189, 99, 68,111,121,196,238,198, 41,195,230,231, 28, +187, 2,255, 56,167,181, 74,241,179,205,199,185, 82,123, 31,239, 49, 31, 4, 22, + 88,185, 32, 8,183,218,135, 18,187,212, 35, 72,138, 44,136,210, 33,135, 81,199, +100,196, 71,254,105,244,106,189,190,214,230, 87,242, 86, 41,233, 12,155, 87, 52, + 80, 67,201,205, 59, 54, 48,201,121,158,109,183, 87, 60,187,210, 27,158,177, 71, + 73, 37,139,133,129,170,104, 44, 84,181, 52,107, 94,133, 0,106,212, 52,235,105, +163,186,251,182,230, 52, 28,129,174,168,225, 45,154, 33, 17, 17, 73, 74,146, 66, + 97, 56, 65, 8,194, 80, 32,118, 82, 50, 31,146,144, 56,151, 65, 12,163, 40, 68, +136, 33,142, 24, 19,136,136, 72, 32,209,196, 72, 36, 19,206, 3,133,177, 98,222, +210,233, 61, 38, 34,173, 70, 86,220,154,146,130, 11,245,161,173,198,158, 6,199, + 40, 78,250,225, 11,253, 21,196,107,136, 0, 83,114,144,112, 84, 54,143,202,141, +198,116, 40,107,164,150, 13,228,208, 10,104, 69,249, 39,194,226,206,235,199,134, +114,163, 23,251,108, 63,249, 36,121,247,188,253,234,153, 89,195, 8, 40,152, 7, + 79, 1, 22, 20,248,185,154,247,142,219, 95,240,105,215,142,143,250,238, 15,251, +199,161,215,207,108,179, 79,114,150,154,119, 15, 78, 65, 77, 7,129, 43,232,157, + 0,124,106,171, 10,237,207, 14, 9,160,180,205,167,144,255, 39, 4, 52, 65, 89, +190, 58,198, 89, 51,222,110,207, 42, 15, 45,234,201, 35,160, 28,140,129, 89, 16, + 88,205,162,190, 64, 35,212, 78,183,224,139, 64, 72, 85,181, 86, 61, 16,154,240, + 21, 28,139, 67, 95,217, 4,186,226, 41, 30,252, 39,167,190,190,251,216, 40, 1, + 75,155, 42, 41,147, 9, 65, 81,236, 61,177, 17,203, 24,239,193, 1, 60, 77, 37, + 64,164, 2, 25, 22,140, 24,118,194, 2,127, 12,176,175,143,217, 2, 99, 92, 72, +171, 96,105, 28,104, 24, 46,243, 61,217, 50,186,189,145,220, 49, 57, 98,100,226, +120, 95,197,162, 35, 58, 54, 35,111,161,227,240, 29, 37, 55,107,141,148,162, 36, +236,240,121, 94,137,233, 63,117,251,169, 50,191,167,135,125, 72,221, 95, 3, 32, +197,213,231,113, 12,238,220, 24, 89,210,165,214,220,153,157,235,109, 32, 47,170, + 59,166, 27, 85, 37,104,237,226, 35,118, 48, 49,232, 81, 44,240,186, 41,162,165, + 34,177,208,247, 50, 62, 59,137,211, 98, 49,238,178,207, 47,153, 31,249,138,247, +123, 76,208, 23, 67,190,203,216, 54, 73,109, 11,142,164, 29,234,247, 49,254,195, + 34,169,103, 1, 93,188, 15,152, 23,197,132,196, 93, 97,192, 54, 50,127,202,238, + 93, 37,239, 25,139,194,217,185,207,190, 64,176, 21, 27, 11, 76,173, 34, 2,189, + 72, 98,211, 44, 86,114,173,101, 40,234,101,234,139, 69, 60,252,133,132, 26,241, + 51, 66,160,147,175,145, 32, 86,152, 59,199,102,182,139,174, 13, 30,110,190, 19, +174,218, 72, 74, 87,163,242,147, 26,119,181,102,164,146,103,126, 0,125, 95, 89, +250,125,140, 79,198,246,193, 33, 23,244, 98, 4,190,250,238,149,198,111,158,131, + 72, 16, 35,227, 31, 4, 74,115,149, 42,134,127,225,214, 13,104,243,129, 51, 99, +159, 8,181,151,181,243, 49, 28,170, 62,171,182, 64,209,242, 80, 30, 38, 75, 3, + 68, 94,140,129,187, 26,128, 61, 99,223,137, 2, 32, 93,180,113, 88, 71,111,164, + 9, 33, 9,152, 33, 23, 27,228, 92, 13, 45,128,237,171,247, 5,170,186,102, 62, +159,175,217,157,164, 45, 86, 95, 62,210, 50,141,247,146, 97, 1,154, 93,188, 23, +148,171,233,208,139,101,208,107,163,122, 21,197, 92,127, 97,111,185, 48,186, 29, +203,101,178,229,121, 4,137, 46, 27,219, 89, 95,130,181, 53,246,229, 21, 98, 53, + 28, 27,134,199, 46,122,252, 78,195,230, 68, 79,129,185,101,180,155,228,199, 94, +140,196,167,150,233, 59,229,250, 55, 2,249, 18, 27,161,138, 0,116,239, 83,130, + 36, 28,236, 91,199, 82,251,251, 82, 36,241,195,129,186,250,111, 85, 39,169, 16, +166, 75, 50, 20,182, 89,210,157, 11, 97,208,188,136,196, 68, 40,159,120, 69, 41, +185,115,101, 74,177, 86,162, 43,105, 17, 60, 28,122,194,119, 50, 69,109,165,195, +169, 50,230, 95,152, 13,145,227, 79,143, 45,232, 42, 48,133,226, 23, 19,100, 59, + 81, 66, 94,146,236, 98,125, 4,174, 7, 90, 32,238, 88,246,126, 5,152,179,224, +106,172,162,237,148,173,219, 22,245, 52, 62,209,178,187,174, 75,165,114,143,178, + 60,232,226,130,239,169, 71, 49,159,158,185, 85, 38,169,196,169,200, 9, 91,133, +210,128,223, 57,203,132, 1,183,127,236,192, 64,149, 52,120,179,135,202,145,222, +215,189,196,116, 9,254,219,142, 59, 72, 87,232,240,238,245,229,213,156, 75,178, + 60,166,220, 56,216, 71, 57, 80,177, 46,242, 65, 19,207, 46,118, 77,227,103,110, + 0, 17,100,154,147,243, 92,168, 36, 56, 29,173,119,178, 91, 62, 61,119,169,129, + 75, 2, 46,164,169,169, 26,216,100,166,243,230,154,185,198,182,139, 33, 18, 0, +139,210, 10,144, 7, +} ; +// ../Source/Template/GB_task_struct.h: +uint8_t GB_JITpackage_208 [1044] = { + 40,181, 47,253, 96,110, 12, 85, 32, 0,150,172,131, 40,224,178, 56, 7,200,165, + 49,196,246,110,149,114,175, 91,232, 44, 85,172,126,117, 78,221, 61,125,223,139, +118, 3,195,191,163,235,155, 51,152, 97, 24,198, 11, 1,127, 0,116, 0,113, 0, + 43, 35, 64, 4,113,105, 48, 24, 23,154,204, 37,145,161, 52,217, 66,153, 69,128, +104, 96,178, 72,171, 97,143, 82,191,212,141, 89,108,185, 48, 66, 90,150,139,197, + 9,105,195, 96, 49,193, 5,213,229,189, 56,183,198,137, 23,223, 54,234,142,192, + 50, 96,145, 14, 42, 3,150, 79, 48,201, 29, 71,208, 99,248, 68, 61,164,245,244, + 68,205, 93,134,154,168, 52,250,234,195,101, 57,179, 29, 63,153,168,206,166,177, + 98,188,240,223,118,219, 94,125,244, 23,109,106,236, 83,155,175, 14,191,190,170, +135, 83, 40,145, 68,161, 4,147,226,159, 22, 20,249,179, 97, 50, 94,100, 60,215, +217,216,130,126,230,183,117,174,144,240,230, 26,179,206,221,196,254, 94,167,195, + 63,101,243, 12,101,236,124,126,244,214, 14,199,179,101,124,167,206, 15,173,207, +145, 17,139, 27, 63,212,113,184, 33,113,235,123,232,211,164,186, 59, 37, 57,157, + 87,248,130,149, 48,241,112, 23, 9,102, 39, 29,126, 30, 40,223, 93,111, 31,207, + 58, 8,159,228, 44,103,236,215, 31,234,153,216,151,227,135,212,114, 61,187,237, + 87,211, 4, 95, 26,106, 14,189,143,183,220,186, 89, 22,225, 67,242,121, 28, 38, + 63,217, 37, 39, 50,191,217, 19, 7,140, 26,151,174,240,229,237,183, 81,207,246, + 5, 25, 78,173,215,163, 97,111, 63,161,156,148,183, 86,199,150,202,249,105,205, +113, 66,195,203,159, 79,222,222,179,173, 29, 31, 6,193,184,136,113, 32,150,139, +150, 53,105,185,188,149,158,227,173,103, 81, 82,185, 88, 85,244,253,238, 64, 40, + 23, 41,138,118,243, 59, 98, 55,126, 87, 36,142,239, 9,119,101, 81,148, 69, 40, +183, 34,128, 32,185, 69,245,144,213, 5,173, 92,222,118, 4,225, 27,122,133, 83, + 2, 62,217,188,203,121,222,126,117,233,164, 30, 64, 17,249, 68,242,108,227, 19, +185, 27,104,211,185,163,155,187,120,119,109,168,132,146,253,181,220,150, 19,235, +229,252,114, 81,161,193, 52,100, 92,154,134,135, 40, 66,120, 52, 18,105,205,201, +230,119,131,242,105,114,183,170,170, 42,138,162, 40,203,178,172,138, 4,229, 94, + 28, 24,170,113, 16,204, 49,116,226,168,117, 60, 66, 95, 5, 6,255, 35,145,128, +232,168,177,169, 51, 53, 35, 34, 73, 10,146, 82,107, 80,132,200,144, 93,213, 1, +226, 0, 77,199, 66,144, 32,130,140, 68,129, 4, 34,129, 68, 19, 74, 26, 41, 40, + 72, 65, 27, 0, 72,128, 88,158, 32, 71,107,114, 21, 91,129, 54,246,137,216,191, +182, 59,137, 84,168, 36,165, 82,114,250,215,177, 37,193,240,186,115,218,147,115, + 17, 31, 5,236, 61,109,125,206,238, 21,168,115,227,180, 70, 43, 6, 35,185,252, + 18, 46,115,226, 80,152, 57, 66,129, 85,180,202,139,121,212,131,164,103, 68, 23, +101, 53,106,255,152,103,234, 56, 43,102,205, 41,252,226,159,130,234,163,227,213, +175, 54,201,207,104,184, 75,244,153,233, 80, 54,136, 72, 37,165, 17, 51, 68,196, +108, 31, 78,132, 72,154, 54, 79, 30,155, 4,151,209,193,226, 30,128,240, 71,252, +125, 21,133, 89,119,148,246, 7, 71, 46, 39,104,200,114,237,146, 94,176,233,114, +162,241,179,212,206,159, 86,192,116, 79,158, 48,177,222,184, 73,198,131, 9, 20, +164,247,156, 40, 50,167,161,184,251,239, 26,211, 80,196,208,178,144, 26, 14,191, +249,208, 24,226,177, 65,208, 57,131, 44,226,215,113, 22, 13, 7,116, 1,117, 53, + 23,221,242, 37,169,110,188,140,232, 30, 29,244,213,147, 17,150,176,212,125,199, +100,211,246,229,186, 59,117,180, 60, 68,126,148,121,245,102, 73, 76, 19, 39,111, + 51,134, 58,144, 36,146,136, 38,158, 24, 98,247,140,227, 13, 30, 12,201,219,185, + 29, 48,211,200,142,119, 0,115, 24,115,181,205,102, 35, 94, 68, 35,186,148, 95, +176, 61, 15,244,207,254, 55,110,176,109,154,177, 99,111,168,185, 38,170, 50, 77, + 42, 63, 28,207, 64,164, 30,165,160,228,116,223,115,152, 29,182,247,206,242,201, +215, 61,103, 21,188, 52, 73, 19, 8,145,139,210, 98, 13,188, 80,151,100,224,254, + 90, 12,174,179,186, 77,120,252,227,222,201, 44, 62,184,244,160,127, 4,168,129, + 78, 58,102,243,124,150,153,131, 35, 64,190,133, 25,120,135,247,134, 64,145,143, +116,240, 29, 5,212, 6, 77,165,160,105, 16,172,167, 9, 72,209, 13,164, 23,220, +212,142,132, 72, 18,100, 52, 10,223,101,100,249, 55,249,237,195,174, 84, 56,206, +201,224, 75, 97, 68,131,166,170, 14, 19, 94,239, 53, 16, 50,187,224, 64,223,232, + 95, 15, 96, 12, } ; -// ../Source/Shared/GB_opaque.h: -uint8_t GB_JITpackage_211 [5161] = { - 40,181, 47,253, 96,128, 98,253,160, 0,170,150,160, 28, 45,144, 16,157,109,170, -125,175,197, 97, 79, 37,171,106,114, 66,190,220, 79,155,218,177,215,134,119,103, -141, 28, 96,135,157,130, 1, 96,104,184,216,136, 0, 0, 0, 0, 8,145, 8,128, -179, 1,202, 1,196, 1,155, 6,187,168,133,205, 10, 5,156, 84, 80,201,164,145, - 73, 33,179,210,252,216, 38,135,109,135,129, 58,152,250,248,218, 52,208, 88,186, -231, 34,171,104, 58,157,111, 5, 76,249, 48, 0, 77,237, 24,213,167,114,117, 17, -191,133,252,162,169,203, 13,147, 11, 0, 9,215,217, 54, 56,180, 86,132,105,247, -157,143,184,132,184, 34,156,178,191,239,144,250,109,252, 17, 88, 68, 33,160,139, -227,209, 96,211,102,249,128,211,184, 45,203, 92, 24,109, 37, 67,217,214,249, 36, -202, 22,255,142,165, 75, 43,217, 18,213,190,173,158,206,134,175, 13, 67, 58,218, - 76,175,119,132,166,161,161, 81, 57, 52,132,203, 60,168,210,195, 81,180, 29,134, -241, 80, 68, 90,239,162, 60, 28,213,199, 5,166,206,212,134, 95,101, 93, 30,138, - 10, 5, 34,153, 72,176, 71, 4, 34,185,170,135, 5, 70,225, 54,173,163, 95, 39, -232,250, 93,224, 71, 54, 44,208,213,181,233,116, 46,149,213, 18,221, 33,191,214, -115, 92,199,100,123,181,237, 85,218, 85,125, 71, 14,255,113,181, 5, 95, 26,210, - 14, 55,228,106, 7,187,187, 27, 24, 26, 34, 89,157, 11, 93,174, 6,187,103,187, -142,232, 75,193,174, 61,175,163,199,149,244,177,148,187,207, 46,130,249, 47,237, -235,185,190, 29,251,218,175,189, 15,105, 70,103, 82,212, 85, 59,198,135,109,241, -222,102, 52, 26, 20, 85,118, 21, 10, 77,141,109,102,131,108,106,170,156, 92, 64, -163, 34,148, 89, 48,152,158, 78,253, 94, 64,195,122,192, 28, 14,118,116,156,109, -185,254,223,231,234,158,230,112, 92,189,251,141,227, 34,227,121,240, 60,227, 58, -246, 79,227, 12,142,254,211, 97, 56,187,122, 96, 22,230,152, 92, 22,214, 84, 55, -117,133, 63,131,102,250, 97,118, 9,204, 86,124,174, 43,208,220, 92,192,145, 94, -141,197,241,165, 35,200,243,147,160, 6,206,157,147, 68,182,251,179,141,171,253, -252,245, 63,247,218, 2, 62, 56, 89,129,142, 54,116,209, 52, 4, 68,195, 1, 1, - 17,109,193,142, 16, 7, 29,207, 3, 2,107,160,101, 28,174,140,163,113,101,201, -162,124, 28,149, 18, 5,100,177,241,148,116,114, 49,235,139,146, 43,242,209,166, - 39,252, 75,111,126,209,165,157,135,142,187, 42,149,144, 7, 91,233,145,217, 58, -152, 12, 84, 97, 47, 10,113,160,143, 70,145,201,241, 49,117,145,226, 75,102,191, -157, 41,152,155, 42, 85, 23,250, 69,212,196,154, 28,168,108, 40,217, 68, 66,194, - 32, 3, 16,217, 50, 11,210,211,118,178,130,104, 23, 78, 7,194,230, 47, 18,237, -133,238,108,235,117, 48, 63, 44, 21,117, 57,112,104,187,106,185, 12, 92,156,198, - 98, 85,150,169,167, 37,201, 54,223,103, 1, 84, 40, 40, 58, 18, 20,114, 98, 98, - 81,205,155, 37, 27,237,195, 57,174, 28, 31,241,104, 27, 10, 3, 35,250,158, 3, -162,153, 90, 38,180, 29,233,177,113,180, 5,123,219, 66, 25,248, 9,139,148,222, -135, 46,178,204,166, 57,176, 96, 84, 18,204, 36,136,239,106,123, 84,223,171, 62, -186,119,109,231,144,196,254,193,126,201,220, 97,205, 49, 25, 42,221,171, 79,109, - 38,117,160, 9, 16,144,152,152,186, 33,161,169, 41,203,120, 58, 15, 62,115,179, - 8,129,180,142,197,247,247,237,213,149,129, 72, 86,132, 68,170, 92, 6, 46,202, -183,132, 68, 83, 20,169,250,105, 78, 31,154,104, 91, 71,227, 52, 80,199,227, 85, - 16,201,181,141, 61,114,125, 75, 72,177, 29, 93,194,105,155, 70, 81,105,141,108, -115,251, 30, 2,161,208, 74,149, 90, 43, 26, 93,250,248,204, 17, 21, 31,211, 76, -142,134,185,102,246,241, 42,245,235,160, 5, 82,181, 22, 68,193,214,193,148,194, -106,115,245,106,189,146, 93, 23,166, 53,208, 54,251,179, 77, 49,254, 92,169,216, - 85,121, 63,202,197,135, 66,212, 77, 30, 23,140,228,187, 30,161,248,100,153,163, -162, 72, 71,225, 99,114, 56, 83,179,193, 60,151,199,186,172,135,117, 93, 98,229, -226, 96, 20,172,171,228,205, 19,204,102,241,225,188, 74,218, 43,201,108, 22,157, -207,181,145, 79,167,179,161, 8,223, 33,216, 70,203, 68,178,142, 30, 28,139, 32, -217, 17, 61, 97,203, 54,161,140, 51,183, 82, 19,161,190,213, 17,152,230, 52, 5, - 96, 30, 69,116,245, 48, 59,134,200, 62,106,145, 86, 76, 58, 64, 64, 88, 21, 70, - 1,209,134,174,123,212, 65, 28,145, 67,221,104, 60, 80, 88,198, 36, 9,236,190, - 10,169,200,134,121,244,174,244,169,177,232,249, 27,210, 79, 75,225,165,190,125, - 17,172, 68,239,165, 61, 78, 56, 38, 46,133,185,250,189, 36,166,251, 1,123,158, - 5,179,139,157,177, 21,179,151,178,173,149,118,157,173,238, 34, 16,115, 73,100, -210, 73, 58, 73, 56,170,212,107,155,199,208, 65,191,153,204,230,238, 71, 84,108, - 7, 57, 76,242, 73, 40,147,199, 4, 50,137, 72,176, 73,105,245, 67, 37,179,123, - 37,106,129,118,229,249,133, 15,233,119, 5, 59,234,237,222,227,142,134,227,117, -145, 72,214, 46, 85,140,166,201,213,118, 19,142,182,180,227,144,126,141,160,169, -205,198, 98,163, 46,165, 93, 38,175, 62,198,103,155, 58,152, 59, 20,135,201, 54, - 25,168, 66,153, 72, 34,144, 5,155, 69, 5,247,200, 48,110,115,101,214,131,211, - 84, 42, 74,231,147,217,218, 85, 53,145, 68, 42, 8,102,175, 95,104,155, 27,231, -144,164, 17,152,180, 94, 91, 50, 25, 55, 49,217,199,147,101,166,177, 83,106, 40, -237,242,151, 7, 70, 34, 93,152,130,203,194, 46, 31,242,170,237, 28, 87, 52, 18, -133, 68,154, 40,184, 12, 92,146,171, 84,101,124,255,139,104,126,105,151, 94, 84, -118,144,139,141,135, 99,233,106, 44,221, 11, 31,151,103, 83, 26,109,135, 61,240, -116, 48,151,138,126,175,201,201, 62,158, 21, 63,235,234,112, 40,178, 29, 75, 96, -133,235,120, 30, 84, 96, 20,140,155, 72, 34,144,199,166,170,176, 9, 71,115, 37, - 55,125, 15,226,139, 66,171, 0,221,176,179,172,235,179,193,224, 10, 40,251,136, -194,101,154,186, 97,178, 93, 91, 82,144,120,149, 18,136, 92,219, 85, 6,200,229, -113,129,205,210,212, 25, 50, 52,101, 93, 31,171, 34, 81,201, 52, 7, 40,155,158, -152,112, 26, 0,146,172, 84, 78, 17, 6, 89,141,198,247, 94,117, 1,151,203,229, -114,153, 46,151, 57,231,156,115,206,105, 78, 14,135,195,225, 76, 28,142, 23, 58, - 24,202,108,178,138, 11,181, 74,180, 83, 62,129, 54,179,193, 22,234, 75,107,221, -152, 9, 19,162, 22, 28,122,189,142, 81, 18,249,181,183,195, 13,107,138,208,229, -180,248, 67,179,156,211,133,232, 18,141,149,104, 78,151, 49, 66,255,128,166,198, - 31,171,159,147, 6,130, 21, 56,167,138, 9, 24, 17,218,210,212,212, 14, 77, 97, -140,213,195, 12, 90, 97, 84,227,181, 20, 99,239,186, 41, 98, 64,152,246, 46,245, - 42,205,184, 47, 71, 73,228,184,218, 2,102,160,207,244,128, 62, 25,190,160,232, - 71,137, 6, 41,168,169,195,144,252, 40, 74, 52,225, 0, 48, 53, 53, 39,207,228, -112,141,145,138,249,103,233, 32, 58,198, 19, 14, 92,150,164, 75,124, 47,227,251, -208,118,164,119,184,182,254,232,213, 49, 4, 62,224,239,126, 40, 27,213, 61,131, -130, 84, 89, 93,139,107,198, 31, 98, 15, 71, 50,123, 39,102,116,133, 45,158,106, -177,104, 71, 88,120, 48, 22,207,248, 76, 71, 94,189, 15,145,227,200, 98,225,209, -216,220,217, 44,160,164, 98,168, 98,209,222,177,177, 0, 10, 79,215,195,169, 62, -118,202, 92, 98,104,166, 21, 53,245, 40,190, 88,138, 94, 87, 53, 95,139, 67,214, -187,165,166,218,199,216,111,232, 88, 84,210,203, 69, 85, 23,135, 41,129,153, 83, -215,183,234, 99,224, 76,142,153,180, 13, 66, 54,119,247,223,119, 62,102,124,175, - 95, 31,141,108,104,193,160,206, 27,148,127, 51, 5,187, 76,197,142,150, 46, 25, -255,118,216, 51, 17,165,112,252, 28,146, 34,246, 60,218,163,250,247, 69, 7, 97, -202,214,169,243,151,238, 8,197,235,249,194,132, 99,180, 17,165,252,163,189,222, -219,106, 57, 14, 15,165,240,187,191, 94,125,212,180,109,198,180,107,184,168,171, -170, 84,103,249,151, 0,224, 67,128,118,143, 12,187,250, 2, 34, 90, 67,129,234, - 1,127,101,245,247, 1,134, 77,168,211,183,179,162,101,108,102, 36, 73, 82,200, -178, 6,243, 51, 17, 12, 20,149,141,230,146,162, 69,125, 3, 1,195,144, 36, 16, -155,132,132, 73,156,163, 48,152, 98,138, 24, 34, 18,136, 4, 34, 66, 1,165, 81, -146,233, 0,106,156, 45,251, 89,126,122,136,133,176, 61,244, 32, 39,255,202, 62, -215,108, 47,164,122,211,141, 83, 43, 56,135, 25,247,116,189,216, 97, 26,198,230, -105,123,247,162, 84,111,187, 61,181,154, 19,172, 36,208,139, 96,123,200, 65, 70, -254,149,216,167, 52,217,235,163,116,216, 25,251,248, 88,157,149,104,241, 1, 9, - 17, 55, 0,155,222, 1,206,160,166, 84, 23, 69, 11, 68,227,133,174, 30, 33,142, -230, 34, 11,152, 15,138,200,234, 99, 16, 87,114, 30,126,242,101, 95,114,108,224, - 48, 16,211, 10,124,175,103, 49,217, 98,182,160, 75, 5, 36, 5, 89, 71, 74, 13, - 26,226,153,142, 10,237,160,139, 54,113,128, 12,207,216,121, 1,236,251, 51, 11, -114,202, 51,116,220,247,222,100, 62, 47, 91, 64, 65, 67,117, 2,186, 40, 98,165, -202, 76,199,223, 20,227, 20,182,130,124, 47,226,198,241,160,121,137,103, 68,145, -130,119,110, 31,217, 17,141,244,163, 98, 36,253,232, 26,198,144,130, 39,220, 57, -197, 5,239, 9,118, 54, 12,195, 38,174,222,106,116,220, 78,131, 31, 60,141,184, -227,218,186,138,253, 37, 55, 92, 7,217, 55,254, 0, 94,163,146,107, 43, 19,108, -190,232, 4,192, 90, 77,215,214, 75, 0,208,136, 5,228,152, 56,118,208,106,128, -101,192,212,202,220,255,105,128, 70,179,119,191,218,201, 25,253,108,223,186,110, -242,207, 19, 73,115,212,224,112, 85, 38,171,116,212, 28,153,191,224, 23,246,216, - 21, 74,176,139, 35, 40,207,128, 52,224, 89,123, 37, 50, 26,227,229,250, 16, 82, -140,134, 87, 32,109,105,139,253,214,186, 89,134, 69,241,172,100, 37,181, 56,238, - 13, 37,117, 95, 26, 6,187,103,200,219, 2,119,166,229, 27,218,121,204,235,110, -128,185, 79,121,251,174,203,197, 3, 79,162, 83,191,122,135,214,188, 60, 81,143, -189,134, 60, 74, 30,148, 31, 70, 10,164,120, 7, 3,223, 6,207,115,109,217,114, -213,246,236,138, 76,148,113, 94,143,151,105, 15,239,169,137,245, 51, 43, 14, 42, - 2, 95,115,182,106, 74,232,158, 52, 17,242, 26,242, 8,172, 66, 1,139,207,121, -152, 0, 47, 86,192, 88, 17, 90,176, 13,135, 77,156, 34,106,184,103, 12,106,230, -246,202, 44, 87, 22, 92, 90, 53, 14,158,191,213, 76,203,123,242, 42, 30,156,243, - 78,157,251, 31, 48, 72, 34, 20,211,202,193,219,150,128, 83, 34, 69, 41, 7, 20, -155,226,231, 74,117, 68,159,175,159,147, 49,145,232,143,188, 1, 33,216, 37,106, -202,100,207,222,121,164,183,188,129,101,137,212,190,142,166, 69, 49, 11,149,122, -210,157,252,145, 24, 85, 11,175, 40,241,147,173,171,101,237,148,192,144,115, 16, -182,215,207, 71,224,140,133, 11,181, 71, 58, 45,184,196,138,160, 93, 99,182,175, -216, 20,229, 74, 58, 96, 71, 25, 63, 26,132, 39, 40, 71, 52,147, 8,150,240, 79, -110,108, 16,103, 36,229, 69, 67,191,135,117,199, 66, 97,161,253,170,105,115,190, -207,137,224,169,237, 30, 33, 71,194,192,231,118,168,107,255, 87, 97, 42, 9,171, - 47, 73,247,114,252, 21,152, 13,201, 28,129,177,128,103,192,122, 72,135,215, 85, -159,204,119,249, 19, 26,125,203, 2, 50,187, 73, 15, 73,165,115, 12, 8,215,186, -153, 63, 10,142,198,215,175, 57,171, 86,107, 1, 5,107,124, 61,102,212,230, 24, -120, 61, 95,208, 49,220, 84,166, 14,105, 68, 73,245,226,148,249, 56,131,122,153, - 0, 8, 9,221, 8,182, 13,251,216,208, 46,238,118,136,183, 78,130,226, 38,135, -215, 18,172,143, 50, 19,127,226, 59,241, 50,163,105,144,116,145,171, 19,208, 51, -179,224,140, 61,104, 35,172,171,201, 95,170, 63, 29, 21,148, 37,191, 38, 45, 23, -130,103,191,218,165,218,252, 43, 0, 23,193,199,215, 93, 53,130,154, 49,154,116, -221,125,246, 55,199,238,148,155, 58, 91,185,119,236,107, 74,224, 60,157, 79, 46, -233,247,168,208, 36, 96, 59, 76,147,145, 34,110, 88,167, 22,222,162,155,222,235, -229, 82, 24,140,123,242, 60,215, 89,123,162,173,154, 81,191, 60,235, 27,121,125, -154, 28,173,104, 72, 66,224,192,206, 45,130,142, 31,238,137, 61,196, 67, 35,118, - 21,172,203,199,224,149, 45,166,254,152,148,135, 44,192, 21,226, 93,182, 27,201, - 15,167, 78,161,104,164,187,188, 48,194, 70,102,203,194,207, 37,180,143, 96,176, - 52,133,150,126,202,229, 32, 28,215,158, 78,213, 91,159,139, 40, 30, 73,251,196, -214,191,185,152,200,150,113, 96,140, 97, 49, 93, 61,122,235, 49, 88, 13, 37, 2, - 2, 66, 14, 17, 49, 0,224,175,176,194, 55,186, 38,121,208, 65,114,159,181, 40, - 55, 1, 63, 3, 46, 53, 55,102,195,133,253,151,253,163,193,173, 38, 20, 81, 14, -115, 8,228,167,184,200,254, 22, 34, 5, 16,149,252, 10,165, 4,148,251,132, 38, - 7,142, 76, 85,195,150,139,120, 3, 21,220, 20,107, 71, 89,246, 97, 78, 92,223, -217,170, 44, 80, 77,135,153,161,135,185,199, 81,240,184,150,120, 87, 89,220, 27, -238,208, 17,145,160,111, 74, 46, 17,171, 22,215, 18,131,218,239, 24,157,125,126, - 60, 91,203, 60, 79, 69, 99,208,226, 29, 78, 7,175,108,200, 5, 72, 0,211,121, -216, 0,196,204,151,227,135,251,230,219, 72, 66, 64, 51, 81, 87,110, 0, 28, 96, -173,142, 7,239,229,234,148, 1,100,139,218,175, 3, 10,212,212, 10, 81,200, 15, -133,222,209, 23,235, 11, 8, 41, 99, 92, 55, 86, 72, 32, 98, 7, 69, 54,121,218, - 12,254, 78,251,224, 72,129,242, 60,108, 94,137,175, 4, 55,130,188,149,214, 33, - 98,129,149,247, 26,143,140,155, 23,141,120, 83,229,119,251,233, 47, 68, 59,248, -106, 91,100,198, 42,118,165,149,218,167,102, 14, 80, 1,183,197, 50,248, 32,255, - 94,153,103, 83, 37,124, 28, 21, 62,107,143,170,243,154,195,229,247,136,203,169, - 79, 80,145, 87,131, 51,237,147,159,250, 15,209, 64, 46,211,146,189, 86,141, 51, -249,192, 53, 67,186, 96, 0, 81, 91, 60,101, 17, 24,172, 7,215,210, 81,156,138, -198,124, 82, 24,137,121, 90,201,188,200, 73,211,186,187, 62, 11,199,111, 13,160, - 79, 90, 92, 18, 98, 49,169,130,116, 51,135,120, 52,229, 70,254,162,102,169, 60, - 42, 97, 42, 85,141,122, 75,127, 55,224,192,192,125, 18,121,101,188,166,243,177, - 94,187,128,143,131, 28,156, 9,233,212, 61, 22, 17,153, 16,124, 63, 54,152, 39, - 98, 70,133,229,251, 62,200,110,137, 29,117, 73, 66, 91,130, 10,152,159,194, 18, -199, 64, 8, 30, 0,185,250, 76,165,154,137,105,175,117,171,114,165, 20,119,126, -114,210,195, 75,191, 93,156,105,148,140, 55, 52, 18, 76,244,205, 64, 27,231, 70, - 6,156,225,214,164,235,229, 54, 96, 35, 67, 38, 42,231,102, 32,150,182,185,226, -195,176,209,112,148,144,197,118,239, 92, 84, 54,229,205, 95, 92,235,117,193, 52, - 19, 98,176,108,226,117,243,105,174, 17, 43, 95, 57,124, 29,107, 39,144,186,107, - 1, 39,239,169, 84,151, 47, 58,226,197, 56, 24,117,170,148,199,213,180,216,177, -167, 51, 81, 98, 10,239, 67,105, 20,102, 4, 12,138,105, 53, 8, 81, 81,115,163, - 94,135,175,235,166, 4,242, 65,248, 42,122,145,221,106,228, 18, 97,155,102,201, - 67,155,140,246,185, 65, 40,114,229,237,142, 37,136, 11,115, 16, 1, 74,180,250, - 38, 58,123, 79, 42,107,131,132,194, 87,232, 71,132,173,187, 97,232,183,254, 86, -150, 57,170,146, 82,134, 89, 38, 79, 73, 49, 82,219,191,119,234,168, 88,113,169, -254, 95,217, 53,229,240, 67,167,166,207,156, 66,112,249,149, 86, 65,241, 94,192, -234, 39,216,189, 12,235,191,132, 49,255, 51, 4, 39,143,214,125,251, 29,202,250, -208, 24,104, 9,214, 59,156,236,119,134,239,224,232,186,155,158, 81,218,214, 94, - 54, 30,111,244,124,153,183,245,192,211, 38,122,195, 52, 75, 49,240,232,155, 82, -192, 34,119, 14, 25, 7,222,147,220, 99, 62, 73,240, 71, 73,150, 74, 0,217,186, - 36, 57, 37, 71,168, 44, 58,217,240,135, 48,156, 18,182,207,183, 80,217,243, 4, -178, 69,243,159, 81, 25,176,204,183,174, 31,203,218, 54, 82, 58,120,166, 53, 18, -194,182,187,207,145,253,186,135,247, 72, 66,215,196, 95, 8, 29, 18,220,171, 69, -234,239,147, 21,167,164,185,254, 74,172,242,150,116,177,147, 3, 91, 79,199,129, - 82,251,193, 23, 32,134, 36, 62,117, 68,135, 12, 97, 76, 49, 58, 12,215,212,139, - 12,200,253, 68, 56,228,118, 48,228, 71,233, 9, 94, 32, 22,165, 83, 20, 92,128, -128, 79,116, 34,148,198, 99, 65,157,116, 2, 60,232,172,237, 87,119, 35,208, 93, -108, 58,123,235, 68,143,137,200,231,212,159,176, 83, 64,127,157,204,216,144,156, -170, 26,115, 64, 60, 26,111, 57, 42,145,197,177,237, 46, 60, 41, 77,169, 80,150, -157,241,125, 51,150,239, 70, 73,120, 72,148, 27,200,138,114, 21,223,212, 54,248, -169,167, 4,166,108,191,224, 85, 6, 1, 77, 66, 46,231,138,141,158, 61, 37, 43, - 18,252,153,160,237,142, 24, 67, 45, 96,138,122,106, 66, 44,128,120, 56,195,131, - 13, 20, 57, 52, 41, 95, 6, 80,154, 25,191, 37, 12, 72,180, 74,142, 34, 18, 77, -178, 65, 21, 76,191,155, 9,114,141, 97,250, 82, 53, 71, 42, 53,210,132, 0,143, -126,249,163, 48,137,201,235, 11, 28, 42,140, 70, 56, 12, 80,244,128,112,248,194, - 15, 92,108,187, 69,104, 13, 27, 53,215, 28, 21,150,118, 69,229,220,244,190,155, - 60,251,157, 24, 23,240, 40, 36, 75,101,145, 40,177, 36, 98,251, 92, 27, 32, 15, -226, 33, 57,177,225,158, 5, 12,181,242,251,240,159, 86,115,100, 12, 20, 67, 28, -122,151, 35,204,117,121, 8,215, 3,126,240,230,161,203,245,207, 42, 2, 16,171, -139,116,109,248, 62, 96,112,145,138,101,125,204, 67,151, 71, 62,226,106, 78,214, -102, 47,247,126,108, 15, 16, 43, 96, 18,245, 41, 71,176,193, 43,218,168, 83, 14, - 73, 59,120, 53,168,181, 91,234,216, 21,196,178, 30,113,202,109,108,204, 22,159, -154,255, 71, 77, 67,252,148, 36,178,142,204,169,124, 70,145,167,141,129,206, 19, -242,210,222, 76, 9,150,180, 0, 31,155,124, 57,133,183,195,204, 40, 22,236, 79, -240,235,113, 75,253, 98,152,218,252,119, 41,121,168,152, 63,120,215,159,246,247, - 93, 99, 88, 57, 15, 58, 52, 37, 84, 29, 7,190,115,235, 69,110,119,151,210,167, -135,160, 9,239,232, 30,211,242, 80,157,175,118,161,144, 69, 61, 1, 78, 4,250, -192,251,139, 13, 59, 62, 96, 27, 69,150,140, 32, 54,146,190,150,223, 2,201, 69, - 33, 8,155, 94,153,254,135,241,229,202,127,171, 30, 4,247,184, 28, 0,133, 21, -122,212, 20,235,167, 6,148, 64,250,231,186,227,251, 35,231,250, 37,240, 40,126, -148,184,230,134,197,123,177,205,221,191,102,212, 46,218,210, 51,191,180, 20,127, - 72,158,102,188,172, 30, 21,216,176,142, 9, 40,226,249,200,120,198,205,198,206, - 47, 1,241, 57,242,180, 68,167, 97,117,148,249, 15,143, 23,130,215, 67,206, 9, -166, 15,248, 70, 22, 87, 18, 35,150,137,135,110,216, 35,251, 56, 21,184, 0,102, -252,108,101,176,222,144, 5, 16,147,178, 3,194, 67,112, 73,145,212,208,101, 18, -149,170,227,111, 47,237,230,192,178,150, 27,222, 19,100, 64,178, 67, 62,186,118, -219,233,199,168,221, 44, 65,205, 67, 3,179, 65,196, 56, 73, 2, 87,168,157,193, - 6, 79, 98,195,138, 72,154,213,100,231, 37, 72,134,241,130, 45, 43,241, 98, 68, - 79,237, 26,165,167,116, 4,201, 31,205,193,236,175, 43, 80,226,131, 71,172,161, - 76,112,236,104, 27,206,100,184,226,123,253,117,160,169,212,168,169, 82, 10,175, -136,146, 6, 53,205, 9,225, 37,101,224,254, 70, 38, 35,199,239, 15, 77,187,198, - 13,148, 38,105,237,254,243,200,105, 85, 84,217,109,197, 63,172,215, 12,114,135, -190,138,192,238, 33,240, 12,208,245,180, 89,155,249, 14,122,147,175,122,227,252, -164,127,153,190,151, 84,215, 92, 82,253, 27, 23,112,162, 64,176,129, 69,167,249, - 37, 86,229,112, 97, 95,130, 94, 19, 33, 11,247, 21,219,181,220,199,116,158, 50, - 62,181, 91, 17, 94, 44, 37,130, 96,238,126,212,173, 7,220,162,120,197, 9,244, -166, 15, 8, 90,167,204, 79, 51, 43,193,224,152,186,142, 65,137,218,166,126,174, - 52, 1, 91, 90, 18,113,229, 58,152,236,149, 25, 49, 69,168,231,186, 99,136,244, - 2,108, 89,189,174,200,101,179, 37,143, 15, 73,189,152,253, 44,107, 99, 34,155, - 81,163,147, 8,155,182, 2, 34,212, 42,142,107, 21,246,100,154,169,130,138,151, - 39, 80, 24, 92,120,109,134, 84,128,254,172,218,175,244,121,124,151, 76,253, 29, - 33,193, 28, 67, 77, 84,161, 38,127, 37, 92,104, 78,184, 88,213, 41, 56, 58,223, -170, 21, 85,116,208,168,116, 24, 42,233, 9,151, 54, 76,144,101,113,102,184,238, -144, 14, 31, 66,117,168,129,173,199,191,152,144, 59, 37,154,192, 32,237,194, 98, -140,214,223,209,134,186, 36, 87, 82,179, 64,101,104,233,172,223,121,218,156,163, -114, 82,228,125, 65,159,137, 2,243,193,219,207,106,169, 12, 15,170,195,213, 43, - 62, 23, 87,192, 97, 64,248,245,159,167,254,104,218, 13,178,169,165,178, 24,222, - 14, 53,250,236,195, 71,178,185,225,188, 77,116, 38, 93, 4,223, 46, 2, 80,253, -169,153, 51,199, 2, 76, 28, 27, 80, 37, 81, 36,211,240,109, 43, 39, 94,180,145, -136,174, 37,229,169, 99,137,247,100,211,226, 95, 61,119,126,194,217,166,120,101, -188,181,248, 17,189, 87,150, 91,115,143,208,141,230,192,109,173,234, 56,163,249, - 91,161, 13,170,172,125, 32,198,154,158,188, 80,132, 75,136,249, 30,134, 54, 1, - 76, 72,124,225,105,116,204,190,246,184,147,103,234,214, 18,251,134,147,192,244, -235, 39,223, 33, 49, 65,106,225, 39, 97, 80, 17, 44, 64, 85,129, 24,225, 70,242, -189, 69,112, 8, 37,212,107,136, 3,160,171,193,100,158, 86,130, 95,181,215, 43, -116, 29,170,209,197, 89,188,253, 95,145, 94,154, 69, 38,148, 42, 31,124,173, 58, -237, 45, 40,180, 27, 13, 24, 20, 26, 59,188, 6,222, 4,181,170, 23,153, 95,202, - 10,223,244, 96,207, 46, 7, 64,161,151, 57,164, 39, 10, 34, 6,178, 26, 2, 67, - 48,176,159,224, 31, 52,193, 41,159,174,242,252,171, 74, 64,249, 20, 60,191,114, -144,243, 53, 31,228,192, 22, 73,162,223,133,162, 60,139,129,102,139, 48, 4,151, - 77,128,177,135,248, 90, 5,199, 6, 12, 34,184, 93,109, 44,227,200,146, 18,118, - 49, 68, 59, 95, 82, 49, 87,162, 50,242,219, 49, 40,190,176,245,134, 70,120,172, - 81, 80,243, 7,126, 12,158,103, 20, 79, 17, 12,156, 39,182,110,199,210,162,143, - 20, 5, 6,246,232,120,235,204,228, 15, 74,149,139,208,162, 65,130, 80,220,158, - 90,254,198,118,224,216,154,191, 71,251, 32, 67, 15, 19, 5, 58, 51,117, 61,144, -136,244, 65,115,148,179,129, 56, 63,184, 1, 63,112, 41, 78,124, 41,202, 9,250, - 1, 58,104,198,117,153,169,115,224, 13,177, 11, 66,113,129,251, 80, 45, 18,107, - 14, +// ../Source/Template/GB_transpose_bitmap.c: +uint8_t GB_JITpackage_209 [789] = { + 40,181, 47,253, 96,184, 6, 93, 24, 0, 38,169,123, 40,240,206, 56, 7,136,136, + 56, 98,117,185,214,220,179,202, 27, 27, 33,113,188,145,237, 33,193, 44,236,201, +109, 34, 34, 86, 79,102,168, 88,224, 25, 72,115,248, 11,114, 0,113, 0,105, 0, +176,190, 75, 44,199, 45,246,100,173, 82,241,157,156,197,135, 74,130,225,226,208, +248, 99,249, 50,230,183, 57, 78,196, 92,202,119,170, 32, 2,137, 84, 8, 4,144, +200,167, 76, 58,117,227, 7, 50,220,241, 30,226,154,118, 81,115, 42,243, 30, 40, + 92,133,214, 65,194,215,194,154,225,142,158, 76, 84,233, 67,178, 86,120,109,194, + 83, 92, 67,167,166, 73,224, 73,125, 97, 38, 85,106, 93,151, 84,216,117,220, 96, +124,105,189, 19,218,198, 40, 14,127, 60,162,234,241, 8,125,203,125,225,118,222, + 92,147, 30, 10,122,199, 75, 44, 12, 22,205,117,109, 54,239,157, 69,219,151,237, +192, 27, 75,232, 59,105, 6,162,114,179,252,161,183,204, 97,182,116,114,226,100, +192,250,197,156, 44, 84,239,214, 27, 51, 56,232, 25,175, 79,186,168,125, 96, 21, +218, 84,147,229, 7,254,198,107,242,105,122,210, 47, 15, 66, 83,161, 96,153, 10, + 70,113,144,174,193, 52,100, 50,239, 92,211,205,217,194, 95,239,255, 31, 69, 24, + 17,196, 17,169,152,203, 2, 24,141,198, 21, 38,135,220,146,166, 44, 54,236, 43, +177,244,104,204,101,247,211,148,174, 6,217,114,141,117,158, 41, 89, 74,104, 97, +125,237,232, 97,199,129,182, 2,104,177, 31, 57, 26,110,109, 41,119,111,233,103, +228,186,170,164,132, 45,101, 4,253,186,124, 97,118,230,250, 27,125, 95,218,221, +179,129,221,153, 99,161,188,165, 27,117,103,231,145, 52,123, 92, 16,181,111, 58, + 79, 93,150,177, 31,218,252, 70,174, 79,181,211, 81,148, 17,109, 81,155,156,241, +234,169,139, 5,155,120,184, 92,158,197,147, 94,169, 5,134,244,173, 33, 99,185, +100, 34, 30, 70,131, 89,190,177, 54,183, 8, 96,189,226,186, 42, 94,165,176,126, +251, 70, 11,198, 58, 49,107, 72, 31,120,124,227,157, 91,127,245, 83,164, 58,210, +155, 52,118,188,180,106, 51,110,143, 78,192,173,199,169, 67, 69,233,122,200,246, +228, 78,124, 51, 71, 97,114,235,167, 40, 74,122,132,165,162,169,104, 48,239, 50, +153,106, 11,251, 98, 87, 13,123,168, 17, 49, 51, 8,161, 25, 9,102, 70,146, 20, + 20,210, 1, 64, 68, 48,200, 57,155, 7, 50, 8, 93, 75,147,198, 10, 12,209, 4, +243, 41, 40,255,122,217, 0, 56,147, 73, 47,158,130, 31,232,151, 85,110, 86,232, + 98,207, 47,226,158, 3, 6,220,220,162,184, 87, 93,129, 98, 68, 27, 18, 3, 85, +210,205, 53, 58, 20,165, 12,169,143,131, 25,100,213,226, 53, 1,170,136,179,179, + 4,123,129,147,207,204, 27,205,146,200, 45,248,101,122, 25, 86,148,166, 49, 10, + 72,122, 99, 90,206, 50, 81,178, 26,167,197,145, 90,148, 45, 64, 79, 81, 92, 84, +233,148,249, 30, 16,148,116,129, 48, 30, 48,155, 61, 0,166, 83, 72, 54, 24,221, + 1,163, 54, 39,140,157, 27, 18,250,114, 10,158,172,182,212,192, 1, 63,201, 78, +157,144,167,163,216,188,197,146, 36,141,175, 34,239,242,153,132, 4, 39, 25, 0, +245,160, 62,248, 2,206, 68,175,240,226,183,156, 7,137, 90,197,204,218,143, 94, +213, 94,119,218,196,199,203, 59,182, 72, 22,144,126,151,247,116, 57, 59,232, 56, +243, 10,180,128, 62, 4, 48,218,210,157, 23,242,216,154, 72,111,101,181,189, 13, + 4,134, 49, 94, 34, 56,210,200, 65,243, 40,102,194,125,192, 11,247,172,222, 74, +226, 77, 88,138,196,215,176, 3, 3, } ; -// ../Source/Shared/GB_partition.h: -uint8_t GB_JITpackage_212 [404] = { - 40,181, 47,253, 96,228, 2, 85, 12, 0,118,150, 69, 32, 16,179,115, 63, 35,144, - 35, 88,139,216, 18,207,165,216,237,201, 58, 94,130,152,140,247, 61,126, 69, 96, - 68, 0, 0, 8, 24, 4, 61, 0, 63, 0, 57, 0, 30,154,184,132, 61,164,221, 78, -211,147, 79, 9,214, 64,104, 27,234, 41, 46,254, 60,186,145,240,237,142, 4,114, -198, 82,239, 32,174,182,111,233, 51,182,239,117,217, 63,219, 25,215, 95,154,100, -187,190,125, 61,186,177, 32, 20,159, 38, 24, 77, 83,142, 7, 99,194,152, 68, 48, - 72,198,213,102, 13,128,148,100, 69,172, 97,232, 6,251,229,113,103,125, 45, 87, - 70,196,159,101, 76, 55, 34, 74, 2, 34, 85,246,120,252,113,228,223,213, 50, 29, - 57,199, 97,159, 3,139,178, 34, 66, 69, 89,151,152,248,249,117,220,165,211,213, - 24, 31,184,140,241,255, 97,229, 82,237,251,251,121,157,125,125, 57,237,172,125, -227,165,175, 82,246,180,107,167, 9,134, 56,142,118, 56,252, 42,178, 23,117,214, -238,185,182,167,235,127, 85, 75,207, 0,184,176, 4, 16,102, 93, 45, 3, 32,156, -149, 64,218, 88, 69, 86,225,211,254,243, 58, 92, 82,191,193,112,195,171,173,246, -157,118, 90,219,172,182, 40,171,200,218,226, 85,109,182, 59, 95,234,241,166, 59, -199,245,231, 82, 78,151, 82,218,120,201, 1, 46, 32, 64,132, 8, 76, 29, 31,224, -134,155, 33,134,242,193,225,185,200,134,181,223,176,204, 75, 46,137,209, 29,248, -173,127,100,221, 13, 34, 64, 4, 27,227, 18, 78,255,194, 12,192,249,110,203, 2, - 55, 27,238,189, 97,117,172, 23,156, 97,129,213, 39,186, 19,221, 11,168,142,118, -188,132, 71, 76, 34, 66,105,229, 90, 6,195,125,177, 67,150,128,160, 0,244,125, - 93,255,177, 86, 51,104, 50,207, 76,181, 81, 90,109,159, 0, 5, 48,133, 69, 90, -172,168,115, 3, +// ../Source/Template/GB_transpose_full.c: +uint8_t GB_JITpackage_210 [737] = { + 40,181, 47,253, 96,202, 5,189, 22, 0,118, 39,119, 40,208,208, 58, 7,120,199, + 49, 98,127,185, 12, 50, 71,203,102,156,207, 89,248,166,119, 59, 75,149,220, 5, +127,217,150,142, 76, 26,108, 59,200,213, 48,139,188, 18,110, 0,108, 0,102, 0, +150, 99, 23,123, 50, 87,169,248, 78,222,162,165,154, 96,192, 60, 56,254, 88,190, +156,249,109,143, 19, 51,151,242, 58, 85, 32,137, 72, 42, 4,130,136,228,211, 38, +157,186,241, 3, 25,254,184, 30,242,154,126, 81,115, 42,187, 44, 11, 94,133,246, + 97,194,215,194,154,113, 71, 79, 22, 85,250,144,172, 21,158,155,240, 20,215,208, +169,105, 18,184,164,190,112,147, 42,181,176, 79,164,244,116, 26, 95, 90,239,132, +182,181,133,135, 67, 32, 81, 5,129, 4,167,220,105,247,133,221,121,115, 78,122, + 40,232, 29, 63,185, 48, 92, 52, 32, 42, 59,203, 31,122,203, 28,102, 75, 39, 39, + 82, 6,172,103, 76,138, 66,117,221,122,107, 6, 7, 61, 35,118,202, 23,185, 15, +172, 66,155,106,178,252,192,223,136, 77,151,116, 7, 45,171, 80, 62, 89, 44, 17, + 16,183,172, 95,222, 96,189, 23,150, 74, 72,215,100, 26,178,236,186,215,116,115, +182,240,216,245,255,143, 34,141, 40,242,144, 84,236,109,176, 94,159, 4,236,109, +247,211,148, 46, 7,217,122,173,125,158, 41,217,194,250,250,209,195,143, 3,109, +165,156,139,253,134,236,130,201, 32,174,140, 70,187,188, 99,110,118, 17,224,209, +176,107, 75,189,123, 75, 63,171, 74, 74,216, 82, 70,208,177,203, 23,110,103,175, +223,209,247,165,223,103,124,123, 54, 91,180, 13,191, 51,199, 66,121, 75, 59,234, +206,207, 35,233, 6,185, 32,106,223,116,158,186, 44, 99, 63,180,249,141, 94, 7, + 81,180, 17,117,145,155, 12, 16,109, 76, 1, 14,136,116, 10,115,209, 40, 44, 24, +204,101,113, 93,210, 43,189,117, 11,172, 86, 28, 3, 27,120,188,227,157, 91,191, +234, 20,169,142,116, 77, 26, 59, 94, 90,185, 25, 59, 72, 39,224,214,227,212,161, +162,132, 61,100,123,114, 39,190,153,243, 4,202,173,159,162, 40,233, 16,151,138, +166,162,201, 92,152,255,147,169,182,176,175,134, 85, 13,135,227, 9,148, 71,110, + 73,211, 22, 27,246,149, 88,122,184,107,168, 33,173, 67,200,144,140,200,136, 72, +146, 36,173, 6, 48, 68, 96, 20, 59,237,162, 8,105,141, 82,103,102, 74,196,148, + 71, 73,249,207, 3, 73,106, 72,120,250, 3, 60, 3,204, 26,141,201,133, 98,235, +141,169, 56,191,136, 89,136, 3, 63,177,193, 82, 37,243, 67,179,149,224,112, 87, + 82, 94, 76,148,119,252,101, 2,182,124,198,118, 53,135,133, 19,164,161,203, 19, +228,200, 18, 99, 22,237, 41,148,139,204, 84,103,232, 15,178, 34,125, 65,144,227, +248,195,138, 17, 46,219, 32, 96,171,132,218, 33,205, 93, 57,225,125,143,130, 22, +214, 75,118,203,113,132,178, 89,135, 41,161,127,220,209,133,108,230, 17,213, 68, +194,148, 14, 67,204,244,180, 66,251,242,190,239, 16,125, 25, 0,101, 10,170,110, +165,234,143,211,127, 57,222,158,143,224,222,195, 69,242, 47,112,201,227, 20,210, +241, 22,114,204,228,132, 45,208,219, 11,171, 79, 98,103,226,129,123,123,158, 34, + 2, 66,101,104,130,184,244,131,221,106,129,195,152, 45, 8,174, 48, 25, 52,223, +207, 76, 83, 7, 64, 56,199, 72,207,105, 62,251,120,243,213, 1,150, } ; -// ../Source/Shared/GB_pun.h: -uint8_t GB_JITpackage_213 [371] = { - 40,181, 47,253, 96, 32, 2, 77, 11, 0, 38, 85, 64, 31, 16,149,115,231, 77,110, -182,132,103, 62, 91,185,179,136,150, 3,254,141,193, 67, 34,235, 55, 62,232,136, - 0, 0, 16, 56, 8, 61, 0, 54, 0, 51, 0, 24,227, 19,226, 80, 56, 80, 9, 67, -225,112,129, 37,125,154, 11,122,142, 87,140,143,174,206, 62,123,249,100, 97, 72, - 26,151,246,228, 67,161, 83, 62,205,162,189,155,197,117,120,249,170,141,250,138, -171,226, 77,219, 52, 30, 39, 16, 28, 69, 32, 4,240,239,243, 29,106, 63,149,253, -185,215, 13,123, 32,236,239,211,213,155,113,133,234, 64,233,101, 61,141,113,133, -212,141,219,172, 48, 66,233,100,181, 86, 66,105, 28,148, 10, 42, 72,234,212,202, -103, 95,157,173, 28, 11,115,251, 64,181, 84, 42,100,200,239,147,212,230,205, 52, -193,224,210,223,179, 62,212,158,114,163, 94,253,152,125, 78,149, 16,190,235,117, -249,171, 14,111,207,103,101, 28,122,111,156, 79,205, 42, 53,198, 13,206,197,133, -172, 82, 64,186, 52,144, 46,152, 54,229,141, 10, 1, 14,178,153, 96, 40, 81, 33, -199, 5, 56, 87, 5, 62,223,167,217,123,245,188, 86,140,179,115,114,122,191,224, -108, 53,145,242,187,114,222, 25,191, 3, 41, 32, 48,132, 24,196,152, 29,135, 0, -128, 2,144, 26,196,141, 52,234,177,183,173, 17,235, 65, 66, 97,123,102, 32, 32, - 92, 31,205,128, 42,141,114, 51,241, 64, 81,145,225, 18,142, 89, 20, 3, 36,232, - 88, 1,249, 27,145,155, 12, 44, 72,124, 0,123, 1, 54, 65, 98, 7,175, 67,105, -141,150,230, 56,128, 67,224,225, 48,164,244,122, 52, 58,200,166,217, 60, 51,105, -123, 91,173,187,131,234, 31, 32, 40,122,221, +// ../Source/Template/GB_transpose_sparse.c: +uint8_t GB_JITpackage_211 [833] = { + 40,181, 47,253, 96,133, 15,189, 25, 0, 6,102,116, 33,224, 90, 23, 3,144,119, +226,106,206, 2,139,180,157, 49, 67,110,137, 91,178,143, 8,158, 82, 5, 26,189, + 29,195, 24,131, 48,194, 11,108, 0,103, 0,104, 0,151,116,183,105,199, 11,193, +106,211,138, 23, 67, 0, 77,190,194,104, 87,217,106,203,185,222,100,233,114, 94, +150,244,156, 34,113, 72, 16, 26,136, 67,226,155,168,157,211,119, 85, 39, 47,208, +187,200,125,162,110,231, 28, 72, 49, 18, 18,215, 92, 1,237,190, 42, 48,195,231, + 93, 37,198,245,163, 89,207, 89,236, 58,183,109, 1,170,109, 93, 69, 13,159,157, +119,135,213,185, 98, 29, 90,125, 98,109,214,188, 67, 73,229, 6, 67, 70, 48, 24, + 2,228,182,168,151, 85,149,178,250, 27,226, 93,119, 61, 86,155,201,109,106, 39, +121,158,104, 87,102,189,151, 36, 31,199, 17, 2,125,119, 76,191,197,155,183,182, + 89,240, 29, 46, 24,219,188,223,218, 60, 69,239,241,141, 67,249, 66,150,195, 96, +223,168,118, 10,200,161, 31, 24,130,151, 80, 82,209,222,225, 80, 64,144,122,127, +100,139, 93,228,243,249,235,123,250,255,207,178, 87,118, 40, 36, 8,150, 20, 43, +166,119,100, 27,164, 11, 48,189,251,200,243, 6,131,209, 21,117,247, 40, 22,253, +222,171,109,151, 51,105,222, 33,143,238, 20, 35, 6,163,105, 71, 39,209, 49,125, +247,157,235,214, 33,197,143,111,167,115, 36,213, 14,134, 22, 73,229,221, 77, 38, +206,161,209,155,247,218,222,188, 77,123, 75,238,103,187, 58,111,119,205,118,223, +215, 54, 24, 64, 30, 63,188,251, 73,123, 62, 73,143,143, 14,162,235,207,187, 91, +177, 98,125,202, 39,107, 60, 3, 89, 22, 35,152,167,185, 96,120,154, 75, 72,225, +120, 58, 31,245, 66,239,146,217,116, 60,124,135,171, 44,171,190,228,254, 57,142, +110,169, 67,122,200, 38,222, 93,183,214,108,169, 26, 45, 41,234,111, 33, 74,101, +150,182, 44,107,174,248, 24,117,190,162, 74, 53, 99,192,120,247,197,139, 58,119, +181,186,180, 89, 22, 35,221,209,180, 27,197,231, 60,172,253,219,132, 33,204,247, +209, 22,213,142,207, 22, 5,220,124,160,134,114, 58,225,134,100, 71, 51,128,142, +160,241,161, 65, 83, 52, 65, 65, 65, 65,146, 74, 26, 3, 48, 68, 96,144,178, 18, +221, 29,124,239,248,148, 66, 9,122,140,206,212, 93,194,206,235,208,206, 42, 81, + 3,197,249,164,189,105, 74,207,113,230, 52, 23,231,159,222, 4, 89,155, 71, 90, + 19, 68,154, 63, 34, 29, 9, 30,226, 10, 31,126,208, 33,148,126, 92,222,223, 6, +255,238,151, 12,245,118, 22,131,168, 34,104, 20,255, 66, 19,161, 39,113,232, 34, +130, 22,196,163,247,208,104,230, 95,131, 88,190, 8,222,206, 86,224, 80, 27, 78, + 84,130, 31, 80, 57, 62, 62,202, 40,219, 72, 27,114,207,244, 22,112,196, 75,202, + 76, 58, 12,243,233, 72,134,150,106, 49,141, 24, 60, 16,131, 66, 24, 43,137,187, +126,137, 49,146,102,171,242, 38,218, 81,238, 73,157,177,147,156, 73,162,216, 70, +132, 34,252,151,229, 51, 68, 64, 46,131, 64, 37, 78, 79, 59, 35,241,254, 49, 55, + 26, 7, 61,159, 83,125, 92, 59, 76,223,161, 37, 16,254, 24,253, 54, 20, 88,136, + 50, 10,181,211, 86,250,124,192, 68,164, 39,154,176,167,203,159,168,163, 32,223, +227,240,237,180, 99,163,213,151,112,179, 25,194, 10,248,155,104,109,133,127, 33, + 2,248,143, 56, 8,219, 14,111,153, 86, 8,198,139,113, 8,129,112,112,141,104, +108, 28, 6, 4, 19,166, 7, 71, 25,132,244,160,247,117, 3, 15,243, 24,179, 5, +113, 7,204,128,181,188,195,112, 96,201, 9,107,114,160,191,144,190, 32, 46, 19, +159,218, 7,136,153, 45,110,104, 52,104,114,126, 96, 82,171,203,241,207, 45,192, + 61, 71,212,186,118, 1,146, 98,133, 82, 20, 52, 1, +} ; + +// ../Source/Template/GB_transpose_template.c: +uint8_t GB_JITpackage_212 [761] = { + 40,181, 47,253, 96, 93, 9,125, 23, 0,198,226,104, 32,224, 26,231,208, 73, 35, +108,123,143,187,231,101,203, 18,149,110,132, 94,168, 31, 50, 55,107,180,120,168, + 70,140,113,136, 49, 14, 97, 0, 95, 0, 91, 0, 30,175, 44, 55,135,222, 23, 68, +205,208,195, 48, 59,214, 96, 40, 24, 7,199, 66,193,120,161, 35, 28,235,185,146, +148, 35,178,183,192, 91, 85, 83,116,108,203, 56, 19, 80,148,246,242,224,182, 82, +220,248,206,113, 3,136,245,173, 80, 20,229, 61, 42,143,177,216, 58, 86, 40, 12, + 50,194,109,217, 17,196, 26,209,254,224, 43, 67, 81,197,151,227,174, 98, 83,105, + 47, 55,185, 60,145, 0, 28, 18,137,246, 74,213,153, 85,146,158,193,139,182, 5, + 71,241,100, 38,223,172,128, 76, 34,110,227, 54, 14, 51,185,252, 99,143,142, 90, +246,203,168, 0,136, 8,156,189, 49,236,232, 20,188, 39,120,255,213, 55,247,120, + 86,213,190,173,223, 61,238,145,142,103,101, 79, 36,254, 31, 0,112, 1, 20, 8, +198,129,193, 78,138,217, 31,150,231, 55, 47,101, 47,115,224,166,220, 77,206,161, + 68, 1, 33, 2,158, 44, 36,226, 62, 91,230,155, 30,205,178,122,159, 97, 40, 58, +217,178,170,173,164,227, 49,143, 50, 60, 58, 79,220, 33, 79, 10, 41, 12,204, 8, + 76,167, 0,209,151,242,165,181,123,223,249,110,238, 58,249,122,207,167,223, 30, + 85,213,118,216, 13,199,102,123,249,206,126, 4,198,154,116,205, 41,121,127,231, +239,120, 58, 22, 50,181,156,170,247,116,182, 20,207,154, 1,163, 0, 0,120,253, + 39, 91, 95,240, 60, 18,121,115, 39,197, 78,217, 74, 34,252,155,218, 33,150,197, + 22,120, 91,223,239,201, 45, 74,213,157, 39, 80,214, 17,101, 38,175, 64,135, 8, +195,241, 59,120,235,233,108,229, 57, 35, 11,183,101, 92,156,138, 39, 84,217,112, +162,140,230, 23,235, 35,215, 52, 77,211, 14, 57, 75,114,200, 94, 32, 60,114, 86, +246,219, 77,123,155,173,225,246,246, 1,109, 1,128,137,160,193,173, 81, 70, 70, + 68, 68, 36, 73,146, 74, 99, 48,132, 16,163,212, 89, 7,123,167,231,239, 60,138, +159,162,214,104, 54,188,220,102, 44, 37, 99,203,101,188, 65,144, 18, 57,194, 6, + 79, 16, 94, 24, 5, 25, 25, 55, 6, 49,136, 28, 22, 34, 43, 71, 14,254, 56, 43, +106, 80,242,242, 33,128,114,123,100,183, 21,208,130,161,113, 19, 71,238,216,229, + 96, 27, 99,194, 9,252,192, 70, 6, 13,165,106,115, 78,102,196,151,214, 96, 26, + 64, 22, 8, 27, 5,141,145, 89,108, 57,200,161, 88, 24,158, 41,134, 96,132, 16, +244,165, 21, 34, 62,121,200, 18, 9,241,146, 15, 12,206,194, 91,200,194,172, 69, +184,187,104,114,165, 48,113,229,114,121,155, 56,110,187,203, 21, 31,241,163,251, + 80, 35,188,236,122,102, 42, 52, 73,136,151,249,214, 64, 18, 7, 80, 17,224, 16, +144,217, 5,217, 88, 26, 24, 65, 0, 34,211,211,233, 45, 94, 93, 36,185,117,108, +123,192,211, 14,191,239, 78, 84,211,151,154,231,135,238,149, 20,215, 79, 0,214, +179, 41, 69, 48,168, 15,192,179,162,208,117,237,212,131, 59, 20, 8,225,224,133, + 59,165,105, 62,116,108,168,181, 3, 4,236, 2,162,153,180,234,121,192, 20,206, +158, 12, 88, 16, 30, 13, 89,170,119,167,242,173, 44,131, 72, 73, 53, 24,127, 22, +209,217, 17, 65, 19, 19, 85,228, 15, 49,253, 33, 75, 29,156, 93, 77,133, 34,212, + 65,147,243, 51,211, 61,148,149,115, 16, 35,182, 90,155,224,221,193, 66, 21,189, + 99, } ; -// ../Source/Shared/GB_select_shared_definitions.h: -uint8_t GB_JITpackage_214 [393] = { - 40,181, 47,253, 96,118, 2,253, 11, 0,150, 23, 72, 31, 16,147,117,176,245, 14, -175,180,109, 92,129,187, 33,249,246, 95,123,203, 10, 49,197, 93,131,151,161, 23, - 17, 0, 64,149,222, 63, 0, 64, 0, 57, 0,242, 82, 79, 99, 46, 97,213,132, 33, - 55, 87, 33, 11,182,213,109, 24,223,254, 96,145,213,120, 86,238,252,149,198, 91, - 90,159,243,124, 82,143,135,190, 47, 36,101, 39,237,219,179, 35,195, 12,114,117, -210,102,247,177,198, 54, 99, 64, 94, 40, 68, 83,161, 16,145,225, 45,195, 6,209, -186, 61, 50, 80,136,137,229,115, 91,245, 69,229,142,125, 39,195,107, 98, 59,249, -245,100,210, 88, 22, 10, 50,168,178,229,203,237,149,156,190, 92,211,170, 75, 9, -132, 1, 49, 41, 14, 6,196, 9,111,112,201, 54,200, 89,167,170,135, 2,147, 57, - 15,109,126,219,199,252, 20,107, 29,111, 91, 94,206,108, 1,195,143,246,102, 7, - 78,239, 43,237,186, 29, 10, 56,240,201,188,249,165,243, 12,114,242,150,173,123, -215, 92, 63,222,236, 89,222,199,190,164,105,238, 87,251,184, 81,108, 56, 57, 16, - 25, 94,193, 46,106,187,113,136, 34, 25, 70,169, 92,152,139,114, 61, 28, 86,102, - 57, 46, 85, 4,203, 48, 13,199,196,129, 69,134, 51, 2, 0,143, 34, 10,115, 73, - 94, 89,153, 70,198,210,184,188,116,115, 56,221,165, 80,165,247,185,120,233,117, -229, 35, 32, 48, 66,130, 20,149, 7,115,129,137, 4,169, 7, 0,220, 49,194,211, -148, 29, 73,198,147, 88,166,198, 1,106,221,189,112,213,197,202,248,166, 27,130, - 1, 0,191,146, 65,130,152,113, 4,193,225,189,244, 32, 46,253,164, 99,216,241, - 18, 94,105,209, 54,212, 41, 79, 28, 7, 32,218, 98, 44,199,238,155,161,103, 38, -196, 50, 10,172, 99,134,142,201,192,160,162, 96, 8, +// ../Source/Template/GB_wait_macros.h: +uint8_t GB_JITpackage_213 [499] = { + 40,181, 47,253, 96, 0, 5, 77, 15, 0, 86,151, 76, 33,240,214, 54, 20, 48,107, +216, 83,198, 13, 17,164, 72,224,211, 13,193,103,142, 54,195,199, 26,214,173,199, + 37, 44, 14,131,158,247, 2, 65, 0, 66, 0, 69, 0, 14,177,172, 57,178,120,157, +107, 73,127,219, 16,165, 44,203,178, 30, 18,155,188,160,127, 44, 67,219, 63,215, +130,247, 75,215, 85,116,146,205,187,146, 94, 61,180,254,215,146,249,247,131,190, + 16, 45,141,243, 87, 73,111,219, 58,242, 28, 17, 55, 24,168,202, 96, 8, 1,234, +178, 16,213,139, 95, 45,167, 47,242,219,208,238,251, 96, 86,189,190,255, 89,173, +210, 64, 56, 11,124, 81,126,253,157,235, 45,126,108,231,227, 56,189,144, 64, 92, +136, 74,113,184, 16, 78,248, 6, 94,208, 86, 84, 33,110, 77, 47,137, 27,147,246, +226, 5, 58,181,140,203, 27,126, 41,150, 57, 42, 22, 14, 1,224,167,147, 83, 44, +222,139,170,232,120, 59,248, 35, 60,142,213,181, 37,112,141,202, 5, 2,215, 52, +204,230, 12,192,192, 9,115, 16,217, 50,200,134,113,161,188,255,218, 0, 37,241, +168,165,123,204,138,119,201,102, 38,124,240,134, 54, 20, 21, 90,240,126, 0,163, +221,228, 40,205, 36,116, 74,188, 14,227, 54, 18,108,219,247, 47, 46, 73,252,249, +166, 81, 77,199,119,135, 60,174,243,151, 37,209,221,169, 78,103,201,108,182,153, +241,123, 32,152,230,168, 96, 38,224,143, 30, 50, 4,234, 50,246,203, 25, 1, 73, +160,193,153,146, 74,166,146,164, 36,169,177, 6, 32, 68, 64, 24, 57,122, 14,141, + 17, 16, 82,209, 17,118, 22, 24,127,246,214, 26,114,132, 29, 16, 93, 49, 96,223, +196, 9,139,173, 88,146,220, 19,236,196,169, 66, 32,198, 48, 68, 88,137,162,197, +163,254, 70,194, 83,219,132, 76, 16, 84,193, 76,126,175, 52,204,169,189, 22, 89, + 79,177,200, 9, 71, 31, 91,177,178,225,171,170,137,240,210,116,149, 33,152, 90, + 48,186,195, 2,241,164,103, 0,129,111,148,191,216,109, 28,101,240,151,172,168, + 93, 8,133,244, 68,225, 91,216,100,137, 14,217, 18, 54,167,112,179,117,232,156, +186,129,184, 99,112, 68, 1, 10,131, 68,185, 29,130, 96,179,103,122,119, 10, 14, +119,192, 15,154,157,207, 76, 90,200,117, 28,148, 81, 23,116,171, 20, 5,119, } ; -// ../Source/Shared/GB_unused.h: -uint8_t GB_JITpackage_215 [449] = { - 40,181, 47,253, 96, 62, 3,189, 13, 0,166, 25, 80, 32, 0,183, 27, 22,161,215, -248,158, 49,194, 70,177,137,253,103,198,194,211, 52,252,242,210, 32,136,178, 94, - 84, 85, 45, 8, 12, 8, 70, 0, 69, 0, 73, 0, 7, 30,100, 2,166,236,139, 58, -194,132, 7,151,184,251,121,207, 97,234,122, 88, 32, 28,216,117,210,112, 91, 27, -188,252,126,120, 69,187,209,167,181, 71, 92,189,123,208,251, 50,246, 46,212,246, - 39,127,151,109,123, 91, 87,144, 27, 28, 97,186, 13,105,136, 65, 38, 92, 85, 81, - 86, 85,108, 61,251,180,185,204, 61,166,223,223,174, 78,125, 99,159,220,101,237, - 99,183, 97,103, 14,137, 5,194, 65, 58,151, 53,248,224, 70,245,215,254, 82,159, - 21,233,150,122,246, 22, 9,138,104, 8,211, 69,213,173,111,216, 94,110,251, 13, -119,221,131, 41,196,161,112,144, 11, 67, 33,167, 19, 91, 86,165,243, 64,140, 3, - 54, 20, 12, 9,110, 8, 56,240,253, 12,239,197, 93,135,246, 61,124, 93,170,138, -153, 57, 70,235,186, 96, 27,137,165,162,185,100, 44,167,175,249, 12, 68, 10, 22, -145, 92, 29, 76, 71,243, 73,181, 15,196, 72,240, 44, 83,243, 63, 81,243,253,168, -215,102, 75, 5, 49, 2,166,155,190,235,191, 79, 95,251, 73, 29,240,181, 69,242, -186,149, 55, 12,201,143, 4,240,244,250,246,163, 91,255,228, 65,130, 29,140, 97, - 86, 7, 51,193, 48, 1,107,159,253,165, 61, 29,236,122, 73,222,117,253,217,172, - 9,130,161,224,197,194,128, 24, 73,206,178, 7, 5, 45, 32, 32, 66,131,152, 85, - 30,115, 3,247,131,214, 20, 40,128,193,205, 70, 5,200,250,105,127, 82, 25,140, -135,235, 5, 12, 26, 8, 29, 30,235,134,142,239, 0,157,129, 68, 6,119,139,135, -107,159, 57, 87, 26, 15,243,181, 93,145,182,127,173,140,200, 36, 70,104,142, 25, -130,252,247,114, 81, 49, 21,192, 48, 0,174, 91,204, 15,231, 10,161,147, 26,145, -199,145, 24,144, 90,243, 80,193,202, 91,224, 67, 14,254,166,217, 60, 51,173, 77, -129,213,154, 39, 16, 10, 21, 5, 67, +// ../Source/Template/GB_warnings.h: +uint8_t GB_JITpackage_214 [941] = { + 40,181, 47,253, 96, 34, 9, 29, 29, 0, 70,238,135, 30,240,220, 54, 80,217,107, +191, 87,158, 33, 17,200,178,198, 85, 91, 98, 53,109, 52, 51,142,140,173, 11,139, +195,160,248, 74,134, 0,121, 0,127, 0, 92,145, 80, 28, 11, 6, 51, 51, 3, 0, +170, 90,141, 53, 26,207,138,196,249,120, 70, 32,145,166,245, 3,192, 34,209,216, +220,139, 13, 98,184, 82,253, 91,127,167,115,158,205,237,244,248,159, 77,181, 25, + 37, 56,135, 85,183, 78, 98,123,189,238, 73, 44, 37,134, 17,142,198,162,177, 73, + 24,139, 6, 27, 98,129, 17,246, 97,189,225, 4,134,103,222,165,223,155, 24, 81, +194,124, 50, 30,216,181, 83,113, 91, 27, 44,249,253,176, 4,224,234,242,193,143, + 70,110,181, 40,207, 26, 94,174,120, 9,219,205,159,181, 99,171, 76,135, 21, 10, +192,166, 80, 4,181,193, 25, 82, 34,147,219,223,164,250,157, 79,193,191, 61,159, +189,251, 49,150,253,247,231, 63, 30,142, 1,115, 62,191,229,220, 12,185,210, 22, +115,110, 67,166,213,105, 14,235,178,155,237, 31,203, 14, 95,236,224,236, 50, 87, + 24,148, 70,108,227, 24,159, 13, 92,113,201,106,251, 92,129,251,235,186,130, 3, +218, 87,122,163,195,248,210,201, 32,165,146, 43, 13, 8, 4,194,121,108, 9,178, +215,102,123, 43, 5,189,242, 5,235, 5,105,226,192, 94,221,139,241, 13, 41,171, +217, 85,251,243, 26, 2,230,188, 62,199,191,150,206,174, 13,252,224, 11,175, 86, +154, 83,168,179, 90,113,161, 82,221,235,222,147, 37, 32, 28, 99,167,209,116,164, + 15, 0,156,251,100,219, 76,112, 46,148,113,254,128,103, 44,158, 73,135,253,141, + 46,221,242, 13, 89,140,224,102, 82, 54,139,202,206,107,179, 23,223,139, 49,194, + 65,129, 48, 55,155, 37, 18, 6, 35,188,132,123,105,118, 47,129, 64,120,118, 52, +122,157,225, 4,193,136,220,103,177, 91, 42,121,214,159,237, 8,105, 52, 98,148, +107,207, 82,188,242,109, 42, 91, 18,235, 95, 7,145, 7,227, 65,159, 11,111,137, +101,135,246, 81, 92, 2,149, 64,242,173,109, 65, 55, 91,198, 78, 8,243,209,208, + 75, 43,104, 3, 87,134,189,121,241,126,204,218,109,115, 43,235,181,155,223,175, + 49, 3,219, 80,130, 81,176,109,179,193,174,169,141, 63, 90, 91,207, 77,231,218, +165,253, 74,107,117,182,109,221,187,211, 5,246,254,247,114,243,186,144, 86,239, + 74,217,173,237,126,124, 9,126,207,205,112,115,150,101,210,191, 29,103, 88,239, + 38,184, 50,191,147,198, 77, 82,202,218,230,111,119,126,106, 11,128,158,168, 81, +165,114,134,134, 72, 36, 40, 72, 10,146,100, 56, 48,132, 16, 82,236,172, 3,194, +185, 28,164, 56,144, 33, 69, 4, 72, 48, 50, 34,129,140, 4, 18,200,100, 87,205, + 6, 21, 3,168, 45,241,118, 41,129,179,186, 32, 34, 4, 4, 70, 56,170,143,151, +201,193,210,253, 57,154, 46, 59, 40,202, 78,232,174, 53, 17,156, 62, 54,200,164, + 12,138,227, 48,154,194,132, 11,123,205,144,238, 23,168,245,177, 58,225,104,157, + 66,231, 29,112,248,249,201,108,130,254, 64,122,197,164,112,137,253,141, 54,180, +178, 39,164, 50,205, 15, 61,140,149,226,229,252,235,123,166,226,114, 59,213,227, + 0,143, 15, 24, 31,186,160,228,103,249, 49,180,138, 24,190, 91,236, 52,119,143, +144, 34,203, 95, 44,105, 27, 34, 42,157, 19, 84, 29,220, 98,157,194,175,176, 94, +158,249,186,133, 20,136, 93, 53,161,106, 49,175, 78,201, 66,128,245, 54,174,198, + 88, 81, 24,162,153,160,114,202,179,128, 62,238, 62, 98,210,150,221, 5,247, 53, +228, 1,156, 89,208,176,178,159,180,243, 47, 81, 12,120,137, 5,197,104,235,253, + 96,179,218,189,131,104,237,156,157,234,117,223, 86,193,108, 82,103,137, 61, 96, +112,154, 75,172,203, 0,206, 61, 91,217,192, 51, 12, 96, 46, 32,143, 16, 15,112, +225,162, 98,223,169, 30,229,114,217,220,170,237, 65,149,111,243, 27,232, 7,163, +139,196,213,232,243,218, 57,251,213,151,139,172, 55, 11,243,195, 38, 22, 72,128, +139, 27, 55,139, 98,185, 69,118, 62,220,206, 85,106, 94, 53,117,102, 65, 61,134, + 66,172, 72, 32, 97,252,234, 14,239, 85,124, 26, 96,223,130, 85,169,252, 60,182, +186, 9, 48, 51,104,166, 63, 51,221, 4,185,226, 1,222,209,160,202,171, 22, 48, + 1, } ; -// ../Source/Shared/GxB_complex.h: -uint8_t GB_JITpackage_216 [712] = { - 40,181, 47,253, 96,179, 6,245, 21, 0,214, 33,105, 33,240, 88, 55,192, 9,121, -240,238, 22, 57, 40,149,243, 14, 39,101,183, 23,119,121,212, 43,181,126, 28,193, - 82,100, 19, 65, 19, 26, 2, 95, 0, 89, 0,100, 0,250, 62,181,152, 44, 52,225, -104,245, 79,249,245,119, 92,239,145,100, 59, 78,146,157, 27, 18,220,129,203, 24, -136, 3,231, 24,189,220,160,237,105, 78, 92,235, 92, 53,110, 92,178, 30, 55, 56, - 94,231, 89,130,191,173, 9,180,244,151,170,237, 14,118, 24,201, 88,206,108,241, - 31,183,103, 44,186,190,216,110,123,173,248,213, 29,163,150,122,178, 44, 97, 26, - 74, 82, 22,223, 54, 43,219,182,186,220,123,116,252,107, 51,245,219,183,225,210, - 79,252, 31,116,215,242,214, 78,186,215,122, 29,124, 53,145,244,218,128,255,200, -239,164,254,164, 21, 93,219,171, 88,212, 59,125,135, 92,194,171, 24,240,118,173, -159,210,233,186,254, 95,207,120,207,252, 37,246,250, 89,126,109,242,233,226,103, - 29, 52, 46,251,145,206,178,115, 71,126, 43,218,125,191,126,217, 7, 26,133,235, -181, 32,223, 34,214, 56, 83,155,193, 28,179,104, 58,140,175, 86,152, 15, 67,241, -104,190, 48,188, 0, 46, 16,120,135,242, 9, 61, 48, 19,250,229,238,238, 86,192, -186,132, 33, 10,134,147,217,120,161, 36,100,113,241,235, 21,109,192,178, 2, 13, -110,129, 56, 40, 20, 13,196,134, 51,250, 58,255,254,113,103,215,102,212,238, 47, -141,219,230,153,109,154, 30,141,112,205, 85, 67,161, 80,219,230, 8,150, 37,218, -122, 63, 96,137,182,222, 15,112, 9,236, 11, 9, 94,112, 12,203, 23,118, 93,216, -117,137, 14,123,112,245,227,234,116,102,176,115,218,194, 41, 37,205,146,191, 54, - 85,176,235,201,145, 9, 87, 47,116,223, 19,147, 34, 2,225,249, 7,106,186,215, -228, 35, 28,220,116,188, 46, 19,130,221, 37,148, 96, 94, 73,107, 26, 93,142, 89, - 67,190, 42,161,212,228, 81, 9, 63, 83, 4,226, 94,119,160,193, 45, 98, 68, 70, -100, 36, 41, 73, 10,105, 12, 48,134, 16,114,138,206, 3,158, 49,158, 76,143,151, -191,176,145,179,183,235,177,133,148,131,250, 11,135, 3,238,167, 12, 57, 99,172, -178,133,120,120, 0,200,110, 64, 86, 26,208,121, 53,111,251,131, 8,167, 69, 96, -177,238,186,213, 78, 42,178,176,222,102,164, 40,223,237,205,240,139,181,165, 53, - 34,139,213,172,172,195,212,172,169,214,122,155,241, 58, 17, 81,176,200,127, 8, -203, 59,145,101, 33,114, 80, 8,178, 71, 80, 10, 88,100,214, 88,210,118,144, 77, - 34,157, 7, 88,142,110, 15,178, 3,125,208, 1,218,182, 78, 66,113, 11,176, 0, - 0, 88, 68,225,135, 59, 22,200,170,246, 90,139,183,232, 92, 50, 5, 88, 83, 74, - 38,183,160,251, 91, 42,127,189, 72,165, 11,190,220,140,144, 63, 43,132,183,138, -183,177,163,127, 90,228, 65,131,251,162,104, 3,102,125,112, 80,140, 50, 67,130, -146, 6, 28, 36, 3,117, 3,185,133,165, 98, 86, 8,154, 28, 42,224,117, 65, 10, -220,161,150,107, 64, 26, 88,142,140, 7, 32,160, 11,142, 1, 34,193, 99, 3, 0, -136, 98, 62,170,136,229,180,152,194,250,235,220, 52, 55,234, 77,111, 21,127,109, - 66,139,112, 73,209, 30, 76,220, 82, 20, 56, 1, +// ../Source/Template/GB_werk.h: +uint8_t GB_JITpackage_215 [1331] = { + 40,181, 47,253, 96,172, 15, 77, 41, 0,214,185,164, 38,208, 22, 85, 7, 20,152, +244,223, 10,216,237,161, 69, 75,209, 38,144, 26,134,215, 90, 74, 79,153, 26,195, + 89,207, 2,111,148, 95,228,106, 6,188,120,130,158, 0,145, 0,155, 0, 27,110, +176,188,189,165,202,249, 86, 44,187,117,147,176, 94, 30,123,139, 97, 80, 59, 67, +102, 61, 6,210, 10, 84,177,185,216,144,240,184,212,122,215, 86,160, 1,170,192, +162,153,195, 49,172,123,109,124,106, 89, 88,180,159, 86,155,177,124, 68,104, 80, +150,118, 88, 91, 55,222, 49,195,118,227,154,230,240,201,160, 96,160,192,146, 64, + 48, 80,112,169,138, 62,245,118, 50,226,148,195, 63, 89,132,219,114,124,210, 56, +100, 30, 50, 46,153, 2,163,205,201,105, 52,110,167,129, 72,170,140,125,143,107, + 22,255,224,227,211, 77,177,124,185, 93,171,228,250, 12,175,247,131, 27,247,237, +165,214, 49, 25, 69,194,234,217, 60, 80,252,114,129, 44,151, 75,111, 43,149,225, + 43, 81, 70,195,105,255, 73,230,188,101,177,180,100,175,220,250,249, 11, 94, 77, +182,247, 18, 32, 22, 26, 74, 25, 62, 76, 59,144,147,239,220,176,100,238,170, 29, + 61, 78,207,243,215, 52, 11,195,203,195,146,197,245,188,170, 48,206, 39, 45,159, +198,247,222,140,227,138,111,153,123,253,220, 78,116, 75, 99, 86,175,227,168, 87, +182,110,249,142, 61,168, 41, 95, 59, 85,212,100,229,224,167,214,103, 76,203,178, +176,118,119, 89,252,148, 4,241,143,166,101,181,220, 39, 70,103, 24, 43,237, 92, + 74,150, 99,110,143, 29,188,196,142,123, 11,227,123,159, 85,155,121, 62,169,150, + 5, 88, 7,159,198,253,181,175, 54,102, 28,223, 32, 95, 24, 73, 74, 40, 25, 72, +137, 14,112, 41,225, 2, 81, 4,227,251, 92,247,182, 94, 7,249, 82, 71, 10, 17, + 24, 29, 25, 27,170,113,242,243, 44,141,217,187, 24, 14,114,151,172, 59,110, 19, +176,129, 80, 32,200,106,242,233,130,231, 96,228, 30, 55,145, 33,167, 28, 96, 41, +115, 87, 85,176,122,221,245, 47, 92, 89, 51, 79,192, 57,179,234,193,234,114,249, + 23, 62, 18,114,107, 97,231, 63,116, 2, 65,208,129,130, 1, 2, 1, 68, 61,108, +185,235,167,135,241, 83,172, 58,142,205,123,221,210, 42, 53,238,173, 81, 5,141, +219,168,229,149,243,216,221, 70, 73, 82,147,116,198, 87,206, 48, 16,116,173,245, +180,146, 87,146,213, 62,177, 90, 12,159, 49, 97,145,121,208,186,218, 3, 53,214, +238,180, 56, 49,247, 91, 62,194,151,197, 15,107, 71,223,109, 89,187,169,242,196, + 79,125,180, 24, 55, 61,202,215,255, 17,105,100,112,240,130,211, 39, 41, 2,136, + 46, 45, 92,138,166,143,168, 66,211,161,241,105,160, 55,141,251, 22,174,173,229, +181,121,112,243, 74,229, 31,215, 32,228, 44, 60,147,233,192, 56, 67,172,150, 99, + 43, 7, 28, 18,185, 52,125, 68, 18, 27, 14, 25, 8,137,136,167,157,197, 62,242, +202,169, 85,106, 53,228, 74, 57, 77, 51, 10,198, 44,102, 84,115, 84,243,225,236, +181,215,195,154,197,140,159,218,236,100, 1,129, 35,168,193, 33, 83,166,100,100, + 20, 20,148, 20, 36,173, 1, 33, 12,130, 64, 32,207, 82,216, 3, 2,185,108, 14, + 34, 67, 40, 34, 66, 66, 34, 18, 35, 18,136, 40,163,160, 32, 37,121,142, 57, 4, +156,224,221, 71, 13,191,107,144, 6, 0,142,132,111,248,122,119,245,136,144,199, + 87,132, 32, 1,209, 81,171, 17, 56, 39,164,201,101,136,217, 3,131,189, 29,154, +227, 12,102,178,211,236, 90, 67,218, 37,140, 10,231,142,103,111, 26, 89,252,233, +122,160,132, 55, 85, 18, 70,170,248, 98,159, 94,129,101,191, 38, 51,207,232, 13, + 89, 10,102, 42,137,140,114,184,200,253,180,215, 19,246, 82,191,182,216,181,138, + 58,158,213,235, 63, 12,108, 23,135,149, 96,236,221,178,142,251,176,133,236,147, +162,243,101, 15,102,236,226,157, 18,175,112,211, 24,211,244,163,187,168,174, 29, +108,249,128,175,105,112, 65,201, 93,167, 77, 51, 78, 34,203, 72,129,219, 50,191, +188,122, 22,106, 36, 56, 4,128,229,172,160, 72, 3, 57,139, 96, 75, 37,104,137, + 14, 36, 34,135, 85, 51,115,124, 24, 58,219, 4,153, 38,209,105,135,214, 64,230, + 27,223,120,243,180,136,200, 50, 24,137, 40, 72, 3,143,145,247,225, 71,251, 46, + 58,124,202, 33,228,150,138, 35, 97, 52,167, 72, 94,175,160, 45, 5,188,211, 19, + 68, 72,105, 90, 85,142,181,189,110,163, 0,115,174, 20,187, 71,143,151, 57,226, +230,164, 29, 97, 44,229, 36,132, 7, 39,189,115,206,190,125, 87,221,210, 77, 3, +154,124,201,127, 55, 79, 24,238, 29, 79, 6,121,108,134, 71,133, 36, 76,158,217, +184, 13,212,173, 27, 17, 9,102,176, 61, 92,105,119, 32,205,142,182,251, 67, 4, + 69,128, 84, 57, 34, 67,178,210, 50,219,117,175,176,205,104, 28,187, 70,106,184, +130,197, 8,169,125, 49, 35,159, 27,116,151, 76,244, 39,155,152, 58, 24,205, 99, +193,226, 66,188,175, 29, 91,243,131, 13, 36,160, 17, 73,250,174, 65,122, 1,159, +244, 12,118,141,243, 95, 98,170,254, 8, 90, 50,112, 73, 64,193, 3,181,116, 1, + 30, 7,199,171, 53, 61,194,140, 37,109, 47,227,123, 14,220,178,207, 63, 4,136, +217, 51,212, 98, 27, 17,193,135,160, 34, 86,216,152,172,236,114, 63, 60,155,242, + 37, 84,155,158,193, 60,229,131,128,105, 88, 5, 12, 64, 63,154,160,251, 95, 9, +164,153,199, 5, 63,116, 48,103,118, 59,148, 49,224,166, 41,166,137,167,148,168, +117, 69, 94,144, 50,236, 40, 7,157,181, 48, 51,130, 17,227,183,160,211,170, 10, +105, 99,254,119,108,137,253,234,138,130, 65, 26,181, 31, 37, 51,176,212, 91, 33, +164,161, 79, 40, 9,186, 32,178, 85, 57, 37,190,212,101,227,168,139, 4, 19,227, +255,226, 30, 19,225,233, 10,148,234, 94,137,223,248, 36,243, 28,186, 20,252,113, +197, 71, 9,135,115, 5,224, 74,129, 65, 93,216, 6,108,103,140,190, 64, 83, 60, +146, 54, 86,149,208,194,121, 90,166,129,102,104, 70, 70,138,153,150,154, 97,220, + 51,214, 81, 47, 81,239,101,125,117, 0,120, +} ; + +// ../Source/Template/GB_zombie.h: +uint8_t GB_JITpackage_216 [925] = { + 40,181, 47,253, 96, 81, 7,157, 28, 0,182, 44,129, 38,208, 22,113, 14,160,213, +107,191, 81,124, 81, 30,181,176,233,138, 20,116,172, 8,213,179,144,148,125, 13, +251,243,244,148,222, 44,245, 48, 88,193,193, 11,128, 0,113, 0,108, 0, 76,114, +189,228, 99,100, 52, 17, 11, 64,153, 16,129,200, 52, 84, 92,120, 92,235,250, 98, + 0,138,101,186, 72,139, 89,170, 81, 71,136,203, 23,207, 94,151,145, 86,246, 90, +172,145, 58, 30, 48, 38,183, 37,113,229,102, 92, 78,108,195, 25,127,143,122,100, +112,177, 92,164,131, 2,203,229,144,245, 60,146, 92,162, 15,159,168,119,176, 9, + 51,222,120,164, 65,105, 26, 48, 77,163, 4,194,202,168,154,198, 78,222, 52, 40, +242, 17, 94,151, 13,121,114,243,181,238, 8,216,180, 92,101,240, 68,164, 65,226, + 4, 4, 20,137,128, 32,157, 56,123,223,212,212,129,174,183,157,219,131,178,210, +183,126,211, 76,162,243, 89,112, 96, 48,206,119,211,138, 89,159, 2, 45, 23,186, + 71, 5,210,163,221,158,150,188,242,184, 43, 95,108,131,143,193, 28,130,248,217, +146,230, 55, 7, 94, 78,142,190, 36,172,233,221,234, 82, 49, 5,183,154,198,239, +250,132, 61,249,189,216,188,229,152,133,243,175,140,201,186,230,187,149, 90, 73, + 48,238,201, 21, 42,144,158,207, 13, 86,250,138,110,182, 43,191,224, 93, 7,242, +233, 39, 59, 28,206,102,206,246, 59, 15,246, 53,104, 29,179, 24,227,156,194, 64, + 20, 81,230,113,120, 52,123,179,222,176,148, 90,109,242,157, 74, 55, 90,223,232, +241, 79,155,241,212,109,168, 59,101,243,163,181, 26,126,234,123,122, 56, 63,123, +217,226,235,218,111,132,217,165,192,228,149,155, 90,219,185,219,173,218,183, 78, +177,217,167,254,169, 82,209,187, 37,137,154,125,171,183, 90, 55,225, 56, 53,187, +190,249,208, 72,196, 15,245, 20,202,197,174, 23,130, 66,180,143, 63, 15, 56,164, + 61,143, 70,195, 97,193, 20, 5,164,247,149,104,164, 69, 76,101, 16, 24,110,185, +194,243, 0,129,161,145,129, 46,146,244, 80,166,201,202,169, 92,107,111, 25,140, +215, 97,212,145,155, 65, 7,150,174,249, 26, 16,105,136, 18, 81,223,182,217, 24, +225,148, 27, 35, 14,140,209,198,133, 69,220,169,239,110,157, 83, 56, 47,167,228, +247,125,218, 54, 93,175,118, 75,159,150,208,209,136,122,212,213, 52,213, 79, 14, + 44, 55,106,239, 56,221,248, 84, 6,128,179,168,161,169, 82,134, 72, 36,136, 20, + 36, 41, 40,164, 49, 32,132, 16,163,220,149, 7, 66, 96, 73, 16,114,230,208, 85, + 82,148,122,237,207, 1, 70,112, 39, 89,104,148,222,182,142,207,210, 17,171,204, +100,152, 69, 82,160, 56, 16,207,170, 74,203,142, 47,197,137, 65,210, 68,208, 20, +156, 37,240, 46,115, 71,195, 78,121,224, 13,109,249, 54, 83,230, 90,143, 65, 92, +182,173, 24, 88,115,142, 35, 22, 82, 25, 88,241,194,179,247,237,142,130,111, 65, +180,198, 10, 49,190, 85,153, 64,104,217, 47, 65, 9, 25,181,107, 31,106,215, 78, +201, 14,243, 6,124, 41,106,150, 32, 46, 97, 13, 33,187,184, 9, 24, 57,210, 77, +162, 73,171,193, 99, 46,195, 48,193,178,148,203, 49,147, 56,142, 38,221,197, 92, + 99,195,108, 37,170,108,110,196, 12, 42, 5,226,145,162, 87, 34,245,161,165,173, +247,214, 47,105, 2,135, 81, 89,249, 30, 50,193, 74,124,231, 15,161, 85, 74,204, +185, 64,248,194,208, 46,129, 0,206,110,233, 2,116,110,221,142, 8, 18,243, 38, +230,248, 99,126,134,133,128,179, 91, 58, 91, 69,128,124, 10, 73,107,143, 36,211, +103,157,162, 48, 90,196,134, 37,121,143, 27, 75, 92,246,126,202,207,190,239,166, +245, 68, 73,151,109,114,200,241, 42,248, 93, 56, 34,166,201,124,154,209, 4, 4, +231,239, 74, 30,140,112, 43,105,128,205,152, 68,140,244, 80, 86,245,227, 3,224, + 45,101,146,159,224,142, 57, 30,143,192,201, 92,106, 46,225,139,215,226,194, 29, + 36, 91, 76,122,102, 28, 2,170, 58, 88,176,255,134,186,176,210,143,140, 84, 35, +209,166, 2, 60, 50,189,230,232, 42, 72,103, 41,152,172, 47,159, 87,122,167, 12, +238, 97,199, 65, 3,158,137,146, 57,104,182, 63, 51,121,191,124,157, 79,217,105, +222,126,213, 2, 60, } ; GB_JITpackage_index_struct GB_JITpackage_index [217] = { - { 600266, 56892, GB_JITpackage_0 , "GraphBLAS.h" }, - { 12343, 2052, GB_JITpackage_1 , "GB_AxB_dot2_meta.c" }, - { 8501, 2026, GB_JITpackage_2 , "GB_AxB_dot2_template.c" }, - { 6469, 1635, GB_JITpackage_3 , "GB_AxB_dot3_meta.c" }, - { 5387, 1489, GB_JITpackage_4 , "GB_AxB_dot3_phase1_template.c" }, - { 6807, 1639, GB_JITpackage_5 , "GB_AxB_dot3_template.c" }, - { 5316, 1108, GB_JITpackage_6 , "GB_AxB_dot4_cij.c" }, - { 4425, 1390, GB_JITpackage_7 , "GB_AxB_dot4_meta.c" }, - { 47264, 4767, GB_JITpackage_8 , "GB_AxB_dot4_template.c" }, - { 22677, 2904, GB_JITpackage_9 , "GB_AxB_dot_cij.c" }, - { 6138, 1313, GB_JITpackage_10 , "GB_AxB_dot_cij.h" }, - { 769, 323, GB_JITpackage_11 , "GB_AxB_macros.h" }, - { 12124, 2034, GB_JITpackage_12 , "GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" }, - { 29870, 4065, GB_JITpackage_13 , "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" }, - { 15568, 2199, GB_JITpackage_14 , "GB_AxB_saxbit_template.c" }, - { 2774, 838, GB_JITpackage_15 , "GB_AxB_saxpy3_coarseGus_M_phase1.c" }, - { 5481, 1094, GB_JITpackage_16 , "GB_AxB_saxpy3_coarseGus_M_phase5.c" }, - { 2382, 764, GB_JITpackage_17 , "GB_AxB_saxpy3_coarseGus_noM_phase1.c" }, - { 4726, 930, GB_JITpackage_18 , "GB_AxB_saxpy3_coarseGus_noM_phase5.c" }, - { 2453, 789, GB_JITpackage_19 , "GB_AxB_saxpy3_coarseGus_notM_phase1.c" }, - { 4584, 979, GB_JITpackage_20 , "GB_AxB_saxpy3_coarseGus_notM_phase5.c" }, - { 3576, 973, GB_JITpackage_21 , "GB_AxB_saxpy3_coarseHash_M_phase1.c" }, - { 3635, 957, GB_JITpackage_22 , "GB_AxB_saxpy3_coarseHash_M_phase5.c" }, - { 2654, 829, GB_JITpackage_23 , "GB_AxB_saxpy3_coarseHash_notM_phase1.c" }, - { 2921, 887, GB_JITpackage_24 , "GB_AxB_saxpy3_coarseHash_notM_phase5.c" }, - { 4500, 1341, GB_JITpackage_25 , "GB_AxB_saxpy3_coarseHash_phase1.c" }, - { 3411, 1108, GB_JITpackage_26 , "GB_AxB_saxpy3_coarseHash_phase5.c" }, - { 4982, 1109, GB_JITpackage_27 , "GB_AxB_saxpy3_fineGus_M_phase2.c" }, - { 3899, 1115, GB_JITpackage_28 , "GB_AxB_saxpy3_fineGus_notM_phase2.c" }, - { 3530, 1010, GB_JITpackage_29 , "GB_AxB_saxpy3_fineGus_phase2.c" }, - { 4893, 1179, GB_JITpackage_30 , "GB_AxB_saxpy3_fineHash_M_phase2.c" }, - { 4015, 1173, GB_JITpackage_31 , "GB_AxB_saxpy3_fineHash_notM_phase2.c" }, - { 6739, 1562, GB_JITpackage_32 , "GB_AxB_saxpy3_fineHash_phase2.c" }, - { 23942, 3826, GB_JITpackage_33 , "GB_AxB_saxpy3_template.c" }, - { 30108, 4529, GB_JITpackage_34 , "GB_AxB_saxpy3_template.h" }, - { 2814, 909, GB_JITpackage_35 , "GB_AxB_saxpy4_meta.c" }, - { 5761, 914, GB_JITpackage_36 , "GB_AxB_saxpy4_panel.c" }, - { 18924, 3122, GB_JITpackage_37 , "GB_AxB_saxpy4_template.c" }, - { 3217, 1090, GB_JITpackage_38 , "GB_AxB_saxpy5_A_bitmap.c" }, - { 3851, 1253, GB_JITpackage_39 , "GB_AxB_saxpy5_A_iso_or_pattern.c" }, - { 51561, 2932, GB_JITpackage_40 , "GB_AxB_saxpy5_unrolled.c" }, - { 2695, 791, GB_JITpackage_41 , "GB_Template.h" }, - { 4690, 714, GB_JITpackage_42 , "GB_add_bitmap_M_bitmap.c" }, - { 3273, 842, GB_JITpackage_43 , "GB_add_bitmap_M_bitmap_27.c" }, - { 4429, 1138, GB_JITpackage_44 , "GB_add_bitmap_M_bitmap_28.c" }, - { 4429, 1142, GB_JITpackage_45 , "GB_add_bitmap_M_bitmap_29.c" }, - { 6401, 1476, GB_JITpackage_46 , "GB_add_bitmap_M_sparse.c" }, - { 3220, 833, GB_JITpackage_47 , "GB_add_bitmap_M_sparse_24.c" }, - { 4099, 1087, GB_JITpackage_48 , "GB_add_bitmap_M_sparse_25.c" }, - { 4097, 1091, GB_JITpackage_49 , "GB_add_bitmap_M_sparse_26.c" }, - { 1841, 467, GB_JITpackage_50 , "GB_add_bitmap_noM.c" }, - { 2579, 687, GB_JITpackage_51 , "GB_add_bitmap_noM_21.c" }, - { 3618, 1013, GB_JITpackage_52 , "GB_add_bitmap_noM_22.c" }, - { 3617, 1015, GB_JITpackage_53 , "GB_add_bitmap_noM_23.c" }, - { 2312, 730, GB_JITpackage_54 , "GB_add_bitmap_template.c" }, - { 911, 360, GB_JITpackage_55 , "GB_add_full_30.c" }, - { 1405, 466, GB_JITpackage_56 , "GB_add_full_31.c" }, - { 2300, 784, GB_JITpackage_57 , "GB_add_full_32.c" }, - { 1408, 467, GB_JITpackage_58 , "GB_add_full_33.c" }, - { 2303, 793, GB_JITpackage_59 , "GB_add_full_34.c" }, - { 3233, 667, GB_JITpackage_60 , "GB_add_full_template.c" }, - { 14173, 1607, GB_JITpackage_61 , "GB_add_sparse_M_bitmap.c" }, - { 12413, 2495, GB_JITpackage_62 , "GB_add_sparse_M_sparse.c" }, - { 16502, 2031, GB_JITpackage_63 , "GB_add_sparse_noM.c" }, - { 9049, 1707, GB_JITpackage_64 , "GB_add_sparse_template.c" }, - { 6921, 1639, GB_JITpackage_65 , "GB_add_template.c" }, - { 831, 394, GB_JITpackage_66 , "GB_apply_bind1st_template.c" }, - { 831, 392, GB_JITpackage_67 , "GB_apply_bind2nd_template.c" }, - { 2372, 743, GB_JITpackage_68 , "GB_apply_unop_ijp.c" }, - { 904, 372, GB_JITpackage_69 , "GB_apply_unop_ip.c" }, - { 1069, 420, GB_JITpackage_70 , "GB_apply_unop_template.c" }, - { 3883, 986, GB_JITpackage_71 , "GB_assert_kernels.h" }, - { 18885, 3750, GB_JITpackage_72 , "GB_atomics.h" }, - { 11733, 1194, GB_JITpackage_73 , "GB_binary_search.h" }, - { 649, 244, GB_JITpackage_74 , "GB_bitmap_scatter.h" }, - { 4942, 1341, GB_JITpackage_75 , "GB_bld_template.c" }, - { 898, 376, GB_JITpackage_76 , "GB_bytes.h" }, - { 2480, 644, GB_JITpackage_77 , "GB_callback.h" }, - { 9954, 1746, GB_JITpackage_78 , "GB_callback_proto.h" }, - { 3632, 1052, GB_JITpackage_79 , "GB_colscale_template.c" }, - { 10349, 2493, GB_JITpackage_80 , "GB_compiler.h" }, - { 1022, 432, GB_JITpackage_81 , "GB_concat_bitmap_bitmap.c" }, - { 906, 401, GB_JITpackage_82 , "GB_concat_bitmap_full.c" }, - { 1827, 717, GB_JITpackage_83 , "GB_concat_bitmap_sparse.c" }, - { 2112, 586, GB_JITpackage_84 , "GB_concat_bitmap_template.c" }, - { 1459, 561, GB_JITpackage_85 , "GB_concat_full_template.c" }, - { 3619, 1015, GB_JITpackage_86 , "GB_concat_sparse_template.c" }, - { 2165, 709, GB_JITpackage_87 , "GB_convert_s2b_nozombies.c" }, - { 1912, 550, GB_JITpackage_88 , "GB_convert_s2b_template.c" }, - { 2261, 738, GB_JITpackage_89 , "GB_convert_s2b_zombies.c" }, - { 548, 241, GB_JITpackage_90 , "GB_coverage.h" }, - { 992, 400, GB_JITpackage_91 , "GB_defaults.h" }, - { 1108, 395, GB_JITpackage_92 , "GB_dev.h" }, - { 7407, 1313, GB_JITpackage_93 , "GB_ek_slice_kernels.h" }, - { 3180, 813, GB_JITpackage_94 , "GB_emult_02_template.c" }, - { 1959, 723, GB_JITpackage_95 , "GB_emult_02a.c" }, - { 1828, 679, GB_JITpackage_96 , "GB_emult_02b.c" }, - { 2300, 862, GB_JITpackage_97 , "GB_emult_02c.c" }, - { 3186, 813, GB_JITpackage_98 , "GB_emult_03_template.c" }, - { 1959, 724, GB_JITpackage_99 , "GB_emult_03a.c" }, - { 1828, 679, GB_JITpackage_100, "GB_emult_03b.c" }, - { 2303, 861, GB_JITpackage_101, "GB_emult_03c.c" }, - { 3648, 1145, GB_JITpackage_102, "GB_emult_04_template.c" }, - { 4684, 1227, GB_JITpackage_103, "GB_emult_08_meta.c" }, - { 10195, 2007, GB_JITpackage_104, "GB_emult_08_template.c" }, - { 4775, 880, GB_JITpackage_105, "GB_emult_08bcd.c" }, - { 4851, 1262, GB_JITpackage_106, "GB_emult_08e.c" }, - { 6282, 1042, GB_JITpackage_107, "GB_emult_08fgh.c" }, - { 1926, 637, GB_JITpackage_108, "GB_emult_bitmap_5.c" }, - { 3165, 1043, GB_JITpackage_109, "GB_emult_bitmap_6.c" }, - { 3675, 908, GB_JITpackage_110, "GB_emult_bitmap_7.c" }, - { 3086, 876, GB_JITpackage_111, "GB_emult_bitmap_template.c" }, - { 3031, 740, GB_JITpackage_112, "GB_ewise_fulla_template.c" }, - { 1802, 639, GB_JITpackage_113, "GB_ewise_fulln_template.c" }, - { 547, 236, GB_JITpackage_114, "GB_iceil.h" }, - { 37546, 2452, GB_JITpackage_115, "GB_jit_kernel_proto.h" }, - { 1394, 613, GB_JITpackage_116, "GB_log2.h" }, - { 1691, 706, GB_JITpackage_117, "GB_math_macros.h" }, - { 3825, 820, GB_JITpackage_118, "GB_memory_macros.h" }, - { 12703, 2278, GB_JITpackage_119, "GB_meta16_definitions.h" }, - { 10350, 623, GB_JITpackage_120, "GB_meta16_factory.c" }, - { 1159, 400, GB_JITpackage_121, "GB_meta16_methods.c" }, - { 1342, 473, GB_JITpackage_122, "GB_nthreads.h" }, - { 1655, 599, GB_JITpackage_123, "GB_omp_kernels.h" }, - { 714, 259, GB_JITpackage_124, "GB_prefix.h" }, - { 2288, 763, GB_JITpackage_125, "GB_printf_kernels.h" }, - { 10090, 1902, GB_JITpackage_126, "GB_reduce_panel.c" }, - { 4538, 1289, GB_JITpackage_127, "GB_reduce_to_scalar_template.c" }, - { 2537, 887, GB_JITpackage_128, "GB_rowscale_template.c" }, - { 1259, 492, GB_JITpackage_129, "GB_saxpy3task_struct.h" }, - { 2156, 637, GB_JITpackage_130, "GB_select_bitmap_bitmap_template.c" }, - { 1919, 607, GB_JITpackage_131, "GB_select_bitmap_full_template.c" }, - { 1373, 410, GB_JITpackage_132, "GB_select_bitmap_template.c" }, - { 4604, 1235, GB_JITpackage_133, "GB_select_entry_phase1_template.c" }, - { 7212, 1500, GB_JITpackage_134, "GB_select_phase2.c" }, - { 9648, 1796, GB_JITpackage_135, "GB_select_positional_phase1_template.c" }, - { 1617, 585, GB_JITpackage_136, "GB_split_bitmap_template.c" }, - { 1381, 538, GB_JITpackage_137, "GB_split_full_template.c" }, - { 2471, 803, GB_JITpackage_138, "GB_split_sparse_template.c" }, - { 4152, 1166, GB_JITpackage_139, "GB_subassign_05d_template.c" }, - { 20772, 2482, GB_JITpackage_140, "GB_subassign_06d_template.c" }, - { 1681, 578, GB_JITpackage_141, "GB_subassign_22_template.c" }, - { 7220, 1589, GB_JITpackage_142, "GB_subassign_23_template.c" }, - { 7816, 1745, GB_JITpackage_143, "GB_subassign_25_template.c" }, - { 3438, 1044, GB_JITpackage_144, "GB_task_struct.h" }, - { 1976, 789, GB_JITpackage_145, "GB_transpose_bitmap.c" }, - { 1738, 737, GB_JITpackage_146, "GB_transpose_full.c" }, - { 4229, 833, GB_JITpackage_147, "GB_transpose_sparse.c" }, - { 2653, 761, GB_JITpackage_148, "GB_transpose_template.c" }, - { 1398, 437, GB_JITpackage_149, "GB_wait_macros.h" }, - { 2594, 941, GB_JITpackage_150, "GB_warnings.h" }, - { 4268, 1331, GB_JITpackage_151, "GB_werk.h" }, - { 2129, 925, GB_JITpackage_152, "GB_zombie.h" }, - { 1567, 562, GB_JITpackage_153, "GB_jit_kernel.h" }, - { 677, 308, GB_JITpackage_154, "GB_jit_kernel_AxB_dot2.c" }, - { 712, 328, GB_JITpackage_155, "GB_jit_kernel_AxB_dot2n.c" }, - { 690, 320, GB_JITpackage_156, "GB_jit_kernel_AxB_dot3.c" }, - { 884, 386, GB_JITpackage_157, "GB_jit_kernel_AxB_dot4.c" }, - { 838, 377, GB_JITpackage_158, "GB_jit_kernel_AxB_saxbit.c" }, - { 1094, 466, GB_JITpackage_159, "GB_jit_kernel_AxB_saxpy3.c" }, - { 698, 306, GB_JITpackage_160, "GB_jit_kernel_AxB_saxpy4.c" }, - { 5537, 1097, GB_JITpackage_161, "GB_jit_kernel_AxB_saxpy5.c" }, - { 626, 287, GB_JITpackage_162, "GB_jit_kernel_add.c" }, - { 618, 271, GB_JITpackage_163, "GB_jit_kernel_apply_bind1st.c" }, - { 616, 271, GB_JITpackage_164, "GB_jit_kernel_apply_bind2nd.c" }, - { 1571, 593, GB_JITpackage_165, "GB_jit_kernel_apply_unop.c" }, - { 703, 306, GB_JITpackage_166, "GB_jit_kernel_build.c" }, - { 628, 284, GB_JITpackage_167, "GB_jit_kernel_colscale.c" }, - { 991, 437, GB_JITpackage_168, "GB_jit_kernel_concat_bitmap.c" }, - { 725, 338, GB_JITpackage_169, "GB_jit_kernel_concat_full.c" }, - { 728, 338, GB_JITpackage_170, "GB_jit_kernel_concat_sparse.c" }, - { 718, 335, GB_JITpackage_171, "GB_jit_kernel_convert_s2b.c" }, - { 609, 271, GB_JITpackage_172, "GB_jit_kernel_emult_02.c" }, - { 609, 270, GB_JITpackage_173, "GB_jit_kernel_emult_03.c" }, - { 609, 270, GB_JITpackage_174, "GB_jit_kernel_emult_04.c" }, - { 605, 260, GB_JITpackage_175, "GB_jit_kernel_emult_08.c" }, - { 811, 357, GB_JITpackage_176, "GB_jit_kernel_emult_bitmap.c" }, - { 605, 265, GB_JITpackage_177, "GB_jit_kernel_ewise_fulla.c" }, - { 604, 257, GB_JITpackage_178, "GB_jit_kernel_ewise_fulln.c" }, - { 3477, 1307, GB_JITpackage_179, "GB_jit_kernel_reduce.c" }, - { 628, 286, GB_JITpackage_180, "GB_jit_kernel_rowscale.c" }, - { 707, 319, GB_JITpackage_181, "GB_jit_kernel_select_bitmap.c" }, - { 875, 394, GB_JITpackage_182, "GB_jit_kernel_select_phase1.c" }, - { 751, 336, GB_JITpackage_183, "GB_jit_kernel_select_phase2.c" }, - { 717, 331, GB_JITpackage_184, "GB_jit_kernel_split_bitmap.c" }, - { 705, 330, GB_JITpackage_185, "GB_jit_kernel_split_full.c" }, - { 717, 328, GB_JITpackage_186, "GB_jit_kernel_split_sparse.c" }, - { 1476, 614, GB_JITpackage_187, "GB_jit_kernel_subassign_05d.c" }, - { 1917, 781, GB_JITpackage_188, "GB_jit_kernel_subassign_06d.c" }, - { 1380, 554, GB_JITpackage_189, "GB_jit_kernel_subassign_22.c" }, - { 1366, 552, GB_JITpackage_190, "GB_jit_kernel_subassign_23.c" }, - { 1746, 731, GB_JITpackage_191, "GB_jit_kernel_subassign_25.c" }, - { 966, 417, GB_JITpackage_192, "GB_jit_kernel_trans_bind1st.c" }, - { 962, 415, GB_JITpackage_193, "GB_jit_kernel_trans_bind2nd.c" }, - { 779, 371, GB_JITpackage_194, "GB_jit_kernel_trans_unop.c" }, - { 766, 345, GB_JITpackage_195, "GB_jit_kernel_union.c" }, - { 670, 298, GB_JITpackage_196, "GB_jit_kernel_user_op.c" }, - { 666, 290, GB_JITpackage_197, "GB_jit_kernel_user_type.c" }, - { 1620, 623, GB_JITpackage_198, "GB_Operator.h" }, - { 867, 406, GB_JITpackage_199, "GB_apply_shared_definitions.h" }, - { 93272, 12579, GB_JITpackage_200, "GB_assign_shared_definitions.h" }, - { 10718, 1759, GB_JITpackage_201, "GB_complex.h" }, - { 1550, 618, GB_JITpackage_202, "GB_ewise_shared_definitions.h" }, - { 2143, 965, GB_JITpackage_203, "GB_hash.h" }, - { 3928, 1171, GB_JITpackage_204, "GB_hyper_hash_lookup.h" }, - { 1193, 386, GB_JITpackage_205, "GB_index.h" }, - { 2720, 638, GB_JITpackage_206, "GB_int64_mult.h" }, - { 5671, 1189, GB_JITpackage_207, "GB_kernel_shared_definitions.h" }, - { 28610, 7468, GB_JITpackage_208, "GB_matrix.h" }, - { 5037, 1355, GB_JITpackage_209, "GB_monoid_shared_definitions.h" }, - { 6244, 1360, GB_JITpackage_210, "GB_mxm_shared_definitions.h" }, - { 25472, 5161, GB_JITpackage_211, "GB_opaque.h" }, - { 996, 404, GB_JITpackage_212, "GB_partition.h" }, - { 800, 371, GB_JITpackage_213, "GB_pun.h" }, - { 886, 393, GB_JITpackage_214, "GB_select_shared_definitions.h" }, - { 1086, 449, GB_JITpackage_215, "GB_unused.h" }, - { 1971, 712, GB_JITpackage_216, "GxB_complex.h" }, + { 587319, 56682, GB_JITpackage_0 , "GraphBLAS.h" }, + { 1567, 562, GB_JITpackage_1 , "GB_jit_kernel.h" }, + { 677, 308, GB_JITpackage_2 , "GB_jit_kernel_AxB_dot2.c" }, + { 712, 328, GB_JITpackage_3 , "GB_jit_kernel_AxB_dot2n.c" }, + { 690, 320, GB_JITpackage_4 , "GB_jit_kernel_AxB_dot3.c" }, + { 884, 386, GB_JITpackage_5 , "GB_jit_kernel_AxB_dot4.c" }, + { 838, 377, GB_JITpackage_6 , "GB_jit_kernel_AxB_saxbit.c" }, + { 1094, 466, GB_JITpackage_7 , "GB_jit_kernel_AxB_saxpy3.c" }, + { 698, 306, GB_JITpackage_8 , "GB_jit_kernel_AxB_saxpy4.c" }, + { 5537, 1097, GB_JITpackage_9 , "GB_jit_kernel_AxB_saxpy5.c" }, + { 626, 287, GB_JITpackage_10 , "GB_jit_kernel_add.c" }, + { 618, 271, GB_JITpackage_11 , "GB_jit_kernel_apply_bind1st.c" }, + { 616, 271, GB_JITpackage_12 , "GB_jit_kernel_apply_bind2nd.c" }, + { 1571, 593, GB_JITpackage_13 , "GB_jit_kernel_apply_unop.c" }, + { 703, 306, GB_JITpackage_14 , "GB_jit_kernel_build.c" }, + { 628, 284, GB_JITpackage_15 , "GB_jit_kernel_colscale.c" }, + { 991, 437, GB_JITpackage_16 , "GB_jit_kernel_concat_bitmap.c" }, + { 725, 338, GB_JITpackage_17 , "GB_jit_kernel_concat_full.c" }, + { 728, 338, GB_JITpackage_18 , "GB_jit_kernel_concat_sparse.c" }, + { 718, 335, GB_JITpackage_19 , "GB_jit_kernel_convert_s2b.c" }, + { 609, 271, GB_JITpackage_20 , "GB_jit_kernel_emult_02.c" }, + { 609, 270, GB_JITpackage_21 , "GB_jit_kernel_emult_03.c" }, + { 609, 270, GB_JITpackage_22 , "GB_jit_kernel_emult_04.c" }, + { 605, 260, GB_JITpackage_23 , "GB_jit_kernel_emult_08.c" }, + { 811, 357, GB_JITpackage_24 , "GB_jit_kernel_emult_bitmap.c" }, + { 605, 265, GB_JITpackage_25 , "GB_jit_kernel_ewise_fulla.c" }, + { 604, 257, GB_JITpackage_26 , "GB_jit_kernel_ewise_fulln.c" }, + { 3477, 1307, GB_JITpackage_27 , "GB_jit_kernel_reduce.c" }, + { 628, 286, GB_JITpackage_28 , "GB_jit_kernel_rowscale.c" }, + { 707, 319, GB_JITpackage_29 , "GB_jit_kernel_select_bitmap.c" }, + { 875, 394, GB_JITpackage_30 , "GB_jit_kernel_select_phase1.c" }, + { 751, 336, GB_JITpackage_31 , "GB_jit_kernel_select_phase2.c" }, + { 717, 331, GB_JITpackage_32 , "GB_jit_kernel_split_bitmap.c" }, + { 705, 330, GB_JITpackage_33 , "GB_jit_kernel_split_full.c" }, + { 717, 328, GB_JITpackage_34 , "GB_jit_kernel_split_sparse.c" }, + { 1476, 614, GB_JITpackage_35 , "GB_jit_kernel_subassign_05d.c" }, + { 1917, 781, GB_JITpackage_36 , "GB_jit_kernel_subassign_06d.c" }, + { 1380, 554, GB_JITpackage_37 , "GB_jit_kernel_subassign_22.c" }, + { 1366, 552, GB_JITpackage_38 , "GB_jit_kernel_subassign_23.c" }, + { 1746, 731, GB_JITpackage_39 , "GB_jit_kernel_subassign_25.c" }, + { 966, 417, GB_JITpackage_40 , "GB_jit_kernel_trans_bind1st.c" }, + { 962, 415, GB_JITpackage_41 , "GB_jit_kernel_trans_bind2nd.c" }, + { 779, 371, GB_JITpackage_42 , "GB_jit_kernel_trans_unop.c" }, + { 766, 345, GB_JITpackage_43 , "GB_jit_kernel_union.c" }, + { 670, 298, GB_JITpackage_44 , "GB_jit_kernel_user_op.c" }, + { 666, 290, GB_JITpackage_45 , "GB_jit_kernel_user_type.c" }, + { 1419, 578, GB_JITpackage_46 , "GB_Operator.h" }, + { 867, 406, GB_JITpackage_47 , "GB_apply_shared_definitions.h" }, + { 93262, 12576, GB_JITpackage_48 , "GB_assign_shared_definitions.h" }, + { 10718, 1759, GB_JITpackage_49 , "GB_complex.h" }, + { 1550, 618, GB_JITpackage_50 , "GB_ewise_shared_definitions.h" }, + { 2143, 965, GB_JITpackage_51 , "GB_hash.h" }, + { 3135, 1025, GB_JITpackage_52 , "GB_hyper_hash_lookup.h" }, + { 1193, 386, GB_JITpackage_53 , "GB_index.h" }, + { 2720, 638, GB_JITpackage_54 , "GB_int64_mult.h" }, + { 5671, 1189, GB_JITpackage_55 , "GB_kernel_shared_definitions.h" }, + { 28315, 7390, GB_JITpackage_56 , "GB_matrix.h" }, + { 5037, 1355, GB_JITpackage_57 , "GB_monoid_shared_definitions.h" }, + { 6244, 1360, GB_JITpackage_58 , "GB_mxm_shared_definitions.h" }, + { 24470, 5059, GB_JITpackage_59 , "GB_opaque.h" }, + { 996, 404, GB_JITpackage_60 , "GB_partition.h" }, + { 800, 371, GB_JITpackage_61 , "GB_pun.h" }, + { 886, 393, GB_JITpackage_62 , "GB_select_shared_definitions.h" }, + { 1086, 449, GB_JITpackage_63 , "GB_unused.h" }, + { 1971, 712, GB_JITpackage_64 , "GxB_complex.h" }, + { 12343, 2052, GB_JITpackage_65 , "GB_AxB_dot2_meta.c" }, + { 8501, 2026, GB_JITpackage_66 , "GB_AxB_dot2_template.c" }, + { 6513, 1649, GB_JITpackage_67 , "GB_AxB_dot3_meta.c" }, + { 5365, 1473, GB_JITpackage_68 , "GB_AxB_dot3_phase1_template.c" }, + { 6785, 1626, GB_JITpackage_69 , "GB_AxB_dot3_template.c" }, + { 5316, 1108, GB_JITpackage_70 , "GB_AxB_dot4_cij.c" }, + { 4425, 1390, GB_JITpackage_71 , "GB_AxB_dot4_meta.c" }, + { 47264, 4767, GB_JITpackage_72 , "GB_AxB_dot4_template.c" }, + { 22677, 2904, GB_JITpackage_73 , "GB_AxB_dot_cij.c" }, + { 6138, 1313, GB_JITpackage_74 , "GB_AxB_dot_cij.h" }, + { 769, 323, GB_JITpackage_75 , "GB_AxB_macros.h" }, + { 12124, 2034, GB_JITpackage_76 , "GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" }, + { 29870, 4065, GB_JITpackage_77 , "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" }, + { 15568, 2199, GB_JITpackage_78 , "GB_AxB_saxbit_template.c" }, + { 2774, 838, GB_JITpackage_79 , "GB_AxB_saxpy3_coarseGus_M_phase1.c" }, + { 5481, 1094, GB_JITpackage_80 , "GB_AxB_saxpy3_coarseGus_M_phase5.c" }, + { 2382, 764, GB_JITpackage_81 , "GB_AxB_saxpy3_coarseGus_noM_phase1.c" }, + { 4726, 930, GB_JITpackage_82 , "GB_AxB_saxpy3_coarseGus_noM_phase5.c" }, + { 2453, 789, GB_JITpackage_83 , "GB_AxB_saxpy3_coarseGus_notM_phase1.c" }, + { 4584, 979, GB_JITpackage_84 , "GB_AxB_saxpy3_coarseGus_notM_phase5.c" }, + { 3576, 973, GB_JITpackage_85 , "GB_AxB_saxpy3_coarseHash_M_phase1.c" }, + { 3635, 957, GB_JITpackage_86 , "GB_AxB_saxpy3_coarseHash_M_phase5.c" }, + { 2654, 829, GB_JITpackage_87 , "GB_AxB_saxpy3_coarseHash_notM_phase1.c" }, + { 2921, 887, GB_JITpackage_88 , "GB_AxB_saxpy3_coarseHash_notM_phase5.c" }, + { 4500, 1341, GB_JITpackage_89 , "GB_AxB_saxpy3_coarseHash_phase1.c" }, + { 3411, 1108, GB_JITpackage_90 , "GB_AxB_saxpy3_coarseHash_phase5.c" }, + { 4982, 1109, GB_JITpackage_91 , "GB_AxB_saxpy3_fineGus_M_phase2.c" }, + { 3899, 1115, GB_JITpackage_92 , "GB_AxB_saxpy3_fineGus_notM_phase2.c" }, + { 3530, 1010, GB_JITpackage_93 , "GB_AxB_saxpy3_fineGus_phase2.c" }, + { 4893, 1179, GB_JITpackage_94 , "GB_AxB_saxpy3_fineHash_M_phase2.c" }, + { 4015, 1173, GB_JITpackage_95 , "GB_AxB_saxpy3_fineHash_notM_phase2.c" }, + { 6739, 1562, GB_JITpackage_96 , "GB_AxB_saxpy3_fineHash_phase2.c" }, + { 24033, 3860, GB_JITpackage_97 , "GB_AxB_saxpy3_template.c" }, + { 30108, 4518, GB_JITpackage_98 , "GB_AxB_saxpy3_template.h" }, + { 2814, 909, GB_JITpackage_99 , "GB_AxB_saxpy4_meta.c" }, + { 5761, 914, GB_JITpackage_100, "GB_AxB_saxpy4_panel.c" }, + { 18924, 3122, GB_JITpackage_101, "GB_AxB_saxpy4_template.c" }, + { 3217, 1090, GB_JITpackage_102, "GB_AxB_saxpy5_A_bitmap.c" }, + { 3851, 1253, GB_JITpackage_103, "GB_AxB_saxpy5_A_iso_or_pattern.c" }, + { 51561, 2932, GB_JITpackage_104, "GB_AxB_saxpy5_unrolled.c" }, + { 2695, 791, GB_JITpackage_105, "GB_Template.h" }, + { 4690, 714, GB_JITpackage_106, "GB_add_bitmap_M_bitmap.c" }, + { 3273, 842, GB_JITpackage_107, "GB_add_bitmap_M_bitmap_27.c" }, + { 4429, 1138, GB_JITpackage_108, "GB_add_bitmap_M_bitmap_28.c" }, + { 4429, 1142, GB_JITpackage_109, "GB_add_bitmap_M_bitmap_29.c" }, + { 6401, 1476, GB_JITpackage_110, "GB_add_bitmap_M_sparse.c" }, + { 3220, 833, GB_JITpackage_111, "GB_add_bitmap_M_sparse_24.c" }, + { 4099, 1087, GB_JITpackage_112, "GB_add_bitmap_M_sparse_25.c" }, + { 4097, 1091, GB_JITpackage_113, "GB_add_bitmap_M_sparse_26.c" }, + { 1841, 467, GB_JITpackage_114, "GB_add_bitmap_noM.c" }, + { 2579, 687, GB_JITpackage_115, "GB_add_bitmap_noM_21.c" }, + { 3618, 1013, GB_JITpackage_116, "GB_add_bitmap_noM_22.c" }, + { 3617, 1015, GB_JITpackage_117, "GB_add_bitmap_noM_23.c" }, + { 2312, 730, GB_JITpackage_118, "GB_add_bitmap_template.c" }, + { 911, 360, GB_JITpackage_119, "GB_add_full_30.c" }, + { 1405, 466, GB_JITpackage_120, "GB_add_full_31.c" }, + { 2300, 784, GB_JITpackage_121, "GB_add_full_32.c" }, + { 1408, 467, GB_JITpackage_122, "GB_add_full_33.c" }, + { 2303, 793, GB_JITpackage_123, "GB_add_full_34.c" }, + { 3233, 667, GB_JITpackage_124, "GB_add_full_template.c" }, + { 14173, 1607, GB_JITpackage_125, "GB_add_sparse_M_bitmap.c" }, + { 12413, 2495, GB_JITpackage_126, "GB_add_sparse_M_sparse.c" }, + { 16502, 2031, GB_JITpackage_127, "GB_add_sparse_noM.c" }, + { 9049, 1707, GB_JITpackage_128, "GB_add_sparse_template.c" }, + { 6921, 1639, GB_JITpackage_129, "GB_add_template.c" }, + { 831, 394, GB_JITpackage_130, "GB_apply_bind1st_template.c" }, + { 831, 392, GB_JITpackage_131, "GB_apply_bind2nd_template.c" }, + { 2372, 743, GB_JITpackage_132, "GB_apply_unop_ijp.c" }, + { 904, 372, GB_JITpackage_133, "GB_apply_unop_ip.c" }, + { 1069, 420, GB_JITpackage_134, "GB_apply_unop_template.c" }, + { 3883, 986, GB_JITpackage_135, "GB_assert_kernels.h" }, + { 18972, 3783, GB_JITpackage_136, "GB_atomics.h" }, + { 11733, 1194, GB_JITpackage_137, "GB_binary_search.h" }, + { 649, 244, GB_JITpackage_138, "GB_bitmap_scatter.h" }, + { 4942, 1341, GB_JITpackage_139, "GB_bld_template.c" }, + { 898, 376, GB_JITpackage_140, "GB_bytes.h" }, + { 2480, 644, GB_JITpackage_141, "GB_callback.h" }, + { 9954, 1746, GB_JITpackage_142, "GB_callback_proto.h" }, + { 3632, 1052, GB_JITpackage_143, "GB_colscale_template.c" }, + { 10349, 2493, GB_JITpackage_144, "GB_compiler.h" }, + { 1022, 432, GB_JITpackage_145, "GB_concat_bitmap_bitmap.c" }, + { 906, 401, GB_JITpackage_146, "GB_concat_bitmap_full.c" }, + { 1827, 717, GB_JITpackage_147, "GB_concat_bitmap_sparse.c" }, + { 2112, 586, GB_JITpackage_148, "GB_concat_bitmap_template.c" }, + { 1459, 561, GB_JITpackage_149, "GB_concat_full_template.c" }, + { 3619, 1015, GB_JITpackage_150, "GB_concat_sparse_template.c" }, + { 2165, 709, GB_JITpackage_151, "GB_convert_s2b_nozombies.c" }, + { 1912, 550, GB_JITpackage_152, "GB_convert_s2b_template.c" }, + { 2261, 738, GB_JITpackage_153, "GB_convert_s2b_zombies.c" }, + { 548, 241, GB_JITpackage_154, "GB_coverage.h" }, + { 994, 412, GB_JITpackage_155, "GB_defaults.h" }, + { 1108, 395, GB_JITpackage_156, "GB_dev.h" }, + { 7407, 1313, GB_JITpackage_157, "GB_ek_slice_kernels.h" }, + { 3180, 813, GB_JITpackage_158, "GB_emult_02_template.c" }, + { 1959, 723, GB_JITpackage_159, "GB_emult_02a.c" }, + { 1828, 679, GB_JITpackage_160, "GB_emult_02b.c" }, + { 2300, 862, GB_JITpackage_161, "GB_emult_02c.c" }, + { 3186, 813, GB_JITpackage_162, "GB_emult_03_template.c" }, + { 1959, 724, GB_JITpackage_163, "GB_emult_03a.c" }, + { 1828, 679, GB_JITpackage_164, "GB_emult_03b.c" }, + { 2303, 861, GB_JITpackage_165, "GB_emult_03c.c" }, + { 3648, 1145, GB_JITpackage_166, "GB_emult_04_template.c" }, + { 4684, 1227, GB_JITpackage_167, "GB_emult_08_meta.c" }, + { 10195, 2007, GB_JITpackage_168, "GB_emult_08_template.c" }, + { 4775, 880, GB_JITpackage_169, "GB_emult_08bcd.c" }, + { 4851, 1262, GB_JITpackage_170, "GB_emult_08e.c" }, + { 6282, 1042, GB_JITpackage_171, "GB_emult_08fgh.c" }, + { 1926, 637, GB_JITpackage_172, "GB_emult_bitmap_5.c" }, + { 3165, 1043, GB_JITpackage_173, "GB_emult_bitmap_6.c" }, + { 3675, 908, GB_JITpackage_174, "GB_emult_bitmap_7.c" }, + { 3086, 876, GB_JITpackage_175, "GB_emult_bitmap_template.c" }, + { 3031, 740, GB_JITpackage_176, "GB_ewise_fulla_template.c" }, + { 1802, 639, GB_JITpackage_177, "GB_ewise_fulln_template.c" }, + { 547, 236, GB_JITpackage_178, "GB_iceil.h" }, + { 37546, 2452, GB_JITpackage_179, "GB_jit_kernel_proto.h" }, + { 1394, 613, GB_JITpackage_180, "GB_log2.h" }, + { 1691, 706, GB_JITpackage_181, "GB_math_macros.h" }, + { 3825, 820, GB_JITpackage_182, "GB_memory_macros.h" }, + { 12703, 2278, GB_JITpackage_183, "GB_meta16_definitions.h" }, + { 10350, 623, GB_JITpackage_184, "GB_meta16_factory.c" }, + { 1159, 400, GB_JITpackage_185, "GB_meta16_methods.c" }, + { 1342, 473, GB_JITpackage_186, "GB_nthreads.h" }, + { 1655, 599, GB_JITpackage_187, "GB_omp_kernels.h" }, + { 714, 259, GB_JITpackage_188, "GB_prefix.h" }, + { 2288, 763, GB_JITpackage_189, "GB_printf_kernels.h" }, + { 10090, 1902, GB_JITpackage_190, "GB_reduce_panel.c" }, + { 4538, 1289, GB_JITpackage_191, "GB_reduce_to_scalar_template.c" }, + { 2537, 887, GB_JITpackage_192, "GB_rowscale_template.c" }, + { 1259, 492, GB_JITpackage_193, "GB_saxpy3task_struct.h" }, + { 2156, 637, GB_JITpackage_194, "GB_select_bitmap_bitmap_template.c" }, + { 1919, 607, GB_JITpackage_195, "GB_select_bitmap_full_template.c" }, + { 1373, 410, GB_JITpackage_196, "GB_select_bitmap_template.c" }, + { 4604, 1235, GB_JITpackage_197, "GB_select_entry_phase1_template.c" }, + { 7212, 1500, GB_JITpackage_198, "GB_select_phase2.c" }, + { 9648, 1796, GB_JITpackage_199, "GB_select_positional_phase1_template.c" }, + { 1617, 585, GB_JITpackage_200, "GB_split_bitmap_template.c" }, + { 1381, 538, GB_JITpackage_201, "GB_split_full_template.c" }, + { 2471, 803, GB_JITpackage_202, "GB_split_sparse_template.c" }, + { 4152, 1166, GB_JITpackage_203, "GB_subassign_05d_template.c" }, + { 20772, 2482, GB_JITpackage_204, "GB_subassign_06d_template.c" }, + { 1681, 578, GB_JITpackage_205, "GB_subassign_22_template.c" }, + { 7220, 1589, GB_JITpackage_206, "GB_subassign_23_template.c" }, + { 7816, 1745, GB_JITpackage_207, "GB_subassign_25_template.c" }, + { 3438, 1044, GB_JITpackage_208, "GB_task_struct.h" }, + { 1976, 789, GB_JITpackage_209, "GB_transpose_bitmap.c" }, + { 1738, 737, GB_JITpackage_210, "GB_transpose_full.c" }, + { 4229, 833, GB_JITpackage_211, "GB_transpose_sparse.c" }, + { 2653, 761, GB_JITpackage_212, "GB_transpose_template.c" }, + { 1536, 499, GB_JITpackage_213, "GB_wait_macros.h" }, + { 2594, 941, GB_JITpackage_214, "GB_warnings.h" }, + { 4268, 1331, GB_JITpackage_215, "GB_werk.h" }, + { 2129, 925, GB_JITpackage_216, "GB_zombie.h" }, } ; #endif diff --git a/JITpackage/Makefile b/JITpackage/Makefile index f0a854ab40..d971e9c3f7 100644 --- a/JITpackage/Makefile +++ b/JITpackage/Makefile @@ -9,9 +9,6 @@ go: ( cd build && cmake $(CMAKE_OPTIONS) .. && cmake --build . ) - ./build/grb_jitpackage ../Include/GraphBLAS.h \ - ../Source/Template/*.[ch] ../Source/JitKernels/*.[ch] \ - ../Source/Shared/*.h clean: distclean diff --git a/JITpackage/Source/grb_jitpackage.c b/JITpackage/Source/grb_jitpackage.c index 0eee48b64d..27a8ad9499 100644 --- a/JITpackage/Source/grb_jitpackage.c +++ b/JITpackage/Source/grb_jitpackage.c @@ -83,7 +83,7 @@ int main (int argc, char **argv) // start the GB_JITpackage.c file //-------------------------------------------------------------------------- - FILE *fp = fopen ("GB_JITpackage.c", "w") ; + FILE *fp = fopen ("GB_JITpackage.c", "wb") ; OK (fp != NULL) ; int nfiles = argc - 1 ; printf ("Processing %d input files ...\n", nfiles) ; @@ -157,7 +157,7 @@ int main (int argc, char **argv) //---------------------------------------------------------------------- fprintf (fp, "// %s:\n", argv [k]) ; - fprintf (fp, "uint8_t GB_JITpackage_%d [%lu] = {\n", k-1, dsize) ; + fprintf (fp, "uint8_t GB_JITpackage_%d [%zu] = {\n", k-1, dsize) ; for (int64_t k = 0 ; k < dsize ; k++) { fprintf (fp, "%3d,", dst [k]) ; @@ -181,8 +181,8 @@ int main (int argc, char **argv) // print the index //-------------------------------------------------------------------------- - printf ("Total uncompressed: %lu bytes\n", total_uncompressed_size) ; - printf ("Total compressed: %lu bytes\n", total_compressed_size) ; + printf ("Total uncompressed: %zu bytes\n", total_uncompressed_size) ; + printf ("Total compressed: %zu bytes\n", total_compressed_size) ; printf ("Compression: %g\n", (double) total_compressed_size / (double) total_uncompressed_size) ; @@ -200,7 +200,7 @@ int main (int argc, char **argv) } } // append this file to the index - fprintf (fp, " { %8lu, %8lu, GB_JITpackage_%-3d, \"%s\" },\n", + fprintf (fp, " { %8zu, %8zu, GB_JITpackage_%-3d, \"%s\" },\n", Uncompressed_size [k], Compressed_size [k], k-1, name) ; } fprintf (fp, "} ;\n#endif\n\n") ; diff --git a/Makefile b/Makefile index 9e434ad527..a07e07a446 100644 --- a/Makefile +++ b/Makefile @@ -32,11 +32,11 @@ library: # install only in SuiteSparse/lib and SuiteSparse/include local: - ( cd build && cmake $(CMAKE_OPTIONS) -DLOCAL_INSTALL=1 .. && cmake --build . --config Release -j${JOBS} ) + ( cd build && cmake $(CMAKE_OPTIONS) -USUITESPARSE_PKGFILEDIR -DLOCAL_INSTALL=1 .. && cmake --build . --config Release -j${JOBS} ) # install only in /usr/local (default) global: - ( cd build && cmake $(CMAKE_OPTIONS) -DLOCAL_INSTALL=0 .. && cmake --build . --config Release -j${JOBS} ) + ( cd build && cmake $(CMAKE_OPTIONS) -USUITESPARSE_PKGFILEDIR -DLOCAL_INSTALL=0 .. && cmake --build . --config Release -j${JOBS} ) # enable CUDA (NOTE: not ready for production use) cuda: @@ -65,10 +65,10 @@ demos: all # diff the demo output demodiffs: demos echo "Comparing demo output:" - - diff -w Demo/Output/simple_demo.out Demo/simple_demo.out - - diff -w Demo/Output/complex_demo_out.m Demo/complex_demo_out.m - - diff -w Demo/Output/wildtype_demo.out Demo/wildtype_demo.out - - diff -w Demo/Output/gauss_demo.out Demo/gauss_demo.out + - diff -w Demo/Output/simple_demo.out build/simple_demo.out + - diff -w Demo/Output/complex_demo_out.m build/complex_demo_out.m + - diff -w Demo/Output/wildtype_demo.out build/wildtype_demo.out + - diff -w Demo/Output/gauss_demo.out build/gauss_demo.out # just do 'make' in build; do not rerun the cmake script remake: diff --git a/README.md b/README.md index bcbb1b511a..752513b53e 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. SPDX-License-Identifier: Apache-2.0 -VERSION 9.0.0, Oct 7, 2023 +VERSION 8.3.0, Dec 30, 2023 SuiteSparse:GraphBLAS is a complete implementation of the GraphBLAS standard, which defines a set of sparse matrix operations on an extended algebra of @@ -128,9 +128,9 @@ PreJIT: a folder for JIT kernels that are to be integrated into the Versions v5.2.0 and earlier conform to the version 1.3.0 (Sept 25, 2019) of the GraphBLAS C API Specification. Versions v6.0.0 and later conform to the -version 2.0.0 (Nov, 2021) of the GraphBLAS C API Specification. Versions -9.0.0 and later conform to the v2.1.0 C API. This library also includes -several additional functions and features as extensions to the spec. +version 2.0.0 (Nov, 2021) of the GraphBLAS C API Specification. This library +also includes several additional functions and features as extensions to the +spec. All functions, objects, and macros with the prefix GxB are extensions to the spec. Functions, objects, and macros with prefix GB must not be accessed @@ -225,9 +225,9 @@ Thanks for packaging SuiteSparse! Here are some suggestions: To cite this package, please use the following: - T. Davis, Algorithm 10xx: SuiteSparse:GraphBLAS: parallel graph - algorithms in the language of sparse linear algebra, ACM Trans on - Mathematical Software, to appear, 2023. + T. A. Davis. Algorithm 1037: SuiteSparse:GraphBLAS: Parallel Graph + Algorithms in the Language of Sparse Linear Algebra. ACM Trans. Math. + Softw. 49, 3, Article 28 (September 2023), 30 pages. https://doi.org/10.1145/3577195 T. Davis, Algorithm 1000: SuiteSparse:GraphBLAS: graph algorithms in diff --git a/Source/Factories/GB_AxB_saxpy3_symbolic_template.c b/Source/Factories/GB_AxB_saxpy3_symbolic_template.c index 111d76e254..ad0ce2f532 100644 --- a/Source/Factories/GB_AxB_saxpy3_symbolic_template.c +++ b/Source/Factories/GB_AxB_saxpy3_symbolic_template.c @@ -76,10 +76,10 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) ASSERT (GB_A_IS_FULL == GB_IS_FULL (A)) ; #if GB_A_IS_HYPER - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *restrict A_Yp = A->Y->p ; + const int64_t *restrict A_Yi = A->Y->i ; + const int64_t *restrict A_Yx = A->Y->x ; + int64_t A_hash_bits = A->Y->vdim - 1 ; #endif #if ( !GB_NO_MASK ) @@ -95,10 +95,18 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) const bool M_is_bitmap = GB_IS_BITMAP (M) ; const bool M_jumbled = GB_JUMBLED (M) ; // get the M hyper_hash - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->i ; - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->x ; - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = NULL ; + const int64_t *restrict M_Yi = NULL ; + const int64_t *restrict M_Yx = NULL ; + int64_t M_hash_bits = 0 ; + if (M_is_hyper) + { + // mask is present, and hypersparse + M_Yp = M->Y->p ; + M_Yi = M->Y->i ; + M_Yx = M->Y->x ; + M_hash_bits = M->Y->vdim - 1 ; + } #endif //========================================================================== diff --git a/Source/Factories/GB_Matrix_extractElement.c b/Source/Factories/GB_Matrix_extractElement.c index ec6f71f1e7..c6f29d2e18 100644 --- a/Source/Factories/GB_Matrix_extractElement.c +++ b/Source/Factories/GB_Matrix_extractElement.c @@ -103,20 +103,27 @@ GrB_Info GB_EXTRACT_ELEMENT // extract a single entry, x = A(row,col) // A is hypersparse: look for j in hyperlist A->h [0 ... A->nvec-1] //------------------------------------------------------------------ - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; - int64_t k = GB_hyper_hash_lookup (Ah, A->nvec, Ap, A_Yp, A_Yi, A_Yx, - A_hash_bits, j, &pA_start, &pA_end) ; - found = (k >= 0) ; + int64_t k ; + if (A->Y == NULL) + { + // A is hypersparse but does not yet have a hyper_hash + k = 0 ; + found = GB_lookup (true, Ah, Ap, A->vlen, &k, + A->nvec-1, j, &pA_start, &pA_end) ; + } + else + { + // A is hypersparse, with a hyper_hash that is already built + k = GB_hyper_hash_lookup (Ap, A->Y->p, A->Y->i, A->Y->x, + A->Y->vdim-1, j, &pA_start, &pA_end) ; + found = (k >= 0) ; + } if (!found) { // vector j is empty return (GrB_NO_VALUE) ; } ASSERT (j == Ah [k]) ; - } else { diff --git a/Source/Factories/GB_unop_factory.c b/Source/Factories/GB_unop_factory.c index 2fa00b037b..76aaf675c8 100644 --- a/Source/Factories/GB_unop_factory.c +++ b/Source/Factories/GB_unop_factory.c @@ -610,7 +610,7 @@ } break ; - case GB_FREXPX_unop_code : // z = frexpx (x), mantissa from C11 frexp + case GB_FREXPX_unop_code : // z = frexpx (x), mantissa from ANSI C11 frexp switch (code1) { @@ -620,7 +620,7 @@ } break ; - case GB_FREXPE_unop_code : // z = frexpe (x), exponent from C11 frexp + case GB_FREXPE_unop_code : // z = frexpe (x), exponent from ANSI C11 frexp switch (code1) { diff --git a/Source/GB_AxB_dot3.c b/Source/GB_AxB_dot3.c index daf0cf0b68..2ede234fa5 100644 --- a/Source/GB_AxB_dot3.c +++ b/Source/GB_AxB_dot3.c @@ -146,15 +146,17 @@ GrB_Info GB_AxB_dot3 // C = A'*B using dot product method ASSERT (A->vlen == B->vlen) ; ASSERT (vlen > 0) ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; - - const int64_t *restrict B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *restrict B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *restrict B_Yx = (B->Y == NULL) ? NULL : B->Y->x ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const GrB_Matrix A_Y = A->Y ; + const int64_t *restrict A_Yp = (A_is_hyper) ? A_Y->p : NULL ; + const int64_t *restrict A_Yi = (A_is_hyper) ? A_Y->i : NULL ; + const int64_t *restrict A_Yx = (A_is_hyper) ? A_Y->x : NULL ; + const int64_t A_hash_bits = (A_is_hyper) ? (A_Y->vdim - 1) : 0 ; + + const GrB_Matrix B_Y = B->Y ; + const int64_t *restrict B_Yp = (B_is_hyper) ? B_Y->p : NULL ; + const int64_t *restrict B_Yi = (B_is_hyper) ? B_Y->i : NULL ; + const int64_t *restrict B_Yx = (B_is_hyper) ? B_Y->x : NULL ; + const int64_t B_hash_bits = (B_is_hyper) ? (B_Y->vdim - 1) : 0 ; //-------------------------------------------------------------------------- // allocate C, the same size and # of entries as M diff --git a/Source/GB_AxB_saxpy3_flopcount.c b/Source/GB_AxB_saxpy3_flopcount.c index a514c72df7..a720ec64be 100644 --- a/Source/GB_AxB_saxpy3_flopcount.c +++ b/Source/GB_AxB_saxpy3_flopcount.c @@ -147,7 +147,7 @@ GrB_Info GB_AxB_saxpy3_flopcount mnvec = M->nvec ; mvlen = M->vlen ; M_is_dense = GB_IS_BITMAP (M) || GB_as_if_full (M) ; - if (M->Y != NULL) + if (M_is_hyper) { // mask is present, and hypersparse ASSERT_MATRIX_OK (M->Y, "M->Y hyper_hash", GB0) ; @@ -167,10 +167,19 @@ GrB_Info GB_AxB_saxpy3_flopcount const int64_t anvec = A->nvec ; const int64_t avlen = A->vlen ; const bool A_is_hyper = GB_IS_HYPERSPARSE (A) ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + + const int64_t *restrict A_Yp = NULL ; + const int64_t *restrict A_Yi = NULL ; + const int64_t *restrict A_Yx = NULL ; + int64_t A_hash_bits = 0 ; + if (A_is_hyper) + { + ASSERT_MATRIX_OK (A->Y, "A->Y hyper_hash", GB0) ; + A_Yp = A->Y->p ; + A_Yi = A->Y->i ; + A_Yx = A->Y->x ; + A_hash_bits = A->Y->vdim - 1 ; + } const int64_t *restrict Bp = B->p ; const int64_t *restrict Bh = B->h ; @@ -270,8 +279,8 @@ GrB_Info GB_AxB_saxpy3_flopcount if (M_is_hyper) { // M is hypersparse: find M(:,j) in the M->Y hyper_hash - GB_hyper_hash_lookup (Mh, mnvec, Mp, M_Yp, M_Yi, M_Yx, - M_hash_bits, j, &pM, &pM_end) ; + GB_hyper_hash_lookup (Mp, M_Yp, M_Yi, M_Yx, M_hash_bits, + j, &pM, &pM_end) ; } else { @@ -320,8 +329,8 @@ GrB_Info GB_AxB_saxpy3_flopcount if (A_is_hyper) { // A is hypersparse: find A(:,k) in the A->Y hyper_hash - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, - A_hash_bits, k, &pA, &pA_end) ; + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + k, &pA, &pA_end) ; } else { diff --git a/Source/GB_AxB_saxpy3_slice_balanced.c b/Source/GB_AxB_saxpy3_slice_balanced.c index 61109d5d86..f6746a7c7d 100644 --- a/Source/GB_AxB_saxpy3_slice_balanced.c +++ b/Source/GB_AxB_saxpy3_slice_balanced.c @@ -270,12 +270,20 @@ GrB_Info GB_AxB_saxpy3_slice_balanced const int64_t *restrict Ap = A->p ; const int64_t *restrict Ah = A->h ; const int64_t avlen = A->vlen ; - const int64_t anvec = A->nvec ; const bool A_is_hyper = GB_IS_HYPERSPARSE (A) ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + + const int64_t *restrict A_Yp = NULL ; + const int64_t *restrict A_Yi = NULL ; + const int64_t *restrict A_Yx = NULL ; + int64_t A_hash_bits = 0 ; + if (A_is_hyper) + { + ASSERT_MATRIX_OK (A->Y, "A->Y hyper_hash", GB0) ; + A_Yp = A->Y->p ; + A_Yi = A->Y->i ; + A_Yx = A->Y->x ; + A_hash_bits = A->Y->vdim - 1 ; + } const int64_t *restrict Bp = B->p ; const int64_t *restrict Bh = B->h ; @@ -296,7 +304,8 @@ GrB_Info GB_AxB_saxpy3_slice_balanced int64_t Mwork = 0 ; int64_t *restrict Bflops = C->p ; // use C->p as workspace for Bflops - GB_OK (GB_AxB_saxpy3_flopcount (&Mwork, Bflops, M, Mask_comp, A, B, Werk)) ; + GB_OK (GB_AxB_saxpy3_flopcount (&Mwork, Bflops, M, Mask_comp, A, B, + Werk)) ; double total_flops = (double) Bflops [bnvec] ; double axbflops = total_flops - Mwork ; GBURBLE ("axbwork %g ", axbflops) ; @@ -678,8 +687,8 @@ GrB_Info GB_AxB_saxpy3_slice_balanced if (A_is_hyper) { // A is hypersparse: find A(:,k) in hyper_hash - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, - A_Yi, A_Yx, A_hash_bits, k, &pA, &pA_end) ; + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, + A_hash_bits, k, &pA, &pA_end) ; } else { diff --git a/Source/GB_BinaryOp_check.c b/Source/GB_BinaryOp_check.c index 2e70527802..609d9d0ad0 100644 --- a/Source/GB_BinaryOp_check.c +++ b/Source/GB_BinaryOp_check.c @@ -60,29 +60,26 @@ GrB_Info GB_BinaryOp_check // check a GraphBLAS binary operator bool op_is_first = (opcode == GB_FIRST_binop_code) ; bool op_is_second = (opcode == GB_SECOND_binop_code) ; bool op_is_pair = (opcode == GB_PAIR_binop_code) ; - int32_t actual_len = (int32_t) strlen (op->name) ; - int32_t name_len = op->name_len ; - char *op_name = (actual_len > 0) ? op->name : "f" ; if (opcode == GB_USER_binop_code) { // user-defined binary operator - GBPR0 ("(user-defined): z=%s(x,y)\n", op_name) ; + GBPR0 ("(user-defined): z=%s(x,y)\n", op->name) ; } else if (opcode == GB_FIRST_binop_code && op->ztype->code == GB_UDT_code) { // FIRST_UDT binary operator created by GB_reduce_to_vector - GBPR0 ("(generated): z=%s(x,y)\n", op_name) ; + GBPR0 ("(generated): z=%s(x,y)\n", op->name) ; } else if (op_is_positional) { // built-in positional binary operator - GBPR0 ("(built-in positional): z=%s(x,y,i,k,j)\n", op_name) ; + GBPR0 ("(built-in positional): z=%s(x,y,i,k,j)\n", op->name) ; } else { // built-in - GBPR0 ("(built-in): z=%s(x,y)\n", op_name) ; + GBPR0 ("(built-in): z=%s(x,y)\n", op->name) ; } if (!(op_is_positional || op_is_first || op_is_second) @@ -92,6 +89,8 @@ GrB_Info GB_BinaryOp_check // check a GraphBLAS binary operator return (GrB_INVALID_OBJECT) ; } + int32_t name_len = op->name_len ; + int32_t actual_len = (int32_t) strlen (op->name) ; if (opcode == GB_USER_binop_code && name_len != actual_len) { GBPR0 (" BinaryOp has an invalid name_len\n") ; diff --git a/Source/GB_Context.c b/Source/GB_Context.c index 2a94fe7574..61258a41d5 100644 --- a/Source/GB_Context.c +++ b/Source/GB_Context.c @@ -43,7 +43,7 @@ #elif defined ( HAVE_KEYWORD__THREAD_LOCAL ) - // C11 threads + // ANSI C11 threads #include _Thread_local GxB_Context GB_CONTEXT_THREAD = NULL ; diff --git a/Source/GB_Global.c b/Source/GB_Global.c index bf96f6c97b..99a2e0300e 100644 --- a/Source/GB_Global.c +++ b/Source/GB_Global.c @@ -38,7 +38,6 @@ typedef struct float bitmap_switch [GxB_NBITMAP_SWITCH] ; // default bitmap_switch float hyper_switch ; // default hyper_switch for new matrices bool is_csc ; // default CSR/CSC format for new matrices - int64_t hyper_hash ; // controls when A->Y hyper_hash is created //-------------------------------------------------------------------------- // abort function: only used for debugging @@ -51,7 +50,7 @@ typedef struct //-------------------------------------------------------------------------- // All threads must use the same malloc/realloc/free functions. - // They default to the C11 functions, but can be defined by GxB_init. + // They default to the ANSI C11 functions, but can be defined by GxB_init. void * (* malloc_function ) (size_t) ; // required void * (* calloc_function ) (size_t, size_t) ; // may be NULL @@ -176,12 +175,10 @@ static GB_Global_struct GB_Global = .is_csc = false, // default is GxB_BY_ROW - .hyper_hash = GB_HYPER_HASH_DEFAULT, - // abort function for debugging only .abort_function = abort, - // malloc/realloc/free functions: default to C11 functions + // malloc/realloc/free functions: default to ANSI C11 functions .malloc_function = malloc, .realloc_function = realloc, .free_function = free, @@ -345,20 +342,6 @@ float GB_Global_hyper_switch_get (void) return (GB_Global.hyper_switch) ; } -//------------------------------------------------------------------------------ -// hyper_hash -//------------------------------------------------------------------------------ - -void GB_Global_hyper_hash_set (int64_t hyper_hash) -{ - GB_Global.hyper_hash = hyper_hash ; -} - -int64_t GB_Global_hyper_hash_get (void) -{ - return (GB_Global.hyper_hash) ; -} - //------------------------------------------------------------------------------ // bitmap_switch //------------------------------------------------------------------------------ diff --git a/Source/GB_Global.h b/Source/GB_Global.h index 0f42b8767c..dc483cfc96 100644 --- a/Source/GB_Global.h +++ b/Source/GB_Global.h @@ -30,9 +30,6 @@ bool GB_Global_GrB_init_called_get (void) ; void GB_Global_hyper_switch_set (float hyper_switch) ; float GB_Global_hyper_switch_get (void) ; -void GB_Global_hyper_hash_set (int64_t hyper_hash) ; -int64_t GB_Global_hyper_hash_get (void) ; - void GB_Global_bitmap_switch_set (int k, float b) ; float GB_Global_bitmap_switch_get (int k) ; float GB_Global_bitmap_switch_matrix_get diff --git a/Source/GB_IndexUnaryOp_check.c b/Source/GB_IndexUnaryOp_check.c index 99a07b49dc..cec6c13446 100644 --- a/Source/GB_IndexUnaryOp_check.c +++ b/Source/GB_IndexUnaryOp_check.c @@ -49,11 +49,7 @@ GrB_Info GB_IndexUnaryOp_check // check a GraphBLAS index_unary operator { GBPR0 ("(built-in): ") ; } - - int32_t name_len = op->name_len ; - int32_t actual_len = (int32_t) strlen (op->name) ; - char *op_name = (actual_len > 0) ? op->name : "f" ; - GBPR0 ("z=%s(x,i,j,y)\n", op_name) ; + GBPR0 ("z=%s(x,i,j,y)\n", op->name) ; if (op->idxunop_function == NULL) { @@ -61,6 +57,8 @@ GrB_Info GB_IndexUnaryOp_check // check a GraphBLAS index_unary operator return (GrB_INVALID_OBJECT) ; } + int32_t name_len = op->name_len ; + int32_t actual_len = (int32_t) strlen (op->name) ; if (opcode == GB_USER_idxunop_code && name_len != actual_len) { GBPR0 (" IndexUnaryOp has an invalid name_len\n") ; diff --git a/Source/GB_Matrix_free.c b/Source/GB_Matrix_free.c index c1ffd917cf..1f47b822df 100644 --- a/Source/GB_Matrix_free.c +++ b/Source/GB_Matrix_free.c @@ -24,7 +24,6 @@ void GB_Matrix_free // free a matrix if (A != NULL && (A->magic == GB_MAGIC || A->magic == GB_MAGIC2)) { // free all content of A - GB_FREE (&(A->user_name), A->user_name_size) ; size_t header_size = A->header_size ; GB_phybix_free (A) ; if (!(A->static_header)) diff --git a/Source/GB_Monoid_new.c b/Source/GB_Monoid_new.c index 5aec6e0c91..b33780f972 100644 --- a/Source/GB_Monoid_new.c +++ b/Source/GB_Monoid_new.c @@ -100,8 +100,6 @@ GrB_Info GB_Monoid_new // create a monoid GrB_Monoid mon = *monoid ; mon->magic = GB_MAGIC ; mon->header_size = header_size ; - mon->user_name = NULL ; // user_name for GrB_get/GrB_set - mon->user_name_size = 0 ; mon->op = op ; size_t zsize = op->ztype->size ; mon->identity = NULL ; // defined below (if present) diff --git a/Source/GB_Op_free.c b/Source/GB_Op_free.c index ce62904639..3733996400 100644 --- a/Source/GB_Op_free.c +++ b/Source/GB_Op_free.c @@ -21,15 +21,14 @@ GrB_Info GB_Op_free // free a user-created op GB_Operator op = *op_handle ; if (op != NULL) { - GB_FREE (&(op->user_name), op->user_name_size) ; - size_t defn_size = op->defn_size ; - if (defn_size > 0) - { - GB_FREE (&(op->defn), defn_size) ; - } size_t header_size = op->header_size ; if (header_size > 0) { + size_t defn_size = op->defn_size ; + if (defn_size > 0) + { + GB_FREE (&(op->defn), defn_size) ; + } op->magic = GB_FREED ; // to help detect dangling pointers op->header_size = 0 ; GB_FREE (op_handle, header_size) ; diff --git a/Source/GB_Pending.h b/Source/GB_Pending.h index 3a8f6b354e..f2da17aac3 100644 --- a/Source/GB_Pending.h +++ b/Source/GB_Pending.h @@ -11,10 +11,6 @@ #define GB_PENDING_H #include "GB.h" -// FUTURE: remove this once GxB_Matrix_pending is revised (see PR #172) -// true if a matrix is hypersparse and needs its hyper_hash built -#define GB_NEED_HYPER_HASH(A) GB_hyper_hash_need (A) - //------------------------------------------------------------------------------ // GB_Pending functions //------------------------------------------------------------------------------ diff --git a/Source/GB_Scalar_wrap.c b/Source/GB_Scalar_wrap.c index 6da7e5e52b..cf44365d66 100644 --- a/Source/GB_Scalar_wrap.c +++ b/Source/GB_Scalar_wrap.c @@ -36,8 +36,6 @@ GrB_Scalar GB_Scalar_wrap // create a new GrB_Scalar with one entry s->magic = GB_MAGIC ; s->header_size = 0 ; - s->user_name = NULL ; - s->user_name_size = 0 ; s->type = (type == NULL) ? GrB_BOOL : type ; s->logger = NULL ; s->logger_size = 0 ; diff --git a/Source/GB_Semiring_new.c b/Source/GB_Semiring_new.c index 62b17e637e..71b440a9f5 100644 --- a/Source/GB_Semiring_new.c +++ b/Source/GB_Semiring_new.c @@ -43,8 +43,6 @@ GrB_Info GB_Semiring_new // create a semiring // initialize the semiring semiring->magic = GB_MAGIC ; - semiring->user_name = NULL ; // user_name for GrB_get/GrB_set - semiring->user_name_size = 0 ; semiring->add = add ; semiring->multiply = multiply ; semiring->name = NULL ; diff --git a/Source/GB_UnaryOp_check.c b/Source/GB_UnaryOp_check.c index f5e1daaa29..7348d42bbb 100644 --- a/Source/GB_UnaryOp_check.c +++ b/Source/GB_UnaryOp_check.c @@ -49,10 +49,7 @@ GrB_Info GB_UnaryOp_check // check a GraphBLAS unary operator { GBPR0 ("(built-in): ") ; } - int32_t name_len = op->name_len ; - int32_t actual_len = (int32_t) strlen (op->name) ; - char *op_name = (actual_len > 0) ? op->name : "f" ; - GBPR0 ("z=%s(x)\n", op_name) ; + GBPR0 ("z=%s(x)\n", op->name) ; bool op_is_positional = GB_OPCODE_IS_POSITIONAL (opcode) ; bool op_is_one = (opcode == GB_ONE_unop_code) ; @@ -64,6 +61,8 @@ GrB_Info GB_UnaryOp_check // check a GraphBLAS unary operator return (GrB_INVALID_OBJECT) ; } + int32_t name_len = op->name_len ; + int32_t actual_len = (int32_t) strlen (op->name) ; if (opcode == GB_USER_unop_code && name_len != actual_len) { GBPR0 (" UnaryOp has an invalid name_len\n") ; diff --git a/Source/GB_add_phase0.c b/Source/GB_add_phase0.c index 067eded6b7..ee5b654b3b 100644 --- a/Source/GB_add_phase0.c +++ b/Source/GB_add_phase0.c @@ -278,15 +278,15 @@ GrB_Info GB_add_phase0 // find vectors in C for C=A+B or C=A+B GB_OK (GB_hyper_hash_build (A, Werk)) ; GB_OK (GB_hyper_hash_build (B, Werk)) ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *restrict A_Yp = (A_is_hyper) ? A->Y->p : NULL ; + const int64_t *restrict A_Yi = (A_is_hyper) ? A->Y->i : NULL ; + const int64_t *restrict A_Yx = (A_is_hyper) ? A->Y->x : NULL ; + const int64_t A_hash_bits = (A_is_hyper) ? (A->Y->vdim - 1) : 0 ; - const int64_t *restrict B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *restrict B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *restrict B_Yx = (B->Y == NULL) ? NULL : B->Y->x ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *restrict B_Yp = (B_is_hyper) ? B->Y->p : NULL ; + const int64_t *restrict B_Yi = (B_is_hyper) ? B->Y->i : NULL ; + const int64_t *restrict B_Yx = (B_is_hyper) ? B->Y->x : NULL ; + const int64_t B_hash_bits = (B_is_hyper) ? (B->Y->vdim - 1) : 0 ; int64_t k ; #pragma omp parallel for num_threads(nthreads) schedule(static) @@ -297,16 +297,16 @@ GrB_Info GB_add_phase0 // find vectors in C for C=A+B or C=A+B { // C_to_A [k] = kA if Ah [kA] == j and A(:,j) is non-empty int64_t pA, pA_end ; - int64_t kA = GB_hyper_hash_lookup (Ah, Anvec, Ap, A_Yp, - A_Yi, A_Yx, A_hash_bits, j, &pA, &pA_end) ; + int64_t kA = GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, + A_hash_bits, j, &pA, &pA_end) ; C_to_A [k] = (pA < pA_end) ? kA : -1 ; } if (B_is_hyper) { // C_to_B [k] = kB if Bh [kB] == j and B(:,j) is non-empty int64_t pB, pB_end ; - int64_t kB = GB_hyper_hash_lookup (Bh, Bnvec, Bp, B_Yp, - B_Yi, B_Yx, B_hash_bits, j, &pB, &pB_end) ; + int64_t kB = GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, + B_hash_bits, j, &pB, &pB_end) ; C_to_B [k] = (pB < pB_end) ? kB : -1 ; } } @@ -676,10 +676,10 @@ GrB_Info GB_add_phase0 // find vectors in C for C=A+B or C=A+B // create the M->Y hyper_hash GB_OK (GB_hyper_hash_build (M, Werk)) ; - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = M->Y->p ; + const int64_t *restrict M_Yi = M->Y->i ; + const int64_t *restrict M_Yx = M->Y->x ; + const int64_t M_hash_bits = M->Y->vdim - 1 ; int64_t k ; #pragma omp parallel for num_threads(nthreads) schedule(static) @@ -688,8 +688,8 @@ GrB_Info GB_add_phase0 // find vectors in C for C=A+B or C=A+B int64_t j = Ch [k] ; // C_to_M [k] = kM if Mh [kM] == j and M(:,j) is non-empty int64_t pM, pM_end ; - int64_t kM = GB_hyper_hash_lookup (Mh, Mnvec, Mp, M_Yp, M_Yi, - M_Yx, M_hash_bits, j, &pM, &pM_end) ; + int64_t kM = GB_hyper_hash_lookup (Mp, M_Yp, M_Yi, M_Yx, + M_hash_bits, j, &pM, &pM_end) ; C_to_M [k] = (pM < pM_end) ? kM : -1 ; } } diff --git a/Source/GB_assign_zombie1.c b/Source/GB_assign_zombie1.c index 095371b6a7..5f7ab6a056 100644 --- a/Source/GB_assign_zombie1.c +++ b/Source/GB_assign_zombie1.c @@ -40,19 +40,13 @@ GrB_Info GB_assign_zombie1 //-------------------------------------------------------------------------- int64_t *restrict Ci = C->i ; - const int64_t *restrict Ch = C->h ; const int64_t *restrict Cp = C->p ; int64_t pC_start, pC_end ; - const int64_t cnvec = C->nvec ; - if (Ch != NULL) + if (C->h != NULL) { // C is hypersparse - const int64_t *restrict C_Yp = (C->Y == NULL) ? NULL : C->Y->p ; - const int64_t *restrict C_Yi = (C->Y == NULL) ? NULL : C->Y->i ; - const int64_t *restrict C_Yx = (C->Y == NULL) ? NULL : C->Y->x ; - const int64_t C_hash_bits = (C->Y == NULL) ? 0 : (C->Y->vdim - 1) ; - GB_hyper_hash_lookup (Ch, cnvec, Cp, C_Yp, C_Yi, C_Yx, C_hash_bits, + GB_hyper_hash_lookup (Cp, C->Y->p, C->Y->i, C->Y->x, C->Y->vdim-1, j, &pC_start, &pC_end) ; } else diff --git a/Source/GB_assign_zombie3.c b/Source/GB_assign_zombie3.c index b6e792a48d..7f46f0a9be 100644 --- a/Source/GB_assign_zombie3.c +++ b/Source/GB_assign_zombie3.c @@ -60,20 +60,14 @@ GrB_Info GB_assign_zombie3 // get C (:,j) //-------------------------------------------------------------------------- - int64_t *restrict Ci = C->i ; - const int64_t *restrict Ch = C->h ; const int64_t *restrict Cp = C->p ; + int64_t *restrict Ci = C->i ; int64_t pC_start, pC_end ; - const int64_t cnvec = C->nvec ; - if (Ch != NULL) + if (C->h != NULL) { // C is hypersparse - const int64_t *restrict C_Yp = (C->Y == NULL) ? NULL : C->Y->p ; - const int64_t *restrict C_Yi = (C->Y == NULL) ? NULL : C->Y->i ; - const int64_t *restrict C_Yx = (C->Y == NULL) ? NULL : C->Y->x ; - const int64_t C_hash_bits = (C->Y == NULL) ? 0 : (C->Y->vdim - 1) ; - GB_hyper_hash_lookup (Ch, cnvec, Cp, C_Yp, C_Yi, C_Yx, C_hash_bits, + GB_hyper_hash_lookup (Cp, C->Y->p, C->Y->i, C->Y->x, C->Y->vdim-1, j, &pC_start, &pC_end) ; } else diff --git a/Source/GB_assign_zombie4.c b/Source/GB_assign_zombie4.c index b0bd60341e..6c9c429a50 100644 --- a/Source/GB_assign_zombie4.c +++ b/Source/GB_assign_zombie4.c @@ -70,19 +70,19 @@ GrB_Info GB_assign_zombie4 //-------------------------------------------------------------------------- const int64_t *restrict Mp = M->p ; - const int64_t *restrict Mh = M->h ; +// const int64_t *restrict Mh = M->h ; const int8_t *restrict Mb = M->b ; const GB_M_TYPE *restrict Mx = (GB_M_TYPE *) (Mask_struct ? NULL : (M->x)) ; const size_t msize = M->type->size ; - const int64_t Mnvec = M->nvec ; +// const int64_t Mnvec = M->nvec ; ASSERT (M->vlen == 1) ; const bool M_is_hyper = GB_IS_HYPERSPARSE (M) ; const bool M_is_bitmap = GB_IS_BITMAP (M) ; const bool M_is_full = GB_IS_FULL (M) ; - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->i ; - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->x ; - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = (M_is_hyper) ? M->Y->p : NULL ; + const int64_t *restrict M_Yi = (M_is_hyper) ? M->Y->i : NULL ; + const int64_t *restrict M_Yx = (M_is_hyper) ? M->Y->x : NULL ; + const int64_t M_hash_bits = (M_is_hyper) ? (M->Y->vdim - 1) : 0 ; //-------------------------------------------------------------------------- // determine the number of threads to use @@ -158,8 +158,8 @@ GrB_Info GB_assign_zombie4 if (M_is_hyper) { // M is hypersparse - GB_hyper_hash_lookup (Mh, Mnvec, Mp, M_Yp, M_Yi, - M_Yx, M_hash_bits, j, &pM, &pM_end) ; + GB_hyper_hash_lookup (Mp, M_Yp, M_Yi, M_Yx, + M_hash_bits, j, &pM, &pM_end) ; } else { diff --git a/Source/GB_assign_zombie5.c b/Source/GB_assign_zombie5.c index 9a55d50fd4..69fe425a1f 100644 --- a/Source/GB_assign_zombie5.c +++ b/Source/GB_assign_zombie5.c @@ -92,10 +92,10 @@ GrB_Info GB_assign_zombie5 const bool M_is_hyper = GB_IS_HYPERSPARSE (M) ; const bool M_is_bitmap = GB_IS_BITMAP (M) ; const bool M_is_full = GB_IS_FULL (M) ; - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->i ; - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->x ; - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = (M_is_hyper) ? M->Y->p : NULL ; + const int64_t *restrict M_Yi = (M_is_hyper) ? M->Y->i : NULL ; + const int64_t *restrict M_Yx = (M_is_hyper) ? M->Y->x : NULL ; + const int64_t M_hash_bits = (M_is_hyper) ? (M->Y->vdim - 1) : 0 ; //-------------------------------------------------------------------------- // determine the number of threads to use @@ -157,8 +157,8 @@ GrB_Info GB_assign_zombie5 if (M_is_hyper) { // M is hypersparse - GB_hyper_hash_lookup (Mh, Mnvec, Mp, M_Yp, M_Yi, M_Yx, - M_hash_bits, j, &pM_start, &pM_end) ; + GB_hyper_hash_lookup (Mp, M_Yp, M_Yi, M_Yx, M_hash_bits, + j, &pM_start, &pM_end) ; } else { diff --git a/Source/GB_binop_new.c b/Source/GB_binop_new.c index 3860ebb6b4..4abcf4750e 100644 --- a/Source/GB_binop_new.c +++ b/Source/GB_binop_new.c @@ -45,8 +45,6 @@ GrB_Info GB_binop_new //-------------------------------------------------------------------------- op->magic = GB_MAGIC ; - op->user_name = NULL ; - op->user_name_size = 0 ; op->ztype = ztype ; op->xtype = xtype ; op->ytype = ytype ; @@ -69,6 +67,7 @@ GrB_Info GB_binop_new // output: op->name, &(op->name_len), &(op->hash), &(op->defn), &(op->defn_size), // input: - binop_name, binop_defn, opcode == GB_USER_binop_code, jitable)) ; + binop_name, binop_defn, "GxB_binary_function", 19, + opcode == GB_USER_binop_code, jitable)) ; } diff --git a/Source/GB_bitwise.h b/Source/GB_bitwise.h index c404be0d98..859eeecde0 100644 --- a/Source/GB_bitwise.h +++ b/Source/GB_bitwise.h @@ -364,7 +364,7 @@ inline uint8_t GB_bitshift_uint8 (uint8_t x, int8_t k) } else if (k >= 8 || k <= -8) { - // C11 states that the result of x << k is undefined if k is + // ANSI C11 states that the result of x << k is undefined if k is // negative or if k is greater than the # of bits in x. Here, the // result is defined to be zero (the same as if shifting left // or right by 8). @@ -372,13 +372,13 @@ inline uint8_t GB_bitshift_uint8 (uint8_t x, int8_t k) } else if (k > 0) { - // left shift x by k bits. z is defined by C11 as + // left shift x by k bits. z is defined by ANSI C11 as // (x * (2^k)) mod (uintmax + 1). return (x << k) ; } else { - // right shift x by k bits. z is defined by C11 as the + // right shift x by k bits. z is defined by ANSI C11 as the // integral part of the quotient of x / (2^k). return (x >> (-k)) ; } @@ -541,13 +541,13 @@ inline int8_t GB_bitshift_int8 (int8_t x, int8_t k) } else if (k >= 8) { - // C11 states that z = x << k is undefined if k is greater + // ANSI C11 states that z = x << k is undefined if k is greater // than the # of bits in x. Here, the result is defined to be zero. return (0) ; } else if (k <= -8) { - // C11 states that z = x >> (-k) is undefined if (-k) is + // ANSI C11 states that z = x >> (-k) is undefined if (-k) is // greater than the # of bits in x. Here, the result is defined to // be the sign of x (z = 0 if x >= 0 and z = -1 if x is negative). return ((x >= 0) ? 0 : -1) ; @@ -555,7 +555,7 @@ inline int8_t GB_bitshift_int8 (int8_t x, int8_t k) else if (k > 0) { // left shift x by k bits (where k is in range 1 to #bits - 1). - // C11 states that z is defined only if x is non-negative and + // ANSI C11 states that z is defined only if x is non-negative and // x * (2^k) is representable. This computation assumes x and z // are represented in 2's complement. The result depends on the // underlying machine architecture and the compiler. @@ -567,13 +567,13 @@ inline int8_t GB_bitshift_int8 (int8_t x, int8_t k) // right shift x by k bits (where k is in range 1 to 8) if (x >= 0) { - // C11 defines z as the integral part of the quotient + // ANSI C11 defines z as the integral part of the quotient // of x / (2^k). return (x >> k) ; } else { - // C11 states that the result is implementation-defined if + // ANSI C11 states that the result is implementation-defined if // x is negative. This computation assumes x and z are in 2's // complement, so 1-bits are shifted in on the left, and thus // the sign bit is always preserved. The result depends on the diff --git a/Source/GB_block.c b/Source/GB_block.c index 53e38c4cb3..9a5577cff4 100644 --- a/Source/GB_block.c +++ b/Source/GB_block.c @@ -29,7 +29,7 @@ GrB_Info GB_block // apply all pending computations if blocking mode enabled // wait if mode is blocking, or if too many pending tuples //-------------------------------------------------------------------------- - if (!(GB_ANY_PENDING_WORK (A) || GB_hyper_hash_need (A))) + if (!(GB_ANY_PENDING_WORK (A) || GB_NEED_HYPER_HASH (A))) { // no pending work, so no need to block return (GrB_SUCCESS) ; diff --git a/Source/GB_boolean_rename.c b/Source/GB_boolean_rename.c index 9d7548a886..d91d853865 100644 --- a/Source/GB_boolean_rename.c +++ b/Source/GB_boolean_rename.c @@ -23,7 +23,7 @@ // Those 6 names are in GraphBLAS but the pairs of names are equivalent. // GraphBLAS includes a built-in GrB_DIV_BOOL operator, so boolean division -// must be defined. C11 does not provide a definition either, and +// must be defined. ANSI C11 does not provide a definition either, and // dividing by zero (boolean false) will typically terminate an application. // In this GraphBLAS implementation, boolean division is treated as if it were // int1, where 1/1 = 1, 0/1 = 0, 0/0 = integer NaN = 0, 1/0 = +infinity = 1. diff --git a/Source/GB_code_name_get.c b/Source/GB_code_name_get.c deleted file mode 100644 index 1d5c3af53c..0000000000 --- a/Source/GB_code_name_get.c +++ /dev/null @@ -1,33 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_code_name_get: get the user_name of a type, from a code -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -const char *GB_code_name_get (GB_Type_code code, char *user_name) -{ - switch (code) - { - case GB_BOOL_code : return ("GrB_BOOL") ; - case GB_INT8_code : return ("GrB_INT8") ; - case GB_INT16_code : return ("GrB_INT16") ; - case GB_INT32_code : return ("GrB_INT32") ; - case GB_INT64_code : return ("GrB_INT64") ; - case GB_UINT8_code : return ("GrB_UINT8") ; - case GB_UINT16_code : return ("GrB_UINT16") ; - case GB_UINT32_code : return ("GrB_UINT32") ; - case GB_UINT64_code : return ("GrB_UINT64") ; - case GB_FP32_code : return ("GrB_FP32") ; - case GB_FP64_code : return ("GrB_FP64") ; - case GB_FC32_code : return ("GxB_FC32") ; - case GB_FC64_code : return ("GxB_FC64") ; - default: - case GB_UDT_code : return (user_name) ; - } -} - diff --git a/Source/GB_deserialize.c b/Source/GB_deserialize.c index e780738aa0..e6dcd15a50 100644 --- a/Source/GB_deserialize.c +++ b/Source/GB_deserialize.c @@ -10,7 +10,6 @@ // A parallel decompression of a serialized blob into a GrB_Matrix. #include "GB.h" -#include "GB_get_set.h" #include "GB_serialize.h" #define GB_FREE_ALL \ @@ -219,41 +218,6 @@ GrB_Info GB_deserialize // deserialize a matrix from a blob } C->magic = GB_MAGIC ; - //-------------------------------------------------------------------------- - // get the GrB_NAME and GrB_ELTYPE_STRING - //-------------------------------------------------------------------------- - - // v8.1.0 adds two nul-terminated uncompressed strings to the end of the - // blob. If the strings are empty, the nul terminators still appear. - - if (version >= GxB_VERSION (8,1,0)) - { - - //---------------------------------------------------------------------- - // look for the two nul bytes in blob [s : blob_size-1] - //---------------------------------------------------------------------- - - int nfound = 0 ; - size_t ss [2] ; - for (size_t p = s ; p < blob_size && nfound < 2 ; p++) - { - if (blob [p] == 0) - { - ss [nfound++] = p ; - } - } - - if (nfound == 2) - { - // extract the GrB_NAME and GrB_ELTYPE_STRING from the blob - char *user_name = (char *) (blob + s) ; -// char *eltype_string = (char *) (blob + ss [0] + 1) ; -// printf ("deserialize user_name [%s] eltype [%s]\n", user_name, -// eltype_string) ; - GB_OK (GB_matvec_name_set (C, user_name, GrB_NAME)) ; - } - } - //-------------------------------------------------------------------------- // return result //-------------------------------------------------------------------------- diff --git a/Source/GB_dup_worker.c b/Source/GB_dup_worker.c index be0adf2c23..63e97336a9 100644 --- a/Source/GB_dup_worker.c +++ b/Source/GB_dup_worker.c @@ -11,13 +11,11 @@ // if numeric is false, C->x is allocated but not initialized. -// If *Chandle is not NULL on input, the header is reused. It may be a static -// or dynamic header, depending on C->static_header. +// If *Chandle is not NULL, the header is reused. It may be a static or +// dynamic header, depending on C->static_header. #include "GB.h" -#include "GB_get_set.h" -#define GB_FREE_ALL \ - GB_FREE (&C_user_name, C_user_name_size) ; +#define GB_FREE_ALL ; GrB_Info GB_dup_worker // make an exact copy of a matrix ( @@ -66,23 +64,6 @@ GrB_Info GB_dup_worker // make an exact copy of a matrix int sparsity_control = A->sparsity_control ; GrB_Type atype = A->type ; - //-------------------------------------------------------------------------- - // copy the user_name of A, if present - //-------------------------------------------------------------------------- - - char *C_user_name = NULL ; - size_t C_user_name_size = 0 ; - if (A->user_name != NULL) - { - info = GB_user_name_set (&C_user_name, &C_user_name_size, - A->user_name, false) ; - if (info != GrB_SUCCESS) - { - // out of memory - return (info) ; - } - } - //-------------------------------------------------------------------------- // create C //-------------------------------------------------------------------------- @@ -134,21 +115,14 @@ GrB_Info GB_dup_worker // make an exact copy of a matrix } C->magic = GB_MAGIC ; // C->p and C->h are now initialized - - //-------------------------------------------------------------------------- - // copy the user_name of A into C, if present - //-------------------------------------------------------------------------- - - C->user_name = C_user_name ; - C->user_name_size = C_user_name_size ; + #ifdef GB_DEBUG + if (numeric) ASSERT_MATRIX_OK (C, "C duplicate of A", GB0) ; + #endif //-------------------------------------------------------------------------- // return the result //-------------------------------------------------------------------------- - #ifdef GB_DEBUG - if (numeric) ASSERT_MATRIX_OK (C, "C duplicate of A", GB0) ; - #endif return (GrB_SUCCESS) ; } diff --git a/Source/GB_emult_08_phase0.c b/Source/GB_emult_08_phase0.c index 8ab085d4a1..13e54c0267 100644 --- a/Source/GB_emult_08_phase0.c +++ b/Source/GB_emult_08_phase0.c @@ -426,10 +426,10 @@ GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B GB_OK (GB_hyper_hash_build (M, Werk)) ; const int64_t *restrict Mp = M->p ; - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->i ; - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->x ; - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = M->Y->p ; + const int64_t *restrict M_Yi = M->Y->i ; + const int64_t *restrict M_Yx = M->Y->x ; + const int64_t M_hash_bits = M->Y->vdim - 1 ; // compute C_to_M int64_t k ; @@ -438,7 +438,7 @@ GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B { int64_t pM, pM_end ; int64_t j = Ch [k] ; - int64_t kM = GB_hyper_hash_lookup (Mh, Mnvec, Mp, M_Yp, M_Yi, M_Yx, + int64_t kM = GB_hyper_hash_lookup (Mp, M_Yp, M_Yi, M_Yx, M_hash_bits, j, &pM, &pM_end) ; C_to_M [k] = (pM < pM_end) ? kM : -1 ; } @@ -464,10 +464,10 @@ GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B GB_OK (GB_hyper_hash_build (A, Werk)) ; const int64_t *restrict Ap = A->p ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *restrict A_Yp = A->Y->p ; + const int64_t *restrict A_Yi = A->Y->i ; + const int64_t *restrict A_Yx = A->Y->x ; + const int64_t A_hash_bits = A->Y->vdim - 1 ; // compute C_to_A int64_t k ; @@ -476,7 +476,7 @@ GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B { int64_t pA, pA_end ; int64_t j = Ch [k] ; - int64_t kA = GB_hyper_hash_lookup (Ah, Anvec, Ap, A_Yp, A_Yi, A_Yx, + int64_t kA = GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, j, &pA, &pA_end) ; C_to_A [k] = (pA < pA_end) ? kA : -1 ; } @@ -502,10 +502,10 @@ GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B GB_OK (GB_hyper_hash_build (B, Werk)) ; const int64_t *restrict Bp = B->p ; - const int64_t *restrict B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *restrict B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *restrict B_Yx = (B->Y == NULL) ? NULL : B->Y->x ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const int64_t *restrict B_Yp = B->Y->p ; + const int64_t *restrict B_Yi = B->Y->i ; + const int64_t *restrict B_Yx = B->Y->x ; + const int64_t B_hash_bits = B->Y->vdim - 1 ; // compute C_to_B int64_t k ; @@ -514,7 +514,7 @@ GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B { int64_t pB, pB_end ; int64_t j = Ch [k] ; - int64_t kB = GB_hyper_hash_lookup (Bh, Bnvec, Bp, B_Yp, B_Yi, B_Yx, + int64_t kB = GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, j, &pB, &pB_end) ; C_to_B [k] = (pB < pB_end) ? kB : -1 ; } diff --git a/Source/GB_get_set.h b/Source/GB_get_set.h deleted file mode 100644 index 8e91c6dcc8..0000000000 --- a/Source/GB_get_set.h +++ /dev/null @@ -1,93 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_get_set.h: definitions for GrB_get/set methods -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#ifndef GB_GET_SET_H -#define GB_GET_SET_H -#include "GB.h" - -struct GB_Global_opaque -{ - int64_t magic ; - size_t header_size ; -} ; - -GrB_Type_Code GB_type_code_get // return the GrB_Type_Code for the code -( - const GB_Type_code code // type code to convert -) ; - -const char *GB_type_name_get (GrB_Type type) ; -const char *GB_code_name_get (GB_Type_code code, char *user_name) ; - -GrB_Info GB_matvec_name_size_get (GrB_Matrix A, size_t *value, int field) ; -GrB_Info GB_matvec_name_get (GrB_Matrix A, char *name, int field) ; -GrB_Info GB_matvec_enum_get (GrB_Matrix A, int32_t *value, int field) ; -GrB_Info GB_matvec_name_set (GrB_Matrix A, char *value, int field) ; - -GrB_Info GB_matvec_set -( - GrB_Matrix A, - bool is_vector, // true if A is a GrB_Vector - int32_t ivalue, - double dvalue, - int field, - GB_Werk Werk -) ; - -GrB_Info GB_op_enum_get (GB_Operator op, int32_t * value, GrB_Field field) ; -GrB_Info GB_op_scalar_get (GB_Operator op, GrB_Scalar value, GrB_Field field, - GB_Werk Werk) ; -GrB_Info GB_op_string_get (GB_Operator op, char * value, GrB_Field field) ; -GrB_Info GB_op_size_get (GB_Operator op, size_t * value, GrB_Field field) ; - -const char *GB_op_name_get (GB_Operator op) ; -GrB_Info GB_op_string_set (GB_Operator op, char * value, GrB_Field field) ; - -const char *GB_monoid_name_get (GrB_Monoid monoid) ; -const char *GB_semiring_name_get (GrB_Semiring semiring) ; - -GrB_Info GB_op_or_type_string_set -( - // input: - bool user_defined, - bool jitable, - char *value, - int field, - // output: - char **user_name, - size_t *user_name_size, - char *name, - int32_t *name_len, - char **defn, - size_t *defn_size, - uint64_t *hash -) ; - -GrB_Info GB_monoid_get -( - GrB_Monoid monoid, - GrB_Scalar value, - GrB_Field field, - GB_Werk Werk -) ; - -GrB_Info GB_user_name_set -( - // input/output - char **object_user_name, // user_name of the object - size_t *object_user_name_size, // user_name_size of the object - // input - const char *new_name, // new name for the object - const bool only_once // if true, the name of the object can - // only be set once -) ; - - -#endif - diff --git a/Source/GB_hyper.h b/Source/GB_hyper.h index 884c33e09b..116575f15b 100644 --- a/Source/GB_hyper.h +++ b/Source/GB_hyper.h @@ -54,17 +54,10 @@ GrB_Info GB_hyper_hash_build // construct A->Y if not already constructed GB_Werk Werk ) ; -bool GB_hyper_hash_need // return true if A needs a hyper hash -( - GrB_Matrix A -) ; - //------------------------------------------------------------------------------ // GB_lookup: find k so that j == Ah [k], without using the A->Y hyper_hash //------------------------------------------------------------------------------ -#ifdef GB_DEBUG - // For a sparse, bitmap, or full matrix j == k. // For a hypersparse matrix, find k so that j == Ah [k], if it // appears in the list. @@ -75,7 +68,8 @@ bool GB_hyper_hash_need // return true if A needs a hyper hash // pstart and pend are defined for all sparsity structures: hypersparse, // sparse, bitmap, or full. -// With the introduction of the hyper_hash, this is used only for debugging. +// With the introduction of the hyper_hash, this is used only when the +// hyper_hash is too costly to build. static inline bool GB_lookup // find j = Ah [k] ( @@ -101,14 +95,14 @@ static inline bool GB_lookup // find j = Ah [k] bool found ; GB_BINARY_SEARCH (j, Ah, (*pleft), pright, found) ; // ok (historical) if (found) - { + { // j appears in the hyperlist at Ah [pleft] // k = (*pleft) (*pstart) = Ap [(*pleft)] ; (*pend) = Ap [(*pleft)+1] ; } else - { + { // j does not appear in the hyperlist Ah // k = -1 (*pstart) = -1 ; @@ -125,6 +119,6 @@ static inline bool GB_lookup // find j = Ah [k] return (true) ; } } -#endif + #endif diff --git a/Source/GB_hyper_hash_build.c b/Source/GB_hyper_hash_build.c index 78e9946ccc..374d3a210c 100644 --- a/Source/GB_hyper_hash_build.c +++ b/Source/GB_hyper_hash_build.c @@ -35,11 +35,9 @@ GrB_Info GB_hyper_hash_build // construct A->Y if not already constructed // check inputs //-------------------------------------------------------------------------- - if (!GB_hyper_hash_need (A)) + if (A == NULL || !GB_NEED_HYPER_HASH (A)) { - // quick return: A is NULL, not hypersparse, A->Y already computed, - // or A does not have enough non-empty vectors to warrant the creation - // of the A->Y hyper_hash + // quick return: A is NULL, not hypersparse, or A->Y already computed return (GrB_SUCCESS) ; } diff --git a/Source/GB_hyper_hash_need.c b/Source/GB_hyper_hash_need.c deleted file mode 100644 index aefdcd33e8..0000000000 --- a/Source/GB_hyper_hash_need.c +++ /dev/null @@ -1,49 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_hyper_hash_need: determine if a matrix needs its hyper_hash built -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// A hypersparse matrix A can use a hyper_hash matrix A->Y to speed up access -// to its hyper list, A->h. For extremely sparse matrices, building the -// hyper_hash can be costly, however. - -// If A has pending work, this test is not useful, since the format of A can -// change, and A->nvec could change if zombies are removed and pending tuples -// assembled. This test should only be used if a matrix has no other pending -// work. - -#include "GB.h" - -bool GB_hyper_hash_need -( - GrB_Matrix A -) -{ - - if (A == NULL || !GB_IS_HYPERSPARSE (A)) - { - // only hypersparse matrices require a hyper_hash - return (false) ; - } - - if (A->Y != NULL) - { - // A already has a hyper_hash - return (false) ; - } - - // A is hypersparse, and has no hyper_hash. Check how many non-empty - // vectors it has. A->Y should be built if A has a significant number of - // non-empty vectors. - - // FUTURE: make this also a per-matrix parameter for GrB_get/set - - int64_t hyper_hash = GB_Global_hyper_hash_get ( ) ; - - return (A->nvec > hyper_hash) ; -} - diff --git a/Source/GB_hyper_shallow.c b/Source/GB_hyper_shallow.c index f12a51736f..d3eb2e1fe1 100644 --- a/Source/GB_hyper_shallow.c +++ b/Source/GB_hyper_shallow.c @@ -45,10 +45,6 @@ GrB_Matrix GB_hyper_shallow // return C C->static_header = C_static_header ; C->header_size = C_header_size ; - // remove the user_name - C->user_name = NULL ; - C->user_name_size = 0 ; - // remove the hyperlist and the hyper_hash C->h = NULL ; C->h_shallow = false ; diff --git a/Source/GB_init.c b/Source/GB_init.c index 80cd0fc9e0..7cfe471f7a 100644 --- a/Source/GB_init.c +++ b/Source/GB_init.c @@ -97,7 +97,7 @@ GrB_Info GB_init // start up GraphBLAS GB_Global_GrB_init_called_set (true) ; - // GrB_init passes in the C11 malloc/calloc/realloc/free. + // GrB_init passes in the ANSI C11 malloc/calloc/realloc/free. GB_Global_malloc_function_set (malloc_function ) ; // cannot be NULL GB_Global_calloc_function_set (calloc_function ) ; // ok if NULL diff --git a/Source/GB_jitifyer.c b/Source/GB_jitifyer.c index b956dc5452..a1d3d3e360 100644 --- a/Source/GB_jitifyer.c +++ b/Source/GB_jitifyer.c @@ -37,8 +37,8 @@ static int64_t GB_jit_table_populated = 0 ; static size_t GB_jit_table_allocated = 0 ; static bool GB_jit_use_cmake = - #if GB_WINDOWS - true ; // Windows requires cmake + #if defined (_MSC_VER) + true ; // MSVC requires cmake #else false ; // otherwise, default is to skip cmake and compile directly #endif @@ -234,7 +234,8 @@ GrB_Info GB_jitifyer_init (void) control = GB_IMIN (control, (int) GxB_JIT_ON) ; #else // The JIT is restricted; only OFF, PAUSE, and RUN settings can be - // used. No JIT kernels can be loaded or compiled. + // used. No JIT kernels can be loaded or compiled. Only PreJIT kernels + // can be used. control = GB_IMIN (control, (int) GxB_JIT_RUN) ; #endif GB_jit_control = (GxB_JIT_Control) control ; @@ -1158,9 +1159,12 @@ void GB_jitifyer_set_use_cmake (bool use_cmake) { #pragma omp critical (GB_jitifyer_worker) { - #if GB_WINDOWS + #if defined (_MSC_VER) // Windows requires cmake GB_jit_use_cmake = true ; + #elif defined (__MINGW32__) + // MINGW requires direct compile + GB_jit_use_cmake = false ; #else // all other platforms have the option to use cmake or a direct compile GB_jit_use_cmake = use_cmake ; @@ -2168,6 +2172,19 @@ void GB_jitifyer_table_free (bool freeall) // handled by modifying the command string in the caller, so they do not have // to be handled here. +// 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, +// 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. +// If a security-hardened GraphBLAS library is required, then GraphBLAS must be +// compiled with -DNJIT to disable the JIT entirely. User-defined JIT kernels +// will not be created at run time, and thus user-defined types and operators +// will be slow, however. This option does not disable any PreJIT kernels, so +// if fast user-defined kernels are required, they can be used with the PreJIT +// mechanism; see the GraphBLAS User Guide for details. + static void GB_jitifyer_command (char *command) { int result = system (command) ; @@ -2180,7 +2197,10 @@ static void GB_jitifyer_command (char *command) // This method does not return any error/success code. If the compilation // fails for any reason, the subsequent load of the compiled kernel will fail. -// This method works on any platform. For Windows, this method is always used. +// This method works on most platforms (not yet on MINGW, so it is not used +// there). For Windows using MSVC, this method is always used. + +// FUTURE: get this method to work in MINGW. #define GB_BLD_DIR "%s/tmp/%016" PRIx64 @@ -2193,12 +2213,18 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) char *burble_stdout = GB_Global_burble_get ( ) ? "" : GB_DEV_NULL ; char *err_redirect = (strlen (GB_jit_error_log) > 0) ? " 2>> " : "" ; +#if defined (__MINGW32__) +#define GB_SH_C "sh -c " +#else +#define GB_SH_C +#endif + // remove any prior build folder for this kernel, and all its contents snprintf (GB_jit_temp, GB_jit_temp_allocated, - "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s", + GB_SH_C "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s", GB_jit_cache_path, hash, // build path burble_stdout, err_redirect, GB_jit_error_log) ; - GB_jitifyer_command (GB_jit_temp) ; + GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // create the build folder for this kernel snprintf (GB_jit_temp, GB_jit_temp_allocated, GB_BLD_DIR, @@ -2253,35 +2279,35 @@ 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, - "cmake -S \"" GB_BLD_DIR "\" -B \"" GB_BLD_DIR "\"" + GB_SH_C "cmake -S \"" GB_BLD_DIR "\" -B \"" GB_BLD_DIR "\"" " -DCMAKE_C_COMPILER=\"%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) ; - GB_jitifyer_command (GB_jit_temp) ; + 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, - "cmake --build \"" GB_BLD_DIR "\" --config Release %s %s %s", + GB_SH_C "cmake --build \"" GB_BLD_DIR "\" --config Release %s %s %s", // can add "--verbose" here too GB_jit_cache_path, hash, // build path burble_stdout, err_redirect, GB_jit_error_log) ; - GB_jitifyer_command (GB_jit_temp) ; + GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // install the library snprintf (GB_jit_temp, GB_jit_temp_allocated, - "cmake --install \"" GB_BLD_DIR "\" %s %s %s", + GB_SH_C "cmake --install \"" GB_BLD_DIR "\" %s %s %s", GB_jit_cache_path, hash, // build path burble_stdout, err_redirect, GB_jit_error_log) ; - GB_jitifyer_command (GB_jit_temp) ; + 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, - "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s", + GB_SH_C "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s", GB_jit_cache_path, hash, // build path burble_stdout, err_redirect, GB_jit_error_log) ; - GB_jitifyer_command (GB_jit_temp) ; + GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above #endif } @@ -2293,7 +2319,11 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) // This method does not return any error/success code. If the compilation // fails for any reason, the subsequent load of the compiled kernel will fail. -// This method does not work on Windows. +// This method does not work on Windows with MSVC. It works for Linux, Mac, +// or Windows with MINGW (for which it is currently the only option). + +// FUTURE: get this method to work in MSVC, since it's much faster than using +// cmake on Windows. void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) { @@ -2306,8 +2336,9 @@ void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) snprintf (GB_jit_temp, GB_jit_temp_allocated, // compile: - "%s -DGB_JIT_RUNTIME=1 " // compiler command - "%s " // C flags + "sh -c \"" // execute with POSIX shell + "%s " // compiler command + "-DGB_JIT_RUNTIME=1 %s " // C flags "-I%s/src " // include source directory "%s " // openmp include directories "-o %s/c/%02x/%s%s " // *.o output file @@ -2322,8 +2353,8 @@ void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) "-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 " // burble stdout + "%s %s\"", // error log file // compile: GB_jit_C_compiler, // C compiler @@ -2348,7 +2379,7 @@ void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) // compile the library and return result GBURBLE ("(jit: %s) ", GB_jit_temp) ; - GB_jitifyer_command (GB_jit_temp) ; + GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // remove the *.o file snprintf (GB_jit_temp, GB_jit_temp_allocated, "%s/c/%02x/%s%s", diff --git a/Source/GB_macrofy_cast_expression.c b/Source/GB_macrofy_cast_expression.c index 566ec1b071..4cf5ffb64f 100644 --- a/Source/GB_macrofy_cast_expression.c +++ b/Source/GB_macrofy_cast_expression.c @@ -268,7 +268,7 @@ const char *GB_macrofy_cast_expression // return cast expression { //---------------------------------------------------------------------- - // all other cases: use C11 typecasting rules + // all other cases: use ANSI C11 typecasting rules //---------------------------------------------------------------------- f = NULL ; diff --git a/Source/GB_macrofy_cast_input.c b/Source/GB_macrofy_cast_input.c index a7c8f9981d..21d105be8f 100644 --- a/Source/GB_macrofy_cast_input.c +++ b/Source/GB_macrofy_cast_input.c @@ -66,7 +66,7 @@ void GB_macrofy_cast_input if (f == NULL) { - // C11 typecasting + // ANSI C11 typecasting ASSERT (ztype != xtype) ; fprintf (fp, "#define %s(%s,%s) %s = (%s) (%s)\n", macro_name, zarg, xargs, zarg, ztype->name, xexpr) ; diff --git a/Source/GB_macrofy_cast_output.c b/Source/GB_macrofy_cast_output.c index 68990080c7..31f1e55763 100644 --- a/Source/GB_macrofy_cast_output.c +++ b/Source/GB_macrofy_cast_output.c @@ -47,7 +47,7 @@ void GB_macrofy_cast_output if (f == NULL) { - // C11 typecasting + // ANSI C11 typecasting ASSERT (ztype != xtype) ; fprintf (fp, "#define %s(%s,%s) %s = (%s) (%s)\n", macro_name, zarg, xargs, xexpr, xtype->name, zarg) ; diff --git a/Source/GB_math.h b/Source/GB_math.h index 559cdf16e2..8bcf24b6b5 100644 --- a/Source/GB_math.h +++ b/Source/GB_math.h @@ -296,9 +296,6 @@ inline uint64_t GB_idiv_uint64 (uint64_t x, uint64_t y) // Three cases below are from ACM Algo 116, R. L. Smith, 1962. -#if !defined ( GBCUDA_CPLUSPLUS ) -// TODO: does not yet work in CUDA - inline GxB_FC64_t GB_FC64_div (GxB_FC64_t x, GxB_FC64_t y) { double xr = GB_creal (x) ; @@ -401,8 +398,6 @@ inline GxB_FC32_t GB_FC32_div (GxB_FC32_t x, GxB_FC32_t y) " return (GJ_CMPLX32 ((float) GB_creal(zz), (float) GB_cimag(zz))) ; \n" \ "}" -#endif - //------------------------------------------------------------------------------ // z = x^y: wrappers for pow, powf, cpow, and cpowf //------------------------------------------------------------------------------ @@ -484,9 +479,6 @@ inline double GB_pow (double x, double y) " return (pow (x, y)) ; \n" \ "}" -#if !defined ( GBCUDA_CPLUSPLUS ) -// TODO: does not yet work in CUDA - inline GxB_FC32_t GB_FC32_pow (GxB_FC32_t x, GxB_FC32_t y) { float xr = GB_crealf (x) ; @@ -608,7 +600,6 @@ inline GxB_FC64_t GB_FC64_pow (GxB_FC64_t x, GxB_FC64_t y) " } \n" \ " return (GB_cpow (x, y)) ; \n" \ "}" -#endif inline int8_t GB_pow_int8 (int8_t x, int8_t y) { @@ -792,9 +783,6 @@ inline double GB_signum (double x) " return ((double) ((x < 0) ? (-1) : ((x > 0) ? 1 : 0))) ; \n" \ "}" -#if !defined ( GBCUDA_CPLUSPLUS ) -// TODO: does not yet work in CUDA - inline GxB_FC32_t GB_csignumf (GxB_FC32_t x) { if (GB_crealf (x) == 0 && GB_cimagf (x) == 0) @@ -841,9 +829,9 @@ inline GxB_FC64_t GB_csignum (GxB_FC64_t x) // complex functions //------------------------------------------------------------------------------ -// The C11 math.h header defines the ceil, floor, round, trunc, +// The ANSI C11 math.h header defines the ceil, floor, round, trunc, // exp2, expm1, log10, log1pm, or log2 functions for float and double, -// but the corresponding functions do not appear in the C11 complex.h. +// but the corresponding functions do not appear in the ANSI C11 complex.h. // These functions are used instead, for float complex and double complex. //------------------------------------------------------------------------------ @@ -1258,5 +1246,3 @@ inline bool GB_cisfinite (GxB_FC64_t x) #endif -#endif - diff --git a/Source/GB_matvec_enum_get.c b/Source/GB_matvec_enum_get.c deleted file mode 100644 index 944508958a..0000000000 --- a/Source/GB_matvec_enum_get.c +++ /dev/null @@ -1,47 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_matvec_enum_get: get an enum field from a matrix -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_matvec_enum_get (GrB_Matrix A, int32_t *value, int field) -{ - switch (field) - { - case GrB_STORAGE_ORIENTATION_HINT : - - (*value) = (A->is_csc) ? GrB_COLMAJOR : GrB_ROWMAJOR ; - break ; - - case GrB_ELTYPE_CODE : - - (*value) = GB_type_code_get (A->type->code) ; - break ; - - case GxB_SPARSITY_CONTROL : - - (*value) = A->sparsity_control ; - break ; - - case GxB_SPARSITY_STATUS : - - (*value) = GB_sparsity (A) ; - break ; - - case GxB_FORMAT : - - (*value) = (A->is_csc) ? GxB_BY_COL : GxB_BY_ROW ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_matvec_name_get.c b/Source/GB_matvec_name_get.c deleted file mode 100644 index 6225a97826..0000000000 --- a/Source/GB_matvec_name_get.c +++ /dev/null @@ -1,45 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_matvec_name_get: get a name of a matrix or its type -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_matvec_name_get (GrB_Matrix A, char *name, int field) -{ - const char *typename ; - (*name) = '\0' ; - - switch (field) - { - - case GrB_NAME : - if (A->user_name != NULL) - { - strcpy (name, A->user_name) ; - } - break ; - - case GxB_JIT_C_NAME : - strcpy (name, A->type->name) ; - break ; - - case GrB_ELTYPE_STRING : - typename = GB_type_name_get (A->type) ; - if (typename != NULL) - { - strcpy (name, typename) ; - } - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_matvec_name_set.c b/Source/GB_matvec_name_set.c deleted file mode 100644 index f0747f4075..0000000000 --- a/Source/GB_matvec_name_set.c +++ /dev/null @@ -1,28 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_matvec_name_set: set the user_name of a matrix/vector/scalar -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_matvec_name_set -( - GrB_Matrix A, - char *value, - int field -) -{ - - if (field != GrB_NAME) - { - return (GrB_INVALID_VALUE) ; - } - - return (GB_user_name_set (&(A->user_name), &(A->user_name_size), value, - false)) ; -} - diff --git a/Source/GB_matvec_name_size_get.c b/Source/GB_matvec_name_size_get.c deleted file mode 100644 index 3b5cb0bc5a..0000000000 --- a/Source/GB_matvec_name_size_get.c +++ /dev/null @@ -1,39 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_matvec_name_size_get: get max size of a matrix/vector/scalar name or type -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_matvec_name_size_get (GrB_Matrix A, size_t *value, int field) -{ - const char *name = NULL ; - - switch (field) - { - - case GrB_NAME : - name = A->user_name ; - break ; - - case GxB_JIT_C_NAME : - name = A->type->name ; - break ; - - case GrB_ELTYPE_STRING : - name = GB_type_name_get (A->type) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - (*value) = (name == NULL) ? 1 : (strlen (name) + 1) ; - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_matvec_set.c b/Source/GB_matvec_set.c deleted file mode 100644 index 2d6139d82b..0000000000 --- a/Source/GB_matvec_set.c +++ /dev/null @@ -1,94 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_matvec_set: set a field in a matrix or vector -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" -#include "GB_transpose.h" -#define GB_FREE_ALL ; - -GrB_Info GB_matvec_set -( - GrB_Matrix A, - bool is_vector, // true if A is a GrB_Vector - int ivalue, - double dvalue, - int field, - GB_Werk Werk -) -{ - - GrB_Info info ; - GB_BURBLE_START ("GrB_set") ; - - int format = ivalue ; - - switch (field) - { - - case GxB_HYPER_SWITCH : - - if (is_vector) - { - return (GrB_INVALID_VALUE) ; - } - A->hyper_switch = (float) dvalue ; - break ; - - case GxB_BITMAP_SWITCH : - - A->bitmap_switch = (float) dvalue ; - break ; - - case GxB_SPARSITY_CONTROL : - - A->sparsity_control = GB_sparsity_control (ivalue, (int64_t) (-1)) ; - break ; - - case GrB_STORAGE_ORIENTATION_HINT : - - format = (ivalue == GrB_COLMAJOR) ? GxB_BY_COL : GxB_BY_ROW ; - // fall through to the GxB_FORMAT case - - case GxB_FORMAT : - - if (is_vector) - { - // the hint is ignored - return (GrB_SUCCESS) ; - } - if (! (format == GxB_BY_ROW || format == GxB_BY_COL)) - { - return (GrB_INVALID_VALUE) ; - } - bool new_csc = (format != GxB_BY_ROW) ; - // conform the matrix to the new by-row/by-col format - if (A->is_csc != new_csc) - { - // A = A', done in-place, and change to the new format. - GB_BURBLE_N (GB_nnz (A), "(transpose) ") ; - GB_OK (GB_transpose_in_place (A, new_csc, Werk)) ; - ASSERT (A->is_csc == new_csc) ; - ASSERT (GB_JUMBLED_OK (A)) ; - } - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - //-------------------------------------------------------------------------- - // conform the matrix to its new desired sparsity structure - //-------------------------------------------------------------------------- - - ASSERT_MATRIX_OK (A, "A set before conform", GB0) ; - GB_OK (GB_conform (A, Werk)) ; - GB_BURBLE_END ; - ASSERT_MATRIX_OK (A, "A set after conform", GB0) ; - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_monoid_get.c b/Source/GB_monoid_get.c deleted file mode 100644 index cf8566c6d7..0000000000 --- a/Source/GB_monoid_get.c +++ /dev/null @@ -1,69 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_monoid_get: get a field in a monoid -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_monoid_get -( - GrB_Monoid monoid, - GrB_Scalar value, - GrB_Field field, - GB_Werk Werk -) -{ - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - case GrB_INPUT1TYPE_CODE : - case GrB_INPUT2TYPE_CODE : - case GrB_OUTPUTTYPE_CODE : - - return (GB_op_scalar_get ((GB_Operator) monoid->op, value, field, - Werk)) ; - - case GxB_MONOID_IDENTITY : - - if (value->type != monoid->op->ztype) - { - // scalar type must match the monoid type - return (GrB_DOMAIN_MISMATCH) ; - } - return (GB_setElement ((GrB_Matrix) value, NULL, - monoid->identity, 0, 0, monoid->op->ztype->code, Werk)) ; - - case GxB_MONOID_TERMINAL : - - if (value->type != monoid->op->ztype) - { - // scalar type must match the monoid type - return (GrB_DOMAIN_MISMATCH) ; - } - if (monoid->terminal == NULL) - { - // monoid is not terminal: clear the output scalar. - // This is not an error - return (GB_clear ((GrB_Matrix) value, Werk)) ; - } - else - { - // monoid is terminal: return the terminal value. - return (GB_setElement ((GrB_Matrix) value, NULL, - monoid->terminal, 0, 0, monoid->op->ztype->code, - Werk)) ; - } - - default : - return (GrB_INVALID_VALUE) ; - } -} - diff --git a/Source/GB_monoid_name_get.c b/Source/GB_monoid_name_get.c deleted file mode 100644 index 222bab4c6c..0000000000 --- a/Source/GB_monoid_name_get.c +++ /dev/null @@ -1,213 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_monoid_name_get: get the name of a built-in monoid -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -const char *GB_monoid_name_get (GrB_Monoid monoid) -{ - - if (monoid->user_name_size > 0) - { - // user-defined monoid, with name defined by GrB_set - return (monoid->user_name) ; - } - - GB_Opcode opcode = monoid->op->opcode ; - GB_Type_code zcode = monoid->op->ztype->code ; - - switch (opcode) - { - - case GB_ANY_binop_code : // z = x or y - - switch (zcode) - { - case GB_BOOL_code : return ("GxB_ANY_BOOL_MONOID" ) ; - case GB_INT8_code : return ("GxB_ANY_INT8_MONOID" ) ; - case GB_INT16_code : return ("GxB_ANY_INT16_MONOID" ) ; - case GB_INT32_code : return ("GxB_ANY_INT32_MONOID" ) ; - case GB_INT64_code : return ("GxB_ANY_INT64_MONOID" ) ; - case GB_UINT8_code : return ("GxB_ANY_UINT8_MONOID" ) ; - case GB_UINT16_code : return ("GxB_ANY_UINT16_MONOID") ; - case GB_UINT32_code : return ("GxB_ANY_UINT32_MONOID") ; - case GB_UINT64_code : return ("GxB_ANY_UINT64_MONOID") ; - case GB_FP32_code : return ("GxB_ANY_FP32_MONOID" ) ; - case GB_FP64_code : return ("GxB_ANY_FP64_MONOID" ) ; - case GB_FC32_code : return ("GxB_ANY_FC32_MONOID" ) ; - case GB_FC64_code : return ("GxB_ANY_FC64_MONOID" ) ; - default :; - } - break ; - - case GB_MIN_binop_code : // z = min(x,y) - - switch (zcode) - { - case GB_INT8_code : return ("GrB_MIN_MONOID_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_MONOID_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_MONOID_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_MONOID_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_MONOID_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_MONOID_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_MONOID_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_MONOID_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_MONOID_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_MONOID_FP64" ) ; - default :; - } - break ; - - case GB_MAX_binop_code : // z = max(x,y) - - switch (zcode) - { - case GB_INT8_code : return ("GrB_MAX_MONOID_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_MONOID_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_MONOID_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_MONOID_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_MONOID_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_MONOID_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_MONOID_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_MONOID_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_MONOID_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_MONOID_FP64" ) ; - default :; - } - break ; - - case GB_PLUS_binop_code : // z = x + y - - switch (zcode) - { - case GB_INT8_code : return ("GrB_PLUS_MONOID_INT8" ) ; - case GB_INT16_code : return ("GrB_PLUS_MONOID_INT16" ) ; - case GB_INT32_code : return ("GrB_PLUS_MONOID_INT32" ) ; - case GB_INT64_code : return ("GrB_PLUS_MONOID_INT64" ) ; - case GB_UINT8_code : return ("GrB_PLUS_MONOID_UINT8" ) ; - case GB_UINT16_code : return ("GrB_PLUS_MONOID_UINT16") ; - case GB_UINT32_code : return ("GrB_PLUS_MONOID_UINT32") ; - case GB_UINT64_code : return ("GrB_PLUS_MONOID_UINT64") ; - case GB_FP32_code : return ("GrB_PLUS_MONOID_FP32" ) ; - case GB_FP64_code : return ("GrB_PLUS_MONOID_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_FC32_MONOID" ) ; - case GB_FC64_code : return ("GxB_PLUS_FC64_MONOID" ) ; - default :; - } - break ; - - case GB_TIMES_binop_code : // z = x * y - - switch (zcode) - { - case GB_INT8_code : return ("GrB_TIMES_MONOID_INT8" ) ; - case GB_INT16_code : return ("GrB_TIMES_MONOID_INT16" ) ; - case GB_INT32_code : return ("GrB_TIMES_MONOID_INT32" ) ; - case GB_INT64_code : return ("GrB_TIMES_MONOID_INT64" ) ; - case GB_UINT8_code : return ("GrB_TIMES_MONOID_UINT8" ) ; - case GB_UINT16_code : return ("GrB_TIMES_MONOID_UINT16") ; - case GB_UINT32_code : return ("GrB_TIMES_MONOID_UINT32") ; - case GB_UINT64_code : return ("GrB_TIMES_MONOID_UINT64") ; - case GB_FP32_code : return ("GrB_TIMES_MONOID_FP32" ) ; - case GB_FP64_code : return ("GrB_TIMES_MONOID_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_FC32_MONOID" ) ; - case GB_FC64_code : return ("GxB_TIMES_FC64_MONOID" ) ; - default :; - } - break ; - - case GB_LOR_binop_code : // z = (x != 0) || (y != 0) - - switch (zcode) - { - case GB_BOOL_code : return ("GrB_LOR_MONOID_BOOL") ; - default :; - } - break ; - - case GB_LAND_binop_code : // z = (x != 0) && (y != 0) - - switch (zcode) - { - case GB_BOOL_code : return ("GrB_LAND_MONOID_BOOL") ; - default :; - } - break ; - - case GB_LXOR_binop_code : // z = (x != 0) != (y != 0) - - switch (zcode) - { - case GB_BOOL_code : return ("GrB_LXOR_MONOID_BOOL") ; - default :; - } - break ; - - case GB_EQ_binop_code : // z = (x == y), is LXNOR for bool - - switch (zcode) - { - case GB_BOOL_code : return ("GrB_LXNOR_MONOID_BOOL") ; - default :; - } - break ; - - case GB_BOR_binop_code : // z = (x | y), bitwise or - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BOR_UINT8_MONOID" ) ; - case GB_UINT16_code : return ("GxB_BOR_UINT16_MONOID") ; - case GB_UINT32_code : return ("GxB_BOR_UINT32_MONOID") ; - case GB_UINT64_code : return ("GxB_BOR_UINT64_MONOID") ; - default :; - } - break ; - - case GB_BAND_binop_code : // z = (x & y), bitwise and - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BAND_UINT8_MONOID" ) ; - case GB_UINT16_code : return ("GxB_BAND_UINT16_MONOID") ; - case GB_UINT32_code : return ("GxB_BAND_UINT32_MONOID") ; - case GB_UINT64_code : return ("GxB_BAND_UINT64_MONOID") ; - default :; - } - break ; - - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXOR_UINT8_MONOID" ) ; - case GB_UINT16_code : return ("GxB_BXOR_UINT16_MONOID") ; - case GB_UINT32_code : return ("GxB_BXOR_UINT32_MONOID") ; - case GB_UINT64_code : return ("GxB_BXOR_UINT64_MONOID") ; - default :; - } - break ; - - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXNOR_UINT8_MONOID" ) ; - case GB_UINT16_code : return ("GxB_BXNOR_UINT16_MONOID") ; - case GB_UINT32_code : return ("GxB_BXNOR_UINT32_MONOID") ; - case GB_UINT64_code : return ("GxB_BXNOR_UINT64_MONOID") ; - default :; - } - break ; - - default: ; - } - - return (NULL) ; -} - diff --git a/Source/GB_new.c b/Source/GB_new.c index 7731d4b053..b92a4a20ac 100644 --- a/Source/GB_new.c +++ b/Source/GB_new.c @@ -91,8 +91,6 @@ GrB_Info GB_new // create matrix, except for indices & values // basic information A->magic = GB_MAGIC2 ; // object is not yet valid A->type = type ; - A->user_name = NULL ; - A->user_name_size = 0 ; // no user_name yet A->logger = NULL ; // no error logged yet A->logger_size = 0 ; diff --git a/Source/GB_op.h b/Source/GB_op.h index 6b41cc4250..1cc2e0e1e0 100644 --- a/Source/GB_op.h +++ b/Source/GB_op.h @@ -32,6 +32,8 @@ GrB_Info GB_op_name_and_defn // input const char *input_name, // user-provided name, may be NULL const char *input_defn, // user-provided name, may be NULL + const char *typecast_name, // typecast name for function pointer + size_t typecast_len, // length of typecast_name bool user_op, // if true, a user-defined op bool jitable // if true, the op can be JIT'd ) ; diff --git a/Source/GB_op_enum_get.c b/Source/GB_op_enum_get.c deleted file mode 100644 index 74db9620b1..0000000000 --- a/Source/GB_op_enum_get.c +++ /dev/null @@ -1,46 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_enum_get: get a field in an op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_op_enum_get -( - GB_Operator op, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - GrB_Type type = NULL ; - (*value) = -1 ; - - switch ((int) field) - { - case GrB_INPUT1TYPE_CODE : type = op->xtype ; break ; - case GrB_INPUT2TYPE_CODE : type = op->ytype ; break ; - case GrB_OUTPUTTYPE_CODE : type = op->ztype ; break ; - default : ; - return (GrB_INVALID_VALUE) ; - } - - if (type == NULL) - { - // operator does not depend on this input - return (GrB_NO_VALUE) ; - } - - (*value) = (int32_t) GB_type_code_get (type->code) ; - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_op_name_and_defn.c b/Source/GB_op_name_and_defn.c index f3b2bb73b7..bf89b71ffd 100644 --- a/Source/GB_op_name_and_defn.c +++ b/Source/GB_op_name_and_defn.c @@ -26,8 +26,10 @@ GrB_Info GB_op_name_and_defn // input const char *input_name, // user-provided name, may be NULL const char *input_defn, // user-provided name, may be NULL + const char *typecast_name, // typecast name for function pointer + size_t typecast_len, // length of typecast_name bool user_op, // if true, a user-defined op - bool jitable // if true, the op can be JIT'd + bool jitable // if false, the op cannot be JIT'd ) { @@ -37,6 +39,7 @@ GrB_Info GB_op_name_and_defn ASSERT (op_name != NULL) ; ASSERT (op_defn != NULL) ; + ASSERT (typecast_name != NULL) ; ASSERT (op_defn_size != NULL) ; (*op_defn) = NULL ; (*op_defn_size) = 0 ; @@ -48,22 +51,54 @@ GrB_Info GB_op_name_and_defn // note: this can get a mangled name; see the BF methods in LAGraph memset (op_name, 0, GxB_MAX_NAME_LEN) ; - if (input_name != NULL) - { - // copy the input_name + if (!user_op) + { + // FIRST_UDT operator created by GB_reduce_to_vector or + // SECOND_UDT operator created by GB_wait + ASSERT (input_name != NULL) ; strncpy (op_name, input_name, GxB_MAX_NAME_LEN-1) ; } + else if (input_name != NULL) + { + // copy the input_name into the working name + char working [GxB_MAX_NAME_LEN] ; + memset (working, 0, GxB_MAX_NAME_LEN) ; + strncpy (working, input_name, GxB_MAX_NAME_LEN-1) ; + // see if the typecast appears in the input_name + char *p = NULL ; + p = strstr (working, typecast_name) ; + if (p != NULL) + { + // skip past the typecast, the left parenthesis, and any whitespace + p += typecast_len ; + while (isspace (*p)) p++ ; + if (*p == ')') p++ ; + while (isspace (*p)) p++ ; + // p now contains the final name, copy it to the output name + strncpy (op_name, p, GxB_MAX_NAME_LEN-1) ; + } + else + { + // no typcast appears; copy the entire op_name as-is + memcpy (op_name, working, GxB_MAX_NAME_LEN) ; + } + } + else + { + // the user-defined op has no name, so give it a generic name + strncpy (op_name, "user_op", GxB_MAX_NAME_LEN-1) ; + } // ensure op_name is null-terminated op_name [GxB_MAX_NAME_LEN-1] = '\0' ; - // get the operator name length (zero if no name given) + // get the operator name length and hash the name (*op_name_len) = (int32_t) strlen (op_name) ; // a user-defined op can only be JIT'd if it has a name and defn. // a new builtin op (created by GB_reduce_to_vector) can always be JIT'd. (*op_hash) = GB_jitifyer_hash (op_name, (*op_name_len), - jitable && (!user_op || (*op_name_len) > 0)) ; + jitable && (!user_op || (input_name != NULL && input_defn != NULL))) ; //-------------------------------------------------------------------------- // get the definition of the operator, if present diff --git a/Source/GB_op_name_get.c b/Source/GB_op_name_get.c deleted file mode 100644 index e7a5af1132..0000000000 --- a/Source/GB_op_name_get.c +++ /dev/null @@ -1,1702 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_name_get: get the user_name of any operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// Three operators are left unnamed: identity_udt, 1st_udt, and 2nd_udt. -// These are created by GB_unop_identity, GB_reduce_to_vector, and -// GB_binop_second, and do not exist outside GraphBLAS. The user application -// cannot pass them to GrB_get. - -#include "GB_get_set.h" - -const char *GB_op_name_get (GB_Operator op) -{ - - GB_Opcode opcode = op->opcode ; - GB_Type_code xcode = (op->xtype == NULL) ? 0 : op->xtype->code ; - GB_Type_code zcode = (op->ztype == NULL) ? 0 : op->ztype->code ; - - switch (opcode) - { - - case GB_NOP_code : return ("GxB_IGNORE_DUP") ; - - //---------------------------------------------------------------------- - // unary operators - //---------------------------------------------------------------------- - - case GB_ONE_unop_code : // z = 1 - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ONE_BOOL" ) ; - case GB_INT8_code : return ("GxB_ONE_INT8" ) ; - case GB_INT16_code : return ("GxB_ONE_INT16" ) ; - case GB_INT32_code : return ("GxB_ONE_INT32" ) ; - case GB_INT64_code : return ("GxB_ONE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ONE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ONE_UINT16") ; - case GB_UINT32_code : return ("GxB_ONE_UINT32") ; - case GB_UINT64_code : return ("GxB_ONE_UINT64") ; - case GB_FP32_code : return ("GxB_ONE_FP32" ) ; - case GB_FP64_code : return ("GxB_ONE_FP64" ) ; - case GB_FC32_code : return ("GxB_ONE_FC32" ) ; - case GB_FC64_code : return ("GxB_ONE_FC64" ) ; - default :; - } - break ; - - case GB_IDENTITY_unop_code : // z = x - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_IDENTITY_BOOL" ) ; - case GB_INT8_code : return ("GrB_IDENTITY_INT8" ) ; - case GB_INT16_code : return ("GrB_IDENTITY_INT16" ) ; - case GB_INT32_code : return ("GrB_IDENTITY_INT32" ) ; - case GB_INT64_code : return ("GrB_IDENTITY_INT64" ) ; - case GB_UINT8_code : return ("GrB_IDENTITY_UINT8" ) ; - case GB_UINT16_code : return ("GrB_IDENTITY_UINT16") ; - case GB_UINT32_code : return ("GrB_IDENTITY_UINT32") ; - case GB_UINT64_code : return ("GrB_IDENTITY_UINT64") ; - case GB_FP32_code : return ("GrB_IDENTITY_FP32" ) ; - case GB_FP64_code : return ("GrB_IDENTITY_FP64" ) ; - case GB_FC32_code : return ("GxB_IDENTITY_FC32" ) ; - case GB_FC64_code : return ("GxB_IDENTITY_FC64" ) ; - // see GB_unop_identity: -// case GB_UDT_code : -// return ("identity_udt") ; - default :; - } - break ; - - case GB_AINV_unop_code : // z = -x - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_AINV_BOOL" ) ; - case GB_INT8_code : return ("GrB_AINV_INT8" ) ; - case GB_INT16_code : return ("GrB_AINV_INT16" ) ; - case GB_INT32_code : return ("GrB_AINV_INT32" ) ; - case GB_INT64_code : return ("GrB_AINV_INT64" ) ; - case GB_UINT8_code : return ("GrB_AINV_UINT8" ) ; - case GB_UINT16_code : return ("GrB_AINV_UINT16") ; - case GB_UINT32_code : return ("GrB_AINV_UINT32") ; - case GB_UINT64_code : return ("GrB_AINV_UINT64") ; - case GB_FP32_code : return ("GrB_AINV_FP32" ) ; - case GB_FP64_code : return ("GrB_AINV_FP64" ) ; - case GB_FC32_code : return ("GxB_AINV_FC32" ) ; - case GB_FC64_code : return ("GxB_AINV_FC64" ) ; - default :; - } - break ; - - case GB_ABS_unop_code : // z = abs(x) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_ABS_BOOL" ) ; - case GB_INT8_code : return ("GrB_ABS_INT8" ) ; - case GB_INT16_code : return ("GrB_ABS_INT16" ) ; - case GB_INT32_code : return ("GrB_ABS_INT32" ) ; - case GB_INT64_code : return ("GrB_ABS_INT64" ) ; - case GB_UINT8_code : return ("GrB_ABS_UINT8" ) ; - case GB_UINT16_code : return ("GrB_ABS_UINT16") ; - case GB_UINT32_code : return ("GrB_ABS_UINT32") ; - case GB_UINT64_code : return ("GrB_ABS_UINT64") ; - case GB_FP32_code : return ("GrB_ABS_FP32" ) ; - case GB_FP64_code : return ("GrB_ABS_FP64" ) ; - case GB_FC32_code : return ("GxB_ABS_FC32" ) ; - case GB_FC64_code : return ("GxB_ABS_FC64" ) ; - default :; - } - break ; - - case GB_MINV_unop_code : // z = 1/x - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_MINV_BOOL" ) ; - case GB_INT8_code : return ("GrB_MINV_INT8" ) ; - case GB_INT16_code : return ("GrB_MINV_INT16" ) ; - case GB_INT32_code : return ("GrB_MINV_INT32" ) ; - case GB_INT64_code : return ("GrB_MINV_INT64" ) ; - case GB_UINT8_code : return ("GrB_MINV_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MINV_UINT16") ; - case GB_UINT32_code : return ("GrB_MINV_UINT32") ; - case GB_UINT64_code : return ("GrB_MINV_UINT64") ; - case GB_FP32_code : return ("GrB_MINV_FP32" ) ; - case GB_FP64_code : return ("GrB_MINV_FP64" ) ; - case GB_FC32_code : return ("GxB_MINV_FC32" ) ; - case GB_FC64_code : return ("GxB_MINV_FC64" ) ; - default :; - } - break ; - - case GB_LNOT_unop_code : // z = !x - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LNOT" ) ; - case GB_INT8_code : return ("GxB_LNOT_INT8" ) ; - case GB_INT16_code : return ("GxB_LNOT_INT16" ) ; - case GB_INT32_code : return ("GxB_LNOT_INT32" ) ; - case GB_INT64_code : return ("GxB_LNOT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LNOT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LNOT_UINT16") ; - case GB_UINT32_code : return ("GxB_LNOT_UINT32") ; - case GB_UINT64_code : return ("GxB_LNOT_UINT64") ; - case GB_FP32_code : return ("GxB_LNOT_FP32" ) ; - case GB_FP64_code : return ("GxB_LNOT_FP64" ) ; - default :; - } - break ; - - case GB_BNOT_unop_code : // z = ~x - - switch (xcode) - { - case GB_INT8_code : return ("GrB_BNOT_INT8" ) ; - case GB_INT16_code : return ("GrB_BNOT_INT16" ) ; - case GB_INT32_code : return ("GrB_BNOT_INT32" ) ; - case GB_INT64_code : return ("GrB_BNOT_INT64" ) ; - case GB_UINT8_code : return ("GrB_BNOT_UINT8" ) ; - case GB_UINT16_code : return ("GrB_BNOT_UINT16") ; - case GB_UINT32_code : return ("GrB_BNOT_UINT32") ; - case GB_UINT64_code : return ("GrB_BNOT_UINT64") ; - default :; - } - break ; - - case GB_SQRT_unop_code : // z = sqrt (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_SQRT_FP32") ; - case GB_FP64_code : return ("GxB_SQRT_FP64") ; - case GB_FC32_code : return ("GxB_SQRT_FC32") ; - case GB_FC64_code : return ("GxB_SQRT_FC64") ; - default :; - } - break ; - - case GB_LOG_unop_code : // z = log (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_LOG_FP32") ; - case GB_FP64_code : return ("GxB_LOG_FP64") ; - case GB_FC32_code : return ("GxB_LOG_FC32") ; - case GB_FC64_code : return ("GxB_LOG_FC64") ; - default :; - } - break ; - - case GB_EXP_unop_code : // z = exp (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_EXP_FP32") ; - case GB_FP64_code : return ("GxB_EXP_FP64") ; - case GB_FC32_code : return ("GxB_EXP_FC32") ; - case GB_FC64_code : return ("GxB_EXP_FC64") ; - default :; - } - break ; - - case GB_SIN_unop_code : // z = sin (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_SIN_FP32") ; - case GB_FP64_code : return ("GxB_SIN_FP64") ; - case GB_FC32_code : return ("GxB_SIN_FC32") ; - case GB_FC64_code : return ("GxB_SIN_FC64") ; - default :; - } - break ; - - case GB_COS_unop_code : // z = cos (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_COS_FP32") ; - case GB_FP64_code : return ("GxB_COS_FP64") ; - case GB_FC32_code : return ("GxB_COS_FC32") ; - case GB_FC64_code : return ("GxB_COS_FC64") ; - default :; - } - break ; - - case GB_TAN_unop_code : // z = tan (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_TAN_FP32") ; - case GB_FP64_code : return ("GxB_TAN_FP64") ; - case GB_FC32_code : return ("GxB_TAN_FC32") ; - case GB_FC64_code : return ("GxB_TAN_FC64") ; - default :; - } - break ; - - case GB_ASIN_unop_code : // z = asin (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ASIN_FP32") ; - case GB_FP64_code : return ("GxB_ASIN_FP64") ; - case GB_FC32_code : return ("GxB_ASIN_FC32") ; - case GB_FC64_code : return ("GxB_ASIN_FC64") ; - default :; - } - break ; - - case GB_ACOS_unop_code : // z = acos (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ACOS_FP32") ; - case GB_FP64_code : return ("GxB_ACOS_FP64") ; - case GB_FC32_code : return ("GxB_ACOS_FC32") ; - case GB_FC64_code : return ("GxB_ACOS_FC64") ; - default :; - } - break ; - - case GB_ATAN_unop_code : // z = atan (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ATAN_FP32") ; - case GB_FP64_code : return ("GxB_ATAN_FP64") ; - case GB_FC32_code : return ("GxB_ATAN_FC32") ; - case GB_FC64_code : return ("GxB_ATAN_FC64") ; - default :; - } - break ; - - case GB_SINH_unop_code : // z = sinh (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_SINH_FP32") ; - case GB_FP64_code : return ("GxB_SINH_FP64") ; - case GB_FC32_code : return ("GxB_SINH_FC32") ; - case GB_FC64_code : return ("GxB_SINH_FC64") ; - default :; - } - break ; - - case GB_COSH_unop_code : // z = cosh (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_COSH_FP32") ; - case GB_FP64_code : return ("GxB_COSH_FP64") ; - case GB_FC32_code : return ("GxB_COSH_FC32") ; - case GB_FC64_code : return ("GxB_COSH_FC64") ; - default :; - } - break ; - - case GB_TANH_unop_code : // z = tanh (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_TANH_FP32") ; - case GB_FP64_code : return ("GxB_TANH_FP64") ; - case GB_FC32_code : return ("GxB_TANH_FC32") ; - case GB_FC64_code : return ("GxB_TANH_FC64") ; - default :; - } - break ; - - case GB_ASINH_unop_code : // z = asinh (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ASINH_FP32") ; - case GB_FP64_code : return ("GxB_ASINH_FP64") ; - case GB_FC32_code : return ("GxB_ASINH_FC32") ; - case GB_FC64_code : return ("GxB_ASINH_FC64") ; - default :; - } - break ; - - case GB_ACOSH_unop_code : // z = acosh (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ACOSH_FP32") ; - case GB_FP64_code : return ("GxB_ACOSH_FP64") ; - case GB_FC32_code : return ("GxB_ACOSH_FC32") ; - case GB_FC64_code : return ("GxB_ACOSH_FC64") ; - default :; - } - break ; - - case GB_ATANH_unop_code : // z = atanh (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ATANH_FP32") ; - case GB_FP64_code : return ("GxB_ATANH_FP64") ; - case GB_FC32_code : return ("GxB_ATANH_FC32") ; - case GB_FC64_code : return ("GxB_ATANH_FC64") ; - default :; - } - break ; - - case GB_SIGNUM_unop_code : // z = signum (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_SIGNUM_FP32") ; - case GB_FP64_code : return ("GxB_SIGNUM_FP64") ; - case GB_FC32_code : return ("GxB_SIGNUM_FC32") ; - case GB_FC64_code : return ("GxB_SIGNUM_FC64") ; - default :; - } - break ; - - case GB_CEIL_unop_code : // z = ceil (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_CEIL_FP32") ; - case GB_FP64_code : return ("GxB_CEIL_FP64") ; - case GB_FC32_code : return ("GxB_CEIL_FC32") ; - case GB_FC64_code : return ("GxB_CEIL_FC64") ; - default :; - } - break ; - - case GB_FLOOR_unop_code : // z = floor (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_FLOOR_FP32") ; - case GB_FP64_code : return ("GxB_FLOOR_FP64") ; - case GB_FC32_code : return ("GxB_FLOOR_FC32") ; - case GB_FC64_code : return ("GxB_FLOOR_FC64") ; - default :; - } - break ; - - case GB_ROUND_unop_code : // z = round (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ROUND_FP32") ; - case GB_FP64_code : return ("GxB_ROUND_FP64") ; - case GB_FC32_code : return ("GxB_ROUND_FC32") ; - case GB_FC64_code : return ("GxB_ROUND_FC64") ; - default :; - } - break ; - - case GB_TRUNC_unop_code : // z = trunc (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_TRUNC_FP32") ; - case GB_FP64_code : return ("GxB_TRUNC_FP64") ; - case GB_FC32_code : return ("GxB_TRUNC_FC32") ; - case GB_FC64_code : return ("GxB_TRUNC_FC64") ; - default :; - } - break ; - - case GB_EXP2_unop_code : // z = exp2 (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_EXP2_FP32") ; - case GB_FP64_code : return ("GxB_EXP2_FP64") ; - case GB_FC32_code : return ("GxB_EXP2_FC32") ; - case GB_FC64_code : return ("GxB_EXP2_FC64") ; - default :; - } - break ; - - case GB_EXPM1_unop_code : // z = expm1 (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_EXPM1_FP32") ; - case GB_FP64_code : return ("GxB_EXPM1_FP64") ; - case GB_FC32_code : return ("GxB_EXPM1_FC32") ; - case GB_FC64_code : return ("GxB_EXPM1_FC64") ; - default :; - } - break ; - - case GB_LOG10_unop_code : // z = log10 (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_LOG10_FP32") ; - case GB_FP64_code : return ("GxB_LOG10_FP64") ; - case GB_FC32_code : return ("GxB_LOG10_FC32") ; - case GB_FC64_code : return ("GxB_LOG10_FC64") ; - default :; - } - break ; - - case GB_LOG1P_unop_code : // z = log1P (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_LOG1P_FP32") ; - case GB_FP64_code : return ("GxB_LOG1P_FP64") ; - case GB_FC32_code : return ("GxB_LOG1P_FC32") ; - case GB_FC64_code : return ("GxB_LOG1P_FC64") ; - default :; - } - break ; - - case GB_LOG2_unop_code : // z = log2 (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_LOG2_FP32") ; - case GB_FP64_code : return ("GxB_LOG2_FP64") ; - case GB_FC32_code : return ("GxB_LOG2_FC32") ; - case GB_FC64_code : return ("GxB_LOG2_FC64") ; - default :; - } - break ; - - case GB_LGAMMA_unop_code : // z = lgamma (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_LGAMMA_FP32") ; - case GB_FP64_code : return ("GxB_LGAMMA_FP64") ; - default :; - } - break ; - - case GB_TGAMMA_unop_code : // z = tgamma (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_TGAMMA_FP32") ; - case GB_FP64_code : return ("GxB_TGAMMA_FP64") ; - default :; - } - break ; - - case GB_ERF_unop_code : // z = erf (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ERF_FP32") ; - case GB_FP64_code : return ("GxB_ERF_FP64") ; - default :; - } - break ; - - case GB_ERFC_unop_code : // z = erfc (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ERFC_FP32") ; - case GB_FP64_code : return ("GxB_ERFC_FP64") ; - default :; - } - break ; - - case GB_CBRT_unop_code : // z = cbrt (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_CBRT_FP32") ; - case GB_FP64_code : return ("GxB_CBRT_FP64") ; - default :; - } - break ; - - case GB_FREXPX_unop_code : // z = frexpx (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_FREXPX_FP32") ; - case GB_FP64_code : return ("GxB_FREXPX_FP64") ; - default :; - } - break ; - - case GB_FREXPE_unop_code : // z = frexpe (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_FREXPE_FP32") ; - case GB_FP64_code : return ("GxB_FREXPE_FP64") ; - default :; - } - break ; - - case GB_CONJ_unop_code : // z = conj (x) - - switch (xcode) - { - case GB_FC32_code : return ("GxB_CONJ_FC32") ; - case GB_FC64_code : return ("GxB_CONJ_FC64") ; - default :; - } - break ; - - case GB_CREAL_unop_code : // z = creal (x) - - switch (xcode) - { - case GB_FC32_code : return ("GxB_CREAL_FC32") ; - case GB_FC64_code : return ("GxB_CREAL_FC64") ; - default :; - } - break ; - - case GB_CIMAG_unop_code : // z = cimag (x) - - switch (xcode) - { - case GB_FC32_code : return ("GxB_CIMAG_FC32") ; - case GB_FC64_code : return ("GxB_CIMAG_FC64") ; - default :; - } - break ; - - case GB_CARG_unop_code : // z = carg (x) - - switch (xcode) - { - case GB_FC32_code : return ("GxB_CARG_FC32") ; - case GB_FC64_code : return ("GxB_CARG_FC64") ; - default :; - } - break ; - - case GB_ISINF_unop_code : // z = isinf (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ISINF_FP32") ; - case GB_FP64_code : return ("GxB_ISINF_FP64") ; - case GB_FC32_code : return ("GxB_ISINF_FC32") ; - case GB_FC64_code : return ("GxB_ISINF_FC64") ; - default :; - } - break ; - - case GB_ISNAN_unop_code : // z = isnan (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ISNAN_FP32") ; - case GB_FP64_code : return ("GxB_ISNAN_FP64") ; - case GB_FC32_code : return ("GxB_ISNAN_FC32") ; - case GB_FC64_code : return ("GxB_ISNAN_FC64") ; - default :; - } - break ; - - case GB_ISFINITE_unop_code : // z = isfinite (x) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ISFINITE_FP32") ; - case GB_FP64_code : return ("GxB_ISFINITE_FP64") ; - case GB_FC32_code : return ("GxB_ISFINITE_FC32") ; - case GB_FC64_code : return ("GxB_ISFINITE_FC64") ; - default :; - } - break ; - - case GB_POSITIONI_unop_code : // z = position_i(A(i,j)) == i - - switch (zcode) - { - case GB_INT32_code : return ("GxB_POSITIONI_INT32") ; - case GB_INT64_code : return ("GxB_POSITIONI_INT64") ; - default :; - } - break ; - - case GB_POSITIONI1_unop_code : // z = position_i1(A(i,j)) == i+1 - - switch (zcode) - { - case GB_INT32_code : return ("GxB_POSITIONI1_INT32") ; - case GB_INT64_code : return ("GxB_POSITIONI1_INT64") ; - default :; - } - break ; - - case GB_POSITIONJ_unop_code : // z = position_j(A(i,j)) == j - - switch (zcode) - { - case GB_INT32_code : return ("GxB_POSITIONJ_INT32") ; - case GB_INT64_code : return ("GxB_POSITIONJ_INT64") ; - default :; - } - break ; - - case GB_POSITIONJ1_unop_code : // z = position_j1(A(i,j)) == j+1 - - switch (zcode) - { - case GB_INT32_code : return ("GxB_POSITIONJ1_INT32") ; - case GB_INT64_code : return ("GxB_POSITIONJ1_INT64") ; - default :; - } - break ; - - //---------------------------------------------------------------------- - // index_unary operators - //---------------------------------------------------------------------- - - case GB_ROWINDEX_idxunop_code : // (i+thunk): row index - thunk - - switch (zcode) - { - case GB_INT32_code : return ("GrB_ROWINDEX_INT32") ; - case GB_INT64_code : return ("GrB_ROWINDEX_INT64") ; - default :; - } - break ; - - case GB_COLINDEX_idxunop_code : // (j+thunk): col index - thunk - - switch (zcode) - { - case GB_INT32_code : return ("GrB_COLINDEX_INT32") ; - case GB_INT64_code : return ("GrB_COLINDEX_INT64") ; - default :; - } - break ; - - case GB_DIAGINDEX_idxunop_code : // (j-(i+thunk)): diag index+thunk - - switch (zcode) - { - case GB_INT32_code : return ("GrB_DIAGINDEX_INT32") ; - case GB_INT64_code : return ("GrB_DIAGINDEX_INT64") ; - default :; - } - break ; - - case GB_FLIPDIAGINDEX_idxunop_code : // (i-(j+thunk)), internal use only - - switch (zcode) - { - case GB_INT32_code : return ("GxB_FLIPDIAGINDEX_INT32") ; - case GB_INT64_code : return ("GxB_FLIPDIAGINDEX_INT64") ; - default :; - } - break ; - - case GB_TRIL_idxunop_code : return ("GrB_TRIL" ) ; - case GB_TRIU_idxunop_code : return ("GrB_TRIU" ) ; - case GB_DIAG_idxunop_code : return ("GrB_DIAG" ) ; - case GB_OFFDIAG_idxunop_code : return ("GrB_OFFDIAG") ; - case GB_COLLE_idxunop_code : return ("GrB_COLLE" ) ; - case GB_COLGT_idxunop_code : return ("GrB_COLGT" ) ; - case GB_ROWLE_idxunop_code : return ("GrB_ROWLE" ) ; - case GB_ROWGT_idxunop_code : return ("GrB_ROWGT" ) ; - - case GB_NONZOMBIE_idxunop_code : return ("GxB_NONZOMBIE") ; - - case GB_VALUENE_idxunop_code : // (aij != thunk) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_VALUENE_BOOL" ) ; - case GB_INT8_code : return ("GrB_VALUENE_INT8" ) ; - case GB_INT16_code : return ("GrB_VALUENE_INT16" ) ; - case GB_INT32_code : return ("GrB_VALUENE_INT32" ) ; - case GB_INT64_code : return ("GrB_VALUENE_INT64" ) ; - case GB_UINT8_code : return ("GrB_VALUENE_UINT8" ) ; - case GB_UINT16_code : return ("GrB_VALUENE_UINT16") ; - case GB_UINT32_code : return ("GrB_VALUENE_UINT32") ; - case GB_UINT64_code : return ("GrB_VALUENE_UINT64") ; - case GB_FP32_code : return ("GrB_VALUENE_FP32" ) ; - case GB_FP64_code : return ("GrB_VALUENE_FP64" ) ; - case GB_FC32_code : return ("GxB_VALUENE_FC32" ) ; - case GB_FC64_code : return ("GxB_VALUENE_FC64" ) ; - default :; - } - break ; - - case GB_VALUEEQ_idxunop_code : // (aij == thunk) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_VALUEEQ_BOOL" ) ; - case GB_INT8_code : return ("GrB_VALUEEQ_INT8" ) ; - case GB_INT16_code : return ("GrB_VALUEEQ_INT16" ) ; - case GB_INT32_code : return ("GrB_VALUEEQ_INT32" ) ; - case GB_INT64_code : return ("GrB_VALUEEQ_INT64" ) ; - case GB_UINT8_code : return ("GrB_VALUEEQ_UINT8" ) ; - case GB_UINT16_code : return ("GrB_VALUEEQ_UINT16") ; - case GB_UINT32_code : return ("GrB_VALUEEQ_UINT32") ; - case GB_UINT64_code : return ("GrB_VALUEEQ_UINT64") ; - case GB_FP32_code : return ("GrB_VALUEEQ_FP32" ) ; - case GB_FP64_code : return ("GrB_VALUEEQ_FP64" ) ; - case GB_FC32_code : return ("GxB_VALUEEQ_FC32" ) ; - case GB_FC64_code : return ("GxB_VALUEEQ_FC64" ) ; - default :; - } - break ; - - case GB_VALUEGT_idxunop_code : // (aij > thunk) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_VALUEGT_BOOL" ) ; - case GB_INT8_code : return ("GrB_VALUEGT_INT8" ) ; - case GB_INT16_code : return ("GrB_VALUEGT_INT16" ) ; - case GB_INT32_code : return ("GrB_VALUEGT_INT32" ) ; - case GB_INT64_code : return ("GrB_VALUEGT_INT64" ) ; - case GB_UINT8_code : return ("GrB_VALUEGT_UINT8" ) ; - case GB_UINT16_code : return ("GrB_VALUEGT_UINT16") ; - case GB_UINT32_code : return ("GrB_VALUEGT_UINT32") ; - case GB_UINT64_code : return ("GrB_VALUEGT_UINT64") ; - case GB_FP32_code : return ("GrB_VALUEGT_FP32" ) ; - case GB_FP64_code : return ("GrB_VALUEGT_FP64" ) ; - default :; - } - break ; - - case GB_VALUEGE_idxunop_code : // (aij >= thunk) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_VALUEGE_BOOL" ) ; - case GB_INT8_code : return ("GrB_VALUEGE_INT8" ) ; - case GB_INT16_code : return ("GrB_VALUEGE_INT16" ) ; - case GB_INT32_code : return ("GrB_VALUEGE_INT32" ) ; - case GB_INT64_code : return ("GrB_VALUEGE_INT64" ) ; - case GB_UINT8_code : return ("GrB_VALUEGE_UINT8" ) ; - case GB_UINT16_code : return ("GrB_VALUEGE_UINT16") ; - case GB_UINT32_code : return ("GrB_VALUEGE_UINT32") ; - case GB_UINT64_code : return ("GrB_VALUEGE_UINT64") ; - case GB_FP32_code : return ("GrB_VALUEGE_FP32" ) ; - case GB_FP64_code : return ("GrB_VALUEGE_FP64" ) ; - default :; - } - break ; - - case GB_VALUELT_idxunop_code : // (aij < thunk) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_VALUELT_BOOL" ) ; - case GB_INT8_code : return ("GrB_VALUELT_INT8" ) ; - case GB_INT16_code : return ("GrB_VALUELT_INT16" ) ; - case GB_INT32_code : return ("GrB_VALUELT_INT32" ) ; - case GB_INT64_code : return ("GrB_VALUELT_INT64" ) ; - case GB_UINT8_code : return ("GrB_VALUELT_UINT8" ) ; - case GB_UINT16_code : return ("GrB_VALUELT_UINT16") ; - case GB_UINT32_code : return ("GrB_VALUELT_UINT32") ; - case GB_UINT64_code : return ("GrB_VALUELT_UINT64") ; - case GB_FP32_code : return ("GrB_VALUELT_FP32" ) ; - case GB_FP64_code : return ("GrB_VALUELT_FP64" ) ; - default :; - } - break ; - - case GB_VALUELE_idxunop_code : // (aij <= thunk) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_VALUELE_BOOL" ) ; - case GB_INT8_code : return ("GrB_VALUELE_INT8" ) ; - case GB_INT16_code : return ("GrB_VALUELE_INT16" ) ; - case GB_INT32_code : return ("GrB_VALUELE_INT32" ) ; - case GB_INT64_code : return ("GrB_VALUELE_INT64" ) ; - case GB_UINT8_code : return ("GrB_VALUELE_UINT8" ) ; - case GB_UINT16_code : return ("GrB_VALUELE_UINT16") ; - case GB_UINT32_code : return ("GrB_VALUELE_UINT32") ; - case GB_UINT64_code : return ("GrB_VALUELE_UINT64") ; - case GB_FP32_code : return ("GrB_VALUELE_FP32" ) ; - case GB_FP64_code : return ("GrB_VALUELE_FP64" ) ; - default :; - } - break ; - - //---------------------------------------------------------------------- - // binary operators - //---------------------------------------------------------------------- - - case GB_FIRST_binop_code : // z = x - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_FIRST_BOOL" ) ; - case GB_INT8_code : return ("GrB_FIRST_INT8" ) ; - case GB_INT16_code : return ("GrB_FIRST_INT16" ) ; - case GB_INT32_code : return ("GrB_FIRST_INT32" ) ; - case GB_INT64_code : return ("GrB_FIRST_INT64" ) ; - case GB_UINT8_code : return ("GrB_FIRST_UINT8" ) ; - case GB_UINT16_code : return ("GrB_FIRST_UINT16") ; - case GB_UINT32_code : return ("GrB_FIRST_UINT32") ; - case GB_UINT64_code : return ("GrB_FIRST_UINT64") ; - case GB_FP32_code : return ("GrB_FIRST_FP32" ) ; - case GB_FP64_code : return ("GrB_FIRST_FP64" ) ; - case GB_FC32_code : return ("GxB_FIRST_FC32" ) ; - case GB_FC64_code : return ("GxB_FIRST_FC64" ) ; - // see GB_reduce_to_vector: -// case GB_UDT_code : -// return ("1st_udt") ; - default :; - } - break ; - - case GB_SECOND_binop_code : // z = y - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_SECOND_BOOL" ) ; - case GB_INT8_code : return ("GrB_SECOND_INT8" ) ; - case GB_INT16_code : return ("GrB_SECOND_INT16" ) ; - case GB_INT32_code : return ("GrB_SECOND_INT32" ) ; - case GB_INT64_code : return ("GrB_SECOND_INT64" ) ; - case GB_UINT8_code : return ("GrB_SECOND_UINT8" ) ; - case GB_UINT16_code : return ("GrB_SECOND_UINT16") ; - case GB_UINT32_code : return ("GrB_SECOND_UINT32") ; - case GB_UINT64_code : return ("GrB_SECOND_UINT64") ; - case GB_FP32_code : return ("GrB_SECOND_FP32" ) ; - case GB_FP64_code : return ("GrB_SECOND_FP64" ) ; - case GB_FC32_code : return ("GxB_SECOND_FC32" ) ; - case GB_FC64_code : return ("GxB_SECOND_FC64" ) ; - // see GB_binop_second: -// case GB_UDT_code : -// return ("2nd_udt") ; - default :; - } - break ; - - case GB_ANY_binop_code : // z = x or y - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ANY_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_FC64" ) ; - default :; - } - break ; - - case GB_PAIR_binop_code : // z = 1 - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_ONEB_BOOL" ) ; - case GB_INT8_code : return ("GrB_ONEB_INT8" ) ; - case GB_INT16_code : return ("GrB_ONEB_INT16" ) ; - case GB_INT32_code : return ("GrB_ONEB_INT32" ) ; - case GB_INT64_code : return ("GrB_ONEB_INT64" ) ; - case GB_UINT8_code : return ("GrB_ONEB_UINT8" ) ; - case GB_UINT16_code : return ("GrB_ONEB_UINT16") ; - case GB_UINT32_code : return ("GrB_ONEB_UINT32") ; - case GB_UINT64_code : return ("GrB_ONEB_UINT64") ; - case GB_FP32_code : return ("GrB_ONEB_FP32" ) ; - case GB_FP64_code : return ("GrB_ONEB_FP64" ) ; - case GB_FC32_code : return ("GxB_ONEB_FC32" ) ; - case GB_FC64_code : return ("GxB_ONEB_FC64" ) ; - default :; - } - break ; - - case GB_MIN_binop_code : // z = min(x,y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_MIN_BOOL" ) ; - case GB_INT8_code : return ("GrB_MIN_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_FP64" ) ; - default :; - } - break ; - - case GB_MAX_binop_code : // z = max(x,y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_MAX_BOOL" ) ; - case GB_INT8_code : return ("GrB_MAX_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_FP64" ) ; - default :; - } - break ; - - case GB_PLUS_binop_code : // z = x + y - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_PLUS_BOOL" ) ; - case GB_INT8_code : return ("GrB_PLUS_INT8" ) ; - case GB_INT16_code : return ("GrB_PLUS_INT16" ) ; - case GB_INT32_code : return ("GrB_PLUS_INT32" ) ; - case GB_INT64_code : return ("GrB_PLUS_INT64" ) ; - case GB_UINT8_code : return ("GrB_PLUS_UINT8" ) ; - case GB_UINT16_code : return ("GrB_PLUS_UINT16") ; - case GB_UINT32_code : return ("GrB_PLUS_UINT32") ; - case GB_UINT64_code : return ("GrB_PLUS_UINT64") ; - case GB_FP32_code : return ("GrB_PLUS_FP32" ) ; - case GB_FP64_code : return ("GrB_PLUS_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_FC64" ) ; - default :; - } - break ; - - case GB_MINUS_binop_code : // z = x - y - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_MINUS_BOOL" ) ; - case GB_INT8_code : return ("GrB_MINUS_INT8" ) ; - case GB_INT16_code : return ("GrB_MINUS_INT16" ) ; - case GB_INT32_code : return ("GrB_MINUS_INT32" ) ; - case GB_INT64_code : return ("GrB_MINUS_INT64" ) ; - case GB_UINT8_code : return ("GrB_MINUS_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MINUS_UINT16") ; - case GB_UINT32_code : return ("GrB_MINUS_UINT32") ; - case GB_UINT64_code : return ("GrB_MINUS_UINT64") ; - case GB_FP32_code : return ("GrB_MINUS_FP32" ) ; - case GB_FP64_code : return ("GrB_MINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_MINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_MINUS_FC64" ) ; - default :; - } - break ; - - case GB_RMINUS_binop_code : // z = y - x - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_RMINUS_BOOL" ) ; - case GB_INT8_code : return ("GxB_RMINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_RMINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_RMINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_RMINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_RMINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_RMINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_RMINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_RMINUS_UINT64") ; - case GB_FP32_code : return ("GxB_RMINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_RMINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_RMINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_RMINUS_FC64" ) ; - default :; - } - break ; - - case GB_TIMES_binop_code : // z = x * y - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_TIMES_BOOL" ) ; - case GB_INT8_code : return ("GrB_TIMES_INT8" ) ; - case GB_INT16_code : return ("GrB_TIMES_INT16" ) ; - case GB_INT32_code : return ("GrB_TIMES_INT32" ) ; - case GB_INT64_code : return ("GrB_TIMES_INT64" ) ; - case GB_UINT8_code : return ("GrB_TIMES_UINT8" ) ; - case GB_UINT16_code : return ("GrB_TIMES_UINT16") ; - case GB_UINT32_code : return ("GrB_TIMES_UINT32") ; - case GB_UINT64_code : return ("GrB_TIMES_UINT64") ; - case GB_FP32_code : return ("GrB_TIMES_FP32" ) ; - case GB_FP64_code : return ("GrB_TIMES_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_FC64" ) ; - default :; - } - break ; - - case GB_DIV_binop_code : // z = x / y - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_DIV_BOOL" ) ; - case GB_INT8_code : return ("GrB_DIV_INT8" ) ; - case GB_INT16_code : return ("GrB_DIV_INT16" ) ; - case GB_INT32_code : return ("GrB_DIV_INT32" ) ; - case GB_INT64_code : return ("GrB_DIV_INT64" ) ; - case GB_UINT8_code : return ("GrB_DIV_UINT8" ) ; - case GB_UINT16_code : return ("GrB_DIV_UINT16") ; - case GB_UINT32_code : return ("GrB_DIV_UINT32") ; - case GB_UINT64_code : return ("GrB_DIV_UINT64") ; - case GB_FP32_code : return ("GrB_DIV_FP32" ) ; - case GB_FP64_code : return ("GrB_DIV_FP64" ) ; - case GB_FC32_code : return ("GxB_DIV_FC32" ) ; - case GB_FC64_code : return ("GxB_DIV_FC64" ) ; - default :; - } - break ; - - case GB_RDIV_binop_code : // z = y / x - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_RDIV_BOOL" ) ; - case GB_INT8_code : return ("GxB_RDIV_INT8" ) ; - case GB_INT16_code : return ("GxB_RDIV_INT16" ) ; - case GB_INT32_code : return ("GxB_RDIV_INT32" ) ; - case GB_INT64_code : return ("GxB_RDIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_RDIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_RDIV_UINT16") ; - case GB_UINT32_code : return ("GxB_RDIV_UINT32") ; - case GB_UINT64_code : return ("GxB_RDIV_UINT64") ; - case GB_FP32_code : return ("GxB_RDIV_FP32" ) ; - case GB_FP64_code : return ("GxB_RDIV_FP64" ) ; - case GB_FC32_code : return ("GxB_RDIV_FC32" ) ; - case GB_FC64_code : return ("GxB_RDIV_FC64" ) ; - default :; - } - break ; - - case GB_POW_binop_code : // z = pow (x,y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_POW_BOOL" ) ; - case GB_INT8_code : return ("GxB_POW_INT8" ) ; - case GB_INT16_code : return ("GxB_POW_INT16" ) ; - case GB_INT32_code : return ("GxB_POW_INT32" ) ; - case GB_INT64_code : return ("GxB_POW_INT64" ) ; - case GB_UINT8_code : return ("GxB_POW_UINT8" ) ; - case GB_UINT16_code : return ("GxB_POW_UINT16") ; - case GB_UINT32_code : return ("GxB_POW_UINT32") ; - case GB_UINT64_code : return ("GxB_POW_UINT64") ; - case GB_FP32_code : return ("GxB_POW_FP32" ) ; - case GB_FP64_code : return ("GxB_POW_FP64" ) ; - case GB_FC32_code : return ("GxB_POW_FC32" ) ; - case GB_FC64_code : return ("GxB_POW_FC64" ) ; - default :; - } - break ; - - case GB_ISEQ_binop_code : // z = (x == y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ISEQ_BOOL" ) ; - case GB_INT8_code : return ("GxB_ISEQ_INT8" ) ; - case GB_INT16_code : return ("GxB_ISEQ_INT16" ) ; - case GB_INT32_code : return ("GxB_ISEQ_INT32" ) ; - case GB_INT64_code : return ("GxB_ISEQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_ISEQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ISEQ_UINT16") ; - case GB_UINT32_code : return ("GxB_ISEQ_UINT32") ; - case GB_UINT64_code : return ("GxB_ISEQ_UINT64") ; - case GB_FP32_code : return ("GxB_ISEQ_FP32" ) ; - case GB_FP64_code : return ("GxB_ISEQ_FP64" ) ; - case GB_FC32_code : return ("GxB_ISEQ_FC32" ) ; - case GB_FC64_code : return ("GxB_ISEQ_FC64" ) ; - default :; - } - break ; - - case GB_ISNE_binop_code : // z = (x != y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ISNE_BOOL" ) ; - case GB_INT8_code : return ("GxB_ISNE_INT8" ) ; - case GB_INT16_code : return ("GxB_ISNE_INT16" ) ; - case GB_INT32_code : return ("GxB_ISNE_INT32" ) ; - case GB_INT64_code : return ("GxB_ISNE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ISNE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ISNE_UINT16") ; - case GB_UINT32_code : return ("GxB_ISNE_UINT32") ; - case GB_UINT64_code : return ("GxB_ISNE_UINT64") ; - case GB_FP32_code : return ("GxB_ISNE_FP32" ) ; - case GB_FP64_code : return ("GxB_ISNE_FP64" ) ; - case GB_FC32_code : return ("GxB_ISNE_FC32" ) ; - case GB_FC64_code : return ("GxB_ISNE_FC64" ) ; - default :; - } - break ; - - case GB_ISGT_binop_code : // z = (x > y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ISGT_BOOL" ) ; - case GB_INT8_code : return ("GxB_ISGT_INT8" ) ; - case GB_INT16_code : return ("GxB_ISGT_INT16" ) ; - case GB_INT32_code : return ("GxB_ISGT_INT32" ) ; - case GB_INT64_code : return ("GxB_ISGT_INT64" ) ; - case GB_UINT8_code : return ("GxB_ISGT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ISGT_UINT16") ; - case GB_UINT32_code : return ("GxB_ISGT_UINT32") ; - case GB_UINT64_code : return ("GxB_ISGT_UINT64") ; - case GB_FP32_code : return ("GxB_ISGT_FP32" ) ; - case GB_FP64_code : return ("GxB_ISGT_FP64" ) ; - default :; - } - break ; - - case GB_ISLT_binop_code : // z = (x < y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ISLT_BOOL" ) ; - case GB_INT8_code : return ("GxB_ISLT_INT8" ) ; - case GB_INT16_code : return ("GxB_ISLT_INT16" ) ; - case GB_INT32_code : return ("GxB_ISLT_INT32" ) ; - case GB_INT64_code : return ("GxB_ISLT_INT64" ) ; - case GB_UINT8_code : return ("GxB_ISLT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ISLT_UINT16") ; - case GB_UINT32_code : return ("GxB_ISLT_UINT32") ; - case GB_UINT64_code : return ("GxB_ISLT_UINT64") ; - case GB_FP32_code : return ("GxB_ISLT_FP32" ) ; - case GB_FP64_code : return ("GxB_ISLT_FP64" ) ; - default :; - } - break ; - - case GB_ISGE_binop_code : // z = (x >= y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ISGE_BOOL" ) ; - case GB_INT8_code : return ("GxB_ISGE_INT8" ) ; - case GB_INT16_code : return ("GxB_ISGE_INT16" ) ; - case GB_INT32_code : return ("GxB_ISGE_INT32" ) ; - case GB_INT64_code : return ("GxB_ISGE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ISGE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ISGE_UINT16") ; - case GB_UINT32_code : return ("GxB_ISGE_UINT32") ; - case GB_UINT64_code : return ("GxB_ISGE_UINT64") ; - case GB_FP32_code : return ("GxB_ISGE_FP32" ) ; - case GB_FP64_code : return ("GxB_ISGE_FP64" ) ; - default :; - } - break ; - - case GB_ISLE_binop_code : // z = (x <= y) - - switch (xcode) - { - case GB_BOOL_code : return ("GxB_ISLE_BOOL" ) ; - case GB_INT8_code : return ("GxB_ISLE_INT8" ) ; - case GB_INT16_code : return ("GxB_ISLE_INT16" ) ; - case GB_INT32_code : return ("GxB_ISLE_INT32" ) ; - case GB_INT64_code : return ("GxB_ISLE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ISLE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ISLE_UINT16") ; - case GB_UINT32_code : return ("GxB_ISLE_UINT32") ; - case GB_UINT64_code : return ("GxB_ISLE_UINT64") ; - case GB_FP32_code : return ("GxB_ISLE_FP32" ) ; - case GB_FP64_code : return ("GxB_ISLE_FP64" ) ; - default :; - } - break ; - - case GB_LOR_binop_code : // z = (x != 0) || (y != 0) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LOR" ) ; - case GB_INT8_code : return ("GxB_LOR_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_FP64" ) ; - default :; - } - break ; - - case GB_LAND_binop_code : // z = (x != 0) && (y != 0) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LAND" ) ; - case GB_INT8_code : return ("GxB_LAND_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_FP64" ) ; - default :; - } - break ; - - case GB_LXOR_binop_code : // z = (x != 0) != (y != 0) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LXOR" ) ; - case GB_INT8_code : return ("GxB_LXOR_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_FP64" ) ; - default :; - } - break ; - - case GB_EQ_binop_code : // z = (x == y), is LXNOR for bool - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LXNOR" ) ; - case GB_INT8_code : return ("GrB_EQ_INT8" ) ; - case GB_INT16_code : return ("GrB_EQ_INT16" ) ; - case GB_INT32_code : return ("GrB_EQ_INT32" ) ; - case GB_INT64_code : return ("GrB_EQ_INT64" ) ; - case GB_UINT8_code : return ("GrB_EQ_UINT8" ) ; - case GB_UINT16_code : return ("GrB_EQ_UINT16") ; - case GB_UINT32_code : return ("GrB_EQ_UINT32") ; - case GB_UINT64_code : return ("GrB_EQ_UINT64") ; - case GB_FP32_code : return ("GrB_EQ_FP32" ) ; - case GB_FP64_code : return ("GrB_EQ_FP64" ) ; - case GB_FC32_code : return ("GxB_EQ_FC32" ) ; - case GB_FC64_code : return ("GxB_EQ_FC64" ) ; - default :; - } - break ; - - case GB_BOR_binop_code : // z = (x | y), bitwise or - - switch (xcode) - { - case GB_INT8_code : return ("GrB_BOR_INT8" ) ; - case GB_INT16_code : return ("GrB_BOR_INT16" ) ; - case GB_INT32_code : return ("GrB_BOR_INT32" ) ; - case GB_INT64_code : return ("GrB_BOR_INT64" ) ; - case GB_UINT8_code : return ("GrB_BOR_UINT8" ) ; - case GB_UINT16_code : return ("GrB_BOR_UINT16") ; - case GB_UINT32_code : return ("GrB_BOR_UINT32") ; - case GB_UINT64_code : return ("GrB_BOR_UINT64") ; - default :; - } - break ; - - case GB_BAND_binop_code : // z = (x & y), bitwise and - - switch (xcode) - { - case GB_INT8_code : return ("GrB_BAND_INT8" ) ; - case GB_INT16_code : return ("GrB_BAND_INT16" ) ; - case GB_INT32_code : return ("GrB_BAND_INT32" ) ; - case GB_INT64_code : return ("GrB_BAND_INT64" ) ; - case GB_UINT8_code : return ("GrB_BAND_UINT8" ) ; - case GB_UINT16_code : return ("GrB_BAND_UINT16") ; - case GB_UINT32_code : return ("GrB_BAND_UINT32") ; - case GB_UINT64_code : return ("GrB_BAND_UINT64") ; - default :; - } - break ; - - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - - switch (xcode) - { - case GB_INT8_code : return ("GrB_BXOR_INT8" ) ; - case GB_INT16_code : return ("GrB_BXOR_INT16" ) ; - case GB_INT32_code : return ("GrB_BXOR_INT32" ) ; - case GB_INT64_code : return ("GrB_BXOR_INT64" ) ; - case GB_UINT8_code : return ("GrB_BXOR_UINT8" ) ; - case GB_UINT16_code : return ("GrB_BXOR_UINT16") ; - case GB_UINT32_code : return ("GrB_BXOR_UINT32") ; - case GB_UINT64_code : return ("GrB_BXOR_UINT64") ; - default :; - } - break ; - - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - - switch (xcode) - { - case GB_INT8_code : return ("GrB_BXNOR_INT8" ) ; - case GB_INT16_code : return ("GrB_BXNOR_INT16" ) ; - case GB_INT32_code : return ("GrB_BXNOR_INT32" ) ; - case GB_INT64_code : return ("GrB_BXNOR_INT64" ) ; - case GB_UINT8_code : return ("GrB_BXNOR_UINT8" ) ; - case GB_UINT16_code : return ("GrB_BXNOR_UINT16") ; - case GB_UINT32_code : return ("GrB_BXNOR_UINT32") ; - case GB_UINT64_code : return ("GrB_BXNOR_UINT64") ; - default :; - } - break ; - - case GB_BGET_binop_code : // z = bitget (x,y) - - switch (xcode) - { - case GB_INT8_code : return ("GxB_BGET_INT8" ) ; - case GB_INT16_code : return ("GxB_BGET_INT16" ) ; - case GB_INT32_code : return ("GxB_BGET_INT32" ) ; - case GB_INT64_code : return ("GxB_BGET_INT64" ) ; - case GB_UINT8_code : return ("GxB_BGET_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BGET_UINT16") ; - case GB_UINT32_code : return ("GxB_BGET_UINT32") ; - case GB_UINT64_code : return ("GxB_BGET_UINT64") ; - default :; - } - break ; - - case GB_BSET_binop_code : // z = bitset (x,y) - - switch (xcode) - { - case GB_INT8_code : return ("GxB_BSET_INT8" ) ; - case GB_INT16_code : return ("GxB_BSET_INT16" ) ; - case GB_INT32_code : return ("GxB_BSET_INT32" ) ; - case GB_INT64_code : return ("GxB_BSET_INT64" ) ; - case GB_UINT8_code : return ("GxB_BSET_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BSET_UINT16") ; - case GB_UINT32_code : return ("GxB_BSET_UINT32") ; - case GB_UINT64_code : return ("GxB_BSET_UINT64") ; - default :; - } - break ; - - case GB_BCLR_binop_code : // z = bitclr (x,y) - - switch (xcode) - { - case GB_INT8_code : return ("GxB_BCLR_INT8" ) ; - case GB_INT16_code : return ("GxB_BCLR_INT16" ) ; - case GB_INT32_code : return ("GxB_BCLR_INT32" ) ; - case GB_INT64_code : return ("GxB_BCLR_INT64" ) ; - case GB_UINT8_code : return ("GxB_BCLR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BCLR_UINT16") ; - case GB_UINT32_code : return ("GxB_BCLR_UINT32") ; - case GB_UINT64_code : return ("GxB_BCLR_UINT64") ; - default :; - } - break ; - - case GB_BSHIFT_binop_code : // z = bitshift (x,y) - - switch (xcode) - { - case GB_INT8_code : return ("GxB_BSHIFT_INT8" ) ; - case GB_INT16_code : return ("GxB_BSHIFT_INT16" ) ; - case GB_INT32_code : return ("GxB_BSHIFT_INT32" ) ; - case GB_INT64_code : return ("GxB_BSHIFT_INT64" ) ; - case GB_UINT8_code : return ("GxB_BSHIFT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BSHIFT_UINT16") ; - case GB_UINT32_code : return ("GxB_BSHIFT_UINT32") ; - case GB_UINT64_code : return ("GxB_BSHIFT_UINT64") ; - default :; - } - break ; - - case GB_NE_binop_code : // z = (x != y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_NE_BOOL" ) ; - case GB_INT8_code : return ("GrB_NE_INT8" ) ; - case GB_INT16_code : return ("GrB_NE_INT16" ) ; - case GB_INT32_code : return ("GrB_NE_INT32" ) ; - case GB_INT64_code : return ("GrB_NE_INT64" ) ; - case GB_UINT8_code : return ("GrB_NE_UINT8" ) ; - case GB_UINT16_code : return ("GrB_NE_UINT16") ; - case GB_UINT32_code : return ("GrB_NE_UINT32") ; - case GB_UINT64_code : return ("GrB_NE_UINT64") ; - case GB_FP32_code : return ("GrB_NE_FP32" ) ; - case GB_FP64_code : return ("GrB_NE_FP64" ) ; - case GB_FC32_code : return ("GxB_NE_FC32" ) ; - case GB_FC64_code : return ("GxB_NE_FC64" ) ; - default :; - } - break ; - - case GB_GT_binop_code : // z = (x > y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_GT_BOOL" ) ; - case GB_INT8_code : return ("GrB_GT_INT8" ) ; - case GB_INT16_code : return ("GrB_GT_INT16" ) ; - case GB_INT32_code : return ("GrB_GT_INT32" ) ; - case GB_INT64_code : return ("GrB_GT_INT64" ) ; - case GB_UINT8_code : return ("GrB_GT_UINT8" ) ; - case GB_UINT16_code : return ("GrB_GT_UINT16") ; - case GB_UINT32_code : return ("GrB_GT_UINT32") ; - case GB_UINT64_code : return ("GrB_GT_UINT64") ; - case GB_FP32_code : return ("GrB_GT_FP32" ) ; - case GB_FP64_code : return ("GrB_GT_FP64" ) ; - default :; - } - break ; - - case GB_LT_binop_code : // z = (x < y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LT_BOOL" ) ; - case GB_INT8_code : return ("GrB_LT_INT8" ) ; - case GB_INT16_code : return ("GrB_LT_INT16" ) ; - case GB_INT32_code : return ("GrB_LT_INT32" ) ; - case GB_INT64_code : return ("GrB_LT_INT64" ) ; - case GB_UINT8_code : return ("GrB_LT_UINT8" ) ; - case GB_UINT16_code : return ("GrB_LT_UINT16") ; - case GB_UINT32_code : return ("GrB_LT_UINT32") ; - case GB_UINT64_code : return ("GrB_LT_UINT64") ; - case GB_FP32_code : return ("GrB_LT_FP32" ) ; - case GB_FP64_code : return ("GrB_LT_FP64" ) ; - default :; - } - break ; - - case GB_GE_binop_code : // z = (x >= y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_GE_BOOL" ) ; - case GB_INT8_code : return ("GrB_GE_INT8" ) ; - case GB_INT16_code : return ("GrB_GE_INT16" ) ; - case GB_INT32_code : return ("GrB_GE_INT32" ) ; - case GB_INT64_code : return ("GrB_GE_INT64" ) ; - case GB_UINT8_code : return ("GrB_GE_UINT8" ) ; - case GB_UINT16_code : return ("GrB_GE_UINT16") ; - case GB_UINT32_code : return ("GrB_GE_UINT32") ; - case GB_UINT64_code : return ("GrB_GE_UINT64") ; - case GB_FP32_code : return ("GrB_GE_FP32" ) ; - case GB_FP64_code : return ("GrB_GE_FP64" ) ; - default :; - } - break ; - - case GB_LE_binop_code : // z = (x <= y) - - switch (xcode) - { - case GB_BOOL_code : return ("GrB_LE_BOOL" ) ; - case GB_INT8_code : return ("GrB_LE_INT8" ) ; - case GB_INT16_code : return ("GrB_LE_INT16" ) ; - case GB_INT32_code : return ("GrB_LE_INT32" ) ; - case GB_INT64_code : return ("GrB_LE_INT64" ) ; - case GB_UINT8_code : return ("GrB_LE_UINT8" ) ; - case GB_UINT16_code : return ("GrB_LE_UINT16") ; - case GB_UINT32_code : return ("GrB_LE_UINT32") ; - case GB_UINT64_code : return ("GrB_LE_UINT64") ; - case GB_FP32_code : return ("GrB_LE_FP32" ) ; - case GB_FP64_code : return ("GrB_LE_FP64" ) ; - default :; - } - break ; - - case GB_ATAN2_binop_code : // z = atan2 (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_ATAN2_FP32") ; - case GB_FP64_code : return ("GxB_ATAN2_FP64") ; - default :; - } - break ; - - case GB_HYPOT_binop_code : // z = hypot (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_HYPOT_FP32") ; - case GB_FP64_code : return ("GxB_HYPOT_FP64") ; - default :; - } - break ; - - case GB_FMOD_binop_code : // z = fmod (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_FMOD_FP32") ; - case GB_FP64_code : return ("GxB_FMOD_FP64") ; - default :; - } - break ; - - case GB_REMAINDER_binop_code : // z = remainder (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_REMAINDER_FP32") ; - case GB_FP64_code : return ("GxB_REMAINDER_FP64") ; - default :; - } - break ; - - case GB_COPYSIGN_binop_code : // z = copysign (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_COPYSIGN_FP32") ; - case GB_FP64_code : return ("GxB_COPYSIGN_FP64") ; - default :; - } - break ; - - case GB_LDEXP_binop_code : // z = ldexp (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_LDEXP_FP32") ; - case GB_FP64_code : return ("GxB_LDEXP_FP64") ; - default :; - } - break ; - - case GB_CMPLX_binop_code : // z = cmplx (x,y) - - switch (xcode) - { - case GB_FP32_code : return ("GxB_CMPLX_FP32") ; - case GB_FP64_code : return ("GxB_CMPLX_FP64") ; - default :; - } - break ; - - case GB_FIRSTI_binop_code : // z = first_i(A(i,j),y) == i - - switch (zcode) - { - case GB_INT32_code : return ("GxB_FIRSTI_INT32") ; - case GB_INT64_code : return ("GxB_FIRSTI_INT64") ; - default :; - } - break ; - - case GB_FIRSTI1_binop_code : // z = first_i1(A(i,j),y) == i+1 - - switch (zcode) - { - case GB_INT32_code : return ("GxB_FIRSTI1_INT32") ; - case GB_INT64_code : return ("GxB_FIRSTI1_INT64") ; - default :; - } - break ; - - case GB_FIRSTJ_binop_code : // z = first_j(A(i,j),y) == j - - switch (zcode) - { - case GB_INT32_code : return ("GxB_FIRSTJ_INT32") ; - case GB_INT64_code : return ("GxB_FIRSTJ_INT64") ; - default :; - } - break ; - - case GB_FIRSTJ1_binop_code : // z = first_j1(A(i,j),y) == j+1 - - switch (zcode) - { - case GB_INT32_code : return ("GxB_FIRSTJ1_INT32") ; - case GB_INT64_code : return ("GxB_FIRSTJ1_INT64") ; - default :; - } - break ; - - case GB_SECONDI_binop_code : // z = second_i(x,B(i,j)) == i - - switch (zcode) - { - case GB_INT32_code : return ("GxB_SECONDI_INT32") ; - case GB_INT64_code : return ("GxB_SECONDI_INT64") ; - default :; - } - break ; - - case GB_SECONDI1_binop_code : // z = second_i1(x,B(i,j)) == i+1 - - switch (zcode) - { - case GB_INT32_code : return ("GxB_SECONDI1_INT32") ; - case GB_INT64_code : return ("GxB_SECONDI1_INT64") ; - default :; - } - break ; - - case GB_SECONDJ_binop_code : // z = second_j(x,B(i,j)) == j - - switch (zcode) - { - case GB_INT32_code : return ("GxB_SECONDJ_INT32") ; - case GB_INT64_code : return ("GxB_SECONDJ_INT64") ; - default :; - } - break ; - - case GB_SECONDJ1_binop_code : // z = second_j1(x,B(i,j)) == j+1 - - switch (zcode) - { - case GB_INT32_code : return ("GxB_SECONDJ1_INT32") ; - case GB_INT64_code : return ("GxB_SECONDJ1_INT64") ; - default :; - } - break ; - - //---------------------------------------------------------------------- - // user-defined operators - //---------------------------------------------------------------------- - - case GB_USER_unop_code : - case GB_USER_idxunop_code : - case GB_USER_binop_code : return (op->user_name) ; - - //---------------------------------------------------------------------- - // operator not recognized - //---------------------------------------------------------------------- - - default :; - } - - return ("") ; -} - diff --git a/Source/GB_op_or_type_string_set.c b/Source/GB_op_or_type_string_set.c deleted file mode 100644 index 2e44f32f0a..0000000000 --- a/Source/GB_op_or_type_string_set.c +++ /dev/null @@ -1,115 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_or_type_string_set: set the name or defn of a user-defined type or op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" -#include -#include "GB_jitifyer.h" - -GrB_Info GB_op_or_type_string_set -( - // input: - bool user_defined, - bool jitable, - char *value, - int field, - // output: - char **user_name, - size_t *user_name_size, - char *name, - int32_t *name_len, - char **defn, - size_t *defn_size, - uint64_t *hash -) -{ - - //-------------------------------------------------------------------------- - // quick return for built-in types and operators - //-------------------------------------------------------------------------- - - if (!user_defined) - { - // built-in type or operator - return (GrB_INVALID_VALUE) ; - } - - //-------------------------------------------------------------------------- - // set the name or defn of a user-defined type or operator - //-------------------------------------------------------------------------- - - size_t len = strlen (value) ; - bool compute_hash = false ; - - switch (field) - { - - case GrB_NAME : - - return (GB_user_name_set (user_name, user_name_size, value, true)) ; - - case GxB_JIT_C_NAME : - - if (name [0] != '\0') - { - return (GrB_ALREADY_SET) ; // GxB_JIT_C_NAME already set - } - - if (len == 0 || len >= GxB_MAX_NAME_LEN) - { - // invalid name: the name cannot be empty, and the name cannot - // exceed GxB_MAX_NAME_LEN-1 characters. - return (GrB_INVALID_VALUE) ; - } - - // set the name - strncpy (name, value, GxB_MAX_NAME_LEN-1) ; - name [GxB_MAX_NAME_LEN-1] = '\0' ; - (*name_len) = (int32_t) len ; - // compute the hash if the type defn has also been set - compute_hash = ((*defn) != NULL) ; - break ; - - case GxB_JIT_C_DEFINITION : - - if ((*defn) != NULL) - { - return (GrB_ALREADY_SET) ; // GxB_JIT_C_DEFINITION already set - } - - // allocate space for the definition - (*defn) = GB_MALLOC (len+1, char, defn_size) ; - if ((*defn) == NULL) - { - // out of memory - return (GrB_OUT_OF_MEMORY) ; - } - - // copy the definition into the new operator - memcpy ((*defn), value, len+1) ; - // compute the hash if the type name has also been set - compute_hash = (name [0] != '[') ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - //-------------------------------------------------------------------------- - // compute the operator hash, if type->name and type->defn are now both set - //-------------------------------------------------------------------------- - - if (compute_hash) - { - // the type name and defn have been set - (*hash) = GB_jitifyer_hash (name, (*name_len), jitable) ; - } - - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_op_scalar_get.c b/Source/GB_op_scalar_get.c deleted file mode 100644 index 74b9a8c9c9..0000000000 --- a/Source/GB_op_scalar_get.c +++ /dev/null @@ -1,34 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_scalar_get: get a field in an op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_op_scalar_get -( - GB_Operator op, - GrB_Scalar value, - GrB_Field field, - GB_Werk Werk -) -{ - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int i ; - GrB_Info info = GB_op_enum_get (op, &i, field) ; - if (info == GrB_SUCCESS) - { - info = GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, - GB_INT32_code, Werk) ; - } - return (info) ; -} - diff --git a/Source/GB_op_size_get.c b/Source/GB_op_size_get.c deleted file mode 100644 index 7ff8fd4d52..0000000000 --- a/Source/GB_op_size_get.c +++ /dev/null @@ -1,66 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_size_get: get the size of a string in an op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_op_size_get -( - GB_Operator op, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - const char *s ; - - switch ((int) field) - { - - case GxB_JIT_C_DEFINITION : - (*value) = (op->defn == NULL) ? 1 : (strlen (op->defn) + 1) ; - #pragma omp flush - return (GrB_SUCCESS) ; - - case GxB_JIT_C_NAME : - (*value) = strlen (op->name) + 1 ; - #pragma omp flush - return (GrB_SUCCESS) ; - - case GrB_NAME : - s = GB_op_name_get (op) ; - (*value) = (s == NULL) ? 1 : (strlen (s) + 1) ; - #pragma omp flush - return (GrB_SUCCESS) ; - - case GrB_INPUT1TYPE_STRING : - s = GB_type_name_get (op->xtype) ; - break ; ; - - case GrB_INPUT2TYPE_STRING : - s = GB_type_name_get (op->ytype) ; - break ; - - case GrB_OUTPUTTYPE_STRING : - s = GB_type_name_get (op->ztype) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - (*value) = (s == NULL) ? 1 : (strlen (s) + 1) ; - - #pragma omp flush - return ((s == NULL) ? GrB_NO_VALUE : GrB_SUCCESS) ; -} - diff --git a/Source/GB_op_string_get.c b/Source/GB_op_string_get.c deleted file mode 100644 index aeb83e1b61..0000000000 --- a/Source/GB_op_string_get.c +++ /dev/null @@ -1,78 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_string_get: get a field in an op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_op_string_get -( - GB_Operator op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - (*value) = '\0' ; - GrB_Type type = NULL ; - const char *name ; - - switch ((int) field) - { - - case GrB_NAME : - - name = GB_op_name_get (op) ; - if (name != NULL) - { - strcpy (value, name) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; - - case GxB_JIT_C_NAME : - - strcpy (value, op->name) ; - #pragma omp flush - return (GrB_SUCCESS) ; - - case GxB_JIT_C_DEFINITION : - - if (op->defn != NULL) - { - strcpy (value, op->defn) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; - - case GrB_INPUT1TYPE_STRING : type = op->xtype ; break ; - case GrB_INPUT2TYPE_STRING : type = op->ytype ; break ; - case GrB_OUTPUTTYPE_STRING : type = op->ztype ; break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - if (type == NULL) - { - // operator does not depend on this input - return (GrB_NO_VALUE) ; - } - - name = GB_type_name_get (type) ; - if (name != NULL) - { - strcpy (value, name) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GB_op_string_set.c b/Source/GB_op_string_set.c deleted file mode 100644 index 6f49a5fbc5..0000000000 --- a/Source/GB_op_string_set.c +++ /dev/null @@ -1,35 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_op_string_set: set the name or defn of an operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_op_string_set -( - GB_Operator op, - char * value, - GrB_Field field -) -{ - - GB_Opcode opcode = op->opcode ; - bool user_defined = (opcode == GB_USER_unop_code) || - (opcode == GB_USER_idxunop_code) || - (opcode == GB_USER_binop_code) ; - - bool jitable = - (op->ztype->hash != UINT64_MAX) && - (op->xtype->hash != UINT64_MAX) && - (op->ytype == NULL || op->ytype->hash != UINT64_MAX) ; - - return (GB_op_or_type_string_set (user_defined, jitable, value, field, - &(op->user_name), &(op->user_name_size), - op->name, &(op->name_len), &(op->defn), &(op->defn_size), - &(op->hash))) ; -} - diff --git a/Source/GB_ops.c b/Source/GB_ops.c index 1d82758af8..4f35cd7e87 100644 --- a/Source/GB_ops.c +++ b/Source/GB_ops.c @@ -38,7 +38,6 @@ 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 */ \ @@ -70,7 +69,6 @@ GB_TYPEDEF (GxB, FC64 , GxB_FC64_t, "GxB_FC64_t") ; 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), \ @@ -142,7 +140,6 @@ GB_DESC (RSCT0T1, GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) 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 */ \ @@ -176,7 +173,6 @@ GB_DESC (RSCT0T1, GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) 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), \ @@ -215,7 +211,6 @@ GB_DESC (RSCT0T1, GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) 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 */ \ @@ -231,7 +226,6 @@ GB_DESC (RSCT0T1, GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) 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 */ \ @@ -281,7 +275,6 @@ GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; 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 */ \ @@ -300,7 +293,6 @@ GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; 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 */ \ @@ -320,7 +312,6 @@ GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; 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 */ \ @@ -338,7 +329,6 @@ GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; 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 */ \ @@ -356,7 +346,6 @@ GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; 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 */ \ @@ -375,7 +364,6 @@ GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; 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 */ \ @@ -500,7 +488,6 @@ GrB_BinaryOp GrB_LXNOR = & GB_OPAQUE (EQ_BOOL) ; 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 @@ -534,7 +521,6 @@ extern void GB_nonzombie_func (bool *z, const void *x, 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 @@ -586,7 +572,6 @@ const GxB_Format_Value GxB_FORMAT_DEFAULT = GxB_BY_ROW ; 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 */ \ @@ -602,7 +587,6 @@ const GxB_Format_Value GxB_FORMAT_DEFAULT = GxB_BY_ROW ; 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 */ \ @@ -776,7 +760,6 @@ GB_MONOID_DEF ( BXNOR_UINT64 , uint64_t , 0xFFFFFFFFFFFFFFFF ) 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 */ \ @@ -789,7 +772,6 @@ GB_MONOID_DEF ( BXNOR_UINT64 , uint64_t , 0xFFFFFFFFFFFFFFFF ) 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 */ \ @@ -1021,8 +1003,7 @@ 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: + // revised by GrB_init: (double) GB_CHUNK_DEFAULT, // chunk 1, // nthreads_max -1, // gpu_id diff --git a/Source/GB_semiring_name_get.c b/Source/GB_semiring_name_get.c deleted file mode 100644 index 54a6d24843..0000000000 --- a/Source/GB_semiring_name_get.c +++ /dev/null @@ -1,3341 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_semiring_name_get: get the name of a built-in semiring -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -const char *GB_semiring_name_get (GrB_Semiring semiring) -{ - - if (semiring->user_name_size > 0) - { - // user-defined semiring, with name defined by GrB_set - return (semiring->user_name) ; - } - - GB_Opcode add_opcode = semiring->add->op->opcode ; - GB_Opcode mult_opcode = semiring->multiply->opcode ; - GB_Type_code zcode = semiring->add->op->ztype->code ; - GB_Type_code xcode = semiring->multiply->xtype->code ; - bool xbool = (xcode == GB_BOOL_code) ; - - switch (mult_opcode) - { - - //---------------------------------------------------------------------- - case GB_FIRST_binop_code : // z = x - //---------------------------------------------------------------------- - - // 61 semirings with FIRST: - // 50: (min,max,plus,times,any) for 10 non-boolean real - // 5: (or,and,xor,eq,any) for boolean - // 6: (plus,times,any) for 2 complex - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MIN_FIRST_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_FIRST_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_FIRST_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_FIRST_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_FIRST_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_FIRST_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_FIRST_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_FIRST_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_FIRST_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_FIRST_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MAX_FIRST_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_FIRST_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_FIRST_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_FIRST_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_FIRST_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_FIRST_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_FIRST_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_FIRST_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_FIRST_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_FIRST_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_FIRST_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_FIRST_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_FIRST_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_FIRST_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_FIRST_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_FIRST_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_FIRST_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_FIRST_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_FIRST_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_FIRST_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_FIRST_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_FIRST_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_FIRST_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_FIRST_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_FIRST_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_FIRST_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_FIRST_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_FIRST_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_FIRST_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_FIRST_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_FIRST_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_FIRST_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_FIRST_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_FIRST_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 11 real and boolean types, plus 2 complex - case GB_BOOL_code : return ("GxB_ANY_FIRST_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_FIRST_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_FIRST_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_FIRST_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_FIRST_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_FIRST_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_FIRST_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_FIRST_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_FIRST_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_FIRST_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_FIRST_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_FIRST_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_FIRST_FC64" ) ; - default: ; - } - break ; - - case GB_LOR_binop_code : if (xbool) return ("GxB_LOR_FIRST_BOOL" ) ; - case GB_LAND_binop_code : if (xbool) return ("GxB_LAND_FIRST_BOOL" ) ; - case GB_EQ_binop_code : if (xbool) return ("GxB_EQ_FIRST_BOOL" ) ; - case GB_LXOR_binop_code : if (xbool) return ("GxB_LXOR_FIRST_BOOL") ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_SECOND_binop_code : // z = y - //---------------------------------------------------------------------- - - // 61 semirings with SECOND: - // 50: (min,max,plus,times,any) for 10 real non-boolean - // 5: (or,and,xor,eq,any) for boolean - // 6: (plus,times,any) for 2 complex - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MIN_SECOND_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_SECOND_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_SECOND_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_SECOND_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_SECOND_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_SECOND_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_SECOND_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_SECOND_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_SECOND_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_SECOND_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MAX_SECOND_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_SECOND_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_SECOND_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_SECOND_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_SECOND_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_SECOND_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_SECOND_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_SECOND_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_SECOND_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_SECOND_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_SECOND_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_SECOND_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_SECOND_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_SECOND_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_SECOND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_SECOND_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_SECOND_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_SECOND_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_SECOND_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_SECOND_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_SECOND_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_SECOND_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_SECOND_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_SECOND_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_SECOND_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_SECOND_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_SECOND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_SECOND_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_SECOND_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_SECOND_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_SECOND_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_SECOND_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_SECOND_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_SECOND_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 11 real and boolean types, plus 2 complex - case GB_BOOL_code : return ("GxB_ANY_SECOND_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_SECOND_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_SECOND_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_SECOND_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_SECOND_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_SECOND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_SECOND_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_SECOND_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_SECOND_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_SECOND_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_SECOND_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_SECOND_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_SECOND_FC64" ) ; - default: ; - } - break ; - - case GB_LOR_binop_code : if (xbool) return ("GxB_LOR_SECOND_BOOL" ) ; - case GB_LAND_binop_code : if (xbool) return ("GxB_LAND_SECOND_BOOL" ) ; - case GB_EQ_binop_code : if (xbool) return ("GxB_EQ_SECOND_BOOL" ) ; - case GB_LXOR_binop_code : if (xbool) return ("GxB_LXOR_SECOND_BOOL") ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_MIN_binop_code : // z = min(x,y) - //---------------------------------------------------------------------- - - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_MIN_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_MIN_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_MIN_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_MIN_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_MIN_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_MIN_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_MIN_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_MIN_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_MIN_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_MIN_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MAX_MIN_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_MIN_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_MIN_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_MIN_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_MIN_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_MIN_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_MIN_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_MIN_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_MIN_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_MIN_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_PLUS_MIN_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_PLUS_MIN_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_PLUS_MIN_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_PLUS_MIN_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_PLUS_MIN_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_PLUS_MIN_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_PLUS_MIN_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_PLUS_MIN_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_PLUS_MIN_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_PLUS_MIN_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_MIN_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_MIN_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_MIN_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_MIN_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_MIN_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_MIN_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_MIN_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_MIN_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_MIN_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_MIN_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_MIN_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_MIN_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_MIN_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_MIN_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_MIN_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_MIN_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_MIN_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_MIN_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_MIN_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_MIN_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_MAX_binop_code : // z = max(x,y) - //---------------------------------------------------------------------- - - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MIN_MAX_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_MAX_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_MAX_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_MAX_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_MAX_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_MAX_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_MAX_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_MAX_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_MAX_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_MAX_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_MAX_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_MAX_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_MAX_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_MAX_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_MAX_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_MAX_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_MAX_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_MAX_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_MAX_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_MAX_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_MAX_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_MAX_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_MAX_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_MAX_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_MAX_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_MAX_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_MAX_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_MAX_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_MAX_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_MAX_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_MAX_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_MAX_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_MAX_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_MAX_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_MAX_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_MAX_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_MAX_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_MAX_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_MAX_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_MAX_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_MAX_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_MAX_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_MAX_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_MAX_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_MAX_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_MAX_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_MAX_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_MAX_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_MAX_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_MAX_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_PLUS_binop_code : // z = x + y - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MIN_PLUS_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_PLUS_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_PLUS_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_PLUS_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_PLUS_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_PLUS_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_PLUS_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_PLUS_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_PLUS_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_PLUS_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MAX_PLUS_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_PLUS_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_PLUS_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_PLUS_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_PLUS_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_PLUS_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_PLUS_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_PLUS_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_PLUS_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_PLUS_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_PLUS_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_PLUS_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_PLUS_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_PLUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_PLUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_PLUS_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_PLUS_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_PLUS_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_PLUS_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_PLUS_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_PLUS_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_PLUS_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_PLUS_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_PLUS_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_PLUS_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_PLUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_PLUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_PLUS_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_PLUS_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_PLUS_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_PLUS_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_PLUS_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_PLUS_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_PLUS_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_ANY_PLUS_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_PLUS_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_PLUS_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_PLUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_PLUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_PLUS_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_PLUS_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_PLUS_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_PLUS_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_PLUS_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_PLUS_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_PLUS_FC64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_MINUS_binop_code : // z = x - y - //---------------------------------------------------------------------- - - // 56 semirings: - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - // 6: (plus,times,any) for 2 complex types - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_MINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_MINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_MINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_MINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_MINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_MINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_MINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_MINUS_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_MINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_MINUS_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_MINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_MINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_MINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_MINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_MINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_MINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_MINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_MINUS_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_MINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_MINUS_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_MINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_MINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_MINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_MINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_MINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_MINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_MINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_MINUS_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_MINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_MINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_MINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_MINUS_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_MINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_MINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_MINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_MINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_MINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_MINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_MINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_MINUS_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_MINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_MINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_MINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_MINUS_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_ANY_MINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_MINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_MINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_MINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_MINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_MINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_MINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_MINUS_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_MINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_MINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_MINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_MINUS_FC64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_ISEQ_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_ISEQ_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_ISEQ_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_ISEQ_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_ISEQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_ISEQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_ISEQ_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_ISEQ_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_ISEQ_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_ISEQ_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_ISEQ_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_ISEQ_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_ISEQ_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_ISEQ_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_ISEQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_ISEQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_ISEQ_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_ISEQ_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_ISEQ_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_ISEQ_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_ISEQ_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_ISEQ_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_ISEQ_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_ISEQ_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_ISEQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_ISEQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_ISEQ_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_ISEQ_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_ISEQ_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_ISEQ_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_ISEQ_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_ISEQ_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_ISEQ_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_ISEQ_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_ISEQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_ISEQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_ISEQ_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_ISEQ_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_ISEQ_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_ISEQ_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_ISEQ_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_ISEQ_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_ISEQ_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_ISEQ_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_ISEQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_ISEQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_ISEQ_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_ISEQ_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_ISEQ_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_ISEQ_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_ISEQ_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_ISNE_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_ISNE_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_ISNE_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_ISNE_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_ISNE_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_ISNE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_ISNE_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_ISNE_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_ISNE_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_ISNE_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_ISNE_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_ISNE_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_ISNE_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_ISNE_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_ISNE_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_ISNE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_ISNE_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_ISNE_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_ISNE_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_ISNE_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_ISNE_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_ISNE_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_ISNE_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_ISNE_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_ISNE_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_ISNE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_ISNE_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_ISNE_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_ISNE_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_ISNE_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_ISNE_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_ISNE_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_ISNE_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_ISNE_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_ISNE_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_ISNE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_ISNE_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_ISNE_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_ISNE_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_ISNE_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_ISNE_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_ISNE_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_ISNE_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_ISNE_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_ISNE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_ISNE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_ISNE_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_ISNE_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_ISNE_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_ISNE_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_ISNE_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_ISGT_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_ISGT_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_ISGT_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_ISGT_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_ISGT_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_ISGT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_ISGT_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_ISGT_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_ISGT_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_ISGT_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_ISGT_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_ISGT_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_ISGT_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_ISGT_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_ISGT_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_ISGT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_ISGT_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_ISGT_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_ISGT_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_ISGT_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_ISGT_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_ISGT_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_ISGT_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_ISGT_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_ISGT_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_ISGT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_ISGT_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_ISGT_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_ISGT_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_ISGT_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_ISGT_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_ISGT_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_ISGT_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_ISGT_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_ISGT_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_ISGT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_ISGT_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_ISGT_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_ISGT_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_ISGT_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_ISGT_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_ISGT_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_ISGT_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_ISGT_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_ISGT_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_ISGT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_ISGT_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_ISGT_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_ISGT_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_ISGT_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_ISGT_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_ISLT_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_ISLT_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_ISLT_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_ISLT_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_ISLT_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_ISLT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_ISLT_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_ISLT_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_ISLT_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_ISLT_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_ISLT_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_ISLT_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_ISLT_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_ISLT_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_ISLT_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_ISLT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_ISLT_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_ISLT_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_ISLT_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_ISLT_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_ISLT_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_ISLT_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_ISLT_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_ISLT_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_ISLT_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_ISLT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_ISLT_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_ISLT_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_ISLT_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_ISLT_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_ISLT_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_ISLT_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_ISLT_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_ISLT_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_ISLT_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_ISLT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_ISLT_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_ISLT_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_ISLT_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_ISLT_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_ISLT_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_ISLT_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_ISLT_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_ISLT_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_ISLT_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_ISLT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_ISLT_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_ISLT_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_ISLT_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_ISLT_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_ISLT_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_ISGE_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_ISGE_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_ISGE_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_ISGE_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_ISGE_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_ISGE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_ISGE_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_ISGE_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_ISGE_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_ISGE_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_ISGE_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_ISGE_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_ISGE_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_ISGE_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_ISGE_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_ISGE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_ISGE_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_ISGE_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_ISGE_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_ISGE_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_ISGE_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_ISGE_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_ISGE_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_ISGE_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_ISGE_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_ISGE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_ISGE_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_ISGE_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_ISGE_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_ISGE_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_ISGE_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_ISGE_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_ISGE_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_ISGE_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_ISGE_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_ISGE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_ISGE_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_ISGE_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_ISGE_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_ISGE_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_ISGE_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_ISGE_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_ISGE_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_ISGE_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_ISGE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_ISGE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_ISGE_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_ISGE_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_ISGE_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_ISGE_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_ISGE_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_ISLE_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_ISLE_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_ISLE_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_ISLE_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_ISLE_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_ISLE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_ISLE_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_ISLE_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_ISLE_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_ISLE_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_ISLE_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_ISLE_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_ISLE_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_ISLE_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_ISLE_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_ISLE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_ISLE_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_ISLE_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_ISLE_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_ISLE_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_ISLE_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_ISLE_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_ISLE_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_ISLE_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_ISLE_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_ISLE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_ISLE_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_ISLE_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_ISLE_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_ISLE_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_ISLE_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_ISLE_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_ISLE_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_ISLE_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_ISLE_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_ISLE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_ISLE_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_ISLE_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_ISLE_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_ISLE_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_ISLE_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_ISLE_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_ISLE_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_ISLE_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_ISLE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_ISLE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_ISLE_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_ISLE_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_ISLE_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_ISLE_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_ISLE_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_RMINUS_binop_code : // z = y - x (reverse minus) - //---------------------------------------------------------------------- - - // 56 semirings: - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - // 6: (plus,times,any) for 2 complex types - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_RMINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_RMINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_RMINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_RMINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_RMINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_RMINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_RMINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_RMINUS_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_RMINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_RMINUS_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_RMINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_RMINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_RMINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_RMINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_RMINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_RMINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_RMINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_RMINUS_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_RMINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_RMINUS_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_RMINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_RMINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_RMINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_RMINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_RMINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_RMINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_RMINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_RMINUS_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_RMINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_RMINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_RMINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_RMINUS_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_RMINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_RMINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_RMINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_RMINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_RMINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_RMINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_RMINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_RMINUS_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_RMINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_RMINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_RMINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_RMINUS_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_ANY_RMINUS_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_RMINUS_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_RMINUS_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_RMINUS_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_RMINUS_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_RMINUS_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_RMINUS_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_RMINUS_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_RMINUS_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_RMINUS_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_RMINUS_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_RMINUS_FC64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_TIMES_binop_code : // z = x * y - //---------------------------------------------------------------------- - - // 56 semirings: - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - // 6: (plus,times,any) for 2 complex types - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MIN_TIMES_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MIN_TIMES_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MIN_TIMES_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MIN_TIMES_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MIN_TIMES_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MIN_TIMES_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MIN_TIMES_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MIN_TIMES_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MIN_TIMES_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MIN_TIMES_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GrB_MAX_TIMES_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_MAX_TIMES_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_MAX_TIMES_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_MAX_TIMES_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_MAX_TIMES_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_MAX_TIMES_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_MAX_TIMES_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_MAX_TIMES_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_MAX_TIMES_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_MAX_TIMES_SEMIRING_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GrB_PLUS_TIMES_SEMIRING_INT8" ) ; - case GB_INT16_code : return ("GrB_PLUS_TIMES_SEMIRING_INT16" ) ; - case GB_INT32_code : return ("GrB_PLUS_TIMES_SEMIRING_INT32" ) ; - case GB_INT64_code : return ("GrB_PLUS_TIMES_SEMIRING_INT64" ) ; - case GB_UINT8_code : return ("GrB_PLUS_TIMES_SEMIRING_UINT8" ) ; - case GB_UINT16_code : return ("GrB_PLUS_TIMES_SEMIRING_UINT16") ; - case GB_UINT32_code : return ("GrB_PLUS_TIMES_SEMIRING_UINT32") ; - case GB_UINT64_code : return ("GrB_PLUS_TIMES_SEMIRING_UINT64") ; - case GB_FP32_code : return ("GrB_PLUS_TIMES_SEMIRING_FP32" ) ; - case GB_FP64_code : return ("GrB_PLUS_TIMES_SEMIRING_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_TIMES_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_TIMES_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_TIMES_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_TIMES_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_TIMES_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_TIMES_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_TIMES_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_TIMES_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_TIMES_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_TIMES_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_TIMES_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_TIMES_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_TIMES_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_TIMES_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_ANY_TIMES_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_TIMES_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_TIMES_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_TIMES_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_TIMES_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_TIMES_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_TIMES_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_TIMES_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_TIMES_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_TIMES_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_TIMES_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_TIMES_FC64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_DIV_binop_code : // z = x / y - //---------------------------------------------------------------------- - - // 56 semirings: - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - // 6: (plus,times,any) for 2 complex types - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_DIV_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_DIV_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_DIV_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_DIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_DIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_DIV_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_DIV_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_DIV_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_DIV_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_DIV_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_DIV_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_DIV_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_DIV_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_DIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_DIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_DIV_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_DIV_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_DIV_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_DIV_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_DIV_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_DIV_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_DIV_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_DIV_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_DIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_DIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_DIV_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_DIV_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_DIV_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_DIV_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_DIV_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_DIV_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_DIV_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_DIV_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_DIV_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_DIV_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_DIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_DIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_DIV_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_DIV_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_DIV_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_DIV_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_DIV_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_DIV_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_DIV_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_ANY_DIV_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_DIV_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_DIV_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_DIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_DIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_DIV_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_DIV_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_DIV_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_DIV_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_DIV_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_DIV_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_DIV_FC64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_RDIV_binop_code : // z = y / x (reverse division) - //---------------------------------------------------------------------- - - // 56 semirings: - // 50 semirings: (min,max,plus,times,any) for 10 real non-boolean - // 6: (plus,times,any) for 2 complex types - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_RDIV_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_RDIV_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_RDIV_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_RDIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_RDIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_RDIV_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_RDIV_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_RDIV_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_RDIV_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_RDIV_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_RDIV_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_RDIV_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_RDIV_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_RDIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_RDIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_RDIV_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_RDIV_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_RDIV_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_RDIV_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_RDIV_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_RDIV_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_RDIV_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_RDIV_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_RDIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_RDIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_RDIV_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_RDIV_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_RDIV_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_RDIV_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_RDIV_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_RDIV_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_RDIV_FC64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_TIMES_RDIV_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_RDIV_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_RDIV_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_RDIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_RDIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_RDIV_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_RDIV_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_RDIV_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_RDIV_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_RDIV_FP64" ) ; - case GB_FC32_code : return ("GxB_TIMES_RDIV_FC32" ) ; - case GB_FC64_code : return ("GxB_TIMES_RDIV_FC64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_ANY_RDIV_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_RDIV_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_RDIV_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_RDIV_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_RDIV_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_RDIV_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_RDIV_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_RDIV_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_RDIV_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_RDIV_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_RDIV_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_RDIV_FC64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_EQ_binop_code : // z = (x == y) - //---------------------------------------------------------------------- - - // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) - - switch (add_opcode) - { - - case GB_LOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LOR_EQ_BOOL" ) ; - case GB_INT8_code : return ("GxB_LOR_EQ_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_EQ_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_EQ_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_EQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_EQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_EQ_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_EQ_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_EQ_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_EQ_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_EQ_FP64" ) ; - default: ; - } - break ; - - case GB_LAND_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LAND_EQ_BOOL" ) ; - case GB_INT8_code : return ("GxB_LAND_EQ_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_EQ_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_EQ_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_EQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_EQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_EQ_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_EQ_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_EQ_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_EQ_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_EQ_FP64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LXOR_EQ_BOOL" ) ; - case GB_INT8_code : return ("GxB_LXOR_EQ_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_EQ_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_EQ_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_EQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_EQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_EQ_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_EQ_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_EQ_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_EQ_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_EQ_FP64" ) ; - default: ; - } - break ; - - case GB_EQ_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_EQ_EQ_BOOL" ) ; - case GB_INT8_code : return ("GxB_EQ_EQ_INT8" ) ; - case GB_INT16_code : return ("GxB_EQ_EQ_INT16" ) ; - case GB_INT32_code : return ("GxB_EQ_EQ_INT32" ) ; - case GB_INT64_code : return ("GxB_EQ_EQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_EQ_EQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_EQ_EQ_UINT16") ; - case GB_UINT32_code : return ("GxB_EQ_EQ_UINT32") ; - case GB_UINT64_code : return ("GxB_EQ_EQ_UINT64") ; - case GB_FP32_code : return ("GxB_EQ_EQ_FP32" ) ; - case GB_FP64_code : return ("GxB_EQ_EQ_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_ANY_EQ_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_EQ_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_EQ_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_EQ_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_EQ_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_EQ_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_EQ_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_EQ_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_EQ_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_EQ_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_EQ_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_NE_binop_code : // z = (x != y) - //---------------------------------------------------------------------- - - // 50 semirings: (and,or,xor,eq,any) * (10 real non-boolean types) - - switch (add_opcode) - { - - case GB_LOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_LOR_NE_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_NE_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_NE_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_NE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_NE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_NE_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_NE_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_NE_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_NE_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_NE_FP64" ) ; - default: ; - } - break ; - - case GB_LAND_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_LAND_NE_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_NE_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_NE_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_NE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_NE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_NE_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_NE_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_NE_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_NE_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_NE_FP64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_LXOR_NE_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_NE_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_NE_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_NE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_NE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_NE_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_NE_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_NE_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_NE_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_NE_FP64" ) ; - default: ; - } - break ; - - case GB_EQ_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_EQ_NE_INT8" ) ; - case GB_INT16_code : return ("GxB_EQ_NE_INT16" ) ; - case GB_INT32_code : return ("GxB_EQ_NE_INT32" ) ; - case GB_INT64_code : return ("GxB_EQ_NE_INT64" ) ; - case GB_UINT8_code : return ("GxB_EQ_NE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_EQ_NE_UINT16") ; - case GB_UINT32_code : return ("GxB_EQ_NE_UINT32") ; - case GB_UINT64_code : return ("GxB_EQ_NE_UINT64") ; - case GB_FP32_code : return ("GxB_EQ_NE_FP32" ) ; - case GB_FP64_code : return ("GxB_EQ_NE_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_ANY_NE_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_NE_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_NE_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_NE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_NE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_NE_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_NE_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_NE_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_NE_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_NE_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_GT_binop_code : // z = (x > y) - //---------------------------------------------------------------------- - - // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) - - switch (add_opcode) - { - - case GB_LOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LOR_GT_BOOL" ) ; - case GB_INT8_code : return ("GxB_LOR_GT_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_GT_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_GT_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_GT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_GT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_GT_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_GT_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_GT_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_GT_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_GT_FP64" ) ; - default: ; - } - break ; - - case GB_LAND_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LAND_GT_BOOL" ) ; - case GB_INT8_code : return ("GxB_LAND_GT_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_GT_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_GT_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_GT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_GT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_GT_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_GT_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_GT_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_GT_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_GT_FP64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LXOR_GT_BOOL" ) ; - case GB_INT8_code : return ("GxB_LXOR_GT_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_GT_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_GT_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_GT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_GT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_GT_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_GT_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_GT_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_GT_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_GT_FP64" ) ; - default: ; - } - break ; - - case GB_EQ_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_EQ_GT_BOOL" ) ; - case GB_INT8_code : return ("GxB_EQ_GT_INT8" ) ; - case GB_INT16_code : return ("GxB_EQ_GT_INT16" ) ; - case GB_INT32_code : return ("GxB_EQ_GT_INT32" ) ; - case GB_INT64_code : return ("GxB_EQ_GT_INT64" ) ; - case GB_UINT8_code : return ("GxB_EQ_GT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_EQ_GT_UINT16") ; - case GB_UINT32_code : return ("GxB_EQ_GT_UINT32") ; - case GB_UINT64_code : return ("GxB_EQ_GT_UINT64") ; - case GB_FP32_code : return ("GxB_EQ_GT_FP32" ) ; - case GB_FP64_code : return ("GxB_EQ_GT_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_ANY_GT_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_GT_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_GT_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_GT_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_GT_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_GT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_GT_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_GT_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_GT_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_GT_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_GT_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_LT_binop_code : // z = (x < y) - //---------------------------------------------------------------------- - - // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) - - switch (add_opcode) - { - - case GB_LOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LOR_LT_BOOL" ) ; - case GB_INT8_code : return ("GxB_LOR_LT_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_LT_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_LT_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_LT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_LT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_LT_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_LT_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_LT_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_LT_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_LT_FP64" ) ; - default: ; - } - break ; - - case GB_LAND_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LAND_LT_BOOL" ) ; - case GB_INT8_code : return ("GxB_LAND_LT_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_LT_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_LT_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_LT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_LT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_LT_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_LT_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_LT_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_LT_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_LT_FP64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LXOR_LT_BOOL" ) ; - case GB_INT8_code : return ("GxB_LXOR_LT_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_LT_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_LT_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_LT_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_LT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_LT_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_LT_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_LT_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_LT_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_LT_FP64" ) ; - default: ; - } - break ; - - case GB_EQ_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_EQ_LT_BOOL" ) ; - case GB_INT8_code : return ("GxB_EQ_LT_INT8" ) ; - case GB_INT16_code : return ("GxB_EQ_LT_INT16" ) ; - case GB_INT32_code : return ("GxB_EQ_LT_INT32" ) ; - case GB_INT64_code : return ("GxB_EQ_LT_INT64" ) ; - case GB_UINT8_code : return ("GxB_EQ_LT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_EQ_LT_UINT16") ; - case GB_UINT32_code : return ("GxB_EQ_LT_UINT32") ; - case GB_UINT64_code : return ("GxB_EQ_LT_UINT64") ; - case GB_FP32_code : return ("GxB_EQ_LT_FP32" ) ; - case GB_FP64_code : return ("GxB_EQ_LT_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_ANY_LT_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_LT_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_LT_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_LT_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_LT_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_LT_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_LT_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_LT_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_LT_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_LT_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_LT_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_GE_binop_code : // z = (x >= y) - //---------------------------------------------------------------------- - - // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) - - switch (add_opcode) - { - - case GB_LOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LOR_GE_BOOL" ) ; - case GB_INT8_code : return ("GxB_LOR_GE_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_GE_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_GE_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_GE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_GE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_GE_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_GE_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_GE_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_GE_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_GE_FP64" ) ; - default: ; - } - break ; - - case GB_LAND_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LAND_GE_BOOL" ) ; - case GB_INT8_code : return ("GxB_LAND_GE_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_GE_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_GE_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_GE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_GE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_GE_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_GE_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_GE_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_GE_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_GE_FP64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LXOR_GE_BOOL" ) ; - case GB_INT8_code : return ("GxB_LXOR_GE_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_GE_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_GE_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_GE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_GE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_GE_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_GE_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_GE_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_GE_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_GE_FP64" ) ; - default: ; - } - break ; - - case GB_EQ_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_EQ_GE_BOOL" ) ; - case GB_INT8_code : return ("GxB_EQ_GE_INT8" ) ; - case GB_INT16_code : return ("GxB_EQ_GE_INT16" ) ; - case GB_INT32_code : return ("GxB_EQ_GE_INT32" ) ; - case GB_INT64_code : return ("GxB_EQ_GE_INT64" ) ; - case GB_UINT8_code : return ("GxB_EQ_GE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_EQ_GE_UINT16") ; - case GB_UINT32_code : return ("GxB_EQ_GE_UINT32") ; - case GB_UINT64_code : return ("GxB_EQ_GE_UINT64") ; - case GB_FP32_code : return ("GxB_EQ_GE_FP32" ) ; - case GB_FP64_code : return ("GxB_EQ_GE_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_ANY_GE_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_GE_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_GE_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_GE_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_GE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_GE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_GE_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_GE_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_GE_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_GE_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_GE_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_LE_binop_code : // z = (x <= y) - //---------------------------------------------------------------------- - - // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) - - switch (add_opcode) - { - - case GB_LOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LOR_LE_BOOL" ) ; - case GB_INT8_code : return ("GxB_LOR_LE_INT8" ) ; - case GB_INT16_code : return ("GxB_LOR_LE_INT16" ) ; - case GB_INT32_code : return ("GxB_LOR_LE_INT32" ) ; - case GB_INT64_code : return ("GxB_LOR_LE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LOR_LE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LOR_LE_UINT16") ; - case GB_UINT32_code : return ("GxB_LOR_LE_UINT32") ; - case GB_UINT64_code : return ("GxB_LOR_LE_UINT64") ; - case GB_FP32_code : return ("GxB_LOR_LE_FP32" ) ; - case GB_FP64_code : return ("GxB_LOR_LE_FP64" ) ; - default: ; - } - break ; - - case GB_LAND_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LAND_LE_BOOL" ) ; - case GB_INT8_code : return ("GxB_LAND_LE_INT8" ) ; - case GB_INT16_code : return ("GxB_LAND_LE_INT16" ) ; - case GB_INT32_code : return ("GxB_LAND_LE_INT32" ) ; - case GB_INT64_code : return ("GxB_LAND_LE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LAND_LE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LAND_LE_UINT16") ; - case GB_UINT32_code : return ("GxB_LAND_LE_UINT32") ; - case GB_UINT64_code : return ("GxB_LAND_LE_UINT64") ; - case GB_FP32_code : return ("GxB_LAND_LE_FP32" ) ; - case GB_FP64_code : return ("GxB_LAND_LE_FP64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_LXOR_LE_BOOL" ) ; - case GB_INT8_code : return ("GxB_LXOR_LE_INT8" ) ; - case GB_INT16_code : return ("GxB_LXOR_LE_INT16" ) ; - case GB_INT32_code : return ("GxB_LXOR_LE_INT32" ) ; - case GB_INT64_code : return ("GxB_LXOR_LE_INT64" ) ; - case GB_UINT8_code : return ("GxB_LXOR_LE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_LXOR_LE_UINT16") ; - case GB_UINT32_code : return ("GxB_LXOR_LE_UINT32") ; - case GB_UINT64_code : return ("GxB_LXOR_LE_UINT64") ; - case GB_FP32_code : return ("GxB_LXOR_LE_FP32" ) ; - case GB_FP64_code : return ("GxB_LXOR_LE_FP64" ) ; - default: ; - } - break ; - - case GB_EQ_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_EQ_LE_BOOL" ) ; - case GB_INT8_code : return ("GxB_EQ_LE_INT8" ) ; - case GB_INT16_code : return ("GxB_EQ_LE_INT16" ) ; - case GB_INT32_code : return ("GxB_EQ_LE_INT32" ) ; - case GB_INT64_code : return ("GxB_EQ_LE_INT64" ) ; - case GB_UINT8_code : return ("GxB_EQ_LE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_EQ_LE_UINT16") ; - case GB_UINT32_code : return ("GxB_EQ_LE_UINT32") ; - case GB_UINT64_code : return ("GxB_EQ_LE_UINT64") ; - case GB_FP32_code : return ("GxB_EQ_LE_FP32" ) ; - case GB_FP64_code : return ("GxB_EQ_LE_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus boolean - case GB_BOOL_code : return ("GxB_ANY_LE_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_LE_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_LE_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_LE_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_LE_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_LE_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_LE_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_LE_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_LE_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_LE_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_LE_FP64" ) ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_PAIR_binop_code : // z = 1 - //---------------------------------------------------------------------- - - // 26 semirings with PAIR: - // 13: ANY_PAIR semirings - // 12: (plus) for 10 real non-boolean and 2 complex - // 1: (xor) for boolean - - switch (add_opcode) - { - - case GB_MIN_binop_code: - case GB_MAX_binop_code: - case GB_TIMES_binop_code: - case GB_LOR_binop_code: - case GB_LAND_binop_code: - case GB_EQ_binop_code: - case GB_ANY_binop_code: - - switch (xcode) - { - // 11 real and boolean types, plus 2 complex - case GB_BOOL_code : return ("GxB_ANY_PAIR_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_PAIR_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_PAIR_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_PAIR_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_PAIR_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_PAIR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_PAIR_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_PAIR_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_PAIR_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_PAIR_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_PAIR_FP64" ) ; - case GB_FC32_code : return ("GxB_ANY_PAIR_FC32" ) ; - case GB_FC64_code : return ("GxB_ANY_PAIR_FC64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types, plus 2 complex - case GB_INT8_code : return ("GxB_PLUS_PAIR_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_PAIR_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_PAIR_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_PAIR_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_PAIR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_PAIR_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_PAIR_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_PAIR_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_PAIR_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_PAIR_FP64" ) ; - case GB_FC32_code : return ("GxB_PLUS_PAIR_FC32" ) ; - case GB_FC64_code : return ("GxB_PLUS_PAIR_FC64" ) ; - default: ; - } - break ; - - case GB_LXOR_binop_code : if (xbool) return ("GxB_LXOR_PAIR_BOOL") ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_LOR_binop_code : // z = x || y - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_LOR_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_LOR_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_LOR_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_LOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_LOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_LOR_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_LOR_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_LOR_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_LOR_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_LOR_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_LOR_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_LOR_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_LOR_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_LOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_LOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_LOR_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_LOR_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_LOR_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_LOR_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_LOR_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_LOR_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_LOR_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_LOR_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_LOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_LOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_LOR_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_LOR_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_LOR_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_LOR_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_LOR_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_LOR_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_LOR_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_LOR_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_LOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_LOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_LOR_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_LOR_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_LOR_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_LOR_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_LOR_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 11 real and boolean types - case GB_BOOL_code : return ("GxB_ANY_LOR_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_LOR_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_LOR_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_LOR_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_LOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_LOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_LOR_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_LOR_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_LOR_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_LOR_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_LOR_FP64" ) ; - default: ; - } - break ; - - case GB_LOR_binop_code : if (xbool) return ("GxB_LOR_LOR_BOOL" ) ; - case GB_LAND_binop_code : if (xbool) return ("GrB_LAND_LOR_SEMIRING_BOOL" ) ; - case GB_EQ_binop_code : if (xbool) return ("GrB_LXNOR_LOR_SEMIRING_BOOL") ; - case GB_LXOR_binop_code : if (xbool) return ("GxB_LXOR_LOR_BOOL" ) ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_LAND_binop_code : // z = x && y - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_LAND_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_LAND_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_LAND_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_LAND_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_LAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_LAND_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_LAND_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_LAND_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_LAND_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_LAND_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_LAND_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_LAND_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_LAND_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_LAND_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_LAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_LAND_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_LAND_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_LAND_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_LAND_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_LAND_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_LAND_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_LAND_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_LAND_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_LAND_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_LAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_LAND_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_LAND_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_LAND_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_LAND_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_LAND_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_LAND_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_LAND_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_LAND_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_LAND_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_LAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_LAND_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_LAND_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_LAND_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_LAND_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_LAND_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 11 real and boolean types - case GB_BOOL_code : return ("GxB_ANY_LAND_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_LAND_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_LAND_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_LAND_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_LAND_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_LAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_LAND_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_LAND_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_LAND_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_LAND_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_LAND_FP64" ) ; - default: ; - } - break ; - - case GB_LOR_binop_code : if (xbool) return ("GrB_LOR_LAND_SEMIRING_BOOL" ) ; - case GB_LAND_binop_code : if (xbool) return ("GxB_LAND_LAND_BOOL" ) ; - case GB_EQ_binop_code : if (xbool) return ("GxB_EQ_LAND_BOOL" ) ; - case GB_LXOR_binop_code : if (xbool) return ("GrB_LXOR_LAND_SEMIRING_BOOL") ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_LXOR_binop_code : // z = x != y - //---------------------------------------------------------------------- - - switch (add_opcode) - { - - case GB_MIN_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MIN_LXOR_INT8" ) ; - case GB_INT16_code : return ("GxB_MIN_LXOR_INT16" ) ; - case GB_INT32_code : return ("GxB_MIN_LXOR_INT32" ) ; - case GB_INT64_code : return ("GxB_MIN_LXOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_MIN_LXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MIN_LXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_MIN_LXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_MIN_LXOR_UINT64") ; - case GB_FP32_code : return ("GxB_MIN_LXOR_FP32" ) ; - case GB_FP64_code : return ("GxB_MIN_LXOR_FP64" ) ; - default: ; - } - break ; - - case GB_MAX_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_MAX_LXOR_INT8" ) ; - case GB_INT16_code : return ("GxB_MAX_LXOR_INT16" ) ; - case GB_INT32_code : return ("GxB_MAX_LXOR_INT32" ) ; - case GB_INT64_code : return ("GxB_MAX_LXOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_MAX_LXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_MAX_LXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_MAX_LXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_MAX_LXOR_UINT64") ; - case GB_FP32_code : return ("GxB_MAX_LXOR_FP32" ) ; - case GB_FP64_code : return ("GxB_MAX_LXOR_FP64" ) ; - default: ; - } - break ; - - case GB_PLUS_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_PLUS_LXOR_INT8" ) ; - case GB_INT16_code : return ("GxB_PLUS_LXOR_INT16" ) ; - case GB_INT32_code : return ("GxB_PLUS_LXOR_INT32" ) ; - case GB_INT64_code : return ("GxB_PLUS_LXOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_PLUS_LXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_PLUS_LXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_PLUS_LXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_PLUS_LXOR_UINT64") ; - case GB_FP32_code : return ("GxB_PLUS_LXOR_FP32" ) ; - case GB_FP64_code : return ("GxB_PLUS_LXOR_FP64" ) ; - default: ; - } - break ; - - case GB_TIMES_binop_code: - - switch (xcode) - { - // 10 real, non-boolean types - case GB_INT8_code : return ("GxB_TIMES_LXOR_INT8" ) ; - case GB_INT16_code : return ("GxB_TIMES_LXOR_INT16" ) ; - case GB_INT32_code : return ("GxB_TIMES_LXOR_INT32" ) ; - case GB_INT64_code : return ("GxB_TIMES_LXOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_TIMES_LXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_TIMES_LXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_TIMES_LXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_TIMES_LXOR_UINT64") ; - case GB_FP32_code : return ("GxB_TIMES_LXOR_FP32" ) ; - case GB_FP64_code : return ("GxB_TIMES_LXOR_FP64" ) ; - default: ; - } - break ; - - case GB_ANY_binop_code: - - switch (xcode) - { - // 11 real and boolean types - case GB_BOOL_code : return ("GxB_ANY_LXOR_BOOL" ) ; - case GB_INT8_code : return ("GxB_ANY_LXOR_INT8" ) ; - case GB_INT16_code : return ("GxB_ANY_LXOR_INT16" ) ; - case GB_INT32_code : return ("GxB_ANY_LXOR_INT32" ) ; - case GB_INT64_code : return ("GxB_ANY_LXOR_INT64" ) ; - case GB_UINT8_code : return ("GxB_ANY_LXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_ANY_LXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_ANY_LXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_ANY_LXOR_UINT64") ; - case GB_FP32_code : return ("GxB_ANY_LXOR_FP32" ) ; - case GB_FP64_code : return ("GxB_ANY_LXOR_FP64" ) ; - default: ; - } - break ; - - case GB_LOR_binop_code : if (xbool) return ("GxB_LOR_LXOR_BOOL" ) ; - case GB_LAND_binop_code : if (xbool) return ("GxB_LAND_LXOR_BOOL" ) ; - case GB_EQ_binop_code : if (xbool) return ("GxB_EQ_LXOR_BOOL" ) ; - case GB_LXOR_binop_code : if (xbool) return ("GxB_LXOR_LXOR_BOOL" ) ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_BOR_binop_code : // z = (x | y), bitwise or - //---------------------------------------------------------------------- - - // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) - - switch (add_opcode) - { - - case GB_BOR_binop_code : // z = (x | y), bitwise or - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BOR_BOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BOR_BOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BOR_BOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BOR_BOR_UINT64") ; - default: ; - } - break ; - - case GB_BAND_binop_code : // z = (x & y), bitwise and - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BAND_BOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BAND_BOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BAND_BOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BAND_BOR_UINT64") ; - default: ; - } - break ; - - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXOR_BOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXOR_BOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BXOR_BOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BXOR_BOR_UINT64") ; - default: ; - } - break ; - - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXNOR_BOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXNOR_BOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BXNOR_BOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BXNOR_BOR_UINT64") ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_BAND_binop_code : // z = (x & y), bitwise and - //---------------------------------------------------------------------- - - // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) - - switch (add_opcode) - { - - case GB_BOR_binop_code : // z = (x | y), bitwise or - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BOR_BAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BOR_BAND_UINT16") ; - case GB_UINT32_code : return ("GxB_BOR_BAND_UINT32") ; - case GB_UINT64_code : return ("GxB_BOR_BAND_UINT64") ; - default: ; - } - break ; - - case GB_BAND_binop_code : // z = (x & y), bitwise and - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BAND_BAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BAND_BAND_UINT16") ; - case GB_UINT32_code : return ("GxB_BAND_BAND_UINT32") ; - case GB_UINT64_code : return ("GxB_BAND_BAND_UINT64") ; - default: ; - } - break ; - - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXOR_BAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXOR_BAND_UINT16") ; - case GB_UINT32_code : return ("GxB_BXOR_BAND_UINT32") ; - case GB_UINT64_code : return ("GxB_BXOR_BAND_UINT64") ; - default: ; - } - break ; - - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXNOR_BAND_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXNOR_BAND_UINT16") ; - case GB_UINT32_code : return ("GxB_BXNOR_BAND_UINT32") ; - case GB_UINT64_code : return ("GxB_BXNOR_BAND_UINT64") ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - //---------------------------------------------------------------------- - - // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) - - switch (add_opcode) - { - - case GB_BOR_binop_code : // z = (x | y), bitwise or - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BOR_BXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BOR_BXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BOR_BXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BOR_BXOR_UINT64") ; - default: ; - } - break ; - - case GB_BAND_binop_code : // z = (x & y), bitwise and - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BAND_BXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BAND_BXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BAND_BXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BAND_BXOR_UINT64") ; - default: ; - } - break ; - - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXOR_BXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXOR_BXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BXOR_BXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BXOR_BXOR_UINT64") ; - default: ; - } - break ; - - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXNOR_BXOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXNOR_BXOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BXNOR_BXOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BXNOR_BXOR_UINT64") ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - //---------------------------------------------------------------------- - - // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) - - switch (add_opcode) - { - - case GB_BOR_binop_code : // z = (x | y), bitwise or - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BOR_BXNOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BOR_BXNOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BOR_BXNOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BOR_BXNOR_UINT64") ; - default: ; - } - break ; - - case GB_BAND_binop_code : // z = (x & y), bitwise and - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BAND_BXNOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BAND_BXNOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BAND_BXNOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BAND_BXNOR_UINT64") ; - default: ; - } - break ; - - case GB_BXOR_binop_code : // z = (x ^ y), bitwise xor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXOR_BXNOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXOR_BXNOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BXOR_BXNOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BXOR_BXNOR_UINT64") ; - default: ; - } - break ; - - case GB_BXNOR_binop_code : // z = ~(x ^ y), bitwise xnor - - switch (zcode) - { - case GB_UINT8_code : return ("GxB_BXNOR_BXNOR_UINT8" ) ; - case GB_UINT16_code : return ("GxB_BXNOR_BXNOR_UINT16") ; - case GB_UINT32_code : return ("GxB_BXNOR_BXNOR_UINT32") ; - case GB_UINT64_code : return ("GxB_BXNOR_BXNOR_UINT64") ; - default: ; - } - break ; - - default: ; - } - break ; - - //---------------------------------------------------------------------- - case GB_FIRSTI_binop_code : // z = first_i(A(i,k),y) == i - //---------------------------------------------------------------------- - - // 10 semirings: (min,max,times,plus,any) * (int32,int64) - - if (zcode == GB_INT32_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_FIRSTI_INT32" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_FIRSTI_INT32" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_FIRSTI_INT32") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_FIRSTI_INT32" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_FIRSTI_INT32" ) ; - default: ; - } - } - else if (zcode == GB_INT64_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_FIRSTI_INT64" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_FIRSTI_INT64" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_FIRSTI_INT64") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_FIRSTI_INT64" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_FIRSTI_INT64" ) ; - default: ; - } - } - break ; - - //---------------------------------------------------------------------- - case GB_FIRSTI1_binop_code : // z = first_i1(A(i,k),y) == i+1 - //---------------------------------------------------------------------- - - // 10 semirings: (min,max,times,plus,any) * (int32,int64) - - if (zcode == GB_INT32_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_FIRSTI1_INT32" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_FIRSTI1_INT32" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_FIRSTI1_INT32") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_FIRSTI1_INT32" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_FIRSTI1_INT32" ) ; - default: ; - } - } - else if (zcode == GB_INT64_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_FIRSTI1_INT64" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_FIRSTI1_INT64" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_FIRSTI1_INT64") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_FIRSTI1_INT64" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_FIRSTI1_INT64" ) ; - default: ; - } - } - break ; - - //---------------------------------------------------------------------- - case GB_FIRSTJ_binop_code : // z = first_j(A(i,k),y) == k - case GB_SECONDI_binop_code : // z = second_i(x,B(k,j)) == k - //---------------------------------------------------------------------- - - // 10 semirings: (min,max,times,plus,any) * (int32,int64) - // FIRSTJ and SECONDI are identical when used in a semiring - - if (zcode == GB_INT32_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDI_INT32" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDI_INT32" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDI_INT32") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDI_INT32" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDI_INT32" ) ; - default: ; - } - } - else if (zcode == GB_INT64_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDI_INT64" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDI_INT64" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDI_INT64") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDI_INT64" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDI_INT64" ) ; - default: ; - } - } - break ; - - //---------------------------------------------------------------------- - case GB_FIRSTJ1_binop_code : // z = first_j1(A(i,k),y) == k+1 - case GB_SECONDI1_binop_code : // z = second_i1(x,B(k,j)) == k+1 - //---------------------------------------------------------------------- - - // 10 semirings: (min,max,times,plus,any) * (int32,int64) - // FIRSTJ1 and SECONDI1 are identical when used in a semiring - - if (zcode == GB_INT32_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDI1_INT32" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDI1_INT32" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDI1_INT32") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDI1_INT32" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDI1_INT32" ) ; - default: ; - } - } - else if (zcode == GB_INT64_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDI1_INT64" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDI1_INT64" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDI1_INT64") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDI1_INT64" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDI1_INT64" ) ; - default: ; - } - } - break ; - - //---------------------------------------------------------------------- - case GB_SECONDJ_binop_code : // z = second_j(x,B(i,j)) == j - //---------------------------------------------------------------------- - - // 10 semirings: (min,max,times,plus,any) * (int32,int64) - - if (zcode == GB_INT32_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDJ_INT32" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDJ_INT32" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDJ_INT32") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDJ_INT32" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDJ_INT32" ) ; - default: ; - } - } - else if (zcode == GB_INT64_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDJ_INT64" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDJ_INT64" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDJ_INT64") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDJ_INT64" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDJ_INT64" ) ; - default: ; - } - } - break ; - - //---------------------------------------------------------------------- - case GB_SECONDJ1_binop_code : // z = second_j1(x,B(i,j)) == j+1 - //---------------------------------------------------------------------- - - // 10 semirings: (min,max,times,plus,any) * (int32,int64) - - if (zcode == GB_INT32_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDJ1_INT32" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDJ1_INT32" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDJ1_INT32") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDJ1_INT32" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDJ1_INT32" ) ; - default: ; - } - } - else if (zcode == GB_INT64_code) - { - switch (add_opcode) - { - case GB_MIN_binop_code : return ("GxB_MIN_SECONDJ1_INT64" ) ; - case GB_MAX_binop_code : return ("GxB_MAX_SECONDJ1_INT64" ) ; - case GB_TIMES_binop_code : return ("GxB_TIMES_SECONDJ1_INT64") ; - case GB_PLUS_binop_code : return ("GxB_PLUS_SECONDJ1_INT64" ) ; - case GB_ANY_binop_code : return ("GxB_ANY_SECONDJ1_INT64" ) ; - default: ; - } - } - break ; - - default: ; - } - - return (NULL) ; -} - diff --git a/Source/GB_serialize.c b/Source/GB_serialize.c index 395dd5881d..87d61396a0 100644 --- a/Source/GB_serialize.c +++ b/Source/GB_serialize.c @@ -14,7 +14,6 @@ // estimate the size of the blob for GrB_Matrix_serializeSize. #include "GB.h" -#include "GB_get_set.h" #include "GB_serialize.h" #define GB_FREE_WORKSPACE \ @@ -244,14 +243,6 @@ GrB_Info GB_serialize // serialize a matrix into a blob s += Ai_compressed_size ; s += Ax_compressed_size ; - // size of the GrB_NAME and GrB_ELTYPE_STRING, including one nul byte each - char *user_name = A->user_name ; - size_t user_name_len = (user_name == NULL) ? 0 : strlen (user_name) ; - const char *eltype_string = GB_type_name_get (A->type) ; - size_t eltype_string_len = (eltype_string == NULL) ? 0 : - strlen (eltype_string) ; - s += (user_name_len + 1) + (eltype_string_len + 1) ; - //-------------------------------------------------------------------------- // return the upper bound estimate of the blob size, for dryrun //-------------------------------------------------------------------------- @@ -371,28 +362,6 @@ GrB_Info GB_serialize // serialize a matrix into a blob GB_serialize_to_blob (blob, &s, Ax_Blocks, Ax_Sblocks+1, Ax_nblocks, nthreads_max) ; - //-------------------------------------------------------------------------- - // append the GrB_NAME and GrB_ELTYPE_STRING to the blob - //-------------------------------------------------------------------------- - - if (user_name != NULL) - { - // write the GrB_NAME of the matrix (including the nul byte) -// printf ("serialize user_name %lu:[%s]\n", s, user_name) ; - strcpy ((char *) (blob + s), user_name) ; - s += user_name_len ; - } - blob [s++] = 0 ; // terminate the GrB_NAME with a nul byte - - if (eltype_string != NULL) - { - // write the ELTYPE_STRING of the matrix type (including the nul byte) -// printf ("serialize eltype_string %lu:[%s]\n", s, eltype_string) ; - strcpy ((char *) (blob + s), eltype_string) ; - s += eltype_string_len ; - } - blob [s++] = 0 ; // terminate the GrB_ELTYPE_STRING with a nul byte - ASSERT (s == blob_size_required) ; //-------------------------------------------------------------------------- diff --git a/Source/GB_serialize.h b/Source/GB_serialize.h index 95c57d88f3..7de0facf18 100644 --- a/Source/GB_serialize.h +++ b/Source/GB_serialize.h @@ -104,37 +104,35 @@ GrB_Info GB_deserialize_from_blob ) ; #define GB_BLOB_HEADER_SIZE \ - sizeof (uint64_t) /* blob_size */ \ - + 11 * sizeof (int64_t) /* vlen, vdim, nvec, nvec_nonempty, */ \ - /* nvals, typesize, A[phbix]_len */ \ - + 14 * sizeof (int32_t) /* version, typecode, sparsity_control, */ \ - /* A[phbix]_nblocks, A[phbix]_method, */ \ - /* sparsity_iso_csc */ \ + sizeof (uint64_t) /* blob_size */ \ + + 11 * sizeof (int64_t) /* vlen, vdim, nvec, nvec_nonempty, */ \ + /* nvals, typesize, A[phbix]_len */ \ + + 14 * sizeof (int32_t) /* version, typecode, sparsity_control, */ \ + /* A[phbix]_nblocks, A[phbix]_method, */ \ + /* sparsity_iso_csc */ \ + 2 * sizeof (float) /* hyper_switch, bitmap_switch */ // write a scalar to the blob -#define GB_BLOB_WRITE(x,type) \ - memcpy (blob + s, &(x), sizeof (type)) ; \ - s += sizeof (type) ; +#define GB_BLOB_WRITE(x,type) \ + memcpy (blob + s, &(x), sizeof (type)) ; s += sizeof (type) ; // write an int64_t array to the blob #define GB_BLOB_WRITES(S,n) \ - if (n > 0) \ - { \ - memcpy (((GB_void *) blob) + s, S + 1, n * sizeof (int64_t)) ; \ - s += n * sizeof (int64_t) ; \ + if (n > 0) \ + { \ + memcpy (((GB_void *) blob) + s, S + 1, n * sizeof (int64_t)) ; \ + s += n * sizeof (int64_t) ; \ } // read a scalar from the blob -#define GB_BLOB_READ(x,type) \ - type x ; \ - memcpy (&x, ((GB_void *) blob) + s, sizeof (type)) ; \ +#define GB_BLOB_READ(x,type) \ + type x ; \ + memcpy (&x, ((GB_void *) blob) + s, sizeof (type)) ; \ s += sizeof (type) ; // get an int64_t pointer to an array in the blob -#define GB_BLOB_READS(S,n) \ - int64_t *S = (int64_t *) (blob + s) ; \ - s += n * sizeof (int64_t) ; +#define GB_BLOB_READS(S,n) \ + int64_t *S = (int64_t *) (blob + s) ; s += n * sizeof (int64_t) ; #endif diff --git a/Source/GB_setElement.c b/Source/GB_setElement.c index f7700461cc..4d2d322dbb 100644 --- a/Source/GB_setElement.c +++ b/Source/GB_setElement.c @@ -223,7 +223,6 @@ GrB_Info GB_setElement // set a single entry, C(row,col) = scalar int64_t pC_start, pC_end ; const int64_t *restrict Ch = C->h ; - const int64_t *restrict Cp = C->p ; if (C->nvals == 0) { // C is empty @@ -232,21 +231,28 @@ GrB_Info GB_setElement // set a single entry, C(row,col) = scalar else if (Ch != NULL) { // C is hypersparse, with at least one entry - const int64_t *restrict C_Yp = (C->Y == NULL) ? NULL : C->Y->p ; - const int64_t *restrict C_Yi = (C->Y == NULL) ? NULL : C->Y->i ; - const int64_t *restrict C_Yx = (C->Y == NULL) ? NULL : C->Y->x ; - const int64_t C_hash_bits = (C->Y == NULL) ? 0 : (C->Y->vdim - 1) ; - const int64_t cnvec = C->nvec ; - int64_t k = GB_hyper_hash_lookup (Ch, cnvec, Cp, C_Yp, C_Yi, C_Yx, - C_hash_bits, j, &pC_start, &pC_end) ; - found = (k >= 0) ; + int64_t k ; + if (C->Y == NULL) + { + // C is hypersparse but does not yet have a hyper_hash + k = 0 ; + found = GB_lookup (true, Ch, C->p, C->vlen, &k, + C->nvec-1, j, &pC_start, &pC_end) ; + } + else + { + // C is hypersparse, with a hyper_hash that is already built + k = GB_hyper_hash_lookup (C->p, C->Y->p, C->Y->i, C->Y->x, + C->Y->vdim-1, j, &pC_start, &pC_end) ; + found = (k >= 0) ; + } ASSERT (GB_IMPLIES (found, j == Ch [k])) ; } else { // C is sparse - pC_start = Cp [j] ; - pC_end = Cp [j+1] ; + pC_start = C->p [j] ; + pC_end = C->p [j+1] ; found = true ; } diff --git a/Source/GB_status_code.c b/Source/GB_status_code.c index 46c24c9cae..180f5baa57 100644 --- a/Source/GB_status_code.c +++ b/Source/GB_status_code.c @@ -30,7 +30,6 @@ const char *GB_status_code (GrB_Info info) case GrB_INDEX_OUT_OF_BOUNDS : return ("GrB_INDEX_OUT_OF_BOUNDS") ; case GrB_PANIC : return ("GrB_PANIC") ; case GrB_NOT_IMPLEMENTED : return ("GrB_NOT_IMPLEMENTED") ; - case GrB_ALREADY_SET : return ("GrB_ALREADY_SET") ; case GrB_EMPTY_OBJECT : return ("GrB_EMPTY_OBJECT") ; default : return ("unknown GrB_Info value!") ; } diff --git a/Source/GB_subassign_06n.c b/Source/GB_subassign_06n.c index 5fc3619e19..f327a14454 100644 --- a/Source/GB_subassign_06n.c +++ b/Source/GB_subassign_06n.c @@ -89,10 +89,10 @@ GrB_Info GB_subassign_06n GrB_BinaryOp accum = NULL ; GB_OK (GB_hyper_hash_build (A, Werk)) ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *restrict A_Yp = (A_is_hyper) ? A->Y->p : NULL ; + const int64_t *restrict A_Yi = (A_is_hyper) ? A->Y->i : NULL ; + const int64_t *restrict A_Yx = (A_is_hyper) ? A->Y->x : NULL ; + const int64_t A_hash_bits = (A_is_hyper) ? (A->Y->vdim - 1) : 0 ; //-------------------------------------------------------------------------- // Method 06n: C(I,J) = A ; no S diff --git a/Source/GB_subref_phase0.c b/Source/GB_subref_phase0.c index b85999dc8c..ead990a359 100644 --- a/Source/GB_subref_phase0.c +++ b/Source/GB_subref_phase0.c @@ -327,10 +327,10 @@ GrB_Info GB_subref_phase0 GB_OK (GB_hyper_hash_build (A, Werk)) ; } - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *restrict A_Yp = (use_hyper_hash) ? A->Y->p : NULL ; + const int64_t *restrict A_Yi = (use_hyper_hash) ? A->Y->i : NULL ; + const int64_t *restrict A_Yx = (use_hyper_hash) ? A->Y->x : NULL ; + const int64_t A_hash_bits = (use_hyper_hash) ? (A->Y->vdim - 1) : 0 ; //-------------------------------------------------------------------------- // determine # of threads to use @@ -486,7 +486,7 @@ GrB_Info GB_subref_phase0 { // find jA using the hyper_hash int64_t ignore1, ignore2 ; - kA = GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, + kA = GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, jA, &ignore1, &ignore2) ; found = (kA >= 0) ; } @@ -683,7 +683,7 @@ GrB_Info GB_subref_phase0 { // find jA using the hyper_hash int64_t ignore1, ignore2 ; - kA = GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, + kA = GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, jA, &ignore1, &ignore2) ; found = (kA >= 0) ; } diff --git a/Source/GB_transplant.c b/Source/GB_transplant.c index d5a8ab19a8..c492d99dc4 100644 --- a/Source/GB_transplant.c +++ b/Source/GB_transplant.c @@ -14,8 +14,8 @@ // shallow. This function is not user-callable. The new type of C (ctype) // must be compatible with A->type. -// C->hyper_switch, C->bitmap_switch, C->sparsity_control, C->static_header, -// C->user_name, and C->user_name_size are not modified by the transplant. +// C->hyper_switch, C->bitmap_switch, C->sparsity_control, and C->static_header +// are not modified by the transplant. #define GB_FREE_ALL \ { \ diff --git a/Source/GB_type_code_get.c b/Source/GB_type_code_get.c deleted file mode 100644 index b0c3609555..0000000000 --- a/Source/GB_type_code_get.c +++ /dev/null @@ -1,38 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_type_code_get: convert a GB_Type_code to a GrB_Type_Code -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Type_Code GB_type_code_get // return the GrB_Type_Code for the code -( - const GB_Type_code code // type code to convert -) -{ - - ASSERT (code >= 0 && code <= GB_UDT_code) ; - switch (code) - { - case GB_BOOL_code : return (GrB_BOOL_CODE) ; - case GB_INT8_code : return (GrB_INT8_CODE) ; - case GB_INT16_code : return (GrB_INT16_CODE) ; - case GB_INT32_code : return (GrB_INT32_CODE) ; - case GB_INT64_code : return (GrB_INT64_CODE) ; - case GB_UINT8_code : return (GrB_UINT8_CODE) ; - case GB_UINT16_code : return (GrB_UINT16_CODE) ; - case GB_UINT32_code : return (GrB_UINT32_CODE) ; - case GB_UINT64_code : return (GrB_UINT64_CODE) ; - case GB_FP32_code : return (GrB_FP32_CODE) ; - case GB_FP64_code : return (GrB_FP64_CODE) ; - case GB_FC32_code : return (GxB_FC32_CODE) ; - case GB_FC64_code : return (GxB_FC64_CODE) ; - default: - case GB_UDT_code : return (GrB_UDT_CODE) ; - } -} - diff --git a/Source/GB_type_name_get.c b/Source/GB_type_name_get.c deleted file mode 100644 index 5ab8f2d278..0000000000 --- a/Source/GB_type_name_get.c +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_type_name_get: get the user_name of a type -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -const char *GB_type_name_get (GrB_Type type) -{ - - if (type == NULL) - { - return (NULL) ; - } - - return (GB_code_name_get (type->code, type->user_name)) ; -} - diff --git a/Source/GB_unop_new.c b/Source/GB_unop_new.c index d4486fc9c5..6b8bee30d4 100644 --- a/Source/GB_unop_new.c +++ b/Source/GB_unop_new.c @@ -42,8 +42,6 @@ GrB_Info GB_unop_new //-------------------------------------------------------------------------- op->magic = GB_MAGIC ; - op->user_name = NULL ; - op->user_name_size = 0 ; op->xtype = xtype ; op->ztype = ztype ; op->ytype = NULL ; @@ -67,6 +65,7 @@ GrB_Info GB_unop_new // output: op->name, &(op->name_len), &(op->hash), &(op->defn), &(op->defn_size), // input: - unop_name, unop_defn, opcode == GB_USER_unop_code, jitable)) ; + unop_name, unop_defn, "GxB_unary_function", 18, + opcode == GB_USER_unop_code, jitable)) ; } diff --git a/Source/GB_user_name_set.c b/Source/GB_user_name_set.c deleted file mode 100644 index 7b9bed82be..0000000000 --- a/Source/GB_user_name_set.c +++ /dev/null @@ -1,58 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_user_name_set: set the user_name of an object -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -GrB_Info GB_user_name_set -( - // input/output - char **object_user_name, // user_name of the object - size_t *object_user_name_size, // user_name_size of the object - // input - const char *new_name, // new name for the object - const bool only_once // if true, the name of the object can - // only be set once -) -{ - - if (only_once && (*object_user_name) != NULL) - { - // types, operators, monoids, and semirings can have their GrB_NAME - // set at most once - return (GrB_ALREADY_SET) ; - } - - // free the object user_name, if it already exists - GB_FREE (object_user_name, (*object_user_name_size)) ; - (*object_user_name_size) = 0 ; - - // get the length of the new name - size_t len = strlen (new_name) ; - if (len == 0) - { - // no new name; leave the object unnamed - return (GrB_SUCCESS) ; - } - - // allocate the new name - size_t user_name_size ; - char *user_name = GB_MALLOC (len + 1, char, &user_name_size) ; - if (user_name == NULL) - { - // out of memory - return (GrB_OUT_OF_MEMORY) ; - } - - // set the new user_name - strcpy (user_name, new_name) ; - (*object_user_name) = user_name ; - (*object_user_name_size) = user_name_size ; - return (GrB_SUCCESS) ; -} - diff --git a/Source/GrB_BinaryOp_get.c b/Source/GrB_BinaryOp_get.c deleted file mode 100644 index 39e0ba7ed0..0000000000 --- a/Source/GrB_BinaryOp_get.c +++ /dev/null @@ -1,149 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_BinaryOp_get_*: get a field in a binary op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_get_Scalar -( - GrB_BinaryOp op, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_BinaryOp_get_Scalar (op, value, field)") ; - if (op != GxB_IGNORE_DUP) - { - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - ASSERT_BINARYOP_OK (op, "binaryop for get", GB0) ; - } - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_scalar_get ((GB_Operator) op, value, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_get_String -( - GrB_BinaryOp op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_BinaryOp_get_String (op, value, field)") ; - if (op != GxB_IGNORE_DUP) - { - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - ASSERT_BINARYOP_OK (op, "binaryop for get", GB0) ; - } - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_string_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_get_INT32 -( - GrB_BinaryOp op, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_BinaryOp_get_INT32 (op, value, field)") ; - if (op != GxB_IGNORE_DUP) - { - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - ASSERT_BINARYOP_OK (op, "binaryop for get", GB0) ; - } - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_enum_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_get_SIZE -( - GrB_BinaryOp op, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_BinaryOp_get_SIZE (op, value, field)") ; - if (op != GxB_IGNORE_DUP) - { - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - ASSERT_BINARYOP_OK (op, "binaryop for get", GB0) ; - } - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_size_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_get_VOID -( - GrB_BinaryOp op, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_BinaryOp_new.c b/Source/GrB_BinaryOp_new.c index ca659a44ad..ee36f2900f 100644 --- a/Source/GrB_BinaryOp_new.c +++ b/Source/GrB_BinaryOp_new.c @@ -7,9 +7,17 @@ //------------------------------------------------------------------------------ +// GrB_BinaryOp_new is implemented both as a macro and a function. Both are +// user-callable. The macro is used by default since it can capture the name +// of the binary function. + #include "GB.h" -GrB_Info GrB_BinaryOp_new +// the macro version of this function must first be #undefined +#undef GrB_BinaryOp_new +#undef GrM_BinaryOp_new + +GrB_Info GRB (BinaryOp_new) ( GrB_BinaryOp *binaryop, // handle for the new binary operator GxB_binary_function function, // pointer to the binary function diff --git a/Source/GrB_BinaryOp_set.c b/Source/GrB_BinaryOp_set.c deleted file mode 100644 index 9a72236c4d..0000000000 --- a/Source/GrB_BinaryOp_set.c +++ /dev/null @@ -1,85 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_BinaryOp_set_*: set a field in a binary op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_set_Scalar -( - GrB_BinaryOp op, - GrB_Scalar value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_set_String -( - GrB_BinaryOp op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_BinaryOp_set_String (op, value, field)") ; - if (op != GxB_IGNORE_DUP) - { - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - ASSERT_BINARYOP_OK (op, "binaryop for set", GB0) ; - } - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_op_string_set ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_set_INT32 -( - GrB_BinaryOp op, - int32_t value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_BinaryOp_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_BinaryOp_set_VOID -( - GrB_BinaryOp op, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Descriptor_free.c b/Source/GrB_Descriptor_free.c index acff7daefd..d39db520d0 100644 --- a/Source/GrB_Descriptor_free.c +++ b/Source/GrB_Descriptor_free.c @@ -25,8 +25,6 @@ GrB_Info GrB_Descriptor_free // free a descriptor if (desc != NULL) { size_t header_size = desc->header_size ; - // free the Descriptor user_name - GB_FREE (&(desc->user_name), desc->user_name_size) ; if (header_size > 0) { GB_FREE (&(desc->logger), desc->logger_size) ; diff --git a/Source/GrB_Descriptor_get2.c b/Source/GrB_Descriptor_get2.c deleted file mode 100644 index 8f9340af52..0000000000 --- a/Source/GrB_Descriptor_get2.c +++ /dev/null @@ -1,283 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Descriptor_get_*: get a field in a descriptor -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ - -static GrB_Info GB_desc_get -( - GrB_Descriptor desc, // descriptor to query; NULL is ok - int32_t *value, // return value of the descriptor - int field // parameter to query -) -{ - - //-------------------------------------------------------------------------- - // get the parameter - //-------------------------------------------------------------------------- - - switch (field) - { - case GrB_OUTP : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->out) ; - break ; - - case GrB_MASK : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->mask) ; - break ; - - case GrB_INP0 : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->in0) ; - break ; - - case GrB_INP1 : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->in1) ; - break ; - - case GxB_AxB_METHOD : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->axb) ; - break ; - - case GxB_SORT : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->do_sort); - break ; - - case GxB_COMPRESSION : - - (*value) = (int32_t) ((desc == NULL) ? - GrB_DEFAULT : desc->compression) ; - break ; - - case GxB_IMPORT : - - (*value) = (int32_t) ((desc == NULL) ? GrB_DEFAULT : desc->import) ; - if ((*value) != GrB_DEFAULT) (*value) = GxB_SECURE_IMPORT ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_get_Scalar -( - GrB_Descriptor desc, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Descriptor_get_Scalar (desc, value, field)") ; - GB_RETURN_IF_FAULTY (desc) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_DESCRIPTOR_OK_OR_NULL (desc, "desc for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int32_t i ; - GrB_Info info = GB_desc_get (desc, &i, field) ; - if (info == GrB_SUCCESS) - { - info = GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, - GB_INT32_code, Werk) ; - } - return (info) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_get_String -//------------------------------------------------------------------------------ - -#define DNAME(d) \ -{ \ - if (desc == d) \ - { \ - strcpy (value, #d) ; \ - return (GrB_SUCCESS) ; \ - } \ -} - -GrB_Info GrB_Descriptor_get_String -( - GrB_Descriptor desc, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Descriptor_get_String (desc, value, field)") ; - GB_RETURN_IF_FAULTY (desc) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_DESCRIPTOR_OK_OR_NULL (desc, "desc for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the name - //-------------------------------------------------------------------------- - - DNAME (GrB_NULL ) ; - DNAME (GrB_DESC_T1 ) ; - DNAME (GrB_DESC_T0 ) ; - DNAME (GrB_DESC_T0T1 ) ; - - DNAME (GrB_DESC_C ) ; - DNAME (GrB_DESC_CT1 ) ; - DNAME (GrB_DESC_CT0 ) ; - DNAME (GrB_DESC_CT0T1 ) ; - - DNAME (GrB_DESC_S ) ; - DNAME (GrB_DESC_ST1 ) ; - DNAME (GrB_DESC_ST0 ) ; - DNAME (GrB_DESC_ST0T1 ) ; - - DNAME (GrB_DESC_SC ) ; - DNAME (GrB_DESC_SCT1 ) ; - DNAME (GrB_DESC_SCT0 ) ; - DNAME (GrB_DESC_SCT0T1 ) ; - - DNAME (GrB_DESC_R ) ; - DNAME (GrB_DESC_RT1 ) ; - DNAME (GrB_DESC_RT0 ) ; - DNAME (GrB_DESC_RT0T1 ) ; - - DNAME (GrB_DESC_RC ) ; - DNAME (GrB_DESC_RCT1 ) ; - DNAME (GrB_DESC_RCT0 ) ; - DNAME (GrB_DESC_RCT0T1 ) ; - - DNAME (GrB_DESC_RS ) ; - DNAME (GrB_DESC_RST1 ) ; - DNAME (GrB_DESC_RST0 ) ; - DNAME (GrB_DESC_RST0T1 ) ; - - DNAME (GrB_DESC_RSC ) ; - DNAME (GrB_DESC_RSCT1 ) ; - DNAME (GrB_DESC_RSCT0 ) ; - DNAME (GrB_DESC_RSCT0T1) ; - - // user-defined descriptor - (*value) = '\0' ; - - if (desc->user_name_size > 0) - { - // user-defined descriptor, with name defined by GrB_set - strcpy (value, desc->user_name) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_get_INT32 -( - GrB_Descriptor desc, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Descriptor_get_INT32 (desc, value, field)") ; - GB_RETURN_IF_FAULTY (desc) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_DESCRIPTOR_OK_OR_NULL (desc, "desc for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_desc_get (desc, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_get_SIZE -( - GrB_Descriptor desc, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Descriptor_get_SIZE (desc, value, field)") ; - GB_RETURN_IF_FAULTY (desc) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_DESCRIPTOR_OK_OR_NULL (desc, "desc for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - if (field != GrB_NAME) - { - return (GrB_INVALID_VALUE) ; - } - - if (desc != NULL && desc->user_name != NULL) - { - (*value) = desc->user_name_size ; - } - else - { - (*value) = GxB_MAX_NAME_LEN ; - } - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_get_VOID -( - GrB_Descriptor desc, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Descriptor_new.c b/Source/GrB_Descriptor_new.c index 7c220179f7..f607a35057 100644 --- a/Source/GrB_Descriptor_new.c +++ b/Source/GrB_Descriptor_new.c @@ -42,8 +42,6 @@ GrB_Info GrB_Descriptor_new // create a new descriptor GrB_Descriptor desc = *descriptor ; desc->magic = GB_MAGIC ; desc->header_size = header_size ; - desc->user_name = NULL ; // user_name for GrB_get/GrB_set - desc->user_name_size = 0 ; desc->logger = NULL ; // error string desc->logger_size = 0 ; desc->out = GxB_DEFAULT ; // descriptor for output diff --git a/Source/GrB_Descriptor_set2.c b/Source/GrB_Descriptor_set2.c deleted file mode 100644 index 0fa1a4b5f3..0000000000 --- a/Source/GrB_Descriptor_set2.c +++ /dev/null @@ -1,260 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Descriptor_set_*: set a field in a descriptor -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GB_desc_set -//------------------------------------------------------------------------------ - -static GrB_Info GB_desc_set -( - GrB_Descriptor desc, // descriptor to modify - int32_t value, // value to change it to - int field, // parameter to change - GB_Werk Werk -) -{ - - //-------------------------------------------------------------------------- - // set the parameter - //-------------------------------------------------------------------------- - - int mask = (int) desc->mask ; - - switch (field) - { - - case GrB_OUTP : // same as GrB_OUTP_FIELD - - if (! (value == GrB_DEFAULT || value == GrB_REPLACE)) - { - GB_ERROR (GrB_INVALID_VALUE, - "invalid descriptor value [%d] for GrB_OUTP field;\n" - "must be GrB_DEFAULT [%d] or GrB_REPLACE [%d]", - value, (int) GrB_DEFAULT, (int) GrB_REPLACE) ; - } - desc->out = (GrB_Desc_Value) value ; - break ; - - case GrB_MASK : // same as GrB_MASK_FIELD - - if (! (value == GrB_DEFAULT || - value == GrB_COMP || - value == GrB_STRUCTURE || - value == (GrB_COMP + GrB_STRUCTURE))) - { - GB_ERROR (GrB_INVALID_VALUE, - "invalid descriptor value [%d] for GrB_MASK field;\n" - "must be GrB_DEFAULT [%d], GrB_COMP [%d],\n" - "GrB_STRUCTURE [%d], or GrB_COMP+GrB_STRUCTURE [%d]", - value, (int) GrB_DEFAULT, (int) GrB_COMP, - (int) GrB_STRUCTURE, - (int) (GrB_COMP + GrB_STRUCTURE)) ; - } - switch (value) - { - case GrB_COMP : mask |= GrB_COMP ; break ; - case GrB_STRUCTURE : mask |= GrB_STRUCTURE ; break ; - default : mask = value ; break ; - } - desc->mask = (GrB_Desc_Value) mask ; - break ; - - case GrB_INP0 : // same as GrB_INP0_FIELD - - if (! (value == GrB_DEFAULT || value == GrB_TRAN)) - { - GB_ERROR (GrB_INVALID_VALUE, - "invalid descriptor value [%d] for GrB_INP0 field;\n" - "must be GrB_DEFAULT [%d] or GrB_TRAN [%d]", - value, (int) GrB_DEFAULT, (int) GrB_TRAN) ; - } - desc->in0 = (GrB_Desc_Value) value ; - break ; - - case GrB_INP1 : // same as GrB_INP1_FIELD - - if (! (value == GrB_DEFAULT || value == GrB_TRAN)) - { - GB_ERROR (GrB_INVALID_VALUE, - "invalid descriptor value [%d] for GrB_INP1 field;\n" - "must be GrB_DEFAULT [%d] or GrB_TRAN [%d]", - value, (int) GrB_DEFAULT, (int) GrB_TRAN) ; - } - desc->in1 = (GrB_Desc_Value) value ; - break ; - - case GxB_AxB_METHOD : - - if (! (value == GrB_DEFAULT || value == GxB_AxB_GUSTAVSON - || value == GxB_AxB_DOT - || value == GxB_AxB_HASH || value == GxB_AxB_SAXPY)) - { - GB_ERROR (GrB_INVALID_VALUE, - "invalid descriptor value [%d] for GrB_AxB_METHOD" - " field;\nmust be GrB_DEFAULT [%d], GxB_AxB_GUSTAVSON" - " [%d]\nGxB_AxB_DOT [%d]" - " GxB_AxB_HASH [%d] or GxB_AxB_SAXPY [%d]", - value, (int) GrB_DEFAULT, (int) GxB_AxB_GUSTAVSON, - (int) GxB_AxB_DOT, - (int) GxB_AxB_HASH, (int) GxB_AxB_SAXPY) ; - } - desc->axb = (GrB_Desc_Value) value ; - break ; - - case GxB_SORT : - - desc->do_sort = value ; - break ; - - case GxB_COMPRESSION : - - desc->compression = value ; - break ; - - case GxB_IMPORT : - - // In case the user application does not check the return value - // of this method, an error condition is never returned. - desc->import = - (value == GrB_DEFAULT) ? GxB_FAST_IMPORT : GxB_SECURE_IMPORT ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_set_Scalar -( - GrB_Descriptor desc, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - if (desc == NULL || desc->header_size == 0) - { - // built-in descriptors may not be modified - return (GrB_INVALID_VALUE) ; - } - - GB_WHERE (desc, "GrB_Descriptor_set_Scalar (desc, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (desc) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_DESCRIPTOR_OK (desc, "desc to set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - int32_t i ; - GrB_Info info = GrB_Scalar_extractElement_INT32 (&i, value) ; - if (info != GrB_SUCCESS) - { - return ((info == GrB_NO_VALUE) ? GrB_EMPTY_OBJECT : info) ; - } - return (GB_desc_set (desc, i, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_set_String -( - GrB_Descriptor desc, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - if (desc == NULL || desc->header_size == 0 || field != GrB_NAME) - { - // built-in descriptors may not be modified - return (GrB_INVALID_VALUE) ; - } - - GB_WHERE (desc, "GrB_Descriptor_set_String (desc, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (desc) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_DESCRIPTOR_OK (desc, "desc to set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_user_name_set (&(desc->user_name), &(desc->user_name_size), - value, false)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_set_INT32 -( - GrB_Descriptor desc, - int32_t value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - if (desc == NULL || desc->header_size == 0) - { - // built-in descriptors may not be modified - return (GrB_INVALID_VALUE) ; - } - - GB_WHERE (desc, "GrB_Descriptor_set_INT32 (desc, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (desc) ; - ASSERT_DESCRIPTOR_OK (desc, "desc to set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_desc_set (desc, value, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Descriptor_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Descriptor_set_VOID -( - GrB_Descriptor desc, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Global_get.c b/Source/GrB_Global_get.c deleted file mode 100644 index 31850b9e39..0000000000 --- a/Source/GrB_Global_get.c +++ /dev/null @@ -1,537 +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_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/Source/GrB_Global_set.c b/Source/GrB_Global_set.c deleted file mode 100644 index d8897cf680..0000000000 --- a/Source/GrB_Global_set.c +++ /dev/null @@ -1,320 +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_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/Source/GrB_IndexUnaryOp_get.c b/Source/GrB_IndexUnaryOp_get.c deleted file mode 100644 index d1708eaccc..0000000000 --- a/Source/GrB_IndexUnaryOp_get.c +++ /dev/null @@ -1,137 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_get_*: get a field in a idxunop -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_get_Scalar -( - GrB_IndexUnaryOp op, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_IndexUnaryOp_get_Scalar (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_INDEXUNARYOP_OK (op, "idxunop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_scalar_get ((GB_Operator) op, value, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_get_String -( - GrB_IndexUnaryOp op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_IndexUnaryOp_get_String (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_INDEXUNARYOP_OK (op, "idxunop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_string_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_get_INT32 -( - GrB_IndexUnaryOp op, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_IndexUnaryOp_get_INT32 (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_INDEXUNARYOP_OK (op, "idxunop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_enum_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_get_SIZE -( - GrB_IndexUnaryOp op, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_IndexUnaryOp_get_SIZE (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_INDEXUNARYOP_OK (op, "idxunop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_size_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_get_VOID -( - GrB_IndexUnaryOp op, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_IndexUnaryOp_new.c b/Source/GrB_IndexUnaryOp_new.c index 04409be64c..5f35cddac0 100644 --- a/Source/GrB_IndexUnaryOp_new.c +++ b/Source/GrB_IndexUnaryOp_new.c @@ -7,9 +7,17 @@ //------------------------------------------------------------------------------ +// GrB_IndexUnaryOp_new is implemented both as a macro and a function. Both are +// user-callable. The macro is used by default since it can capture the name +// of the index_unary function. + #include "GB.h" -GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op +// the macro version of this function must first be #undefined +#undef GrB_IndexUnaryOp_new +#undef GrM_IndexUnaryOp_new + +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 diff --git a/Source/GrB_IndexUnaryOp_set.c b/Source/GrB_IndexUnaryOp_set.c deleted file mode 100644 index 7a4ed5824a..0000000000 --- a/Source/GrB_IndexUnaryOp_set.c +++ /dev/null @@ -1,82 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_set_*: set a field in a unary op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_set_Scalar -( - GrB_IndexUnaryOp op, - GrB_Scalar value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_set_String -( - GrB_IndexUnaryOp op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_IndexUnaryOp_set_String (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_INDEXUNARYOP_OK (op, "idxunop for set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_op_string_set ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_set_INT32 -( - GrB_IndexUnaryOp op, - int32_t value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_IndexUnaryOp_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_IndexUnaryOp_set_VOID -( - GrB_IndexUnaryOp op, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Matrix_get.c b/Source/GrB_Matrix_get.c deleted file mode 100644 index d2b12ed58b..0000000000 --- a/Source/GrB_Matrix_get.c +++ /dev/null @@ -1,166 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Matrix_get_*: get a field in a matrix -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Matrix_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_get_Scalar -( - GrB_Matrix A, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_get_Scalar (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_MATRIX_OK (A, "A to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int32_t i ; - GrB_Info info = GB_matvec_enum_get (A, &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 ; - switch ((int) field) - { - case GxB_HYPER_SWITCH : - x = (double) (A->hyper_switch) ; - break ; - - case GxB_BITMAP_SWITCH : - x = (double) (A->bitmap_switch) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - // field specifies a double: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &x, 0, 0, - GB_FP64_code, Werk) ; - } - - return (info) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_get_String -( - GrB_Matrix A, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_get_String (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MATRIX_OK (A, "A to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_get (A, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_get_INT32 -( - GrB_Matrix A, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_get_INT32 (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MATRIX_OK (A, "A to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_enum_get (A, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_get_SIZE -( - GrB_Matrix A, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_get_SIZE (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MATRIX_OK (A, "A to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_size_get (A, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_get_VOID -( - GrB_Matrix A, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Matrix_reduce.c b/Source/GrB_Matrix_reduce.c index e849171cf9..393c0b747b 100644 --- a/Source/GrB_Matrix_reduce.c +++ b/Source/GrB_Matrix_reduce.c @@ -37,7 +37,7 @@ GrB_Info GB_EVAL3 (prefix, _Matrix_reduce_, T) /* c = accum (c, reduce (A)) */ \ GB_BURBLE_START ("GrB_reduce") ; \ GB_RETURN_IF_NULL_OR_FAULTY (A) ; \ GrB_Info info = GB_reduce_to_scalar (c, GB_EVAL3 (prefix, _, T), accum, \ - monoid, A, Werk) ; \ + monoid, A, Werk) ; \ GB_BURBLE_END ; \ return (info) ; \ } @@ -148,7 +148,7 @@ GrB_Info GrB_Matrix_reduce_Monoid_Scalar const GrB_Descriptor desc ) { - GB_WHERE (S, "GrB_Matrix_reduce_Monoid_Scalar (s, accum, monoid, A, desc)"); + GB_WHERE (S, "GrB_Matrix_reduce_Monoid_Scalar (s, accum, monoid, A, desc)") ; GB_BURBLE_START ("GrB_reduce") ; GrB_Info info = GB_Scalar_reduce (S, accum, monoid, A, Werk) ; GB_BURBLE_END ; diff --git a/Source/GrB_Matrix_removeElement.c b/Source/GrB_Matrix_removeElement.c index 722f6bd790..69b6a3cabb 100644 --- a/Source/GrB_Matrix_removeElement.c +++ b/Source/GrB_Matrix_removeElement.c @@ -76,14 +76,21 @@ static inline bool GB_removeElement // return true if found // C is hypersparse: look for j in hyperlist C->h [0 ... C->nvec-1] //------------------------------------------------------------------ - const int64_t *restrict C_Yp = (C->Y == NULL) ? NULL : C->Y->p ; - const int64_t *restrict C_Yi = (C->Y == NULL) ? NULL : C->Y->i ; - const int64_t *restrict C_Yx = (C->Y == NULL) ? NULL : C->Y->x ; - const int64_t C_hash_bits = (C->Y == NULL) ? 0 : (C->Y->vdim - 1) ; - const int64_t cnvec = C->nvec ; - int64_t k = GB_hyper_hash_lookup (Ch, cnvec, Cp, C_Yp, C_Yi, C_Yx, - C_hash_bits, j, &pC_start, &pC_end) ; - found = (k >= 0) ; + int64_t k ; + if (C->Y == NULL) + { + // C is sparse but does not yet have a hyper_hash + k = 0 ; + found = GB_lookup (true, Ch, Cp, C->vlen, &k, + C->nvec-1, j, &pC_start, &pC_end) ; + } + else + { + // C is sparse, with a hyper_hash that is already built + k = GB_hyper_hash_lookup (Cp, C->Y->p, C->Y->i, C->Y->x, + C->Y->vdim-1, j, &pC_start, &pC_end) ; + found = (k >= 0) ; + } if (!found) { // vector j is empty diff --git a/Source/GrB_Matrix_set.c b/Source/GrB_Matrix_set.c deleted file mode 100644 index 365907e651..0000000000 --- a/Source/GrB_Matrix_set.c +++ /dev/null @@ -1,132 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Matrix_set_*: set a field in a matrix -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Matrix_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_set_Scalar -( - GrB_Matrix A, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_set_Scalar (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - ASSERT_MATRIX_OK (A, "A to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - double dvalue = 0 ; - int32_t ivalue = 0 ; - GrB_Info info ; - - switch ((int) field) - { - - case GxB_HYPER_SWITCH : - case GxB_BITMAP_SWITCH : - - info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; - break ; - - default : - - info = GrB_Scalar_extractElement_INT32 (&ivalue, value) ; - break ; - } - - if (info != GrB_SUCCESS) - { - return ((info == GrB_NO_VALUE) ? GrB_EMPTY_OBJECT : info) ; - } - - return (GB_matvec_set (A, false, ivalue, dvalue, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_set_String -( - GrB_Matrix A, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_set_String (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MATRIX_OK (A, "A to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_set (A, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_set_INT32 -( - GrB_Matrix A, - int32_t value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Matrix_set_INT32 (A, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (A) ; - ASSERT_MATRIX_OK (A, "A to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_matvec_set (A, false, value, 0, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Matrix_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Matrix_set_VOID -( - GrB_Matrix A, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Matrix_wait.c b/Source/GrB_Matrix_wait.c index 602f7783b0..338a65ea02 100644 --- a/Source/GrB_Matrix_wait.c +++ b/Source/GrB_Matrix_wait.c @@ -32,7 +32,7 @@ GrB_Info GrB_Matrix_wait // finish all work on a matrix //-------------------------------------------------------------------------- if (waitmode != GrB_COMPLETE && - (GB_ANY_PENDING_WORK (A) || GB_hyper_hash_need (A))) + (GB_ANY_PENDING_WORK (A) || GB_NEED_HYPER_HASH (A))) { GrB_Info info ; GB_BURBLE_START ("GrB_Matrix_wait") ; diff --git a/Source/GrB_Monoid_free.c b/Source/GrB_Monoid_free.c index 45a36f4adc..99934a68c4 100644 --- a/Source/GrB_Monoid_free.c +++ b/Source/GrB_Monoid_free.c @@ -22,8 +22,6 @@ GrB_Info GrB_Monoid_free // free a user-created monoid if (mon != NULL) { size_t header_size = mon->header_size ; - // free the monoid user_name - GB_FREE (&(mon->user_name), mon->user_name_size) ; if (header_size > 0) { mon->magic = GB_FREED ; // to help detect dangling pointers diff --git a/Source/GrB_Monoid_get.c b/Source/GrB_Monoid_get.c deleted file mode 100644 index bc1dfca3e2..0000000000 --- a/Source/GrB_Monoid_get.c +++ /dev/null @@ -1,214 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Monoid_get_*: get a field in a monoid -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Monoid_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_get_Scalar -( - GrB_Monoid monoid, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Monoid_get_Scalar (monoid, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (monoid) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_MONOID_OK (monoid, "monoid to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_monoid_get (monoid, value, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_get_String -( - GrB_Monoid monoid, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Monoid_get_String (monoid, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (monoid) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MONOID_OK (monoid, "monoid to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - (*value) = '\0' ; - const char *name ; - - switch ((int) field) - { - case GrB_NAME : - - // get the name of the monoid - name = GB_monoid_name_get (monoid) ; - if (name != NULL) - { - strcpy (value, name) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; - - case GrB_INPUT1TYPE_STRING : - case GrB_INPUT2TYPE_STRING : - case GrB_OUTPUTTYPE_STRING : - return (GB_op_string_get ((GB_Operator) (monoid->op), - value, field)) ; - - default : ; - return (GrB_INVALID_VALUE) ; - } -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_get_INT32 -( - GrB_Monoid monoid, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Monoid_get_INT32 (monoid, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (monoid) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MONOID_OK (monoid, "monoid to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_enum_get ((GB_Operator) (monoid->op), value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_get_SIZE -( - GrB_Monoid monoid, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Monoid_get_SIZE (monoid, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (monoid) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MONOID_OK (monoid, "monoid to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - const char *name ; - - switch ((int) field) - { - - case GrB_NAME : - - // get the length of the monoid user_name, or built-in name - name = GB_monoid_name_get (monoid) ; - break ; - - case GrB_INPUT1TYPE_STRING : - case GrB_INPUT2TYPE_STRING : - case GrB_OUTPUTTYPE_STRING : - name = GB_type_name_get (monoid->op->ztype) ; - break ; - - case GxB_MONOID_OPERATOR : - (*value) = sizeof (GrB_BinaryOp) ; - return (GrB_SUCCESS) ; - - default : - return (GrB_INVALID_VALUE) ; - } - - (*value) = (name == NULL) ? 1 : (strlen (name) + 1) ; - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_get_VOID -( - GrB_Monoid monoid, - void * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Monoid_get_VOID (monoid, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (monoid) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MONOID_OK (monoid, "monoid to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - - case GxB_MONOID_OPERATOR : - memcpy (value, &(monoid->op), sizeof (GrB_BinaryOp)) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GrB_Monoid_set.c b/Source/GrB_Monoid_set.c deleted file mode 100644 index fc1fcc7958..0000000000 --- a/Source/GrB_Monoid_set.c +++ /dev/null @@ -1,89 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Monoid_set_*: set a field in a monoid -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Monoid_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_set_Scalar -( - GrB_Monoid monoid, - GrB_Scalar value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_set_String -( - GrB_Monoid monoid, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Monoid_set_String (monoid, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (monoid) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_MONOID_OK (monoid, "monoid to get option", GB0) ; - - if (monoid->header_size == 0 || field != GrB_NAME) - { - // built-in monoids may not be modified - return (GrB_INVALID_VALUE) ; - } - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_user_name_set (&(monoid->user_name), - &(monoid->user_name_size), value, true)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_set_INT32 -( - GrB_Monoid monoid, - int32_t value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Monoid_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Monoid_set_VOID -( - GrB_Monoid monoid, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Scalar_get.c b/Source/GrB_Scalar_get.c deleted file mode 100644 index 0e88c2ffbe..0000000000 --- a/Source/GrB_Scalar_get.c +++ /dev/null @@ -1,145 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Scalar_get_*: get a field in a scalar -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Scalar_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_get_Scalar -( - GrB_Scalar s, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Scalar_get_Scalar (s, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (s) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_SCALAR_OK (s, "s to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int32_t i ; - GrB_Info info = GB_matvec_enum_get ((GrB_Matrix) s, &i, field) ; - if (info == GrB_SUCCESS) - { - // field specifies an int32_t: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, - GB_INT32_code, Werk) ; - } - return (info) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_get_String -( - GrB_Scalar s, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Scalar_get_String (s, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (s) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SCALAR_OK (s, "s to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_get ((GrB_Matrix) s, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_get_INT32 -( - GrB_Scalar s, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Scalar_get_INT32 (s, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (s) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SCALAR_OK (s, "s to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_enum_get ((GrB_Matrix) s, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_get_SIZE -( - GrB_Scalar s, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Scalar_get_SIZE (s, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (s) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SCALAR_OK (s, "s to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_size_get ((GrB_Matrix) s, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_get_VOID -( - GrB_Scalar s, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Scalar_set.c b/Source/GrB_Scalar_set.c deleted file mode 100644 index ff7f002084..0000000000 --- a/Source/GrB_Scalar_set.c +++ /dev/null @@ -1,86 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Scalar_set_*: set a field in a scalar -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Scalar_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_set_Scalar -( - GrB_Scalar s, - GrB_Scalar value, - GrB_Field field -) -{ - // all settings are ignored - return ((field == GrB_STORAGE_ORIENTATION_HINT) ? - GrB_SUCCESS : GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_set_String -( - GrB_Scalar s, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Scalar_set_String (s, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (s) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SCALAR_OK (s, "s to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_set ((GrB_Matrix) s, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_set_INT32 -( - GrB_Scalar s, - int32_t value, - GrB_Field field -) -{ - // all settings are ignored - return ((field == GrB_STORAGE_ORIENTATION_HINT) ? - GrB_SUCCESS : GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Scalar_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Scalar_set_VOID -( - GrB_Scalar s, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Scalar_setElement.c b/Source/GrB_Scalar_setElement.c index 4d770d1df2..59ad11bf3b 100644 --- a/Source/GrB_Scalar_setElement.c +++ b/Source/GrB_Scalar_setElement.c @@ -76,4 +76,3 @@ GrB_Info GxB_Scalar_setElement_UINT64 (GrB_Scalar s, uint64_t x) { return (GrB_S GrB_Info GxB_Scalar_setElement_FP32 (GrB_Scalar s, float x) { return (GrB_Scalar_setElement_FP32 (s,x)) ; } GrB_Info GxB_Scalar_setElement_FP64 (GrB_Scalar s, double x) { return (GrB_Scalar_setElement_FP64 (s,x)) ; } GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) { return (GrB_Scalar_setElement_UDT (s,x)) ; } - diff --git a/Source/GrB_Semiring_free.c b/Source/GrB_Semiring_free.c index 2fcbedeb3c..c5f323a81e 100644 --- a/Source/GrB_Semiring_free.c +++ b/Source/GrB_Semiring_free.c @@ -23,8 +23,6 @@ GrB_Info GrB_Semiring_free // free a user-created semiring { // free the semiring name GB_FREE (&(s->name), s->name_size) ; - // free the semiring user_name - GB_FREE (&(s->user_name), s->user_name_size) ; // free the semiring header size_t header_size = s->header_size ; if (header_size > 0) diff --git a/Source/GrB_Semiring_get.c b/Source/GrB_Semiring_get.c deleted file mode 100644 index 0fbb8f64c8..0000000000 --- a/Source/GrB_Semiring_get.c +++ /dev/null @@ -1,241 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Semiring_get_*: get a field in a semiring -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Semiring_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_get_Scalar -( - GrB_Semiring semiring, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Semiring_get_Scalar (semiring, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (semiring) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_SEMIRING_OK (semiring, "semiring to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - case GxB_MONOID_IDENTITY : - case GxB_MONOID_TERMINAL : - return (GB_monoid_get (semiring->add, value, field, Werk)) ; - default : - return (GB_op_scalar_get ((GB_Operator) (semiring->multiply), - value, field, Werk)) ; - } -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_get_String -( - GrB_Semiring semiring, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Semiring_get_String (semiring, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (semiring) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SEMIRING_OK (semiring, "semiring to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - (*value) = '\0' ; - const char *name ; - - switch ((int) field) - { - case GrB_NAME : - - name = GB_semiring_name_get (semiring) ; - if (name != NULL) - { - // get the name of the semiring - strcpy (value, name) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; - - case GrB_INPUT1TYPE_STRING : - case GrB_INPUT2TYPE_STRING : - case GrB_OUTPUTTYPE_STRING : - return (GB_op_string_get ((GB_Operator) (semiring->multiply), - value, field)) ; - - default : ; - return (GrB_INVALID_VALUE) ; - } -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_get_INT32 -( - GrB_Semiring semiring, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Semiring_get_INT32 (semiring, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (semiring) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SEMIRING_OK (semiring, "semiring to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_enum_get ((GB_Operator) (semiring->multiply), value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_get_SIZE -( - GrB_Semiring semiring, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Semiring_get_SIZE (semiring, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (semiring) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SEMIRING_OK (semiring, "semiring to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - const char *name ; - - switch ((int) field) - { - - case GrB_NAME : - - // get the length of the semiring user_name, or built-in name - name = GB_semiring_name_get (semiring) ; - break ; - - case GrB_INPUT1TYPE_STRING : - name = GB_type_name_get (semiring->multiply->xtype) ; - break ; - - case GrB_INPUT2TYPE_STRING : - name = GB_type_name_get (semiring->multiply->ytype) ; - break ; - - case GrB_OUTPUTTYPE_STRING : - name = GB_type_name_get (semiring->multiply->ztype) ; - break ; - - case GxB_MONOID_OPERATOR : - case GxB_SEMIRING_MULTIPLY : - (*value) = sizeof (GrB_BinaryOp) ; - return (GrB_SUCCESS) ; - - case GxB_SEMIRING_MONOID : - (*value) = sizeof (GrB_Monoid) ; - return (GrB_SUCCESS) ; - - default : - return (GrB_INVALID_VALUE) ; - } - - (*value) = (name == NULL) ? 1 : (strlen (name) + 1) ; - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_get_VOID -( - GrB_Semiring semiring, - void * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Semiring_get_VOID (semiring, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (semiring) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SEMIRING_OK (semiring, "semiring to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - - case GxB_MONOID_OPERATOR : - memcpy (value, &(semiring->add->op), sizeof (GrB_BinaryOp)) ; - break ; - - case GxB_SEMIRING_MONOID : - memcpy (value, &(semiring->add), sizeof (GrB_Monoid)) ; - break ; - - case GxB_SEMIRING_MULTIPLY : - memcpy (value, &(semiring->multiply), sizeof (GrB_BinaryOp)) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/Source/GrB_Semiring_set.c b/Source/GrB_Semiring_set.c deleted file mode 100644 index e398567ea7..0000000000 --- a/Source/GrB_Semiring_set.c +++ /dev/null @@ -1,89 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Semiring_set_*: set a field in a semiring -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Semiring_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_set_Scalar -( - GrB_Semiring semiring, - GrB_Scalar value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_set_String -( - GrB_Semiring semiring, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Semiring_set_String (semiring, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (semiring) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_SEMIRING_OK (semiring, "semiring to get option", GB0) ; - - if (semiring->header_size == 0 || field != GrB_NAME) - { - // built-in semirings may not be modified - return (GrB_INVALID_VALUE) ; - } - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_user_name_set (&(semiring->user_name), - &(semiring->user_name_size), value, true)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_set_INT32 -( - GrB_Semiring semiring, - int32_t value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Semiring_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Semiring_set_VOID -( - GrB_Semiring semiring, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Type_free.c b/Source/GrB_Type_free.c index b12b9c3603..91815a0ab4 100644 --- a/Source/GrB_Type_free.c +++ b/Source/GrB_Type_free.c @@ -21,15 +21,14 @@ GrB_Info GrB_Type_free // free a user-defined type GrB_Type t = *type ; if (t != NULL) { - GB_FREE (&(t->user_name), t->user_name_size) ; - size_t defn_size = t->defn_size ; - if (defn_size > 0) - { - GB_FREE (&(t->defn), defn_size) ; - } size_t header_size = t->header_size ; if (header_size > 0) { + size_t defn_size = t->defn_size ; + if (defn_size > 0) + { + GB_FREE (&(t->defn), defn_size) ; + } t->magic = GB_FREED ; // to help detect dangling pointers t->header_size = 0 ; GB_FREE (type, header_size) ; diff --git a/Source/GrB_Type_get.c b/Source/GrB_Type_get.c deleted file mode 100644 index dfb8fbb36b..0000000000 --- a/Source/GrB_Type_get.c +++ /dev/null @@ -1,237 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Type_get_*: get a field in a type -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Type_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_get_Scalar -( - GrB_Type type, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Type_get_Scalar (type, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (type) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_TYPE_OK (type, "type for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int32_t i ; - uint64_t u ; - - switch ((int) field) - { - case GrB_ELTYPE_CODE : - i = (int32_t) GB_type_code_get (type->code) ; - return (GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, - GB_INT32_code, Werk)) ; - break ; - - case GrB_SIZE : - u = (uint64_t) type->size ; - return (GB_setElement ((GrB_Matrix) value, NULL, &u, 0, 0, - GB_UINT64_code, Werk)) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } -} - -//------------------------------------------------------------------------------ -// GrB_Type_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_get_String -( - GrB_Type type, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Type_get_String (type, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (type) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_TYPE_OK (type, "type for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - (*value) = '\0' ; - const char *name ; - - switch ((int) field) - { - case GrB_NAME : - case GrB_ELTYPE_STRING : - - name = GB_type_name_get (type) ; - if (name != NULL) - { - strcpy (value, name) ; - } - #pragma omp flush - return (GrB_SUCCESS) ; - - case GxB_JIT_C_NAME : - - strcpy (value, type->name) ; - break ; - - case GxB_JIT_C_DEFINITION : - - if (type->defn != NULL) - { - strcpy (value, type->defn) ; - } - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Type_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_get_INT32 -( - GrB_Type type, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Type_get_INT32 (type, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (type) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_TYPE_OK (type, "type for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - - case GrB_ELTYPE_CODE : - - (*value) = (int32_t) GB_type_code_get (type->code) ; - break ; - - case GrB_SIZE : - - // int32_t is fine for small types but for GrB_Scalar, - // UINT64 is used instead (see above) - (*value) = (int32_t) type->size ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Type_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_get_SIZE -( - GrB_Type type, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Type_get_SIZE (type, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (type) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_TYPE_OK (type, "type for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - const char *s ; - - switch ((int) field) - { - - case GrB_NAME : - case GrB_ELTYPE_STRING : - - s = GB_type_name_get (type) ; - break ; - - case GxB_JIT_C_NAME : - - s = type->name ; - break ; - - case GxB_JIT_C_DEFINITION : - - s = type->defn ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - (*value) = (s == NULL) ? 1 : (strlen (s) + 1) ; - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Type_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_get_VOID -( - GrB_Type type, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Type_new.c b/Source/GrB_Type_new.c index dcb7f242d0..0debf8f594 100644 --- a/Source/GrB_Type_new.c +++ b/Source/GrB_Type_new.c @@ -7,9 +7,26 @@ //------------------------------------------------------------------------------ +// GrB_Type_new is implemented both as a macro and a function. Both are +// user-callable. The default is to use the macro, since this allows the name +// of the type to be saved as a string, for subsequent error reporting by +// GrB_error and for the return value of GxB_Matrix_type_name. It is also +// provided as a function so that applications that require a function instead +// of macro can access it. User code can simply do #undef GrB_Type_new before +// using the function. This approach also places the function GrB_Type_new in +// the linkable SuiteSparse:GraphBLAS library so that it is visible for linking +// with applications in languages other than ANSI C. The function version does +// not allow the name of the ctype to be saved in the new GraphBLAS type, +// however. It is given a generic name, "user_type_of_size_%d" where "%d" is +// the size of the type. + #include "GB.h" -GrB_Info GrB_Type_new // create a new GraphBLAS type +// the macro version of this function must first be #undefined +#undef GrB_Type_new +#undef GrM_Type_new + +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 diff --git a/Source/GrB_Type_set.c b/Source/GrB_Type_set.c deleted file mode 100644 index 3fa6b4b95f..0000000000 --- a/Source/GrB_Type_set.c +++ /dev/null @@ -1,87 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Type_set_*: set a field in a type -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Type_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_set_Scalar -( - GrB_Type type, - GrB_Scalar value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Type_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_set_String -( - GrB_Type type, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Type_set_String (type, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (type) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_TYPE_OK (type, "unaryop for get", GB0) ; - - //-------------------------------------------------------------------------- - // set the name or defn of a user-defined type - //-------------------------------------------------------------------------- - - bool user_defined = (type->code == GB_UDT_code) ; - - return (GB_op_or_type_string_set (user_defined, true, value, field, - &(type->user_name), &(type->user_name_size), - type->name, &(type->name_len), &(type->defn), &(type->defn_size), - &(type->hash))) ; -} - -//------------------------------------------------------------------------------ -// GrB_Type_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_set_INT32 -( - GrB_Type type, - int32_t value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_Type_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_set_VOID -( - GrB_Type type, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_UnaryOp_get.c b/Source/GrB_UnaryOp_get.c deleted file mode 100644 index 1a88de4c5b..0000000000 --- a/Source/GrB_UnaryOp_get.c +++ /dev/null @@ -1,137 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_UnaryOp_get_*: get a field in a unary op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_get_Scalar -( - GrB_UnaryOp op, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_UnaryOp_get_Scalar (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_UNARYOP_OK (op, "unaryop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_scalar_get ((GB_Operator) op, value, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_get_String -( - GrB_UnaryOp op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_UnaryOp_get_String (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_UNARYOP_OK (op, "unaryop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_string_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_get_INT32 -( - GrB_UnaryOp op, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_UnaryOp_get_INT32 (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_UNARYOP_OK (op, "unaryop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_enum_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_get_SIZE -( - GrB_UnaryOp op, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_UnaryOp_get_SIZE (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_UNARYOP_OK (op, "unaryop for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_op_size_get ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_get_VOID -( - GrB_UnaryOp op, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_UnaryOp_new.c b/Source/GrB_UnaryOp_new.c index bf4c77860c..f21dc59c9d 100644 --- a/Source/GrB_UnaryOp_new.c +++ b/Source/GrB_UnaryOp_new.c @@ -7,9 +7,17 @@ //------------------------------------------------------------------------------ +// GrB_UnaryOp_new is implemented both as a macro and a function. Both are +// user-callable. The macro is used by default since it can capture the name +// of the unary function. + #include "GB.h" -GrB_Info GrB_UnaryOp_new // create a new user-defined unary operator +// the macro version of this function must first be #undefined +#undef GrB_UnaryOp_new +#undef GrM_UnaryOp_new + +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 diff --git a/Source/GrB_UnaryOp_set.c b/Source/GrB_UnaryOp_set.c deleted file mode 100644 index bf92f6d71a..0000000000 --- a/Source/GrB_UnaryOp_set.c +++ /dev/null @@ -1,82 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_UnaryOp_set_*: set a field in a unary op -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_set_Scalar -( - GrB_UnaryOp op, - GrB_Scalar value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_set_String -( - GrB_UnaryOp op, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_UnaryOp_set_String (op, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (op) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_UNARYOP_OK (op, "unaryop for set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_op_string_set ((GB_Operator) op, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_set_INT32 -( - GrB_UnaryOp op, - int32_t value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - -//------------------------------------------------------------------------------ -// GrB_UnaryOp_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_UnaryOp_set_VOID -( - GrB_UnaryOp op, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Vector_get.c b/Source/GrB_Vector_get.c deleted file mode 100644 index 8eb0aef5df..0000000000 --- a/Source/GrB_Vector_get.c +++ /dev/null @@ -1,162 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Vector_get_*: get a field in a matrix -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Vector_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_get_Scalar -( - GrB_Vector v, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_get_Scalar (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_VECTOR_OK (v, "v to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int32_t i ; - GrB_Info info = GB_matvec_enum_get ((GrB_Matrix) v, &i, field) ; - if (info == GrB_SUCCESS) - { - // field specifies an int32_t: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, - GB_INT32_code, Werk) ; - } - else - { - double x ; - switch ((int) field) - { - case GxB_BITMAP_SWITCH : - x = (double) (v->bitmap_switch) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - // field specifies a double: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &x, 0, 0, - GB_FP64_code, Werk) ; - } - - return (info) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_get_String -( - GrB_Vector v, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_get_String (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_VECTOR_OK (v, "v to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_get ((GrB_Matrix) v, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_get_INT32 -( - GrB_Vector v, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_get_INT32 (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_VECTOR_OK (v, "v to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_enum_get ((GrB_Matrix) v, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_get_SIZE -( - GrB_Vector v, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_get_SIZE (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_VECTOR_OK (v, "v to get option", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_size_get ((GrB_Matrix) v, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_get_VOID -( - GrB_Vector v, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_Vector_set.c b/Source/GrB_Vector_set.c deleted file mode 100644 index aae8adb393..0000000000 --- a/Source/GrB_Vector_set.c +++ /dev/null @@ -1,126 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Vector_set_*: set a field in a vector -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GrB_Vector_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_set_Scalar -( - GrB_Vector v, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_set_Scalar (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - ASSERT_VECTOR_OK (v, "v to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - double dvalue = 0 ; - int32_t ivalue = 0 ; - GrB_Info info ; - - switch ((int) field) - { - case GxB_BITMAP_SWITCH : - info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; - break ; - default : - info = GrB_Scalar_extractElement_INT32 (&ivalue, value) ; - break ; - } - - if (info != GrB_SUCCESS) - { - return ((info == GrB_NO_VALUE) ? GrB_EMPTY_OBJECT : info) ; - } - return (GB_matvec_set ((GrB_Matrix) v, true, ivalue, dvalue, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_set_String -( - GrB_Vector v, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_set_String (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_VECTOR_OK (v, "v to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_matvec_name_set ((GrB_Matrix) v, value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_set_INT32 -( - GrB_Vector v, - int32_t value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Vector_set_INT32 (v, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (v) ; - ASSERT_VECTOR_OK (v, "v to set option", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_matvec_set ((GrB_Matrix) v, true, value, 0, field, Werk)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Vector_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Vector_set_VOID -( - GrB_Vector v, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GrB_init.c b/Source/GrB_init.c index d0204449d4..c4d4375a2d 100644 --- a/Source/GrB_init.c +++ b/Source/GrB_init.c @@ -29,7 +29,7 @@ GrB_Info GrB_init // start up GraphBLAS // initialize GraphBLAS //-------------------------------------------------------------------------- - // default: use the C11 malloc memory manager, which is thread-safe + // default: use the ANSI C11 malloc memory manager, which is thread-safe return (GB_init (mode, // blocking or non-blocking mode malloc, calloc, realloc, free, // ANSI C memory management functions diff --git a/Source/GxB_Context_free.c b/Source/GxB_Context_free.c index 32b975961b..bdf817f52f 100644 --- a/Source/GxB_Context_free.c +++ b/Source/GxB_Context_free.c @@ -34,8 +34,6 @@ GrB_Info GxB_Context_free // free a Context if (Context != NULL) { size_t header_size = Context->header_size ; - // free the Context user_name - GB_FREE (&(Context->user_name), Context->user_name_size) ; if (header_size > 0) { Context->magic = GB_FREED ; // to help detect dangling pointers diff --git a/Source/GxB_Context_get.c b/Source/GxB_Context_get.c index 927325bd7b..c4549a7bf9 100644 --- a/Source/GxB_Context_get.c +++ b/Source/GxB_Context_get.c @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GxB_Context_get: get a field of Context (HISTORICAL; do not use for new code) +// GxB_Context_get: get a field of a Context //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. diff --git a/Source/GxB_Context_get2.c b/Source/GxB_Context_get2.c deleted file mode 100644 index 8950d95231..0000000000 --- a/Source/GxB_Context_get2.c +++ /dev/null @@ -1,229 +0,0 @@ -//------------------------------------------------------------------------------ -// GxB_Context_get_*: get a field in a context -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GxB_Context_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_get_Scalar -( - GxB_Context Context, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_get_Scalar (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_CONTEXT_OK (Context, "context for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - double dvalue = 0 ; - int32_t ivalue = 0 ; - GrB_Info info ; - - switch ((int) field) - { - - case GxB_CONTEXT_CHUNK : // same as GxB_CHUNK - - dvalue = GB_Context_chunk_get (Context) ; - break ; - - case GxB_CONTEXT_NTHREADS : // same as GxB_NTHREADS - - ivalue = GB_Context_nthreads_max_get (Context) ; - break ; - - case GxB_CONTEXT_GPU_ID : // same as GxB_GPU_ID - - ivalue= GB_Context_gpu_id_get (Context) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - switch ((int) field) - { - - case GxB_CONTEXT_CHUNK : // same as GxB_CHUNK - - info = GB_setElement ((GrB_Matrix) value, NULL, &dvalue, 0, 0, - GB_FP64_code, Werk) ; - break ; - - default : - info = GB_setElement ((GrB_Matrix) value, NULL, &ivalue, 0, 0, - GB_INT32_code, Werk) ; - break ; - } - - return (info) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_get_String -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_get_String -( - GxB_Context Context, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_get_String (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_CONTEXT_OK (Context, "context for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - if (field != GrB_NAME) - { - return (GrB_INVALID_VALUE) ; - } - - (*value) = '\0' ; - if (Context == GxB_CONTEXT_WORLD) - { - // built-in Context - strcpy (value, "GxB_CONTEXT_WORLD") ; - } - else if (Context->user_name_size > 0) - { - // user-defined Context, with name defined by GrB_set - strcpy (value, Context->user_name) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_get_INT -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_get_INT -( - GxB_Context Context, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_get_INT (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_CONTEXT_OK (Context, "context for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch (field) - { - - case GxB_CONTEXT_NTHREADS : // same as GxB_NTHREADS - - (*value) = GB_Context_nthreads_max_get (Context) ; - break ; - - case GxB_CONTEXT_GPU_ID : // same as GxB_GPU_ID - - (*value) = GB_Context_gpu_id_get (Context) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_get_SIZE -( - GxB_Context Context, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_get_SIZE (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_CONTEXT_OK (Context, "context for get", GB0) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - if (field != GrB_NAME) - { - return (GrB_INVALID_VALUE) ; - } - - if (Context->user_name != NULL) - { - (*value) = Context->user_name_size ; - } - else - { - (*value) = GxB_MAX_NAME_LEN ; - } - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_get_VOID -( - GxB_Context Context, - void * value, - GrB_Field field -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GxB_Context_new.c b/Source/GxB_Context_new.c index ad0e7d9de9..360bb0b7cb 100644 --- a/Source/GxB_Context_new.c +++ b/Source/GxB_Context_new.c @@ -41,8 +41,6 @@ GrB_Info GxB_Context_new // create a new Context Context->magic = GB_MAGIC ; Context->header_size = header_size ; - Context->user_name = NULL ; // user_name for GrB_get/GrB_set - Context->user_name_size = 0 ; // initialize the Context with the same settings as GxB_CONTEXT_WORLD Context->nthreads_max = GB_Context_nthreads_max_get (NULL) ; diff --git a/Source/GxB_Context_set.c b/Source/GxB_Context_set.c index ece98c8ee8..ffa7eb1a34 100644 --- a/Source/GxB_Context_set.c +++ b/Source/GxB_Context_set.c @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GxB_Context_set: set a field in Context (HISTORICAL; do not use for new code) +// GxB_Context_set: set a field in a Context //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. diff --git a/Source/GxB_Context_set2.c b/Source/GxB_Context_set2.c deleted file mode 100644 index 02e0d6ca9c..0000000000 --- a/Source/GxB_Context_set2.c +++ /dev/null @@ -1,179 +0,0 @@ -//------------------------------------------------------------------------------ -// GxB_Context_set_*: set a field in a Context -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" - -//------------------------------------------------------------------------------ -// GxB_Context_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_set_Scalar -( - GxB_Context Context, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_set_Scalar (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - ASSERT_CONTEXT_OK (Context, "Context to set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - GrB_Info info ; - int32_t ivalue = 0 ; - double dvalue = 0 ; - - switch ((int) field) - { - - case GxB_CONTEXT_NTHREADS : // same as GxB_NTHREADS - case GxB_CONTEXT_GPU_ID : // same as GxB_GPU_ID - info = GrB_Scalar_extractElement_INT32 (&ivalue, value) ; - break ; - - case GxB_CONTEXT_CHUNK : // same as GxB_CHUNK - info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; - break ; - - default : - info = GrB_INVALID_VALUE ; - break ; - } - - if (info != GrB_SUCCESS) - { - return ((info == GrB_NO_VALUE) ? GrB_EMPTY_OBJECT : info) ; - } - - switch (field) - { - - default: - case GxB_CONTEXT_NTHREADS : // same as GxB_NTHREADS - - GB_Context_nthreads_max_set (Context, ivalue) ; - break ; - - case GxB_CONTEXT_GPU_ID : // same as GxB_GPU_ID - - GB_Context_gpu_id_set (Context, ivalue) ; - break ; - - case GxB_CONTEXT_CHUNK : // same as GxB_CHUNK - - GB_Context_chunk_set (Context, dvalue) ; - break ; - } - - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_set_String -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_set_String -( - GxB_Context Context, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_set_String (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - GB_RETURN_IF_NULL (value) ; - ASSERT_CONTEXT_OK (Context, "Context to get option", GB0) ; - - if (Context == GxB_CONTEXT_WORLD || field != GrB_NAME) - { - // built-in GxB_CONTEXT_WORLD may not be modified - return (GrB_INVALID_VALUE) ; - } - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_user_name_set (&(Context->user_name), - &(Context->user_name_size), value, false)) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_set_INT -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_set_INT -( - GxB_Context Context, - int32_t value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Context_set_INT (Context, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (Context) ; - ASSERT_CONTEXT_OK (Context, "Context to set", GB0) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - switch (field) - { - - case GxB_CONTEXT_NTHREADS : // same as GxB_NTHREADS - - GB_Context_nthreads_max_set (Context, value) ; - break ; - - case GxB_CONTEXT_GPU_ID : // same as GxB_GPU_ID - - GB_Context_gpu_id_set (Context, value) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GxB_Context_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GxB_Context_set_VOID -( - GxB_Context Context, - void * value, - GrB_Field field, - size_t size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GxB_IndexUnaryOp_new.c b/Source/GxB_IndexUnaryOp_new.c index 17f9d227c3..2993e85392 100644 --- a/Source/GxB_IndexUnaryOp_new.c +++ b/Source/GxB_IndexUnaryOp_new.c @@ -63,8 +63,6 @@ GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp //-------------------------------------------------------------------------- op->magic = GB_MAGIC ; - op->user_name = NULL ; - op->user_name_size = 0 ; op->ztype = ztype ; op->xtype = xtype ; op->ytype = ytype ; // thunk type @@ -89,7 +87,7 @@ GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp // output: op->name, &(op->name_len), &(op->hash), &(op->defn), &(op->defn_size), // input: - idxop_name, idxop_defn, true, jitable) ; + idxop_name, idxop_defn, "GxB_index_unary_function", 24, true, jitable) ; if (info != GrB_SUCCESS) { // out of memory diff --git a/Source/GxB_Matrix_serialize.c b/Source/GxB_Matrix_serialize.c index 7674c64c24..181299823b 100644 --- a/Source/GxB_Matrix_serialize.c +++ b/Source/GxB_Matrix_serialize.c @@ -12,7 +12,7 @@ // This method is similar to GrB_Matrix_serialize. In contrast with the GrB* // method, this method allocates the blob itself, and hands over the allocated // space to the user application. The blob must be freed by the same free -// function passed in to GxB_init, or by the C11 free() if GrB_init was +// function passed in to GxB_init, or by the ANSI C11 free() if GrB_init was // used. On input, the blob_size need not be initialized; it is returned as // the size of the blob as allocated. diff --git a/Source/GxB_Serialized_get.c b/Source/GxB_Serialized_get.c deleted file mode 100644 index 02beee7ea5..0000000000 --- a/Source/GxB_Serialized_get.c +++ /dev/null @@ -1,532 +0,0 @@ -//------------------------------------------------------------------------------ -// GxB_Serialized_get_*: query the contents of a serialized blob -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" -#include "GB_serialize.h" - -//------------------------------------------------------------------------------ -// GB_blob_header_get: get all properties of the blob -//------------------------------------------------------------------------------ - -static GrB_Info GB_blob_header_get -( - // output: - char *type_name, // name of the type (char array of size at - // least GxB_MAX_NAME_LEN) - int32_t *type_code, // type code of the matrix - int32_t *sparsity_status, // sparsity status - int32_t *sparsity_ctrl, // sparsity control - double *hyper_sw, // hyper_switch - double *bitmap_sw, // bitmap_switch - int32_t *storage, // GrB_COLMAJOR or GrB_ROWMAJOR - char **user_name, // GrB_NAME of the blob - char **eltype_string, // GrB_ELTYPE_STRING of the type of the blob - - // input, not modified: - const GB_void *blob, // the blob - GrB_Index blob_size // size of the blob -) -{ - - //-------------------------------------------------------------------------- - // read the content of the header (160 bytes) - //-------------------------------------------------------------------------- - - size_t s = 0 ; - - if (blob_size < GB_BLOB_HEADER_SIZE) - { - // blob is invalid - return (GrB_INVALID_OBJECT) ; - } - - GB_BLOB_READ (blob_size2, uint64_t) ; - GB_BLOB_READ (typecode, int32_t) ; - uint64_t blob_size1 = (uint64_t) blob_size ; - - if (blob_size1 != blob_size2 - || typecode < GB_BOOL_code || typecode > GB_UDT_code - || (typecode == GB_UDT_code && - blob_size < GB_BLOB_HEADER_SIZE + GxB_MAX_NAME_LEN)) - { - // blob is invalid - return (GrB_INVALID_OBJECT) ; - } - - GB_BLOB_READ (version, int32_t) ; - GB_BLOB_READ (vlen, int64_t) ; - GB_BLOB_READ (vdim, int64_t) ; - GB_BLOB_READ (nvec, int64_t) ; - GB_BLOB_READ (nvec_nonempty, int64_t) ; ASSERT (nvec_nonempty >= 0) ; - GB_BLOB_READ (nvals, int64_t) ; - GB_BLOB_READ (typesize, int64_t) ; - GB_BLOB_READ (Cp_len, int64_t) ; - GB_BLOB_READ (Ch_len, int64_t) ; - GB_BLOB_READ (Cb_len, int64_t) ; - GB_BLOB_READ (Ci_len, int64_t) ; - GB_BLOB_READ (Cx_len, int64_t) ; - GB_BLOB_READ (hyper_switch, float) ; - GB_BLOB_READ (bitmap_switch, float) ; - GB_BLOB_READ (sparsity_control, int32_t) ; - GB_BLOB_READ (sparsity_iso_csc, int32_t) ; - GB_BLOB_READ (Cp_nblocks, int32_t) ; GB_BLOB_READ (Cp_method, int32_t) ; - GB_BLOB_READ (Ch_nblocks, int32_t) ; GB_BLOB_READ (Ch_method, int32_t) ; - GB_BLOB_READ (Cb_nblocks, int32_t) ; GB_BLOB_READ (Cb_method, int32_t) ; - GB_BLOB_READ (Ci_nblocks, int32_t) ; GB_BLOB_READ (Ci_method, int32_t) ; - GB_BLOB_READ (Cx_nblocks, int32_t) ; GB_BLOB_READ (Cx_method, int32_t) ; - - (*sparsity_status) = sparsity_iso_csc / 4 ; - bool iso = ((sparsity_iso_csc & 2) == 2) ; - bool is_csc = ((sparsity_iso_csc & 1) == 1) ; - (*sparsity_ctrl) = sparsity_control ; - (*hyper_sw) = (double) hyper_switch ; - (*bitmap_sw) = (double) bitmap_switch ; - (*storage) = (is_csc) ? GrB_COLMAJOR : GrB_ROWMAJOR ; - - //-------------------------------------------------------------------------- - // determine the matrix type_code and C type_name - //-------------------------------------------------------------------------- - - (*type_code) = GB_type_code_get (typecode) ; - memset (type_name, 0, GxB_MAX_NAME_LEN) ; - - if (typecode >= GB_BOOL_code && typecode < GB_UDT_code) - { - // blob has a built-in type; the name is not in the blob - strcpy (type_name, GB_code_string (typecode)) ; - } - else if (typecode == GB_UDT_code) - { - // blob has a user-defined type - // get the GxB_JIT_C_NAME of the user type from the blob - memcpy (type_name, ((GB_void *) blob) + GB_BLOB_HEADER_SIZE, - GxB_MAX_NAME_LEN) ; - s += GxB_MAX_NAME_LEN ; - } - - // this should already be in the blob, but set it to null just in case - type_name [GxB_MAX_NAME_LEN-1] = '\0' ; -// printf ("JIT C type name [%s]\n", type_name) ; - - //-------------------------------------------------------------------------- - // get the compressed block sizes from the blob for each array - //-------------------------------------------------------------------------- - - GB_BLOB_READS (Cp_Sblocks, Cp_nblocks) ; - GB_BLOB_READS (Ch_Sblocks, Ch_nblocks) ; - GB_BLOB_READS (Cb_Sblocks, Cb_nblocks) ; - GB_BLOB_READS (Ci_Sblocks, Ci_nblocks) ; - GB_BLOB_READS (Cx_Sblocks, Cx_nblocks) ; - - //-------------------------------------------------------------------------- - // skip past each array (Cp, Ch, Cb, Ci, and Cx) - //-------------------------------------------------------------------------- - - switch (*sparsity_status) - { - case GxB_HYPERSPARSE : - // skip Cp, Ch, and Ci - s += (Cp_nblocks > 0) ? Cp_Sblocks [Cp_nblocks-1] : 0 ; - s += (Ch_nblocks > 0) ? Ch_Sblocks [Ch_nblocks-1] : 0 ; - s += (Ci_nblocks > 0) ? Ci_Sblocks [Ci_nblocks-1] : 0 ; - break ; - - case GxB_SPARSE : - // skip Cp and Ci - s += (Cp_nblocks > 0) ? Cp_Sblocks [Cp_nblocks-1] : 0 ; - s += (Ci_nblocks > 0) ? Ci_Sblocks [Ci_nblocks-1] : 0 ; - break ; - - case GxB_BITMAP : - // skip Cb - s += (Cb_nblocks > 0) ? Cb_Sblocks [Cb_nblocks-1] : 0 ; - break ; - - case GxB_FULL : - break ; - default: ; - } - - // skip Cx - s += (Cx_nblocks > 0) ? Cx_Sblocks [Cx_nblocks-1] : 0 ; - - //-------------------------------------------------------------------------- - // get the GrB_NAME and GrB_ELTYPE_STRING - //-------------------------------------------------------------------------- - - // v8.1.0 adds two nul-terminated uncompressed strings to the end of the - // blob. If the strings are empty, the nul terminators still appear. - - (*user_name) = NULL ; - (*eltype_string) = NULL ; - - if (version >= GxB_VERSION (8,1,0)) - { - - //---------------------------------------------------------------------- - // look for the two nul bytes in blob [s : blob_size-1] - //---------------------------------------------------------------------- - - int nfound = 0 ; - size_t ss [2] ; - for (size_t p = s ; p < blob_size && nfound < 2 ; p++) - { - if (blob [p] == 0) - { - ss [nfound++] = p ; - } - } - - if (nfound == 2) - { - // extract the GrB_NAME and GrB_ELTYPE_STRING from the blob - (*user_name) = (char *) (blob + s) ; - (*eltype_string) = (char *) (blob + ss [0] + 1) ; -// printf ("deserialize user_name %lu:[%s] eltype %lu:[%s]\n", -// s, *user_name, ss [0] + 1, *eltype_string) ; - } - } - - //-------------------------------------------------------------------------- - // return result - //-------------------------------------------------------------------------- - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GxB_Serialized_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GxB_Serialized_get_Scalar -( - const void * blob, - GrB_Scalar value, - GrB_Field field, - size_t blob_size -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Serialized_get_Scalar (blob, value, field, blobsize)") ; - GB_RETURN_IF_NULL (blob) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - - //-------------------------------------------------------------------------- - // read the blob - //-------------------------------------------------------------------------- - - char type_name [GxB_MAX_NAME_LEN], *user_name, *eltype_string ; - int32_t sparsity_status, sparsity_ctrl, type_code, storage ; - double hyper_sw, bitmap_sw ; - - GrB_Info info = GB_blob_header_get (type_name, &type_code, &sparsity_status, - &sparsity_ctrl, &hyper_sw, &bitmap_sw, &storage, - &user_name, &eltype_string, blob, blob_size) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - double dvalue = 0 ; - int32_t ivalue = 0 ; - bool is_double = false ; - - if (info == GrB_SUCCESS) - { - switch (field) - { - case GrB_STORAGE_ORIENTATION_HINT : - - ivalue = storage ; - break ; - - case GrB_ELTYPE_CODE : - - ivalue = type_code ; - break ; - - case GxB_SPARSITY_CONTROL : - - ivalue = sparsity_ctrl ; - break ; - - case GxB_SPARSITY_STATUS : - - ivalue = sparsity_status ; - break ; - - case GxB_FORMAT : - - ivalue = (storage == GrB_COLMAJOR) ? GxB_BY_COL : GxB_BY_ROW ; - break ; - - case GxB_HYPER_SWITCH : - dvalue = hyper_sw ; - is_double = true ; - break ; - - case GxB_BITMAP_SWITCH : - dvalue = bitmap_sw ; - is_double = true ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - - if (is_double) - { - // field specifies a double: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &dvalue, 0, 0, - GB_FP64_code, Werk) ; - } - else - { - // field specifies an int32_t: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &ivalue, 0, 0, - GB_INT32_code, Werk) ; - } - } - - #pragma omp flush - return (info) ; -} - -//------------------------------------------------------------------------------ -// GxB_Serialized_get_String -//------------------------------------------------------------------------------ - -GrB_Info GxB_Serialized_get_String -( - const void * blob, - char * value, - GrB_Field field, - size_t blob_size -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Serialized_get_String (blob, value, field, blobsize)") ; - GB_RETURN_IF_NULL (blob) ; - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // read the blob - //-------------------------------------------------------------------------- - - char type_name [GxB_MAX_NAME_LEN], *user_name, *eltype_string ; - int32_t sparsity_status, sparsity_ctrl, type_code, storage ; - double hyper_sw, bitmap_sw ; - - GrB_Info info = GB_blob_header_get (type_name, &type_code, &sparsity_status, - &sparsity_ctrl, &hyper_sw, &bitmap_sw, &storage, - &user_name, &eltype_string, blob, blob_size) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - (*value) = '\0' ; - const char *name ; - - if (info == GrB_SUCCESS) - { - switch (field) - { - - case GrB_NAME : - if (user_name != NULL) - { - strcpy (value, user_name) ; - } - break ; - - case GxB_JIT_C_NAME : - strcpy (value, type_name) ; - break ; - - case GrB_ELTYPE_STRING : - if (eltype_string != NULL) - { - strcpy (value, eltype_string) ; - } - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - } - - #pragma omp flush - return (info) ; -} - -//------------------------------------------------------------------------------ -// GxB_Serialized_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GxB_Serialized_get_INT32 -( - const void * blob, - int32_t * value, - GrB_Field field, - size_t blob_size -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Serialized_get_INT32 (blob, value, field, blobsize)") ; - GB_RETURN_IF_NULL (blob) ; - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // read the blob - //-------------------------------------------------------------------------- - - char type_name [GxB_MAX_NAME_LEN], *user_name, *eltype_string ; - int32_t sparsity_status, sparsity_ctrl, type_code, storage ; - double hyper_sw, bitmap_sw ; - - GrB_Info info = GB_blob_header_get (type_name, &type_code, &sparsity_status, - &sparsity_ctrl, &hyper_sw, &bitmap_sw, &storage, - &user_name, &eltype_string, blob, blob_size) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - if (info == GrB_SUCCESS) - { - switch (field) - { - case GrB_STORAGE_ORIENTATION_HINT : - - (*value) = storage ; - break ; - - case GrB_ELTYPE_CODE : - - (*value) = type_code ; - break ; - - case GxB_SPARSITY_CONTROL : - - (*value) = sparsity_ctrl ; - break ; - - case GxB_SPARSITY_STATUS : - - (*value) = sparsity_status ; - break ; - - case GxB_FORMAT : - - (*value) = (storage == GrB_COLMAJOR) ? GxB_BY_COL : GxB_BY_ROW ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - } - - #pragma omp flush - return (info) ; -} - -//------------------------------------------------------------------------------ -// GxB_Serialized_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GxB_Serialized_get_SIZE -( - const void * blob, - size_t * value, - GrB_Field field, - size_t blob_size -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GxB_Serialized_get_SIZE (blob, value, field, blobsize)") ; - GB_RETURN_IF_NULL (blob) ; - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // read the blob - //-------------------------------------------------------------------------- - - char type_name [GxB_MAX_NAME_LEN], *user_name, *eltype_string ; - int32_t sparsity_status, sparsity_ctrl, type_code, storage ; - double hyper_sw, bitmap_sw ; - - GrB_Info info = GB_blob_header_get (type_name, &type_code, &sparsity_status, - &sparsity_ctrl, &hyper_sw, &bitmap_sw, &storage, - &user_name, &eltype_string, blob, blob_size) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - const char *name ; - - if (info == GrB_SUCCESS) - { - switch (field) - { - - case GrB_NAME : - (*value) = (user_name == NULL) ? 1 : (strlen (user_name) + 1) ; - break ; - - case GxB_JIT_C_NAME : - (*value) = strlen (type_name) + 1 ; - break ; - - case GrB_ELTYPE_STRING : - (*value) = (eltype_string == NULL) ? - 1 : (strlen (eltype_string) + 1) ; - break ; - - default : - return (GrB_INVALID_VALUE) ; - } - } - #pragma omp flush - return (info) ; -} - -//------------------------------------------------------------------------------ -// GxB_Serialized_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GxB_Serialized_get_VOID -( - const void * blob, - void * value, - GrB_Field field, - size_t blob_size -) -{ - return (GrB_INVALID_VALUE) ; -} - diff --git a/Source/GxB_Type_from_name.c b/Source/GxB_Type_from_name.c index 57d02ed6d5..407e9187fc 100644 --- a/Source/GxB_Type_from_name.c +++ b/Source/GxB_Type_from_name.c @@ -7,10 +7,10 @@ //------------------------------------------------------------------------------ -// GxB_Type_from_name returns the built-in GrB_Type corresponding to the C name -// of the type as a string, or the GraphBLAS name of the type. For -// user-defined types, type is returned as NULL. This is not an error -// condition. This allows the user to write code such as this: +// GxB_Type_from_name returns the built-in GrB_Type corresponding to the +// C name of the type as a string. For user-defined types, type is returned +// as NULL. This is not an error condition. This allows the user to write +// code such as this: /* typedef struct { double x ; char stuff [16] ; } myfirsttype ; @@ -25,14 +25,11 @@ // ... create a matrix A of some built-in or user-defined type // later on, to query the type of A: - GrB_Scalar tsize ; - GrB_Scalar_new (&tsize, GrB_UINT32) ; - GrB_get (type, tsize, GrB_SIZE) ; // works for any type size_t typesize ; - GrB_Scalar_extractElement (&typesize, tsize) ; + GxB_Type_size (&typesize, type) ; // works for any type GrB_Type atype ; char atype_name [GxB_MAX_NAME_LEN] ; - GrB_get (A, atype_name, GrB_NAME) ; + GxB_Matrix_type_name (atype_name, A) ; GxB_Type_from_name (&atype, atype_name) ; if (atype == NULL) { @@ -60,8 +57,8 @@ // As a result, the GxB_Matrix_type function that appears in SuiteSparse // GraphBLAS has been declared "historical" and its use is discouraged. It -// won't be removed, to preserve backward compatibility, but it is removed from -// the user guide. Use the string-based type mechanism instead. +// won't be removed, to preserve backward compatibility, but it will eventually +// removed from the user guide. Use the string-based type mechanism instead. #include "GB.h" @@ -84,23 +81,22 @@ GrB_Info GxB_Type_from_name // return the GrB_Type from a name //-------------------------------------------------------------------------- #define MATCH(s) (strncmp (type_name, s, GxB_MAX_NAME_LEN) == 0) - #define MATCH2(s1,s2) MATCH (s1) || MATCH (s2) - - if (MATCH2 ("bool" , "GrB_BOOL" )) (*type) = GrB_BOOL ; - else if (MATCH2 ("int8_t" , "GrB_INT8" )) (*type) = GrB_INT8 ; - else if (MATCH2 ("int16_t" , "GrB_INT16" )) (*type) = GrB_INT16 ; - else if (MATCH2 ("int32_t" , "GrB_INT32" )) (*type) = GrB_INT32 ; - else if (MATCH2 ("int64_t" , "GrB_INT64" )) (*type) = GrB_INT64 ; - else if (MATCH2 ("uint8_t" , "GrB_UINT8" )) (*type) = GrB_UINT8 ; - else if (MATCH2 ("uint16_t" , "GrB_UINT16")) (*type) = GrB_UINT16 ; - else if (MATCH2 ("uint32_t" , "GrB_UINT32")) (*type) = GrB_UINT32 ; - else if (MATCH2 ("uint64_t" , "GrB_UINT64")) (*type) = GrB_UINT64 ; - else if (MATCH2 ("float" , "GrB_FP32" )) (*type) = GrB_FP32 ; - else if (MATCH2 ("double" , "GrB_FP64" )) (*type) = GrB_FP64 ; - else if (MATCH2 ("float complex" , "GxB_FC32_t")) (*type) = GxB_FC32 ; - else if (MATCH ("float _Complex" )) (*type) = GxB_FC32 ; - else if (MATCH2 ("double complex", "GxB_FC64_t")) (*type) = GxB_FC64 ; - else if (MATCH ("double _Complex" )) (*type) = GxB_FC64 ; + + if (MATCH ("bool" )) (*type) = GrB_BOOL ; + else if (MATCH ("int8_t" )) (*type) = GrB_INT8 ; + else if (MATCH ("int16_t" )) (*type) = GrB_INT16 ; + else if (MATCH ("int32_t" )) (*type) = GrB_INT32 ; + else if (MATCH ("int64_t" )) (*type) = GrB_INT64 ; + else if (MATCH ("uint8_t" )) (*type) = GrB_UINT8 ; + else if (MATCH ("uint16_t" )) (*type) = GrB_UINT16 ; + else if (MATCH ("uint32_t" )) (*type) = GrB_UINT32 ; + else if (MATCH ("uint64_t" )) (*type) = GrB_UINT64 ; + else if (MATCH ("float" )) (*type) = GrB_FP32 ; + else if (MATCH ("double" )) (*type) = GrB_FP64 ; + else if (MATCH ("float complex" )) (*type) = GxB_FC32 ; + else if (MATCH ("GxB_FC32_t" )) (*type) = GxB_FC32 ; + else if (MATCH ("double complex")) (*type) = GxB_FC64 ; + else if (MATCH ("GxB_FC64_t" )) (*type) = GxB_FC64 ; else { // This is not an error. Returning type as NULL means that A has a diff --git a/Source/GxB_Type_new.c b/Source/GxB_Type_new.c index eeff523ad2..3afd386e2b 100644 --- a/Source/GxB_Type_new.c +++ b/Source/GxB_Type_new.c @@ -40,7 +40,7 @@ GrB_Info GxB_Type_new ( GrB_Type *type, // handle of user type to create size_t sizeof_type, // size of the user type - const char *type_name, // name of the user type + const char *type_name, // name of the user type, or "sizeof (ctype)" const char *type_defn // typedef of the C type (any length) ) { @@ -76,8 +76,6 @@ GrB_Info GxB_Type_new // initialize the type t->header_size = header_size ; - t->user_name = NULL ; - t->user_name_size = 0 ; t->size = sizeof_type ; t->code = GB_UDT_code ; // user-defined type memset (t->name, 0, GxB_MAX_NAME_LEN) ; // no name yet @@ -85,13 +83,46 @@ GrB_Info GxB_Type_new t->defn_size = 0 ; //-------------------------------------------------------------------------- - // get the name + // get the name: as a type_name or "sizeof (type_name)" //-------------------------------------------------------------------------- if (type_name != NULL) { // copy the type_name into the working name - strncpy (t->name, type_name, GxB_MAX_NAME_LEN-1) ; + char working [GxB_MAX_NAME_LEN] ; + memset (working, 0, GxB_MAX_NAME_LEN) ; + strncpy (working, type_name, GxB_MAX_NAME_LEN-1) ; + + // look for "sizeof" in the name + char *p = NULL ; + p = strstr (working, "sizeof") ; + if (p != NULL) + { + // "sizeof" appears in the input string, advance past it + p += 6 ; + + // find leading "(" if it appears, and advance to one char past it + char *p2 = strstr (p, "(") ; + if (p2 != NULL) p = p2 + 1 ; + + // find trailing ")" if it appears, and delete it + p2 = strstr (p, ")") ; + if (p2 != NULL) *p2 = '\0' ; + + // p now contains the final name, copy it to the output name + strncpy (t->name, p, GxB_MAX_NAME_LEN-1) ; + } + else + { + // "sizeof" does not appear, take the input type_name as-is + memcpy (t->name, working, GxB_MAX_NAME_LEN) ; + } + } + else + { + // no type name, so give it a generic name, with the size of type only + snprintf (t->name, GxB_MAX_NAME_LEN-1, "user_type_of_size_" GBu, + (uint64_t) sizeof_type) ; } // ensure t->name is null-terminated @@ -101,7 +132,7 @@ GrB_Info GxB_Type_new t->name_len = (int32_t) strlen (t->name) ; // type can be JIT'd only if it has a name and defn t->hash = GB_jitifyer_hash (t->name, t->name_len, - (t->name_len > 0 && type_defn != NULL)) ; + (type_name != NULL && type_defn != NULL)) ; //-------------------------------------------------------------------------- // get the typedef, if present diff --git a/Source/GxB_Vector_serialize.c b/Source/GxB_Vector_serialize.c index ab8de201f4..ef00a5772b 100644 --- a/Source/GxB_Vector_serialize.c +++ b/Source/GxB_Vector_serialize.c @@ -12,7 +12,7 @@ // This method is similar to GxB_Matrix_serialize. Like that method, it // allocates the blob itself, and hands over the allocated space to the user // application. The blob must be freed by the same free function passed in to -// GxB_init, or by the C11 free() if GrB_init was used. On input, the +// GxB_init, or by the ANSI C11 free() if GrB_init was used. On input, the // blob_size need not be initialized; it is returned as the size of the blob as // allocated. diff --git a/Source/GxB_deserialize_type_name.c b/Source/GxB_deserialize_type_name.c index 29236ba436..9a69a535a7 100644 --- a/Source/GxB_deserialize_type_name.c +++ b/Source/GxB_deserialize_type_name.c @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GxB_deserialize_type_name: return the JIT C name of the type of a blob +// GxB_deserialize_type_name: return the name of a type //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. @@ -10,16 +10,13 @@ #include "GB.h" #include "GB_serialize.h" -// This method is historical; use GrB_get instead. - -// GxB_deserialize_type_name extracts the JIT C type_name of the GrB_Type of -// the GrB_Matrix or GrB_Vector held in a serialized blob. On input, type_name +// GxB_deserialize_type_name extracts the type_name of the GrB_Type of the +// GrB_Matrix or GrB_Vector held in a serialized blob. On input, type_name // must point to a user-owned char array of size at least GxB_MAX_NAME_LEN (it // must not point into the blob itself). On output, type_name will contain a // null-terminated string with the corresponding C type name. If the blob // holds a matrix of a built-in type, the name is returned as "bool" for -// GrB_BOOL, "uint8_t" for GrB_UINT8, "float complex" for GxB_FC32, etc. If -// the type is user-defined, the GxB_JIT_C_NAME of the type is returned. +// GrB_BOOL, "uint8_t" for GrB_UINT8, "float complex" for GxB_FC32, etc. GrB_Info GxB_deserialize_type_name // return the type name of a blob ( diff --git a/Source/GxB_init.c b/Source/GxB_init.c index 338e6f5855..e085cee3fb 100644 --- a/Source/GxB_init.c +++ b/Source/GxB_init.c @@ -19,7 +19,7 @@ // Examples: // -// To use GraphBLAS with the C11 functions (or to another library +// To use GraphBLAS with the ANSI C11 functions (or to another library // linked in that replaces them): // // // either use: diff --git a/Source/Shared/GB_Operator.h b/Source/Shared/GB_Operator.h index ea197fd881..50f09e317a 100644 --- a/Source/Shared/GB_Operator.h +++ b/Source/Shared/GB_Operator.h @@ -12,10 +12,6 @@ int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 - // ---------------------// - char *user_name ; // user name for GrB_get/GrB_set - size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set - // ---------------------// GrB_Type ztype ; // type of z GrB_Type xtype ; // type of x @@ -27,8 +23,8 @@ GxB_index_unary_function idxunop_function ; GxB_binary_function binop_function ; - char name [GxB_MAX_NAME_LEN] ; // JIT C name of the operator - int32_t name_len ; // length of JIT C name; 0 for builtin + char name [GxB_MAX_NAME_LEN] ; // name of the operator + int32_t name_len ; // length of user-defined name; 0 for builtin GB_Opcode opcode ; // operator opcode char *defn ; // function definition size_t defn_size ; // allocated size of the definition diff --git a/Source/Shared/GB_assign_shared_definitions.h b/Source/Shared/GB_assign_shared_definitions.h index ae5ff10df6..c9dc7e79b4 100644 --- a/Source/Shared/GB_assign_shared_definitions.h +++ b/Source/Shared/GB_assign_shared_definitions.h @@ -82,10 +82,10 @@ #define GB_GET_C_HYPER_HASH \ GB_OK (GB_hyper_hash_build (C, Werk)) ; \ - const int64_t *restrict C_Yp = (C->Y == NULL) ? NULL : C->Y->p ; \ - const int64_t *restrict C_Yi = (C->Y == NULL) ? NULL : C->Y->i ; \ - const int64_t *restrict C_Yx = (C->Y == NULL) ? NULL : C->Y->x ; \ - const int64_t C_hash_bits = (C->Y == NULL) ? 0 : (C->Y->vdim - 1) ; + const int64_t *restrict C_Yp = (C_is_hyper) ? C->Y->p : NULL ; \ + const int64_t *restrict C_Yi = (C_is_hyper) ? C->Y->i : NULL ; \ + const int64_t *restrict C_Yx = (C_is_hyper) ? C->Y->x : NULL ; \ + const int64_t C_hash_bits = (C_is_hyper) ? (C->Y->vdim - 1) : 0 ; //------------------------------------------------------------------------------ // GB_GET_MASK: get the mask matrix M @@ -111,10 +111,10 @@ #define GB_GET_MASK_HYPER_HASH \ GB_OK (GB_hyper_hash_build (M, Werk)) ; \ - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; \ - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->i ; \ - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->x ; \ - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = (M_is_hyper) ? M->Y->p : NULL ; \ + const int64_t *restrict M_Yi = (M_is_hyper) ? M->Y->i : NULL ; \ + const int64_t *restrict M_Yx = (M_is_hyper) ? M->Y->x : NULL ; \ + const int64_t M_hash_bits = (M_is_hyper) ? (M->Y->vdim - 1) : 0 ; //------------------------------------------------------------------------------ // GB_GET_ACCUM: get the accumulator op and its related typecasting functions @@ -220,10 +220,10 @@ const int64_t Svlen = S->vlen ; \ const int64_t Snvec = S->nvec ; \ const bool S_is_hyper = GB_IS_HYPERSPARSE (S) ; \ - const int64_t *restrict S_Yp = (S->Y == NULL) ? NULL : S->Y->p ; \ - const int64_t *restrict S_Yi = (S->Y == NULL) ? NULL : S->Y->i ; \ - const int64_t *restrict S_Yx = (S->Y == NULL) ? NULL : S->Y->x ; \ - const int64_t S_hash_bits = (S->Y == NULL) ? 0 : (S->Y->vdim - 1) ; + const int64_t *restrict S_Yp = (S_is_hyper) ? S->Y->p : NULL ; \ + const int64_t *restrict S_Yi = (S_is_hyper) ? S->Y->i : NULL ; \ + const int64_t *restrict S_Yx = (S_is_hyper) ? S->Y->x : NULL ; \ + const int64_t S_hash_bits = (S_is_hyper) ? (S->Y->vdim - 1) : 0 ; //------------------------------------------------------------------------------ // basic actions @@ -1277,8 +1277,8 @@ { \ if (X ## _is_hyper) \ { \ - GB_hyper_hash_lookup (X ## h, X ## nvec, X ## p, X ## _Yp, \ - X ## _Yi, X ## _Yx, X ## _hash_bits, j, &pX_start, &pX_end) ; \ + GB_hyper_hash_lookup (X ## p, X ## _Yp, X ## _Yi, X ## _Yx, \ + X ## _hash_bits, j, &pX_start, &pX_end) ; \ } \ else \ { \ diff --git a/Source/Shared/GB_complex.h b/Source/Shared/GB_complex.h index d201c05913..45ca58e2f0 100644 --- a/Source/Shared/GB_complex.h +++ b/Source/Shared/GB_complex.h @@ -153,7 +153,7 @@ #else //-------------------------------------------------------------------------- - // C11 + // ANSI C11 //-------------------------------------------------------------------------- #define GB_crealf(x) crealf(x) diff --git a/Source/Shared/GB_hyper_hash_lookup.h b/Source/Shared/GB_hyper_hash_lookup.h index c32640cb1d..682d7e2115 100644 --- a/Source/Shared/GB_hyper_hash_lookup.h +++ b/Source/Shared/GB_hyper_hash_lookup.h @@ -15,9 +15,6 @@ GB_STATIC_INLINE int64_t GB_hyper_hash_lookup // k if j==Ah[k]; -1 if not found ( - // new inputs, not modified - const int64_t *restrict Ah, // A->h [0..A->nvec-1]: list of vectors - const int64_t anvec, // input, not modified const int64_t *restrict Ap, // A->p [0..A->nvec]: pointers to vectors const int64_t *restrict Yp, // A->Y->p @@ -25,79 +22,57 @@ 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 - // output int64_t *restrict pstart, // start of vector: Ap [k] int64_t *restrict pend // end of vector: Ap [k+1] ) { - bool found = false ; - int64_t k ; - - if (Yp == NULL) - { + //-------------------------------------------------------------------------- + // determine the hash bucket that would contain vector j + //-------------------------------------------------------------------------- - //---------------------------------------------------------------------- - // no hyper_hash constructed - //---------------------------------------------------------------------- + const int64_t jhash = GB_HASHF2 (j, hash_bits) ; - // 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) ; + //-------------------------------------------------------------------------- + // search for j in the jhash bucket: Yi [Yp [jhash] ... Yp [jhash+1]-1] + //-------------------------------------------------------------------------- + const int64_t ypstart = Yp [jhash] ; + const int64_t ypend = Yp [jhash+1] ; + int64_t k = -1 ; + if ((ypend - ypstart) > 256) + { + // The hash bucket jhash has over 256 entries, which is a very high + // number of collisions. The load factor of the hash table ranges from + // 2 to 4. Do a binary search as a fallback. + bool found ; + int64_t p = ypstart ; + int64_t pright = ypend - 1 ; + GB_BINARY_SEARCH (j, Yi, p, pright, found) ; + if (found) + { + k = Yx [p] ; + } } else { - - //---------------------------------------------------------------------- - // using the hyper_hash - //---------------------------------------------------------------------- - - // determine the hash bucket that would contain vector j - const int64_t jhash = GB_HASHF2 (j, hash_bits) ; - - //---------------------------------------------------------------------- - // search for j in the jhash bucket: Yi [Yp [jhash] ... Yp [jhash+1]-1] - //---------------------------------------------------------------------- - - const int64_t ypstart = Yp [jhash] ; - const int64_t ypend = Yp [jhash+1] ; - k = -1 ; - if ((ypend - ypstart) > 256) + // Linear-time search for j in the jhash bucket. + for (int64_t p = ypstart ; p < ypend ; p++) { - // The hash bucket jhash has over 256 entries, which is a very high - // number of collisions. The load factor of the hash table ranges - // from 2 to 4. Do a binary search as a fallback. - int64_t p = ypstart ; - int64_t pright = ypend - 1 ; - GB_BINARY_SEARCH (j, Yi, p, pright, found) ; - if (found) + if (j == Yi [p]) { + // found: j = Ah [k] where k is given by k = Yx [p] k = Yx [p] ; + break ; } } - else - { - // Linear-time search for j in the jhash bucket. - for (int64_t p = ypstart ; p < ypend ; p++) - { - if (j == Yi [p]) - { - // found: j = Ah [k] where k is given by k = Yx [p] - k = Yx [p] ; - break ; - } - } - found = (k >= 0) ; - } } //-------------------------------------------------------------------------- // if found, return the start and end of A(:,j) //-------------------------------------------------------------------------- - if (found) + if (k >= 0) { // found: j == Ah [k], get the vector A(:,j) (*pstart) = Ap [k] ; @@ -106,7 +81,6 @@ GB_STATIC_INLINE int64_t GB_hyper_hash_lookup // k if j==Ah[k]; -1 if not found else { // not found: j is not in the hyperlist Ah [0..anvec-1] - k = -1 ; (*pstart) = -1 ; (*pend ) = -1 ; } diff --git a/Source/Shared/GB_matrix.h b/Source/Shared/GB_matrix.h index 26b5e0518e..543f95f46f 100644 --- a/Source/Shared/GB_matrix.h +++ b/Source/Shared/GB_matrix.h @@ -9,11 +9,10 @@ // The GrB_Matrix and GrB_Vector objects are different names for the same // content. A GrB_Vector is held as an m-by-1 non-hypersparse CSC matrix. -// This file is #include'd in GB_opaque.h to define the GB_Matrix_opaque, -// GB_Vector_opaque, and GB_Scalar_opaque structs. It would be cleaner to -// define just one opaque struct, and then GrB_Matrix, GrB_Vector, GrB_Scalar -// would be typedef'd as pointers to the same struct, but then the compiler -// gets confused with _Generic(x). +// This file is #include'd in GB_opaque.h to define the GB_Matrix_opaque and +// GB_Vector_opaque structs. It would be cleaner to define just one opaque +// struct, and then GrB_Matrix and GrB_Vector would be typedef'd as pointers to +// the same struct, but then the compiler gets confused with Generic(x). // For a GrB_Vector object, as an m-by-1 non-hypersparse CSC matrix: // bool is_csc ; // always true @@ -28,18 +27,13 @@ // basic information: magic, error logger, and type //------------------------------------------------------------------------------ -// The first four items exactly match the first four items of nearly all -// GraphBLAS objects. The first 6 match the GrB_Descriptor struct. +// The first four items exactly match the first four items in the +// GrB_Descriptor struct. int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 -// ---------------------// -char *user_name ; // user name for GrB_get/GrB_set -size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set -// ---------------------// char *logger ; // error logger string size_t logger_size ; // size of the malloc'd block for logger, or 0 -// ---------------------// // The remaining items are specific the GrB_Matrix, GrB_Vector and GrB_Scalar // structs, and do not appear in the GrB_Descriptor struct: diff --git a/Source/Shared/GB_opaque.h b/Source/Shared/GB_opaque.h index 6c175431da..884536f00d 100644 --- a/Source/Shared/GB_opaque.h +++ b/Source/Shared/GB_opaque.h @@ -107,8 +107,8 @@ typedef enum GB_ERF_unop_code = 35, // z = erf (x) GB_ERFC_unop_code = 36, // z = erfc (x) GB_CBRT_unop_code = 37, // z = cbrt (x) - GB_FREXPX_unop_code = 38, // z = frexpx (x), mantissa of C11 frexp - GB_FREXPE_unop_code = 39, // z = frexpe (x), exponent of C11 frexp + GB_FREXPX_unop_code = 38, // z = frexpx (x), mantissa of ANSI C11 frexp + GB_FREXPE_unop_code = 39, // z = frexpe (x), exponent of ANSI C11 frexp //-------------------------------------------------------------------------- // unary operators for complex types only @@ -358,21 +358,15 @@ GB_Opcode ; // when A->p array is allocated but not initialized. #define GB_MAGIC2 0x7265745f786f62ULL -// Nearly all GraphBLAS objects contain the same first 4 items (except for -// GB_Global_opaque, which has just the first 2). - struct GB_Type_opaque // content of GrB_Type { int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 // ---------------------// - char *user_name ; // user name for GrB_get/GrB_set - size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set - // ---------------------// size_t size ; // size of the type GB_Type_code code ; // the type code - int32_t name_len ; // length of JIT C name; 0 for builtin - char name [GxB_MAX_NAME_LEN] ; // JIT C name of the type + int32_t name_len ; // length of user-defined name; 0 for builtin + char name [GxB_MAX_NAME_LEN] ; // name of the type char *defn ; // type definition size_t defn_size ; // allocated size of the definition uint64_t hash ; // if 0, type is builtin. @@ -413,9 +407,6 @@ struct GB_Monoid_opaque // content of GrB_Monoid int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 // ---------------------// - char *user_name ; // user name for GrB_get/GrB_set - size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set - // ---------------------// GrB_BinaryOp op ; // binary operator of the monoid void *identity ; // identity of the monoid; type is op->ztype void *terminal ; // early-exit (NULL if no value); type is op->ztype @@ -430,29 +421,22 @@ struct GB_Semiring_opaque // content of GrB_Semiring int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 // ---------------------// - char *user_name ; // user name for GrB_get/GrB_set - size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set - // ---------------------// GrB_Monoid add ; // add operator of the semiring GrB_BinaryOp multiply ; // multiply operator of the semiring - char *name ; // name of the semiring; NULL for builtin - int32_t name_len ; // length of name; 0 for builtin + char *name ; // name of the type; NULL for builtin + int32_t name_len ; // length of user-defined name; 0 for builtin size_t name_size ; // allocated size of the name uint64_t hash ; // if 0, semiring uses only builtin ops and types } ; struct GB_Descriptor_opaque // content of GrB_Descriptor { - // first 6 items exactly match GrB_Matrix, GrB_Vector, GrB_Scalar structs: + // first 4 items exactly match GrB_Matrix, GrB_Vector, GrB_Scalar structs: int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 // ---------------------// - char *user_name ; // user name for GrB_get/GrB_set - size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set - // ---------------------// char *logger ; // error logger string size_t logger_size ; // size of the malloc'd block for logger, or 0 - // ---------------------// // specific to the descriptor struct: GrB_Desc_Value out ; // output descriptor GrB_Desc_Value mask ; // mask descriptor @@ -469,9 +453,6 @@ struct GB_Context_opaque // content of GxB_Context int64_t magic ; // for detecting uninitialized objects size_t header_size ; // size of the malloc'd block for this struct, or 0 // ---------------------// - char *user_name ; // user name for GrB_get/GrB_set - size_t user_name_size ; // allocated size of user_name for GrB_get/GrB_set - // ---------------------// // OpenMP thread(s): double chunk ; // chunk size for # of threads for small problems int nthreads_max ; // max # threads to use in this call to GraphBLAS diff --git a/Source/Shared/GxB_complex.h b/Source/Shared/GxB_complex.h index 9ff0394eb0..173ab3c90c 100644 --- a/Source/Shared/GxB_complex.h +++ b/Source/Shared/GxB_complex.h @@ -30,13 +30,13 @@ #else - // C11 complex types + // ANSI C11 complex types #include #undef I typedef float _Complex GxB_FC32_t ; typedef double _Complex GxB_FC64_t ; #if (defined (CMPLX) && defined (CMPLXF)) - // use the C11 CMPLX and CMPLXF macros + // use the ANSI C11 CMPLX and CMPLXF macros #define GxB_CMPLX(r,i) CMPLX (r,i) #define GxB_CMPLXF(r,i) CMPLXF (r,i) #define GB_HAS_CMPLX_MACROS 1 diff --git a/Source/Template/GB_AxB_dot3_meta.c b/Source/Template/GB_AxB_dot3_meta.c index 7308d4b34d..e1a8c3c98a 100644 --- a/Source/Template/GB_AxB_dot3_meta.c +++ b/Source/Template/GB_AxB_dot3_meta.c @@ -106,15 +106,17 @@ const bool A_iso = A->iso ; #endif - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; - - const int64_t *restrict B_Yp = (B->Y == NULL) ? NULL : B->Y->p ; - const int64_t *restrict B_Yi = (B->Y == NULL) ? NULL : B->Y->i ; - const int64_t *restrict B_Yx = (B->Y == NULL) ? NULL : B->Y->x ; - const int64_t B_hash_bits = (B->Y == NULL) ? 0 : (B->Y->vdim - 1) ; + const GrB_Matrix A_Y = A->Y ; + const int64_t *restrict A_Yp = (A_is_hyper) ? A_Y->p : NULL ; + const int64_t *restrict A_Yi = (A_is_hyper) ? A_Y->i : NULL ; + const int64_t *restrict A_Yx = (A_is_hyper) ? A_Y->x : NULL ; + const int64_t A_hash_bits = (A_is_hyper) ? (A_Y->vdim - 1) : 0 ; + + const GrB_Matrix B_Y = B->Y ; + const int64_t *restrict B_Yp = (B_is_hyper) ? B_Y->p : NULL ; + const int64_t *restrict B_Yi = (B_is_hyper) ? B_Y->i : NULL ; + const int64_t *restrict B_Yx = (B_is_hyper) ? B_Y->x : NULL ; + const int64_t B_hash_bits = (B_is_hyper) ? (B_Y->vdim - 1) : 0 ; #if !GB_A_IS_PATTERN const GB_A_TYPE *restrict Ax = (GB_A_TYPE *) A->x ; diff --git a/Source/Template/GB_AxB_dot3_phase1_template.c b/Source/Template/GB_AxB_dot3_phase1_template.c index 2cd571526d..f02b54cff2 100644 --- a/Source/Template/GB_AxB_dot3_phase1_template.c +++ b/Source/Template/GB_AxB_dot3_phase1_template.c @@ -57,8 +57,8 @@ #if GB_B_IS_HYPER // B is hyper: find B(:,j) using the B->Y hyper hash int64_t pB_start, pB_end ; - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, - B_hash_bits, j, &pB_start, &pB_end) ; + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + j, &pB_start, &pB_end) ; #elif GB_B_IS_SPARSE // B is sparse const int64_t pB_start = Bp [j] ; @@ -106,8 +106,8 @@ #if GB_A_IS_HYPER // A is hyper: find A(:,i) using the A->Y hyper hash int64_t pA, pA_end ; - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, - A_hash_bits, i, &pA, &pA_end) ; + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + i, &pA, &pA_end) ; const int64_t ainz = pA_end - pA ; work += GB_IMIN (ainz, bjnz) ; #elif GB_A_IS_SPARSE diff --git a/Source/Template/GB_AxB_dot3_template.c b/Source/Template/GB_AxB_dot3_template.c index d9cdb407d3..e4b41c7b92 100644 --- a/Source/Template/GB_AxB_dot3_template.c +++ b/Source/Template/GB_AxB_dot3_template.c @@ -72,8 +72,8 @@ #if GB_B_IS_HYPER // B is hyper: find B(:,j) using the B->Y hyper hash int64_t pB_start, pB_end ; - GB_hyper_hash_lookup (Bh, bnvec, Bp, B_Yp, B_Yi, B_Yx, - B_hash_bits, j, &pB_start, &pB_end) ; + GB_hyper_hash_lookup (Bp, B_Yp, B_Yi, B_Yx, B_hash_bits, + j, &pB_start, &pB_end) ; #elif GB_B_IS_SPARSE // B is sparse const int64_t pB_start = Bp [j] ; @@ -136,8 +136,8 @@ #if GB_A_IS_HYPER // A is hyper: find A(:,i) using the A->Y hyper hash int64_t pA, pA_end ; - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, - A_hash_bits, i, &pA, &pA_end) ; + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, + i, &pA, &pA_end) ; const int64_t ainz = pA_end - pA ; if (ainz > 0) #elif GB_A_IS_SPARSE diff --git a/Source/Template/GB_AxB_saxpy3_template.c b/Source/Template/GB_AxB_saxpy3_template.c index cac0998879..0775683291 100644 --- a/Source/Template/GB_AxB_saxpy3_template.c +++ b/Source/Template/GB_AxB_saxpy3_template.c @@ -68,10 +68,17 @@ const bool A_ok_for_binary_search = ((A_is_sparse || A_is_hyper) && !A_jumbled) ; - const int64_t *restrict A_Yp = (A->Y == NULL) ? NULL : A->Y->p ; - const int64_t *restrict A_Yi = (A->Y == NULL) ? NULL : A->Y->i ; - const int64_t *restrict A_Yx = (A->Y == NULL) ? NULL : A->Y->x ; - const int64_t A_hash_bits = (A->Y == NULL) ? 0 : (A->Y->vdim - 1) ; + const int64_t *restrict A_Yp = NULL ; + const int64_t *restrict A_Yi = NULL ; + const int64_t *restrict A_Yx = NULL ; + int64_t A_hash_bits = 0 ; + if (A_is_hyper) + { + A_Yp = A->Y->p ; + A_Yi = A->Y->i ; + A_Yx = A->Y->x ; + A_hash_bits = A->Y->vdim - 1 ; + } #if ( !GB_NO_MASK ) const int64_t *restrict Mp = M->p ; @@ -91,10 +98,18 @@ int64_t mnvec = M->nvec ; int64_t mvlen = M->vlen ; // get the M hyper_hash - const int64_t *restrict M_Yp = (M->Y == NULL) ? NULL : M->Y->p ; - const int64_t *restrict M_Yi = (M->Y == NULL) ? NULL : M->Y->i ; - const int64_t *restrict M_Yx = (M->Y == NULL) ? NULL : M->Y->x ; - const int64_t M_hash_bits = (M->Y == NULL) ? 0 : (M->Y->vdim - 1) ; + const int64_t *restrict M_Yp = NULL ; + const int64_t *restrict M_Yi = NULL ; + const int64_t *restrict M_Yx = NULL ; + int64_t M_hash_bits = 0 ; + if (M_is_hyper) + { + // mask is present, and hypersparse + M_Yp = M->Y->p ; + M_Yi = M->Y->i ; + M_Yx = M->Y->x ; + M_hash_bits = M->Y->vdim - 1 ; + } #endif #if !GB_A_IS_PATTERN diff --git a/Source/Template/GB_AxB_saxpy3_template.h b/Source/Template/GB_AxB_saxpy3_template.h index 869dc51921..d1b9a8ef89 100644 --- a/Source/Template/GB_AxB_saxpy3_template.h +++ b/Source/Template/GB_AxB_saxpy3_template.h @@ -24,7 +24,7 @@ if (M_is_hyper) \ { \ /* M is hypersparse: find M(:,j) in the M->Y hyper_hash */ \ - GB_hyper_hash_lookup (Mh, mnvec, Mp, M_Yp, M_Yi, M_Yx, M_hash_bits, \ + GB_hyper_hash_lookup (Mp, M_Yp, M_Yi, M_Yx, M_hash_bits, \ GBH_B (Bh, kk), &pM_start, &pM_end) ; \ } \ else \ @@ -229,7 +229,7 @@ if (A_is_hyper) \ { \ /* A is hypersparse: find A(:,k) in the A->Y hyper_hash */ \ - GB_hyper_hash_lookup (Ah, anvec, Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, \ + GB_hyper_hash_lookup (Ap, A_Yp, A_Yi, A_Yx, A_hash_bits, \ k, &pA_start, &pA_end) ; \ } \ else \ diff --git a/Source/Template/GB_Template.h b/Source/Template/GB_Template.h index 2efcf4a5a1..568edfd259 100644 --- a/Source/Template/GB_Template.h +++ b/Source/Template/GB_Template.h @@ -32,7 +32,7 @@ // 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 +// for MS Visual Studio. Otherwise, GB_restrict is just "restrict" on ANSI 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: diff --git a/Source/Template/GB_atomics.h b/Source/Template/GB_atomics.h index 0feb5fa300..1b846f2ce7 100644 --- a/Source/Template/GB_atomics.h +++ b/Source/Template/GB_atomics.h @@ -10,7 +10,7 @@ // All atomic operations used by SuiteSparse:GraphBLAS appear in this file. // OpenMP 4.0 or later is preferred. -// These atomic operations assume either an C11 compiler that supports +// These atomic operations assume either an ANSI C11 compiler that supports // OpenMP 3.1 or later, or Microsoft Visual Studio on 64-bit Windows (which // only supports OpenMP 2.0). SuiteSparse:GraphBLAS is not supported on 32-bit // Windows. @@ -62,7 +62,12 @@ // OpenMP 4.0 or later) with the "update" clause. For MS Visual Studio, the // "update" clause is removed since it supports OpenMP 2.0. -#if ( _OPENMP >= 201307 ) +#if (! defined (_OPENMP)) || (_OPENMP < 199810) + + // no OpenMP at all + #define GB_ATOMIC_UPDATE + +#elif ( _OPENMP >= 201307 ) // OpenMP 4.0 or later: seq_cst added #define GB_ATOMIC_UPDATE GB_PRAGMA (omp atomic seq_cst update) @@ -72,16 +77,11 @@ // OpenMP 3.1: no seq_cst keyword #define GB_ATOMIC_UPDATE GB_PRAGMA (omp atomic update) -#elif ( _OPENMP >= 199810 ) +#else // ( _OPENMP >= 199810 ) // OpenMP 1.0 to 3.0: no optional clauses, "update" is assumed #define GB_ATOMIC_UPDATE GB_PRAGMA (omp atomic) -#else - - // no OpenMP at all - #define GB_ATOMIC_UPDATE - #endif //------------------------------------------------------------------------------ @@ -100,9 +100,10 @@ // is no need for atomic reads/writes when compiling GraphBLAS on Windows // with MS Visual Studio. -#if GBX86 +#if GBX86 || ! defined (_OPENMP) || (_OPENMP < 201107 ) - // x86_64: no atomic read/write is needed. + // For x86_64, no atomic read/write is needed, + // or OpenMP 3.0 or earlier, or no OpenMP at all #define GB_ATOMIC_READ #define GB_ATOMIC_WRITE @@ -112,18 +113,12 @@ #define GB_ATOMIC_READ GB_PRAGMA (omp atomic seq_cst read) #define GB_ATOMIC_WRITE GB_PRAGMA (omp atomic seq_cst write) -#elif ( _OPENMP >= 201107 ) +#else // ( _OPENMP >= 201107 ) // OpenMP 3.1 and later have atomic reads and writes, but no seq_cst clause #define GB_ATOMIC_READ GB_PRAGMA (omp atomic read) #define GB_ATOMIC_WRITE GB_PRAGMA (omp atomic write) -#else - - // OpenMP 3.0 or earlier, or no OpenMP at all - #define GB_ATOMIC_READ - #define GB_ATOMIC_WRITE - #endif //------------------------------------------------------------------------------ @@ -173,7 +168,12 @@ // https://docs.microsoft.com/en-us/cpp/intrinsics/interlockedexchange-intrinsic-functions // https://docs.microsoft.com/en-us/cpp/intrinsics/interlockedor-intrinsic-functions -#if ( _OPENMP >= 201307 ) +#if (! defined (_OPENMP)) || (_OPENMP < 199810) + + // no OpenMP at all + #define GB_ATOMIC_CAPTURE + +#elif ( _OPENMP >= 201307 ) // OpenMP 4.0 or later: added seq_cst feature #define GB_ATOMIC_CAPTURE GB_PRAGMA (omp atomic seq_cst capture) @@ -183,17 +183,12 @@ // OpenMP 3.1: no seq_cst clause #define GB_ATOMIC_CAPTURE GB_PRAGMA (omp atomic capture) -#elif ( _OPENMP >= 199810 ) +#else // ( _OPENMP >= 199810 ) // OpenMP 1.0 to 3.0: generate an intentional compile-time error if any // attempt is made to use the atomic capture. #define GB_ATOMIC_CAPTURE atomic capture not available -#else - - // no OpenMP at all - #define GB_ATOMIC_CAPTURE - #endif //-------------------------------------------------------------------------- diff --git a/Source/Template/GB_compiler.h b/Source/Template/GB_compiler.h index 4ee1d72b87..7c38e29e7c 100644 --- a/Source/Template/GB_compiler.h +++ b/Source/Template/GB_compiler.h @@ -140,7 +140,7 @@ #if GB_COMPILER_MSC - // MS Visual Studio is not C11 compliant, and uses __pragma: + // MS Visual Studio is not ANSI C11 compliant, and uses __pragma: #define GB_PRAGMA(x) __pragma (x) // no #pragma omp simd is available in MS Visual Studio #define GB_PRAGMA_SIMD @@ -148,7 +148,7 @@ #else - // C11 compilers use _Pragma: + // ANSI C11 compilers use _Pragma: #define GB_PRAGMA(x) _Pragma (#x) // create two kinds of SIMD pragmas: // GB_PRAGMA_SIMD becomes "#pragma omp simd" diff --git a/Source/Template/GB_defaults.h b/Source/Template/GB_defaults.h index 277d3fc792..28988faa0b 100644 --- a/Source/Template/GB_defaults.h +++ b/Source/Template/GB_defaults.h @@ -17,8 +17,8 @@ // These parameters define the content of values that can be // used as inputs to GxB_*Option_set. +// The default format is by row (CSR). #define GB_HYPER_SWITCH_DEFAULT (0.0625) -#define GB_HYPER_HASH_DEFAULT (1024) // by default, give each thread at least 64K units of work to do #define GB_CHUNK_DEFAULT (64*1024) diff --git a/Source/Template/GB_math_macros.h b/Source/Template/GB_math_macros.h index b694c45f9f..f025e7763b 100644 --- a/Source/Template/GB_math_macros.h +++ b/Source/Template/GB_math_macros.h @@ -27,7 +27,7 @@ // NaN always return false, so if either x or y are NaN, then z = y, for both // min(x,y) and max(x,y). -// The C11 fmin, fminf, fmax, and fmaxf functions have the 'omitnan' +// The ANSI C11 fmin, fminf, fmax, and fmaxf functions have the 'omitnan' // behavior. These are used in SuiteSparse:GraphBLAS v2.3.0 and later. // for integers only: diff --git a/Source/Template/GB_wait_macros.h b/Source/Template/GB_wait_macros.h index a9cde8c8ab..4a65848618 100644 --- a/Source/Template/GB_wait_macros.h +++ b/Source/Template/GB_wait_macros.h @@ -35,5 +35,8 @@ #define GB_ANY_PENDING_WORK(A) \ (GB_PENDING (A) || GB_ZOMBIES (A) || GB_JUMBLED (A)) +// true if a matrix is hypersparse but has no A->Y component +#define GB_NEED_HYPER_HASH(A) (GB_IS_HYPERSPARSE (A) && (((A)->Y) == NULL)) + #endif diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c index 2765e40912..a166d9ec22 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c @@ -123,7 +123,7 @@ 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 ; + v [0] = 8 ; v [1] = 0 ; v [2] = 0 ; // intentionally stale version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c index 5856726c0b..78be305c45 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -123,7 +123,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0x31aff911c5850713 ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c index 7be7466471..ef6d003393 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -123,7 +123,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0x227f98d0b09e286f ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = GB_my_rdiv_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c index f871fe3b73..47dbe76db2 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -105,7 +105,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0xdf8cbb0c0ac7ce22 ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = NULL ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c index da6882a77a..ea5c911a34 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -123,7 +123,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0x422f36dae3aeca51 ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c index ed74b3aba9..1b968125e0 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -123,7 +123,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0x654ba0e0a34027e9 ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c index 358bf7affb..2f3fb7e33b 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -123,7 +123,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0x98afaa59c37fb8bb ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c index aafab966ed..0f994de017 100644 --- a/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c +++ b/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -123,7 +123,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0xfaa3c6cd7f90ec16 ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c b/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c index 8682bfc8bc..fc95d0ee66 100644 --- a/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c +++ b/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // GB_jit__user_op__0__my_rdiv.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v8.2.0, Timothy A. Davis, (c) 2017-2023, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any @@ -37,7 +37,7 @@ GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0xa98ff14e387744fe ; - v [0] = 9 ; v [1] = 0 ; v [2] = 0 ; + v [0] = 8 ; v [1] = 3 ; v [2] = 0 ; // keep at current version defn [0] = GB_my_rdiv_USER_DEFN ; defn [1] = NULL ; defn [2] = NULL ; diff --git a/Tcov/README.txt b/Tcov/README.txt index 0521baf13d..687be5f5f7 100644 --- a/Tcov/README.txt +++ b/Tcov/README.txt @@ -3,8 +3,8 @@ SPDX-License-Identifier: Apache-2.0 GraphBLAS/Tcov: statement coverage tests -Requirements: the mex command must use a C compiler supporting C11. -Microft Visual Studio does not support C11 so this test is not available +Requirements: the mex command must use a C compiler supporting ANSI C11. +Microft Visual Studio does not support ANSI C11 so this test is not available on Windows unless you use another compiler. Since nearly all GraphBLAS tests are in *.m files, I have taken the unusual diff --git a/Tcov/grbuniq.m b/Tcov/grbuniq.m deleted file mode 100644 index 27ef4ccccd..0000000000 --- a/Tcov/grbuniq.m +++ /dev/null @@ -1,87 +0,0 @@ - -% load grbstat -ntests = length (GraphBLAS_grbcovs) ; -n = length (GraphBLAS_grbcovs {1}) ; -G = cell2mat (GraphBLAS_grbcovs') ; -T = cell2mat (GraphBLAS_times') ; - -Mine = zeros (ntests, n) ; -Mine (1, :) = G (1, :) ; - -for k = 2:ntests - % find the statements covered by this test - Mine (k,:) = G (k,:) - G (k-1,:) ; -end - -% Mine (k,i) = 1 if the kth test covers statement i -Mine = full (spones (Mine)) ; - -S = sum (Mine) ; -U = (S == 1) ; -keeper = [ ] ; - -for k = 1:ntests - my_uniq = (Mine (k,:) > 0) & U ; - n_uniq = sum (my_uniq) ; - t = T (k) ; - fprintf ('%3d %-20s : %5d %9.2f', k, GraphBLAS_scripts {k}, n_uniq, t) ; - fprintf (' %10.2f ', t/n_uniq) ; - if (n_uniq == 0) - fprintf ('<<<<<<<<<<<') ; - else - keeper = [keeper k] ; - end - fprintf ('\n') ; -end - -fprintf ('\n====================================\n') ; - -[ignore I] = sort (T, 'descend') ; -for kk = 1:ntests - k = I (kk) ; - my_uniq = (Mine (k,:) > 0) & U ; - n_uniq = sum (my_uniq) ; - t = T (k) ; - fprintf ('%3d %3d %-20s : %5d %9.2f', kk, k, GraphBLAS_scripts {k}, n_uniq, t) ; - fprintf (' %10.2f ', t/n_uniq) ; - if (n_uniq == 0) - fprintf ('<<<<<<<<<<<') ; - Mine (k,:) = 0 ; - S = sum (Mine) ; - U = (S == 1) ; - else - keeper = [keeper k] ; - end - fprintf ('\n') ; -end - - - -%{ -fprintf ('\n====================================\n') ; - -Mine2 = Mine (keeper, :) ; -S2 = sum (Mine2) ; -U2 = (S2 == 1) ; -ntests2 = length (keeper) ; -T2 = T (keeper) ; -Scr = GraphBLAS_scripts (keeper) ; - -for k = 1:ntests2 - my_uniq = (Mine2 (k,:) > 0) & U2 ; - n_uniq = sum (my_uniq) ; - t = T2 (k) ; - fprintf ('%3d %-20s : %5d %6.2f', k, Scr {k}, n_uniq, t) ; - fprintf (' %10.2f ', t/n_uniq) ; - if (n_uniq == 0) - fprintf ('<<<<<<<<<<<') ; - else - keeper = [keeper k] ; - end - fprintf ('\n') ; -end - -sum (T) /60 -sum (T2) /60 -(sum (T) - sum (T2)) / 60 -%} diff --git a/Tcov/log_Dec6.txt b/Tcov/log_Dec6.txt new file mode 100644 index 0000000000..6fee966997 --- /dev/null +++ b/Tcov/log_Dec6.txt @@ -0,0 +1,217 @@ + +---------------------------------------------- [malloc] [cover] +05-Dec 21:07:24 test272 0.1 sec 113: 21943 of 22139 0.9% 2068.01/s +05-Dec 21:07:24 test268 0.2 sec 131: 21812 of 22139 1.5% 844.56/s +05-Dec 21:07:26 test145 2.4 sec 293: 21519 of 22139 2.8% 120.09/s +05-Dec 21:07:26 test145 0.0 sec 3: 21516 of 22139 2.8% 63.46/s +05-Dec 21:07:27 test145 0.0 sec 26: 21490 of 22139 2.9% 1442.28/s +05-Dec 21:07:27 test145 0.0 sec 4: 21486 of 22139 2.9% 242.67/s +05-Dec 21:07:28 test145 1.8 sec 52: 21434 of 22139 3.2% 29.48/s +05-Dec 21:07:28 test145 0.0 sec 5: 21429 of 22139 3.2% 280.36/s +05-Dec 21:07:30 test240 1.1 sec 88: 21341 of 22139 3.6% 82.10/s +05-Dec 21:07:30 test240 0.3 sec 1: 21340 of 22139 3.6% 3.73/s +05-Dec 21:07:31 test237 1.4 sec 46: 21294 of 22139 3.8% 31.73/s +05-Dec 21:07:35 test237 3.2 sec 4: 21290 of 22139 3.8% 1.23/s +05-Dec 21:07:35 test237 0.1 sec 20: 21270 of 22139 3.9% 185.90/s +05-Dec 21:07:35 test237 0.0 sec 6: 21264 of 22139 4.0% 219.77/s +05-Dec 21:07:35 test237 0.1 sec 4: 21260 of 22139 4.0% 48.25/s +05-Dec 21:07:36 test267 0.8 sec 35: 21225 of 22139 4.1% 45.57/s +05-Dec 21:07:36 test267 0.0 sec 1: 21224 of 22139 4.1% 1763.67/s +05-Dec 21:07:36 test266 0.1 sec 4: 21220 of 22139 4.2% 60.05/s +05-Dec 21:07:36 test265 0.5 sec 92: 21128 of 22139 4.6% 177.05/s +05-Dec 21:07:36 test264 0.1 sec 191: 20937 of 22139 5.4% 3323.47/s +05-Dec 21:07:37 test263 0.9 sec 28: 20909 of 22139 5.6% 32.02/s +05-Dec 21:07:37 test262 0.1 sec 88: 20821 of 22139 6.0% 1536.85/s +05-Dec 21:07:37 test261 0.1 sec 29: 20792 of 22139 6.1% 530.51/s +05-Dec 21:07:38 test260 0.1 sec 3: 20789 of 22139 6.1% 55.61/s +05-Dec 21:07:40 test259 2.7 sec 4: 20785 of 22139 6.1% 1.49/s +05-Dec 21:07:41 test258 0.3 sec 22: 20763 of 22139 6.2% 63.35/s +05-Dec 21:07:41 test257 0.3 sec 65: 20698 of 22139 6.5% 233.48/s +05-Dec 21:07:41 test255 0.1 sec 8: 20690 of 22139 6.5% 128.71/s +05-Dec 21:07:41 test254 0.1 sec 29: 20661 of 22139 6.7% 380.66/s +05-Dec 21:07:47 test254 5.6 sec 20: 20641 of 22139 6.8% 3.59/s +05-Dec 21:07:47 test254 0.1 sec 1: 20640 of 22139 6.8% 9.08/s +05-Dec 21:07:47 test253 0.1 sec 27: 20613 of 22139 6.9% 194.24/s +05-Dec 21:07:47 test252 0.1 sec 11: 20602 of 22139 6.9% 211.94/s +05-Dec 21:09:07 test251 79.9 sec 490: 20112 of 22139 9.2% 6.14/s +05-Dec 21:12:17 test251 189.6 sec 12: 20100 of 22139 9.2% 0.06/s +05-Dec 21:15:57 test251 220.1 sec 78: 20022 of 22139 9.6% 0.35/s +05-Dec 21:15:59 test250 1.6 sec 169: 19853 of 22139 10.3% 108.47/s +05-Dec 21:16:01 test250 2.4 sec 13: 19840 of 22139 10.4% 5.44/s +05-Dec 21:16:02 test249 1.3 sec 29: 19811 of 22139 10.5% 22.62/s +05-Dec 21:16:02 test247 0.0 sec 24: 19787 of 22139 10.6% 938.09/s +05-Dec 21:16:14 test246 11.1 sec 74: 19713 of 22139 11.0% 6.67/s +05-Dec 21:16:34 test01 20.5 sec 1451: 18262 of 22139 17.5% 70.79/s +05-Dec 21:16:49 test01 14.8 sec 22: 18240 of 22139 17.6% 1.49/s +05-Dec 21:16:50 test245 1.1 sec 34: 18206 of 22139 17.8% 30.51/s +05-Dec 21:16:50 test245 0.0 sec 8: 18198 of 22139 17.8% 222.22/s +05-Dec 21:16:50 test199 0.0 sec 1: 18197 of 22139 17.8% 220.31/s +05-Dec 21:16:50 test83 0.1 sec 15: 18182 of 22139 17.9% 233.40/s +05-Dec 21:16:50 test210 0.0 sec 9: 18173 of 22139 17.9% 3935.29/s +05-Dec 21:16:50 test165 0.0 sec 1: 18172 of 22139 17.9% 261.85/s +05-Dec 21:16:50 test219 0.1 sec 9: 18163 of 22139 18.0% 167.72/s +05-Dec 21:16:51 test219 0.3 sec 3: 18160 of 22139 18.0% 9.48/s +05-Dec 21:16:51 test241 0.1 sec 10: 18150 of 22139 18.0% 92.18/s +05-Dec 21:16:51 test220 0.1 sec 15: 18135 of 22139 18.1% 168.23/s +05-Dec 21:16:51 test211 0.0 sec 15: 18120 of 22139 18.2% 506.74/s +05-Dec 21:16:51 test202 0.1 sec 83: 18037 of 22139 18.5% 852.49/s +05-Dec 21:16:51 test202 0.0 sec 1: 18036 of 22139 18.5% 23.36/s +05-Dec 21:16:54 test152 3.1 sec 827: 17209 of 22139 22.3% 263.18/s +05-Dec 21:16:59 test152 4.1 sec 13: 17196 of 22139 22.3% 3.17/s +05-Dec 21:18:25 test152 86.0 sec 245: 16951 of 22139 23.4% 2.85/s +05-Dec 21:18:25 test222 0.1 sec 18: 16933 of 22139 23.5% 124.35/s +05-Dec 21:18:25 test256 0.3 sec 50: 16883 of 22139 23.7% 158.74/s +05-Dec 21:18:28 test186 3.0 sec 42: 16841 of 22139 23.9% 13.93/s +05-Dec 21:18:29 test186 0.5 sec 1: 16840 of 22139 23.9% 2.21/s +05-Dec 21:18:29 test186(0) 0.4 sec 5: 16835 of 22139 24.0% 12.40/s +05-Dec 21:18:42 test150 13.3 sec 39: 16796 of 22139 24.1% 2.93/s +05-Dec 21:18:43 test150 0.3 sec 4: 16792 of 22139 24.2% 14.57/s +05-Dec 21:18:43 test239 0.1 sec 15: 16777 of 22139 24.2% 151.42/s +05-Dec 21:18:44 test239 1.0 sec 2: 16775 of 22139 24.2% 2.00/s +05-Dec 21:18:44 test235 0.0 sec 4: 16771 of 22139 24.2% 86.18/s +05-Dec 21:18:44 test226 0.0 sec 8: 16763 of 22139 24.3% 564.45/s +05-Dec 21:18:44 test223 0.0 sec 2: 16761 of 22139 24.3% 60.83/s +05-Dec 21:18:44 test204 0.1 sec 14: 16747 of 22139 24.4% 125.61/s +05-Dec 21:18:44 test203 0.1 sec 19: 16728 of 22139 24.4% 350.00/s +05-Dec 21:18:44 test183 0.0 sec 12: 16716 of 22139 24.5% 459.61/s +05-Dec 21:18:45 test179 0.1 sec 15: 16701 of 22139 24.6% 153.37/s +05-Dec 21:18:47 test179 2.1 sec 4: 16697 of 22139 24.6% 1.95/s +05-Dec 21:18:47 test174 0.0 sec 10: 16687 of 22139 24.6% 201.77/s +05-Dec 21:18:47 test155 0.1 sec 44: 16643 of 22139 24.8% 334.52/s +05-Dec 21:18:48 test156 0.9 sec 225: 16418 of 22139 25.8% 255.92/s +05-Dec 21:19:40 test156 52.5 sec 37: 16381 of 22139 26.0% 0.71/s +05-Dec 21:19:41 test136 0.2 sec 57: 16324 of 22139 26.3% 352.07/s +05-Dec 21:19:41 test02 0.8 sec 22: 16302 of 22139 26.4% 28.90/s +05-Dec 21:19:42 test109 0.5 sec 10: 16292 of 22139 26.4% 20.55/s +05-Dec 21:19:42 test109 0.0 sec 4: 16288 of 22139 26.4% 1154.40/s +05-Dec 21:19:42 test109 0.3 sec 8: 16280 of 22139 26.5% 23.94/s +05-Dec 21:19:42 test04 0.1 sec 15: 16265 of 22139 26.5% 150.51/s +05-Dec 21:19:42 test207 0.0 sec 2: 16263 of 22139 26.5% 468.71/s +05-Dec 21:19:42 test221 0.0 sec 2: 16261 of 22139 26.6% 278.55/s +05-Dec 21:19:43 test162 0.1 sec 5: 16256 of 22139 26.6% 83.33/s +05-Dec 21:20:47 test159 64.1 sec 80: 16176 of 22139 26.9% 1.25/s +05-Dec 21:20:50 test159 3.1 sec 55: 16121 of 22139 27.2% 17.58/s +05-Dec 21:20:50 test09 0.0 sec 5: 16116 of 22139 27.2% 446.87/s +05-Dec 21:20:50 test132 0.1 sec 8: 16108 of 22139 27.2% 92.59/s +05-Dec 21:21:33 test141 43.3 sec 476: 15632 of 22139 29.4% 10.98/s +05-Dec 21:21:46 test141 12.2 sec 77: 15555 of 22139 29.7% 6.31/s +05-Dec 21:27:32 test141 346.1 sec 2: 15553 of 22139 29.7% 0.01/s +05-Dec 21:27:34 testc2(1,1) 1.5 sec 20: 15533 of 22139 29.8% 13.24/s +05-Dec 21:27:42 testc2(1,1) 7.5 sec 4: 15529 of 22139 29.9% 0.53/s +05-Dec 21:27:42 test214 0.0 sec 3: 15526 of 22139 29.9% 315.72/s +05-Dec 21:27:42 test213 0.0 sec 2: 15524 of 22139 29.9% 182.42/s +05-Dec 21:27:44 test206 2.3 sec 219: 15305 of 22139 30.9% 94.57/s +05-Dec 21:27:59 test206 14.8 sec 8: 15297 of 22139 30.9% 0.54/s +05-Dec 21:27:59 test212 0.0 sec 9: 15288 of 22139 30.9% 501.14/s +05-Dec 21:28:00 test212 0.2 sec 2: 15286 of 22139 31.0% 9.07/s +05-Dec 21:28:00 test128 0.3 sec 49: 15237 of 22139 31.2% 143.45/s +05-Dec 21:28:00 test82 0.1 sec 18: 15219 of 22139 31.3% 209.64/s +05-Dec 21:28:03 test229 3.4 sec 9: 15210 of 22139 31.3% 2.66/s +05-Dec 21:28:05 test229 1.1 sec 1: 15209 of 22139 31.3% 0.93/s +05-Dec 21:28:05 test144 0.6 sec 2: 15207 of 22139 31.3% 3.62/s +05-Dec 21:29:34 test14 88.6 sec 664: 14543 of 22139 34.3% 7.49/s +05-Dec 21:30:03 test14 29.6 sec 2: 14541 of 22139 34.3% 0.07/s +05-Dec 21:34:50 test14 286.4 sec 117: 14424 of 22139 34.8% 0.41/s +05-Dec 21:34:59 test180 8.3 sec 134: 14290 of 22139 35.5% 16.21/s +05-Dec 21:35:02 test236 3.5 sec 74: 14216 of 22139 35.8% 21.12/s +05-Dec 21:35:05 test232 2.3 sec 20: 14196 of 22139 35.9% 8.58/s +05-Dec 21:35:23 test228 18.2 sec 28: 14168 of 22139 36.0% 1.54/s +05-Dec 21:37:15 test154 111.7 sec 1502: 12666 of 22139 42.8% 13.45/s +05-Dec 21:43:39 test154 384.9 sec 2: 12664 of 22139 42.8% 0.01/s +05-Dec 21:43:52 test238 12.1 sec 50: 12614 of 22139 43.0% 4.13/s +05-Dec 21:45:03 test238 71.5 sec 2: 12612 of 22139 43.0% 0.03/s +05-Dec 21:46:46 test151b 103.3 sec 173: 12439 of 22139 43.8% 1.67/s +05-Dec 21:48:23 test151b 96.8 sec 1: 12438 of 22139 43.8% 0.01/s +05-Dec 21:56:42 test151b 498.9 sec 1: 12437 of 22139 43.8% 0.00/s +05-Dec 21:56:46 test184 3.0 sec 38: 12399 of 22139 44.0% 12.52/s +05-Dec 21:56:58 test191 12.0 sec 21: 12378 of 22139 44.1% 1.75/s +05-Dec 21:57:26 test191 27.9 sec 3: 12375 of 22139 44.1% 0.11/s +05-Dec 22:05:43 test188 496.6 sec 183: 12192 of 22139 44.9% 0.37/s +05-Dec 22:08:09 test188 144.8 sec 3: 12189 of 22139 44.9% 0.02/s +05-Dec 22:08:14 test224 4.7 sec 24: 12165 of 22139 45.1% 5.09/s +05-Dec 22:08:16 test196 2.4 sec 11: 12154 of 22139 45.1% 4.50/s +05-Dec 22:08:21 test209 4.7 sec 20: 12134 of 22139 45.2% 4.22/s +05-Dec 22:08:38 test104 17.2 sec 40: 12094 of 22139 45.4% 2.33/s +05-Dec 22:08:46 test189 8.2 sec 1: 12093 of 22139 45.4% 0.12/s +05-Dec 22:09:50 test194 63.7 sec 5: 12088 of 22139 45.4% 0.08/s +05-Dec 22:10:05 test76 14.9 sec 15: 12073 of 22139 45.5% 1.00/s +05-Dec 22:10:45 test244 39.5 sec 17: 12056 of 22139 45.5% 0.43/s +[malloc debugging turned off] +05-Dec 22:10:45 test201 0.0 sec 3: 12053 of 22139 45.6% 673.85/s +05-Dec 22:10:45 test225 0.1 sec 4: 12049 of 22139 45.6% 26.93/s +05-Dec 22:10:45 test176 0.1 sec 5: 12044 of 22139 45.6% 72.95/s +05-Dec 22:10:45 test208 0.0 sec 5: 12039 of 22139 45.6% 345.14/s +05-Dec 22:10:45 test216 0.1 sec 3: 12036 of 22139 45.6% 44.06/s +05-Dec 22:12:14 test142 89.3 sec 630: 11406 of 22139 48.5% 7.06/s +05-Dec 22:12:37 test142 23.0 sec 2: 11404 of 22139 48.5% 0.09/s +05-Dec 22:16:24 test142 226.6 sec 2: 11402 of 22139 48.5% 0.01/s +05-Dec 22:16:47 test142 22.7 sec 2: 11400 of 22139 48.5% 0.09/s +05-Dec 22:16:48 test137 0.4 sec 3: 11397 of 22139 48.5% 7.86/s +05-Dec 22:16:48 test137 0.0 sec 2: 11395 of 22139 48.5% 243.81/s +05-Dec 22:16:48 test139 0.4 sec 2: 11393 of 22139 48.5% 4.97/s +05-Dec 22:16:48 test172 0.1 sec 3: 11390 of 22139 48.6% 40.83/s +05-Dec 22:16:49 test148 0.7 sec 4: 11386 of 22139 48.6% 5.36/s +05-Dec 22:16:50 test157 0.6 sec 12: 11374 of 22139 48.6% 20.94/s +05-Dec 22:16:51 test182 0.9 sec 8: 11366 of 22139 48.7% 8.58/s +05-Dec 22:16:51 test108 0.6 sec 2: 11364 of 22139 48.7% 3.25/s +05-Dec 22:16:52 test108 0.4 sec 1: 11363 of 22139 48.7% 2.58/s +05-Dec 22:16:53 test130 0.7 sec 26: 11337 of 22139 48.8% 34.68/s +05-Dec 22:16:53 test124 0.2 sec 3: 11334 of 22139 48.8% 16.28/s +05-Dec 22:16:53 test138 0.0 sec 1: 11333 of 22139 48.8% 20.87/s +05-Dec 22:16:57 test227 4.0 sec 27: 11306 of 22139 48.9% 6.74/s +05-Dec 22:17:24 test125 27.3 sec 630: 10676 of 22139 51.8% 23.06/s +05-Dec 22:19:49 test234 144.4 sec 396: 10280 of 22139 53.6% 2.74/s +05-Dec 22:23:27 test234 218.3 sec 2: 10278 of 22139 53.6% 0.01/s +05-Dec 22:24:09 test242 41.7 sec 77: 10201 of 22139 53.9% 1.85/s +05-Dec 22:24:10 test173 1.5 sec 11: 10190 of 22139 54.0% 7.43/s +05-Dec 22:24:13 test200 2.8 sec 10: 10180 of 22139 54.0% 3.63/s +05-Dec 22:24:13 test197 0.1 sec 1: 10179 of 22139 54.0% 6.79/s +05-Dec 22:24:15 test84 1.2 sec 18: 10161 of 22139 54.1% 15.63/s +05-Dec 22:24:25 test19b 9.9 sec 58: 10103 of 22139 54.4% 5.85/s +05-Dec 22:24:30 test19b 5.2 sec 5: 10098 of 22139 54.4% 0.97/s +05-Dec 22:24:30 test133 0.4 sec 2: 10096 of 22139 54.4% 5.10/s +05-Dec 22:24:34 test80 4.1 sec 12: 10084 of 22139 54.5% 2.89/s +05-Dec 22:24:50 test151 16.0 sec 73: 10011 of 22139 54.8% 4.56/s +05-Dec 22:26:10 test151 79.3 sec 2: 10009 of 22139 54.8% 0.03/s +05-Dec 22:27:40 test23 90.0 sec 146: 9863 of 22139 55.4% 1.62/s +05-Dec 22:28:40 test23 60.2 sec 2: 9861 of 22139 55.5% 0.03/s +05-Dec 22:28:42 test135 1.9 sec 7: 9854 of 22139 55.5% 3.66/s +05-Dec 22:30:02 test160 80.2 sec 23: 9831 of 22139 55.6% 0.29/s +05-Dec 22:31:22 test160 79.6 sec 1: 9830 of 22139 55.6% 0.01/s +05-Dec 22:31:27 test54 5.1 sec 20: 9810 of 22139 55.7% 3.94/s +05-Dec 22:31:28 test129 1.0 sec 4: 9806 of 22139 55.7% 3.83/s +05-Dec 22:31:30 test69 1.9 sec 3: 9803 of 22139 55.7% 1.56/s +05-Dec 22:32:52 test230 81.4 sec 114: 9689 of 22139 56.2% 1.40/s +06-Dec 00:01:09 test74 5297.3 sec 6588: 3101 of 22139 86.0% 1.24/s +06-Dec 00:32:42 test74 1893.4 sec 7: 3094 of 22139 86.0% 0.00/s +06-Dec 00:38:47 test127 364.3 sec 1633: 1461 of 22139 93.4% 4.48/s +06-Dec 00:50:30 test127 703.4 sec 18: 1443 of 22139 93.5% 0.03/s +06-Dec 01:46:09 test127 3338.7 sec 2: 1441 of 22139 93.5% 0.00/s +06-Dec 01:46:42 test19 3.1 sec 12: 1429 of 22139 93.5% 3.88/s +06-Dec 01:46:46 test11 3.5 sec 3: 1426 of 22139 93.6% 0.85/s +06-Dec 01:46:49 test215 3.2 sec 1: 1425 of 22139 93.6% 0.31/s +06-Dec 01:47:05 test193 15.4 sec 5: 1420 of 22139 93.6% 0.32/s +06-Dec 01:49:45 test195 160.3 sec 39: 1381 of 22139 93.8% 0.24/s +06-Dec 01:50:07 test243 21.8 sec 7: 1374 of 22139 93.8% 0.32/s +06-Dec 01:50:21 test29 14.1 sec 1: 1373 of 22139 93.8% 0.07/s +06-Dec 01:50:32 test29 10.5 sec 2: 1371 of 22139 93.8% 0.19/s +06-Dec 01:50:52 testc2(0,0) 20.4 sec 2: 1369 of 22139 93.8% 0.10/s +06-Dec 01:50:53 testc2(0,0) 1.2 sec 6: 1363 of 22139 93.8% 4.85/s +06-Dec 01:50:55 testc2(0,0) 1.6 sec 1: 1362 of 22139 93.8% 0.63/s +06-Dec 01:50:55 testc4(0) 0.5 sec 4: 1358 of 22139 93.9% 7.33/s +06-Dec 01:51:10 testc7(0) 14.3 sec 1: 1357 of 22139 93.9% 0.07/s +06-Dec 01:51:15 testcc(1) 5.0 sec 1: 1356 of 22139 93.9% 0.20/s +06-Dec 01:51:23 test187 7.7 sec 3: 1353 of 22139 93.9% 0.39/s +06-Dec 01:51:28 test192 5.1 sec 1: 1352 of 22139 93.9% 0.19/s +06-Dec 01:51:44 test181 15.8 sec 10: 1342 of 22139 93.9% 0.63/s +06-Dec 01:53:36 test185 112.2 sec 6: 1336 of 22139 94.0% 0.05/s +06-Dec 01:54:21 test53 45.1 sec 4: 1332 of 22139 94.0% 0.09/s +06-Dec 01:55:08 test17 46.8 sec 28: 1304 of 22139 94.1% 0.60/s +06-Dec 02:01:38 test231 390.2 sec 162: 1142 of 22139 94.8% 0.42/s +06-Dec 02:54:43 test10 3184.7 sec 946: 196 of 22139 99.1% 0.30/s +06-Dec 03:02:29 test75b 441.9 sec 151: 45 of 22139 99.8% 0.34/s +06-Dec 03:03:53 test21b 82.6 sec 26: 19 of 22139 99.9% 0.31/s +06-Dec 03:04:43 testca(1) 50.7 sec 5: 14 of 22139 99.9% 0.10/s +06-Dec 03:06:36 test81 112.8 sec 1: 13 of 22139 99.9% 0.01/s +06-Dec 03:11:52 test18 315.7 sec 13: all 22139 full 100% 0.04/s +[malloc debugging turned back on] diff --git a/Tcov/log_Sept10.txt b/Tcov/log_Sept10.txt deleted file mode 100644 index 20925fe818..0000000000 --- a/Tcov/log_Sept10.txt +++ /dev/null @@ -1,204 +0,0 @@ - ----------------------------------------------- [malloc] [cover] -10-Sep 16:13:15 test250 3.3 sec 415: 24525 of 25102 2.3% 125.06/s -10-Sep 16:13:18 test250 3.6 sec 57: 24468 of 25102 2.5% 15.94/s -10-Sep 16:13:18 test279 0.0 sec 130: 24338 of 25102 3.0% 2720.86/s -10-Sep 16:13:18 test278 0.0 sec 49: 24289 of 25102 3.2% 1316.96/s -10-Sep 16:13:18 test277 0.0 sec 38: 24251 of 25102 3.4% 1143.34/s -10-Sep 16:13:18 test276 0.0 sec 1626: 22625 of 25102 9.9% 47339.00/s -10-Sep 16:13:19 test275 0.0 sec 117: 22508 of 25102 10.3% 3568.92/s -10-Sep 16:13:19 test274 0.0 sec 129: 22379 of 25102 10.8% 4076.99/s -10-Sep 16:13:19 test273 0.1 sec 110: 22269 of 25102 11.3% 752.79/s -10-Sep 16:13:19 test272 0.0 sec 11: 22258 of 25102 11.3% 262.32/s -10-Sep 16:13:19 test271 0.0 sec 497: 21761 of 25102 13.3% 13146.41/s -10-Sep 16:13:19 test270 0.0 sec 286: 21475 of 25102 14.4% 6551.22/s -10-Sep 16:13:19 test269 0.0 sec 87: 21388 of 25102 14.8% 2284.72/s -10-Sep 16:13:19 test268 0.1 sec 102: 21286 of 25102 15.2% 1161.94/s -10-Sep 16:13:21 test145 1.7 sec 221: 21065 of 25102 16.1% 133.69/s -10-Sep 16:13:21 test145 0.0 sec 1: 21064 of 25102 16.1% 21.16/s -10-Sep 16:13:21 test145 0.0 sec 18: 21046 of 25102 16.2% 1051.95/s -10-Sep 16:13:21 test145 0.0 sec 4: 21042 of 25102 16.2% 220.22/s -10-Sep 16:13:22 test145 1.2 sec 34: 21008 of 25102 16.3% 28.05/s -10-Sep 16:13:22 test145 0.0 sec 3: 21005 of 25102 16.3% 263.57/s -10-Sep 16:13:23 test240 0.2 sec 58: 20944 of 25102 16.6% 236.40/s -10-Sep 16:13:23 test240 0.2 sec 1: 20943 of 25102 16.6% 5.46/s -10-Sep 16:13:23 test237 0.1 sec 35: 20908 of 25102 16.7% 343.56/s -10-Sep 16:13:24 test237 1.5 sec 23: 20885 of 25102 16.8% 15.35/s -10-Sep 16:13:25 test237 0.0 sec 18: 20867 of 25102 16.9% 519.45/s -10-Sep 16:13:25 test237 0.0 sec 6: 20861 of 25102 16.9% 642.88/s -10-Sep 16:13:25 test237 0.0 sec 4: 20857 of 25102 16.9% 125.36/s -10-Sep 16:13:25 test267 0.7 sec 8: 20849 of 25102 16.9% 11.65/s -10-Sep 16:13:25 test267 0.0 sec 1: 20848 of 25102 16.9% 746.83/s -10-Sep 16:13:26 test265 0.4 sec 36: 20812 of 25102 17.1% 97.08/s -10-Sep 16:13:26 test264 0.0 sec 173: 20639 of 25102 17.8% 4496.66/s -10-Sep 16:13:27 test263 0.7 sec 16: 20623 of 25102 17.8% 24.31/s -10-Sep 16:13:27 test262 0.0 sec 76: 20547 of 25102 18.1% 2013.25/s -10-Sep 16:13:27 test261 0.0 sec 22: 20525 of 25102 18.2% 651.02/s -10-Sep 16:13:27 test260 0.0 sec 3: 20522 of 25102 18.2% 87.24/s -10-Sep 16:13:29 test259 2.0 sec 4: 20518 of 25102 18.3% 2.02/s -10-Sep 16:13:29 test258 0.2 sec 20: 20498 of 25102 18.3% 91.17/s -10-Sep 16:13:30 test257 0.2 sec 54: 20444 of 25102 18.6% 283.59/s -10-Sep 16:13:30 test255 0.0 sec 8: 20436 of 25102 18.6% 202.75/s -10-Sep 16:13:30 test254 0.1 sec 29: 20407 of 25102 18.7% 400.97/s -10-Sep 16:13:34 test254 3.9 sec 20: 20387 of 25102 18.8% 5.07/s -10-Sep 16:13:34 test254 0.1 sec 1: 20386 of 25102 18.8% 12.24/s -10-Sep 16:13:34 test253 0.1 sec 8: 20378 of 25102 18.8% 55.50/s -10-Sep 16:13:34 test252 0.0 sec 7: 20371 of 25102 18.8% 186.79/s -10-Sep 16:14:39 test251 65.1 sec 476: 19895 of 25102 20.7% 7.31/s -10-Sep 16:17:13 test251 153.3 sec 76: 19819 of 25102 21.0% 0.50/s -10-Sep 16:17:14 test249 1.0 sec 27: 19792 of 25102 21.2% 25.88/s -10-Sep 16:17:14 test247 0.0 sec 24: 19768 of 25102 21.2% 542.62/s -10-Sep 16:17:28 test246 13.8 sec 72: 19696 of 25102 21.5% 5.23/s -10-Sep 16:17:44 test01 15.3 sec 1421: 18275 of 25102 27.2% 92.69/s -10-Sep 16:17:45 test245 0.8 sec 34: 18241 of 25102 27.3% 43.26/s -10-Sep 16:17:45 test245 0.0 sec 8: 18233 of 25102 27.4% 183.92/s -10-Sep 16:17:45 test199 0.0 sec 1: 18232 of 25102 27.4% 162.95/s -10-Sep 16:17:45 test83 0.0 sec 15: 18217 of 25102 27.4% 435.68/s -10-Sep 16:17:45 test210 0.0 sec 9: 18208 of 25102 27.5% 2346.81/s -10-Sep 16:17:45 test165 0.0 sec 1: 18207 of 25102 27.5% 165.45/s -10-Sep 16:17:45 test219 0.0 sec 9: 18198 of 25102 27.5% 224.00/s -10-Sep 16:17:45 test219 0.2 sec 3: 18195 of 25102 27.5% 15.47/s -10-Sep 16:17:46 test241 0.1 sec 10: 18185 of 25102 27.6% 114.98/s -10-Sep 16:17:46 test220 0.1 sec 15: 18170 of 25102 27.6% 224.25/s -10-Sep 16:17:46 test211 0.0 sec 15: 18155 of 25102 27.7% 457.86/s -10-Sep 16:17:46 test202 0.1 sec 83: 18072 of 25102 28.0% 1312.48/s -10-Sep 16:17:46 test202 0.0 sec 1: 18071 of 25102 28.0% 22.84/s -10-Sep 16:17:50 test152 3.1 sec 827: 17244 of 25102 31.3% 268.51/s -10-Sep 16:17:53 test152 3.6 sec 13: 17231 of 25102 31.4% 3.59/s -10-Sep 16:18:57 test152 63.9 sec 245: 16986 of 25102 32.3% 3.83/s -10-Sep 16:18:58 test222 0.1 sec 18: 16968 of 25102 32.4% 196.89/s -10-Sep 16:18:58 test256 0.5 sec 58: 16910 of 25102 32.6% 119.44/s -10-Sep 16:19:01 test186 2.7 sec 45: 16865 of 25102 32.8% 16.72/s -10-Sep 16:19:02 test186 0.6 sec 3: 16862 of 25102 32.8% 5.29/s -10-Sep 16:19:02 test186(0) 0.3 sec 5: 16857 of 25102 32.8% 15.52/s -10-Sep 16:19:03 test150 0.4 sec 44: 16813 of 25102 33.0% 104.79/s -10-Sep 16:19:03 test239 0.2 sec 15: 16798 of 25102 33.1% 98.34/s -10-Sep 16:19:04 test239 0.9 sec 2: 16796 of 25102 33.1% 2.15/s -10-Sep 16:19:05 test235 0.1 sec 4: 16792 of 25102 33.1% 69.86/s -10-Sep 16:19:05 test226 0.0 sec 8: 16784 of 25102 33.1% 463.61/s -10-Sep 16:19:05 test223 0.0 sec 2: 16782 of 25102 33.1% 65.81/s -10-Sep 16:19:05 test204 0.1 sec 14: 16768 of 25102 33.2% 175.47/s -10-Sep 16:19:05 test203 0.0 sec 19: 16749 of 25102 33.3% 415.32/s -10-Sep 16:19:06 test183 0.0 sec 12: 16737 of 25102 33.3% 332.48/s -10-Sep 16:19:06 test179 0.1 sec 15: 16722 of 25102 33.4% 126.77/s -10-Sep 16:19:08 test179 2.3 sec 4: 16718 of 25102 33.4% 1.74/s -10-Sep 16:19:09 test174 0.1 sec 10: 16708 of 25102 33.4% 116.20/s -10-Sep 16:19:09 test155 0.1 sec 43: 16665 of 25102 33.6% 376.56/s -10-Sep 16:19:09 test136 0.1 sec 57: 16608 of 25102 33.8% 383.45/s -10-Sep 16:19:10 test02 0.7 sec 249: 16359 of 25102 34.8% 382.16/s -10-Sep 16:19:11 test109 0.4 sec 10: 16349 of 25102 34.9% 24.37/s -10-Sep 16:19:11 test109 0.0 sec 4: 16345 of 25102 34.9% 863.93/s -10-Sep 16:19:11 test109 0.3 sec 8: 16337 of 25102 34.9% 23.57/s -10-Sep 16:19:12 test04 0.1 sec 15: 16322 of 25102 35.0% 164.76/s -10-Sep 16:19:12 test207 0.0 sec 2: 16320 of 25102 35.0% 308.98/s -10-Sep 16:19:12 test221 0.0 sec 2: 16318 of 25102 35.0% 186.25/s -10-Sep 16:19:12 test162 0.1 sec 5: 16313 of 25102 35.0% 69.38/s -10-Sep 16:19:17 test159 4.2 sec 72: 16241 of 25102 35.3% 16.96/s -10-Sep 16:19:17 test09 0.0 sec 5: 16236 of 25102 35.3% 355.09/s -10-Sep 16:19:17 test132 0.1 sec 8: 16228 of 25102 35.4% 123.77/s -10-Sep 16:19:43 test141 25.0 sec 551: 15677 of 25102 37.5% 22.03/s -10-Sep 16:19:44 testc2(1,1) 1.4 sec 20: 15657 of 25102 37.6% 14.80/s -10-Sep 16:19:51 testc2(1,1) 6.5 sec 4: 15653 of 25102 37.6% 0.62/s -10-Sep 16:19:51 test214 0.0 sec 3: 15650 of 25102 37.7% 182.05/s -10-Sep 16:19:51 test213 0.0 sec 2: 15648 of 25102 37.7% 105.94/s -10-Sep 16:19:54 test206 2.7 sec 221: 15427 of 25102 38.5% 81.48/s -10-Sep 16:20:13 test206 18.9 sec 24: 15403 of 25102 38.6% 1.27/s -10-Sep 16:20:14 test212 0.0 sec 9: 15394 of 25102 38.7% 209.43/s -10-Sep 16:20:14 test212 0.2 sec 2: 15392 of 25102 38.7% 10.48/s -10-Sep 16:20:15 test128 0.3 sec 49: 15343 of 25102 38.9% 141.56/s -10-Sep 16:20:15 test82 0.1 sec 18: 15325 of 25102 38.9% 247.45/s -10-Sep 16:20:19 test229 3.0 sec 9: 15316 of 25102 39.0% 3.04/s -10-Sep 16:20:20 test229 1.4 sec 1: 15315 of 25102 39.0% 0.70/s -10-Sep 16:20:21 test144 0.6 sec 2: 15313 of 25102 39.0% 3.59/s -10-Sep 16:21:23 test14 61.7 sec 671: 14642 of 25102 41.7% 10.87/s -10-Sep 16:24:40 test14 196.5 sec 118: 14524 of 25102 42.1% 0.60/s -10-Sep 16:24:49 test180 8.4 sec 136: 14388 of 25102 42.7% 16.23/s -10-Sep 16:24:55 test236 5.8 sec 74: 14314 of 25102 43.0% 12.87/s -10-Sep 16:25:00 test232 4.2 sec 22: 14292 of 25102 43.1% 5.23/s -10-Sep 16:25:23 test228 23.1 sec 27: 14265 of 25102 43.2% 1.17/s -10-Sep 16:27:59 test154 155.5 sec 1502: 12763 of 25102 49.2% 9.66/s -10-Sep 16:35:50 test154 470.4 sec 2: 12761 of 25102 49.2% 0.00/s -10-Sep 16:36:02 test238 11.3 sec 54: 12707 of 25102 49.4% 4.78/s -10-Sep 16:36:58 test238 55.7 sec 9: 12698 of 25102 49.4% 0.16/s -10-Sep 16:38:38 test151b 99.9 sec 174: 12524 of 25102 50.1% 1.74/s -10-Sep 16:38:44 test184 5.4 sec 38: 12486 of 25102 50.3% 7.02/s -10-Sep 16:39:02 test191 18.2 sec 21: 12465 of 25102 50.3% 1.16/s -10-Sep 16:39:30 test191 27.3 sec 3: 12462 of 25102 50.4% 0.11/s -10-Sep 16:47:00 test188 449.4 sec 212: 12250 of 25102 51.2% 0.47/s -10-Sep 16:49:06 test188 124.1 sec 3: 12247 of 25102 51.2% 0.02/s -10-Sep 16:49:11 test224 4.2 sec 24: 12223 of 25102 51.3% 5.72/s -10-Sep 16:49:14 test196 2.4 sec 11: 12212 of 25102 51.4% 4.50/s -10-Sep 16:49:19 test209 5.1 sec 20: 12192 of 25102 51.4% 3.90/s -10-Sep 16:49:34 test104 14.8 sec 40: 12152 of 25102 51.6% 2.71/s -10-Sep 16:49:44 test189 9.0 sec 1: 12151 of 25102 51.6% 0.11/s -10-Sep 16:50:47 test194 63.2 sec 5: 12146 of 25102 51.6% 0.08/s -10-Sep 16:50:59 test76 10.9 sec 15: 12131 of 25102 51.7% 1.37/s -10-Sep 16:51:35 test244 35.8 sec 17: 12114 of 25102 51.7% 0.47/s -[malloc debugging turned off] -10-Sep 16:51:35 test201 0.0 sec 3: 12111 of 25102 51.8% 362.23/s -10-Sep 16:51:36 test225 0.1 sec 4: 12107 of 25102 51.8% 32.73/s -10-Sep 16:51:36 test176 0.1 sec 5: 12102 of 25102 51.8% 70.60/s -10-Sep 16:51:36 test208 0.0 sec 5: 12097 of 25102 51.8% 319.88/s -10-Sep 16:51:37 test216 0.0 sec 3: 12094 of 25102 51.8% 67.39/s -10-Sep 16:51:58 test142 20.4 sec 631: 11463 of 25102 54.3% 30.96/s -10-Sep 16:55:30 test142 212.4 sec 10: 11453 of 25102 54.4% 0.05/s -10-Sep 16:55:50 test142 19.0 sec 2: 11451 of 25102 54.4% 0.11/s -10-Sep 16:55:51 test137 0.2 sec 3: 11448 of 25102 54.4% 12.74/s -10-Sep 16:55:51 test137 0.0 sec 2: 11446 of 25102 54.4% 344.00/s -10-Sep 16:55:52 test139 0.3 sec 2: 11444 of 25102 54.4% 6.53/s -10-Sep 16:55:52 test172 0.1 sec 3: 11441 of 25102 54.4% 45.42/s -10-Sep 16:55:53 test148 0.5 sec 4: 11437 of 25102 54.4% 8.56/s -10-Sep 16:55:54 test157 0.5 sec 12: 11425 of 25102 54.5% 24.68/s -10-Sep 16:55:55 test182 0.7 sec 8: 11417 of 25102 54.5% 10.87/s -10-Sep 16:55:56 test108 0.4 sec 2: 11415 of 25102 54.5% 5.17/s -10-Sep 16:55:57 test108 0.3 sec 2: 11413 of 25102 54.5% 6.48/s -10-Sep 16:55:58 test130 0.7 sec 25: 11388 of 25102 54.6% 34.50/s -10-Sep 16:55:58 test124 0.1 sec 3: 11385 of 25102 54.6% 26.80/s -10-Sep 16:55:59 test138 0.1 sec 1: 11384 of 25102 54.6% 17.04/s -10-Sep 16:56:04 test227 4.3 sec 27: 11357 of 25102 54.8% 6.27/s -10-Sep 16:56:27 test125 23.4 sec 630: 10727 of 25102 57.3% 26.96/s -10-Sep 16:58:32 test234 124.0 sec 397: 10330 of 25102 58.8% 3.20/s -10-Sep 17:02:12 test234 219.9 sec 3: 10327 of 25102 58.9% 0.01/s -10-Sep 17:02:53 test242 40.4 sec 77: 10250 of 25102 59.2% 1.91/s -10-Sep 17:02:55 test173 1.3 sec 12: 10238 of 25102 59.2% 8.92/s -10-Sep 17:02:58 test200 2.4 sec 10: 10228 of 25102 59.3% 4.11/s -10-Sep 17:02:59 test197 0.1 sec 1: 10227 of 25102 59.3% 7.24/s -10-Sep 17:03:01 test84 1.4 sec 18: 10209 of 25102 59.3% 12.98/s -10-Sep 17:03:07 test19b 5.6 sec 59: 10150 of 25102 59.6% 10.47/s -10-Sep 17:03:08 test133 0.3 sec 2: 10148 of 25102 59.6% 6.65/s -10-Sep 17:03:12 test80 3.5 sec 12: 10136 of 25102 59.6% 3.47/s -10-Sep 17:04:15 test23 62.8 sec 148: 9988 of 25102 60.2% 2.36/s -10-Sep 17:04:17 test135 1.4 sec 7: 9981 of 25102 60.2% 4.91/s -10-Sep 17:05:25 test160 67.6 sec 24: 9957 of 25102 60.3% 0.36/s -10-Sep 17:05:30 test54 4.4 sec 20: 9937 of 25102 60.4% 4.60/s -10-Sep 17:05:31 test129 1.1 sec 4: 9933 of 25102 60.4% 3.77/s -10-Sep 17:05:34 test69 1.8 sec 6: 9927 of 25102 60.5% 3.37/s -10-Sep 17:07:02 test230 87.4 sec 114: 9813 of 25102 60.9% 1.30/s -10-Sep 17:40:44 test74 2022.3 sec 6637: 3176 of 25102 87.3% 3.28/s -10-Sep 17:59:17 test127 1111.9 sec 1707: 1469 of 25102 94.1% 1.54/s -10-Sep 17:59:21 test19 3.1 sec 12: 1457 of 25102 94.2% 3.90/s -10-Sep 17:59:25 test11 3.7 sec 3: 1454 of 25102 94.2% 0.80/s -10-Sep 17:59:28 test215 2.9 sec 1: 1453 of 25102 94.2% 0.35/s -10-Sep 17:59:56 test193 27.1 sec 5: 1448 of 25102 94.2% 0.18/s -10-Sep 18:02:32 test195 155.5 sec 39: 1409 of 25102 94.4% 0.25/s -10-Sep 18:02:54 test243 21.5 sec 7: 1402 of 25102 94.4% 0.33/s -10-Sep 18:03:05 test29 10.5 sec 3: 1399 of 25102 94.4% 0.29/s -10-Sep 18:03:07 testc2(0,0) 1.3 sec 7: 1392 of 25102 94.5% 5.32/s -10-Sep 18:03:24 testc2(0,0) 16.7 sec 1: 1391 of 25102 94.5% 0.06/s -10-Sep 18:03:25 testc4(0) 0.4 sec 4: 1387 of 25102 94.5% 10.82/s -10-Sep 18:03:43 testc7(0) 16.7 sec 3: 1384 of 25102 94.5% 0.18/s -10-Sep 18:03:49 testcc(1) 5.6 sec 1: 1383 of 25102 94.5% 0.18/s -10-Sep 18:03:59 test187 9.5 sec 3: 1380 of 25102 94.5% 0.32/s -10-Sep 18:04:05 test192 5.6 sec 1: 1379 of 25102 94.5% 0.18/s -10-Sep 18:04:22 test181 16.3 sec 10: 1369 of 25102 94.5% 0.61/s -10-Sep 18:05:52 test185 89.4 sec 6: 1363 of 25102 94.6% 0.07/s -10-Sep 18:06:30 test53 36.8 sec 4: 1359 of 25102 94.6% 0.11/s -10-Sep 18:07:10 test17 39.1 sec 27: 1332 of 25102 94.7% 0.69/s -10-Sep 18:14:15 test231 424.8 sec 162: 1170 of 25102 95.3% 0.38/s -10-Sep 19:00:00 test10 2744.6 sec 970: 200 of 25102 99.2% 0.35/s -10-Sep 19:12:41 test75b 734.5 sec 155: 45 of 25102 99.8% 0.21/s -10-Sep 19:14:00 test21b 77.7 sec 26: 19 of 25102 99.9% 0.33/s -10-Sep 19:14:44 testca(1) 44.0 sec 5: 14 of 25102 99.9% 0.11/s -10-Sep 19:16:16 test81 90.7 sec 1: 13 of 25102 99.9% 0.01/s -10-Sep 19:21:27 test18 310.5 sec 13: all 25102 full 100% 0.04/s -[malloc debugging turned back on] diff --git a/Tcov/log_Sept5.txt b/Tcov/log_Sept5.txt deleted file mode 100644 index bf59d15b47..0000000000 --- a/Tcov/log_Sept5.txt +++ /dev/null @@ -1,217 +0,0 @@ - ----------------------------------------------- [malloc] [cover] -05-Sep 10:12:35 test272 0.1 sec 113: 21943 of 22139 0.9% 1216.96/s -05-Sep 10:12:35 test268 0.2 sec 131: 21812 of 22139 1.5% 566.82/s -05-Sep 10:12:37 test145 2.4 sec 293: 21519 of 22139 2.8% 122.08/s -05-Sep 10:12:37 test145 0.0 sec 3: 21516 of 22139 2.8% 63.06/s -05-Sep 10:12:37 test145 0.0 sec 26: 21490 of 22139 2.9% 1410.44/s -05-Sep 10:12:37 test145 0.0 sec 4: 21486 of 22139 2.9% 248.02/s -05-Sep 10:12:39 test145 1.4 sec 52: 21434 of 22139 3.2% 37.92/s -05-Sep 10:12:39 test145 0.0 sec 5: 21429 of 22139 3.2% 323.73/s -05-Sep 10:12:39 test240 0.4 sec 68: 21361 of 22139 3.5% 176.93/s -05-Sep 10:12:40 test240 0.2 sec 1: 21360 of 22139 3.5% 4.19/s -05-Sep 10:12:40 test237 0.1 sec 37: 21323 of 22139 3.7% 405.72/s -05-Sep 10:12:42 test237 2.0 sec 27: 21296 of 22139 3.8% 13.42/s -05-Sep 10:12:42 test237 0.0 sec 19: 21277 of 22139 3.9% 398.82/s -05-Sep 10:12:42 test237 0.0 sec 6: 21271 of 22139 3.9% 482.08/s -05-Sep 10:12:42 test237 0.0 sec 4: 21267 of 22139 3.9% 113.80/s -05-Sep 10:12:42 test267 0.6 sec 35: 21232 of 22139 4.1% 57.85/s -05-Sep 10:12:42 test267 0.0 sec 1: 21231 of 22139 4.1% 1776.20/s -05-Sep 10:12:43 test266 0.1 sec 4: 21227 of 22139 4.1% 38.51/s -05-Sep 10:12:43 test265 0.5 sec 92: 21135 of 22139 4.5% 190.45/s -05-Sep 10:12:43 test264 0.1 sec 191: 20944 of 22139 5.4% 1651.15/s -05-Sep 10:12:44 test263 0.8 sec 28: 20916 of 22139 5.5% 36.50/s -05-Sep 10:12:44 test262 0.1 sec 88: 20828 of 22139 5.9% 899.25/s -05-Sep 10:12:44 test261 0.1 sec 29: 20799 of 22139 6.1% 296.19/s -05-Sep 10:12:44 test260 0.1 sec 3: 20796 of 22139 6.1% 30.79/s -05-Sep 10:12:47 test259 2.3 sec 4: 20792 of 22139 6.1% 1.72/s -05-Sep 10:12:47 test258 0.4 sec 22: 20770 of 22139 6.2% 62.84/s -05-Sep 10:12:47 test257 0.3 sec 65: 20705 of 22139 6.5% 235.22/s -05-Sep 10:12:48 test255 0.1 sec 8: 20697 of 22139 6.5% 86.44/s -05-Sep 10:12:48 test254 0.1 sec 29: 20668 of 22139 6.6% 360.02/s -05-Sep 10:12:52 test254 4.4 sec 20: 20648 of 22139 6.7% 4.50/s -05-Sep 10:12:52 test254 0.1 sec 1: 20647 of 22139 6.7% 8.72/s -05-Sep 10:12:53 test253 0.2 sec 27: 20620 of 22139 6.9% 149.11/s -05-Sep 10:12:53 test252 0.1 sec 11: 20609 of 22139 6.9% 113.08/s -05-Sep 10:14:06 test251 73.0 sec 492: 20117 of 22139 9.1% 6.74/s -05-Sep 10:17:11 test251 185.7 sec 12: 20105 of 22139 9.2% 0.06/s -05-Sep 10:20:23 test251 191.2 sec 78: 20027 of 22139 9.5% 0.41/s -05-Sep 10:20:24 test250 1.2 sec 170: 19857 of 22139 10.3% 137.23/s -05-Sep 10:20:26 test250 1.6 sec 13: 19844 of 22139 10.4% 7.98/s -05-Sep 10:20:27 test249 1.4 sec 29: 19815 of 22139 10.5% 21.39/s -05-Sep 10:20:27 test247 0.0 sec 25: 19790 of 22139 10.6% 1201.52/s -05-Sep 10:20:38 test246 11.1 sec 73: 19717 of 22139 10.9% 6.55/s -05-Sep 10:20:56 test01 17.2 sec 1452: 18265 of 22139 17.5% 84.53/s -05-Sep 10:21:08 test01 12.4 sec 22: 18243 of 22139 17.6% 1.77/s -05-Sep 10:21:09 test245 0.9 sec 34: 18209 of 22139 17.8% 39.75/s -05-Sep 10:21:09 test245 0.0 sec 8: 18201 of 22139 17.8% 175.85/s -05-Sep 10:21:09 test199 0.0 sec 1: 18200 of 22139 17.8% 132.57/s -05-Sep 10:21:09 test83 0.1 sec 15: 18185 of 22139 17.9% 119.44/s -05-Sep 10:21:09 test210 0.0 sec 9: 18176 of 22139 17.9% 1893.94/s -05-Sep 10:21:09 test165 0.0 sec 1: 18175 of 22139 17.9% 169.41/s -05-Sep 10:21:10 test219 0.1 sec 9: 18166 of 22139 17.9% 89.94/s -05-Sep 10:21:10 test219 0.2 sec 3: 18163 of 22139 18.0% 12.96/s -05-Sep 10:21:10 test241 0.1 sec 10: 18153 of 22139 18.0% 83.60/s -05-Sep 10:21:10 test220 0.1 sec 15: 18138 of 22139 18.1% 107.08/s -05-Sep 10:21:10 test211 0.0 sec 15: 18123 of 22139 18.1% 432.81/s -05-Sep 10:21:10 test202 0.1 sec 83: 18040 of 22139 18.5% 604.97/s -05-Sep 10:21:10 test202 0.0 sec 1: 18039 of 22139 18.5% 23.10/s -05-Sep 10:21:13 test152 2.6 sec 827: 17212 of 22139 22.3% 314.90/s -05-Sep 10:21:17 test152 4.0 sec 13: 17199 of 22139 22.3% 3.24/s -05-Sep 10:22:25 test152 68.2 sec 245: 16954 of 22139 23.4% 3.59/s -05-Sep 10:22:26 test222 0.2 sec 18: 16936 of 22139 23.5% 89.56/s -05-Sep 10:22:26 test256 0.3 sec 50: 16886 of 22139 23.7% 165.66/s -05-Sep 10:22:29 test186 2.8 sec 43: 16843 of 22139 23.9% 15.15/s -05-Sep 10:22:29 test186 0.4 sec 1: 16842 of 22139 23.9% 2.24/s -05-Sep 10:22:30 test186(0) 0.4 sec 5: 16837 of 22139 23.9% 12.61/s -05-Sep 10:22:41 test150 11.7 sec 39: 16798 of 22139 24.1% 3.35/s -05-Sep 10:22:42 test150 0.2 sec 4: 16794 of 22139 24.1% 19.78/s -05-Sep 10:22:42 test239 0.1 sec 15: 16779 of 22139 24.2% 115.27/s -05-Sep 10:22:43 test239 0.9 sec 2: 16777 of 22139 24.2% 2.21/s -05-Sep 10:22:43 test235 0.0 sec 4: 16773 of 22139 24.2% 94.81/s -05-Sep 10:22:43 test226 0.0 sec 8: 16765 of 22139 24.3% 620.01/s -05-Sep 10:22:43 test223 0.0 sec 2: 16763 of 22139 24.3% 60.38/s -05-Sep 10:22:43 test204 0.2 sec 14: 16749 of 22139 24.3% 75.71/s -05-Sep 10:22:43 test203 0.1 sec 19: 16730 of 22139 24.4% 196.99/s -05-Sep 10:22:43 test183 0.0 sec 12: 16718 of 22139 24.5% 402.19/s -05-Sep 10:22:44 test179 0.1 sec 15: 16703 of 22139 24.6% 107.30/s -05-Sep 10:22:45 test179 1.8 sec 4: 16699 of 22139 24.6% 2.25/s -05-Sep 10:22:45 test174 0.1 sec 10: 16689 of 22139 24.6% 157.67/s -05-Sep 10:22:46 test155 0.2 sec 44: 16645 of 22139 24.8% 271.85/s -05-Sep 10:22:46 test156 0.7 sec 227: 16418 of 22139 25.8% 347.62/s -05-Sep 10:23:30 test156 44.1 sec 37: 16381 of 22139 26.0% 0.84/s -05-Sep 10:23:31 test136 0.3 sec 57: 16324 of 22139 26.3% 226.47/s -05-Sep 10:23:32 test02 0.7 sec 22: 16302 of 22139 26.4% 30.63/s -05-Sep 10:23:32 test109 0.5 sec 10: 16292 of 22139 26.4% 21.56/s -05-Sep 10:23:32 test109 0.0 sec 4: 16288 of 22139 26.4% 1192.25/s -05-Sep 10:23:32 test109 0.3 sec 8: 16280 of 22139 26.5% 25.54/s -05-Sep 10:23:33 test04 0.1 sec 15: 16265 of 22139 26.5% 105.91/s -05-Sep 10:23:33 test207 0.0 sec 2: 16263 of 22139 26.5% 411.44/s -05-Sep 10:23:33 test221 0.0 sec 2: 16261 of 22139 26.6% 258.26/s -05-Sep 10:23:33 test162 0.1 sec 5: 16256 of 22139 26.6% 88.30/s -05-Sep 10:24:31 test159 58.7 sec 80: 16176 of 22139 26.9% 1.36/s -05-Sep 10:24:34 test159 2.4 sec 55: 16121 of 22139 27.2% 23.01/s -05-Sep 10:24:34 test09 0.0 sec 5: 16116 of 22139 27.2% 475.33/s -05-Sep 10:24:34 test132 0.1 sec 8: 16108 of 22139 27.2% 68.57/s -05-Sep 10:25:14 test141 39.5 sec 476: 15632 of 22139 29.4% 12.05/s -05-Sep 10:25:26 test141 12.1 sec 77: 15555 of 22139 29.7% 6.34/s -05-Sep 10:30:09 test141 282.7 sec 2: 15553 of 22139 29.7% 0.01/s -05-Sep 10:30:11 testc2(1,1) 1.3 sec 20: 15533 of 22139 29.8% 14.86/s -05-Sep 10:30:17 testc2(1,1) 6.3 sec 4: 15529 of 22139 29.9% 0.64/s -05-Sep 10:30:17 test214 0.0 sec 3: 15526 of 22139 29.9% 257.60/s -05-Sep 10:30:17 test213 0.0 sec 2: 15524 of 22139 29.9% 150.33/s -05-Sep 10:30:20 test206 2.3 sec 219: 15305 of 22139 30.9% 95.31/s -05-Sep 10:30:32 test206 12.2 sec 8: 15297 of 22139 30.9% 0.65/s -05-Sep 10:30:32 test212 0.0 sec 9: 15288 of 22139 30.9% 445.46/s -05-Sep 10:30:32 test212 0.2 sec 2: 15286 of 22139 31.0% 11.47/s -05-Sep 10:30:33 test128 0.4 sec 49: 15237 of 22139 31.2% 130.38/s -05-Sep 10:30:33 test82 0.1 sec 18: 15219 of 22139 31.3% 171.29/s -05-Sep 10:30:36 test229 3.0 sec 9: 15210 of 22139 31.3% 3.00/s -05-Sep 10:30:37 test229 1.1 sec 1: 15209 of 22139 31.3% 0.90/s -05-Sep 10:30:38 test144 0.6 sec 2: 15207 of 22139 31.3% 3.33/s -05-Sep 10:31:55 test14 77.5 sec 664: 14543 of 22139 34.3% 8.57/s -05-Sep 10:32:24 test14 29.3 sec 2: 14541 of 22139 34.3% 0.07/s -05-Sep 10:36:31 test14 246.2 sec 117: 14424 of 22139 34.8% 0.48/s -05-Sep 10:36:39 test180 8.1 sec 134: 14290 of 22139 35.5% 16.56/s -05-Sep 10:36:43 test236 3.6 sec 74: 14216 of 22139 35.8% 20.55/s -05-Sep 10:36:45 test232 2.5 sec 20: 14196 of 22139 35.9% 8.10/s -05-Sep 10:37:04 test228 18.1 sec 28: 14168 of 22139 36.0% 1.54/s -05-Sep 10:38:48 test154 104.7 sec 1502: 12666 of 22139 42.8% 14.35/s -05-Sep 10:44:56 test154 367.6 sec 2: 12664 of 22139 42.8% 0.01/s -05-Sep 10:45:07 test238 11.5 sec 50: 12614 of 22139 43.0% 4.36/s -05-Sep 10:46:09 test238 61.3 sec 2: 12612 of 22139 43.0% 0.03/s -05-Sep 10:47:42 test151b 93.1 sec 173: 12439 of 22139 43.8% 1.86/s -05-Sep 10:49:18 test151b 96.1 sec 1: 12438 of 22139 43.8% 0.01/s -05-Sep 10:56:19 test151b 421.3 sec 1: 12437 of 22139 43.8% 0.00/s -05-Sep 10:56:24 test184 3.2 sec 38: 12399 of 22139 44.0% 12.04/s -05-Sep 10:56:36 test191 12.7 sec 21: 12378 of 22139 44.1% 1.66/s -05-Sep 10:57:05 test191 28.2 sec 3: 12375 of 22139 44.1% 0.11/s -05-Sep 11:03:55 test188 410.7 sec 183: 12192 of 22139 44.9% 0.45/s -05-Sep 11:06:21 test188 145.0 sec 3: 12189 of 22139 44.9% 0.02/s -05-Sep 11:06:26 test224 4.7 sec 24: 12165 of 22139 45.1% 5.05/s -05-Sep 11:06:29 test196 2.4 sec 11: 12154 of 22139 45.1% 4.51/s -05-Sep 11:06:33 test209 4.7 sec 20: 12134 of 22139 45.2% 4.29/s -05-Sep 11:06:50 test104 16.8 sec 40: 12094 of 22139 45.4% 2.38/s -05-Sep 11:06:58 test189 8.2 sec 1: 12093 of 22139 45.4% 0.12/s -05-Sep 11:08:02 test194 63.4 sec 5: 12088 of 22139 45.4% 0.08/s -05-Sep 11:08:16 test76 14.4 sec 15: 12073 of 22139 45.5% 1.04/s -05-Sep 11:08:55 test244 38.5 sec 17: 12056 of 22139 45.5% 0.44/s -[malloc debugging turned off] -05-Sep 11:08:55 test201 0.0 sec 3: 12053 of 22139 45.6% 315.89/s -05-Sep 11:08:55 test225 0.2 sec 4: 12049 of 22139 45.6% 26.63/s -05-Sep 11:08:55 test176 0.1 sec 5: 12044 of 22139 45.6% 71.58/s -05-Sep 11:08:55 test208 0.0 sec 5: 12039 of 22139 45.6% 309.79/s -05-Sep 11:08:55 test216 0.1 sec 3: 12036 of 22139 45.6% 29.06/s -05-Sep 11:10:10 test142 74.2 sec 630: 11406 of 22139 48.5% 8.49/s -05-Sep 11:10:33 test142 22.9 sec 2: 11404 of 22139 48.5% 0.09/s -05-Sep 11:13:36 test142 183.0 sec 2: 11402 of 22139 48.5% 0.01/s -05-Sep 11:14:00 test142 23.2 sec 2: 11400 of 22139 48.5% 0.09/s -05-Sep 11:14:00 test137 0.4 sec 3: 11397 of 22139 48.5% 7.36/s -05-Sep 11:14:00 test137 0.0 sec 2: 11395 of 22139 48.5% 228.18/s -05-Sep 11:14:01 test139 0.5 sec 2: 11393 of 22139 48.5% 3.97/s -05-Sep 11:14:01 test172 0.1 sec 3: 11390 of 22139 48.6% 37.90/s -05-Sep 11:14:02 test148 0.9 sec 4: 11386 of 22139 48.6% 4.59/s -05-Sep 11:14:02 test157 0.6 sec 12: 11374 of 22139 48.6% 19.60/s -05-Sep 11:14:03 test182 1.0 sec 8: 11366 of 22139 48.7% 8.16/s -05-Sep 11:14:04 test108 0.6 sec 2: 11364 of 22139 48.7% 3.21/s -05-Sep 11:14:04 test108 0.4 sec 1: 11363 of 22139 48.7% 2.69/s -05-Sep 11:14:05 test130 0.8 sec 26: 11337 of 22139 48.8% 32.95/s -05-Sep 11:14:05 test124 0.2 sec 3: 11334 of 22139 48.8% 16.21/s -05-Sep 11:14:06 test138 0.1 sec 1: 11333 of 22139 48.8% 19.29/s -05-Sep 11:14:10 test227 4.0 sec 27: 11306 of 22139 48.9% 6.81/s -05-Sep 11:14:36 test125 26.4 sec 630: 10676 of 22139 51.8% 23.90/s -05-Sep 11:16:47 test234 131.5 sec 396: 10280 of 22139 53.6% 3.01/s -05-Sep 11:20:27 test234 219.1 sec 2: 10278 of 22139 53.6% 0.01/s -05-Sep 11:21:07 test242 40.5 sec 77: 10201 of 22139 53.9% 1.90/s -05-Sep 11:21:09 test173 1.5 sec 11: 10190 of 22139 54.0% 7.47/s -05-Sep 11:21:11 test200 2.7 sec 10: 10180 of 22139 54.0% 3.72/s -05-Sep 11:21:12 test197 0.1 sec 1: 10179 of 22139 54.0% 7.35/s -05-Sep 11:21:13 test84 1.2 sec 18: 10161 of 22139 54.1% 15.33/s -05-Sep 11:21:23 test19b 10.0 sec 58: 10103 of 22139 54.4% 5.81/s -05-Sep 11:21:28 test19b 5.2 sec 5: 10098 of 22139 54.4% 0.96/s -05-Sep 11:21:28 test133 0.4 sec 2: 10096 of 22139 54.4% 5.15/s -05-Sep 11:21:33 test80 4.2 sec 12: 10084 of 22139 54.5% 2.89/s -05-Sep 11:21:48 test151 15.4 sec 73: 10011 of 22139 54.8% 4.73/s -05-Sep 11:22:59 test151 70.9 sec 2: 10009 of 22139 54.8% 0.03/s -05-Sep 11:24:17 test23 78.4 sec 146: 9863 of 22139 55.4% 1.86/s -05-Sep 11:25:19 test23 61.1 sec 2: 9861 of 22139 55.5% 0.03/s -05-Sep 11:25:21 test135 1.9 sec 7: 9854 of 22139 55.5% 3.66/s -05-Sep 11:26:37 test160 76.2 sec 23: 9831 of 22139 55.6% 0.30/s -05-Sep 11:27:53 test160 75.6 sec 1: 9830 of 22139 55.6% 0.01/s -05-Sep 11:27:58 test54 5.1 sec 20: 9810 of 22139 55.7% 3.90/s -05-Sep 11:27:59 test129 1.0 sec 4: 9806 of 22139 55.7% 4.09/s -05-Sep 11:28:01 test69 2.0 sec 3: 9803 of 22139 55.7% 1.50/s -05-Sep 11:29:22 test230 81.0 sec 114: 9689 of 22139 56.2% 1.41/s -05-Sep 12:49:06 test74 4784.6 sec 6588: 3101 of 22139 86.0% 1.38/s -05-Sep 13:21:22 test74 1935.1 sec 7: 3094 of 22139 86.0% 0.00/s -05-Sep 13:27:05 test127 343.4 sec 1633: 1461 of 22139 93.4% 4.75/s -05-Sep 13:39:24 test127 738.7 sec 18: 1443 of 22139 93.5% 0.02/s -05-Sep 14:27:40 test127 2896.1 sec 2: 1441 of 22139 93.5% 0.00/s -05-Sep 14:28:14 test19 3.1 sec 12: 1429 of 22139 93.5% 3.86/s -05-Sep 14:28:17 test11 3.5 sec 3: 1426 of 22139 93.6% 0.87/s -05-Sep 14:28:21 test215 3.2 sec 1: 1425 of 22139 93.6% 0.31/s -05-Sep 14:28:36 test193 15.0 sec 5: 1420 of 22139 93.6% 0.33/s -05-Sep 14:31:13 test195 157.4 sec 39: 1381 of 22139 93.8% 0.25/s -05-Sep 14:31:35 test243 21.6 sec 7: 1374 of 22139 93.8% 0.32/s -05-Sep 14:31:48 test29 12.7 sec 1: 1373 of 22139 93.8% 0.08/s -05-Sep 14:31:58 test29 10.4 sec 2: 1371 of 22139 93.8% 0.19/s -05-Sep 14:32:15 testc2(0,0) 17.2 sec 2: 1369 of 22139 93.8% 0.12/s -05-Sep 14:32:16 testc2(0,0) 1.2 sec 6: 1363 of 22139 93.8% 5.08/s -05-Sep 14:32:18 testc2(0,0) 1.4 sec 1: 1362 of 22139 93.8% 0.70/s -05-Sep 14:32:19 testc4(0) 0.6 sec 4: 1358 of 22139 93.9% 6.58/s -05-Sep 14:32:33 testc7(0) 14.1 sec 1: 1357 of 22139 93.9% 0.07/s -05-Sep 14:32:38 testcc(1) 5.0 sec 1: 1356 of 22139 93.9% 0.20/s -05-Sep 14:32:45 test187 7.5 sec 3: 1353 of 22139 93.9% 0.40/s -05-Sep 14:32:50 test192 5.1 sec 1: 1352 of 22139 93.9% 0.20/s -05-Sep 14:33:06 test181 15.9 sec 10: 1342 of 22139 93.9% 0.63/s -05-Sep 14:34:55 test185 109.0 sec 6: 1336 of 22139 94.0% 0.06/s -05-Sep 14:35:36 test53 41.1 sec 4: 1332 of 22139 94.0% 0.10/s -05-Sep 14:36:22 test17 45.5 sec 28: 1304 of 22139 94.1% 0.61/s -05-Sep 14:42:42 test231 380.3 sec 162: 1142 of 22139 94.8% 0.43/s -05-Sep 15:27:01 test10 2658.7 sec 946: 196 of 22139 99.1% 0.36/s -05-Sep 15:34:32 test75b 426.3 sec 151: 45 of 22139 99.8% 0.35/s -05-Sep 15:35:55 test21b 81.3 sec 26: 19 of 22139 99.9% 0.32/s -05-Sep 15:36:46 testca(1) 51.4 sec 5: 14 of 22139 99.9% 0.10/s -05-Sep 15:38:39 test81 112.9 sec 1: 13 of 22139 99.9% 0.01/s -05-Sep 15:43:51 test18 311.6 sec 13: all 22139 full 100% 0.04/s -[malloc debugging turned back on] diff --git a/Test/GB_mex_dup.c b/Test/GB_mex_dup.c index ee51af00f2..f518d95610 100644 --- a/Test/GB_mex_dup.c +++ b/Test/GB_mex_dup.c @@ -10,7 +10,6 @@ // copy and typecast a matrix #include "GB_mex.h" -#include "GB_mex_errors.h" #define USAGE "C = GB_mex_dup (A, type, method, sparsity)" @@ -41,11 +40,16 @@ void mexFunction mexErrMsgTxt ("Usage: " USAGE) ; } - #define GET_DEEP_COPY ; + #define GET_DEEP_COPY ; #define FREE_DEEP_COPY ; + // get A (shallow copy) A = GB_mx_mxArray_to_Matrix (pargin [0], "A input", false, true) ; - GrB_Matrix_set_String (A, "A input", GrB_NAME) ; + if (A == NULL) + { + FREE_ALL ; + mexErrMsgTxt ("A failed") ; + } // get ctype of output matrix GrB_Type ctype = GB_mx_string_to_Type (PARGIN (1), A->type) ; @@ -62,12 +66,6 @@ void mexFunction if (method == 0 && sparsity == GxB_DEFAULT) { METHOD (GrB_Matrix_dup (&C, A)) ; - - // get the name of the C matrix - char name [256] ; - GrB_Matrix_get_String (C, name, GrB_NAME) ; - CHECK (MATCH (name, "A input")) ; - } else { diff --git a/Test/GB_mex_generic.h b/Test/GB_mex_generic.h index 24df5af9f9..31ffd1f08a 100644 --- a/Test/GB_mex_generic.h +++ b/Test/GB_mex_generic.h @@ -16,147 +16,6 @@ // testing the _Generic versions //------------------------------------------------------------------------------ -// GrB_get: -#define GrB_Scalar_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Scalar_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Scalar_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Scalar_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Scalar_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Vector_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Vector_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Vector_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Vector_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Vector_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Matrix_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Matrix_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Matrix_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Matrix_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Matrix_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GxB_Serialized_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GxB_Serialized_get_String_(...) GrB_get (__VA_ARGS__) -#define GxB_Serialized_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GxB_Serialized_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GxB_Serialized_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_UnaryOp_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_UnaryOp_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_UnaryOp_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_UnaryOp_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_UnaryOp_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_IndexUnaryOp_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_IndexUnaryOp_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_IndexUnaryOp_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_IndexUnaryOp_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_IndexUnaryOp_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_BinaryOp_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_BinaryOp_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_BinaryOp_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_BinaryOp_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_BinaryOp_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Monoid_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Monoid_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Monoid_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Monoid_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Monoid_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Semiring_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Semiring_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Semiring_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Semiring_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Semiring_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Descriptor_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Descriptor_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Descriptor_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Descriptor_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Descriptor_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Type_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Type_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Type_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Type_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Type_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GrB_Global_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GrB_Global_get_String_(...) GrB_get (__VA_ARGS__) -#define GrB_Global_get_INT32_(...) GrB_get (__VA_ARGS__) -#define GrB_Global_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GrB_Global_get_VOID_(...) GrB_get (__VA_ARGS__) - -#define GxB_Context_get_Scalar_(...) GrB_get (__VA_ARGS__) -#define GxB_Context_get_String_(...) GrB_get (__VA_ARGS__) -#define GxB_Context_get_INT_(...) GrB_get (__VA_ARGS__) -#define GxB_Context_get_SIZE_(...) GrB_get (__VA_ARGS__) -#define GxB_Context_get_VOID_(...) GrB_get (__VA_ARGS__) - -// GrB_set: - -#define GrB_Scalar_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Scalar_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Scalar_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Scalar_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Vector_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Vector_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Vector_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Vector_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Matrix_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Matrix_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Matrix_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Matrix_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_UnaryOp_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_UnaryOp_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_UnaryOp_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_UnaryOp_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_IndexUnaryOp_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_IndexUnaryOp_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_IndexUnaryOp_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_IndexUnaryOp_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_BinaryOp_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_BinaryOp_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_BinaryOp_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_BinaryOp_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Monoid_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Monoid_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Monoid_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Monoid_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Semiring_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Semiring_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Semiring_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Semiring_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Descriptor_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Descriptor_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Descriptor_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Descriptor_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Type_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Type_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Type_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Type_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GrB_Global_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GrB_Global_set_String_(...) GrB_set (__VA_ARGS__) -#define GrB_Global_set_INT32_(...) GrB_set (__VA_ARGS__) -#define GrB_Global_set_VOID_(...) GrB_set (__VA_ARGS__) - -#define GxB_Context_set_Scalar_(...) GrB_set (__VA_ARGS__) -#define GxB_Context_set_String_(...) GrB_set (__VA_ARGS__) -#define GxB_Context_set_INT_(...) GrB_set (__VA_ARGS__) -#define GxB_Context_set_VOID_(...) GrB_set (__VA_ARGS__) - // GrB_free: #define GrB_Type_free_(...) GrB_free (__VA_ARGS__) #define GrB_UnaryOp_free_(...) GrB_free (__VA_ARGS__) diff --git a/Test/GB_mex_serialize.c b/Test/GB_mex_serialize.c index ca30a0cfec..c12dc9f68e 100644 --- a/Test/GB_mex_serialize.c +++ b/Test/GB_mex_serialize.c @@ -19,7 +19,7 @@ // method: // -2 // GrB*serialize with default LZ4 compression // GxB_COMPRESSION_NONE -1 // no compression -// GxB_COMPRESSION_DEFAULT 0 // ZSTD level 1 +// GxB_COMPRESSION_DEFAULT 0 // LZ4 // GxB_COMPRESSION_LZ4 1000 // LZ4 // GxB_COMPRESSION_LZ4HC 2000 // LZ4HC, with default level 9 // GxB_COMPRESSION_LZ4HC 2001 // LZ4HC:1 diff --git a/Test/GB_mex_test0.c b/Test/GB_mex_test0.c index c0fcb37635..d0f258cb6a 100644 --- a/Test/GB_mex_test0.c +++ b/Test/GB_mex_test0.c @@ -3868,7 +3868,10 @@ void mexFunction ERR (GB_Type_check (Tcrud, "Tcrud", G1, ff)) ; CHECK (T == NULL) ; - OK (GrB_Type_new (&T, sizeof (int))) ; + // test the function instead of the macro: + #undef GrB_Type_new + #undef GrM_Type_new + OK (GRB (Type_new) (&T, sizeof (int))) ; Werk->where = "GB_Type_check" ; OK (GB_Type_check (T, "T ok (via function)", G3, ff)) ; @@ -3910,7 +3913,10 @@ void mexFunction CHECK (info == GrB_NULL_POINTER) ; CHECK (op1b == NULL) ; - OK (GrB_UnaryOp_new (&op1b, (GxB_unary_function) f1, GrB_FP64, GrB_UINT32)) ; + // test the function instead of the macro: + #undef GrB_UnaryOp_new + #undef GrM_UnaryOp_new + OK (GRB (UnaryOp_new) (&op1b, (GxB_unary_function) f1, GrB_FP64, GrB_UINT32)) ; CHECK (op1b != NULL) ; OK (GrB_UnaryOp_wait_(op1b, GrB_MATERIALIZE)) ; @@ -3955,7 +3961,10 @@ void mexFunction CHECK (info == GrB_NULL_POINTER) ; CHECK (op2b == NULL) ; - OK (GrB_BinaryOp_new (&op2b, (GxB_binary_function) f2, GrB_INT32, GrB_UINT8, GrB_INT16)) ; + // test the function instead of the macro: + #undef GrB_BinaryOp_new + #undef GrM_BinaryOp_new + OK (GRB (BinaryOp_new) (&op2b, (GxB_binary_function) f2, GrB_INT32, GrB_UINT8, GrB_INT16)) ; CHECK (op2b != NULL) ; Werk->where = "GB_BinaryOp_check" ; @@ -3991,6 +4000,54 @@ void mexFunction printf ("\nAll GB_BinaryOp_check tests passed (errors expected)\n") ; + //-------------------------------------------------------------------------- + // SelectOp check + //-------------------------------------------------------------------------- + +#if 0 + printf ("\n-------------- GB_SelectOp_check:\n") ; + + Werk->where = "GB_SelectOp_check" ; + + info = GB_SelectOp_check (NULL, "null selectop", G3, ff) ; + CHECK (info == GrB_NULL_POINTER) ; + + CHECK (selectop == NULL) ; + // test the function instead of the macro: + #undef GxB_SelectOp_new + #undef GxM_SelectOp_new + OK (GXB (SelectOp_new) (&selectop, (GxB_select_function) fselect, GrB_FP64, GrB_FP64)) ; + CHECK (selectop != NULL) ; + + Werk->where = "GB_SelectOp_check" ; + OK (GB_SelectOp_check (selectop, "user selectop ok (via function)", G3, + ff)) ; + + expected = GrB_UNINITIALIZED_OBJECT ; + + selectop->magic = GB_FREED ; + ERR (GB_SelectOp_check (selectop, "selectop freed", G1, ff)) ; + selectop->magic = GB_MAGIC ; + + expected = GrB_INVALID_OBJECT ; + + selectop->selop_function = NULL ; + ERR (GB_SelectOp_check (selectop, "selectop invalid function", G1, ff)) ; + selectop->selop_function = (GxB_select_function) fselect ; + + selectop->opcode = 9999 ; + ERR (GB_SelectOp_check (selectop, "selectop invalid opcode", G1, ff)) ; + selectop->opcode = GB_USER_selop_code ; + + selectop->xtype = Tcrud ; + ERR (GB_SelectOp_check (selectop, "selectop invalid xtype", G1, ff)) ; + selectop->xtype = GrB_FP64 ; + + OK (GB_SelectOp_check (selectop, "user selectop ok", G3, ff)) ; + + printf ("\nAll GB_SelectOp_check tests passed (errors expected)\n") ; +#endif + //-------------------------------------------------------------------------- // Monoid check //-------------------------------------------------------------------------- diff --git a/Test/GB_mex_test1.c b/Test/GB_mex_test1.c index 44d943e043..0423432732 100644 --- a/Test/GB_mex_test1.c +++ b/Test/GB_mex_test1.c @@ -84,16 +84,12 @@ void mexFunction sizeof (struct GB_Monoid_opaque)) ; printf ("sizeof (struct GB_Semiring_opaque) %d\n", sizeof (struct GB_Semiring_opaque)) ; - printf ("sizeof (struct GB_Scalar_opaque) %d\n", - sizeof (struct GB_Scalar_opaque)) ; printf ("sizeof (struct GB_Vector_opaque) %d\n", sizeof (struct GB_Vector_opaque)) ; printf ("sizeof (struct GB_Matrix_opaque) %d\n", sizeof (struct GB_Matrix_opaque)) ; printf ("sizeof (struct GB_Descriptor_opaque) %d\n", sizeof (struct GB_Descriptor_opaque)) ; - printf ("sizeof (struct GB_Context_opaque) %d\n", - sizeof (struct GB_Context_opaque)) ; size_t s ; GxB_Type_size (&s, GrB_BOOL ) ; printf ("%d %d\n", s, sizeof (bool )); diff --git a/Test/GB_mex_test11.c b/Test/GB_mex_test11.c index e001e37097..a9ae2cc94a 100644 --- a/Test/GB_mex_test11.c +++ b/Test/GB_mex_test11.c @@ -161,8 +161,12 @@ if (jit_enabled) mxFree (save_c) ; save_c = NULL ; + // test compiler flags OK (GxB_Global_Option_get_CHAR (GxB_JIT_C_COMPILER_FLAGS, &s)) ; printf ("default flags [%s]\n", s) ; + len = strlen (s) ; + char *save_flags = mxMalloc (len+2) ; + strcpy (save_flags, s) ; OK (GxB_set (GxB_JIT_C_COMPILER_FLAGS, "-g")) ; OK (GxB_get (GxB_JIT_C_COMPILER_FLAGS, &s)) ; CHECK (MATCH (s, "-g")) ; @@ -171,7 +175,11 @@ if (jit_enabled) OK (GxB_Global_Option_set_CHAR (GxB_JIT_C_COMPILER_FLAGS, "-O0")) ; OK (GxB_Global_Option_get_CHAR (GxB_JIT_C_COMPILER_FLAGS, &t)) ; CHECK (MATCH (t, "-O0")) ; + OK (GxB_Global_Option_set_CHAR (GxB_JIT_C_COMPILER_FLAGS, save_flags)) ; + mxFree (save_flags) ; + save_flags = NULL ; + // test libraries for cmake OK (GxB_get (GxB_JIT_C_CMAKE_LIBS, &s)) ; printf ("default C cmake libs [%s]\n", s) ; printf ("set cmake libs:\n") ; @@ -227,6 +235,7 @@ if (jit_enabled) OK (GxB_Global_Option_get_CHAR (GxB_JIT_C_PREFACE, &t)) ; CHECK (MATCH (t, "// more stuff here")) ; + OK (GxB_Type_new (&MyType, 0, "mytype", "typedef double mytype ;")) ; OK (GxB_Type_size (&mysize, MyType)) ; CHECK (mysize == sizeof (double)) ; @@ -480,7 +489,7 @@ if (jit_enabled) OK (GxB_Context_engage (context1)) ; expected = GrB_INVALID_VALUE ; ERR (GxB_Context_disengage (context2)) ; - OK (GxB_Context_set (context1, GxB_CHUNK, (double) -1)) ; + OK (GxB_Context_set (context1, GxB_CHUNK, -1)) ; double chunk = 0 ; OK (GxB_Context_get (context1, GxB_CHUNK, &chunk)) ; CHECK (chunk == GB_CHUNK_DEFAULT) ; @@ -502,7 +511,6 @@ if (jit_enabled) OK (GxB_Context_set_INT32 (context1, GxB_CONTEXT_GPU_ID, 40)) ; OK (GxB_Context_get_INT32 (context1, GxB_CONTEXT_GPU_ID, &id1)) ; - OK (GxB_Context_disengage (context1)) ; GrB_free (&context1) ; GrB_free (&context2) ; diff --git a/Test/unused/GB_mex_test23.c b/Test/GB_mex_test23.c similarity index 100% rename from Test/unused/GB_mex_test23.c rename to Test/GB_mex_test23.c diff --git a/Test/GB_mex_test25.c b/Test/GB_mex_test25.c index ab9ad206fd..7dbfa16e21 100644 --- a/Test/GB_mex_test25.c +++ b/Test/GB_mex_test25.c @@ -9,7 +9,6 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_get_set.h" #define USAGE "GB_mex_test25" @@ -73,35 +72,6 @@ void mexFunction printf ("GxB_Context_error [%s] ok\n", s) ; OK (GxB_Context_wait (GxB_CONTEXT_WORLD, GrB_COMPLETE)) ; - //-------------------------------------------------------------------------- - // report object sizes - //-------------------------------------------------------------------------- - - printf ("%4d: sizeof (struct GB_Type_opaque)\n", - (int) sizeof (struct GB_Type_opaque)) ; - printf ("%4d: sizeof (struct GB_UnaryOp_opaque)\n", - (int) sizeof (struct GB_UnaryOp_opaque)) ; - printf ("%4d: sizeof (struct GB_BinaryOp_opaque)\n", - (int) sizeof (struct GB_BinaryOp_opaque)) ; - printf ("%4d: sizeof (struct GB_SelectOp_opaque)\n", - (int) sizeof (struct GB_SelectOp_opaque)) ; - printf ("%4d: sizeof (struct GB_Monoid_opaque)\n", - (int) sizeof (struct GB_Monoid_opaque)) ; - printf ("%4d: sizeof (struct GB_Semiring_opaque)\n", - (int) sizeof (struct GB_Semiring_opaque)) ; - printf ("%4d: sizeof (struct GB_Scalar_opaque)\n", - (int) sizeof (struct GB_Scalar_opaque)) ; - printf ("%4d: sizeof (struct GB_Vector_opaque)\n", - (int) sizeof (struct GB_Vector_opaque)) ; - printf ("%4d: sizeof (struct GB_Matrix_opaque)\n", - (int) sizeof (struct GB_Matrix_opaque)) ; - printf ("%4d: sizeof (struct GB_Descriptor_opaque)\n", - (int) sizeof (struct GB_Descriptor_opaque)) ; - printf ("%4d: sizeof (struct GB_Context_opaque)\n", - (int) sizeof (struct GB_Context_opaque)) ; - printf ("%4d: sizeof (struct GB_Global_opaque)\n", - (int) sizeof (struct GB_Global_opaque)) ; - //-------------------------------------------------------------------------- // finalize GraphBLAS //-------------------------------------------------------------------------- diff --git a/Test/GB_mex_test26.c b/Test/GB_mex_test26.c deleted file mode 100644 index 77e0bbebe7..0000000000 --- a/Test/GB_mex_test26.c +++ /dev/null @@ -1,670 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test26: test GrB_get and GrB_set (type, scalar, vector, matrix) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test26" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -typedef struct { int32_t stuff ; } mytype ; -#define MYTYPE_DEFN \ -"typedef struct { int32_t stuff ; } mytype ;" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Matrix A = NULL ; - GrB_Vector v = NULL ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL, - s_uint64 = NULL ; - GrB_Type type = NULL ; - uint64_t u64 ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - OK (GrB_Scalar_new (&s_uint64, GrB_UINT64)) ; - - //-------------------------------------------------------------------------- - // GrB_Type get/set - //-------------------------------------------------------------------------- - - // type name size - OK (GrB_Type_get_SIZE_(GrB_BOOL, &size, GrB_NAME)) ; - CHECK (size == strlen ("GrB_BOOL") + 1) ; - - OK (GrB_Type_get_SIZE_(GrB_BOOL, &size, GxB_JIT_C_NAME)) ; - CHECK (size == strlen ("bool") + 1) ; - - // type name - OK (GrB_Type_get_String_(GrB_BOOL, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_BOOL")) ; - - OK (GrB_Type_get_String_(GrB_INT8, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_INT8")) ; - - OK (GrB_Type_get_String_(GrB_INT16, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_INT16")) ; - - OK (GrB_Type_get_String_(GrB_INT32, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_INT32")) ; - - OK (GrB_Type_get_String_(GrB_INT64, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_INT64")) ; - - OK (GrB_Type_get_String_(GrB_UINT8, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_UINT8")) ; - - OK (GrB_Type_get_String_(GrB_UINT16, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_UINT16")) ; - - OK (GrB_Type_get_String_(GrB_UINT32, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_UINT32")) ; - - OK (GrB_Type_get_String_(GrB_UINT64, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_UINT64")) ; - - OK (GrB_Type_get_String_(GrB_FP32, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Type_get_String_(GrB_FP64, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_FP64")) ; - - OK (GrB_Type_get_String_(GxB_FC32, name, GrB_NAME)) ; - CHECK (MATCH (name, "GxB_FC32")) ; - - OK (GrB_Type_get_String_(GxB_FC64, name, GrB_NAME)) ; - CHECK (MATCH (name, "GxB_FC64")) ; - - // type JIT name - OK (GrB_Type_get_String_(GrB_BOOL, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "bool")) ; - - OK (GrB_Type_get_String_(GrB_INT8, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "int8_t")) ; - - OK (GrB_Type_get_String_(GrB_INT16, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "int16_t")) ; - - OK (GrB_Type_get_String_(GrB_INT32, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "int32_t")) ; - - OK (GrB_Type_get_String_(GrB_INT64, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "int64_t")) ; - - OK (GrB_Type_get_String_(GrB_UINT8, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "uint8_t")) ; - - OK (GrB_Type_get_String_(GrB_UINT16, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "uint16_t")) ; - - OK (GrB_Type_get_String_(GrB_UINT32, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "uint32_t")) ; - - OK (GrB_Type_get_String_(GrB_UINT64, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "uint64_t")) ; - - OK (GrB_Type_get_String_(GrB_FP32, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "float")) ; - - OK (GrB_Type_get_String_(GrB_FP64, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "double")) ; - - OK (GrB_Type_get_String_(GxB_FC32, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "GxB_FC32_t")) ; - - OK (GrB_Type_get_String_(GxB_FC64, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "GxB_FC64_t")) ; - - // type code - OK (GrB_Type_get_INT32_(GrB_BOOL, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_BOOL_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_INT8, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_INT8_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_INT16, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_INT16_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_INT32, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_INT32_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_INT64, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_INT64_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_UINT8, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_UINT8_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_UINT16, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_UINT16_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_UINT32, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_UINT32_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_UINT64, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_UINT64_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_FP32, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_Type_get_INT32_(GrB_FP64, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_Type_get_INT32_(GxB_FC32, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GxB_FC32_CODE) ; - - OK (GrB_Type_get_INT32_(GxB_FC64, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GxB_FC64_CODE) ; - - // type size (using a GrB_Scalar): recommended type of GrB_UINT64 - OK (GrB_Type_get_Scalar_(GrB_BOOL, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (bool)) ; - - OK (GrB_Type_get_Scalar_(GrB_INT8, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (int8_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_INT16, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (int16_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_INT32, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (int32_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_INT64, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (int64_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_UINT8, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (uint8_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_UINT16, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (uint16_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_UINT32, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (uint32_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_UINT64, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (uint64_t)) ; - - OK (GrB_Type_get_Scalar_(GrB_FP32, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (float)) ; - - OK (GrB_Type_get_Scalar_(GrB_FP64, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (double)) ; - - OK (GrB_Type_get_Scalar_(GxB_FC32, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (float complex)) ; - - OK (GrB_Type_get_Scalar_(GxB_FC64, s_uint64, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_UINT64_(&u64, s_uint64)) ; - CHECK (u64 == sizeof (double complex)) ; - - // type size (using an int32_t) - OK (GrB_Type_get_INT32_(GrB_BOOL, &i, GrB_SIZE)) ; - CHECK (i == sizeof (bool)) ; - - OK (GrB_Type_get_INT32_(GrB_INT8, &i, GrB_SIZE)) ; - CHECK (i == sizeof (int8_t)) ; - - OK (GrB_Type_get_INT32_(GrB_INT16, &i, GrB_SIZE)) ; - CHECK (i == sizeof (int16_t)) ; - - OK (GrB_Type_get_INT32_(GrB_INT32, &i, GrB_SIZE)) ; - CHECK (i == sizeof (int32_t)) ; - - OK (GrB_Type_get_INT32_(GrB_INT64, &i, GrB_SIZE)) ; - CHECK (i == sizeof (int64_t)) ; - - OK (GrB_Type_get_INT32_(GrB_UINT8, &i, GrB_SIZE)) ; - CHECK (i == sizeof (uint8_t)) ; - - OK (GrB_Type_get_INT32_(GrB_UINT16, &i, GrB_SIZE)) ; - CHECK (i == sizeof (uint16_t)) ; - - OK (GrB_Type_get_INT32_(GrB_UINT32, &i, GrB_SIZE)) ; - CHECK (i == sizeof (uint32_t)) ; - - OK (GrB_Type_get_INT32_(GrB_UINT64, &i, GrB_SIZE)) ; - CHECK (i == sizeof (uint64_t)) ; - - OK (GrB_Type_get_INT32_(GrB_FP32, &i, GrB_SIZE)) ; - CHECK (i == sizeof (float)) ; - - OK (GrB_Type_get_INT32_(GrB_FP64, &i, GrB_SIZE)) ; - CHECK (i == sizeof (double)) ; - - OK (GrB_Type_get_INT32_(GxB_FC32, &i, GrB_SIZE)) ; - CHECK (i == sizeof (float complex)) ; - - OK (GrB_Type_get_INT32_(GxB_FC64, &i, GrB_SIZE)) ; - CHECK (i == sizeof (double complex)) ; - - - // built-in type definition - OK (GrB_Type_get_SIZE_(GrB_BOOL, &size, GxB_JIT_C_DEFINITION)) ; - CHECK (size == 1) ; - OK (GrB_Type_get_String_(GrB_BOOL, defn, GxB_JIT_C_DEFINITION)) ; - CHECK (MATCH (defn, "")) ; - - // user-defined type - OK (GrB_Type_new (&type, sizeof (mytype))) ; - OK (GxB_print (type, 3)) ; - expected = GrB_INVALID_VALUE ; - ERR (GrB_Type_set_String_(type, "", GxB_JIT_C_NAME)) ; - OK (GrB_Type_set_String_(type, "mytype", GxB_JIT_C_NAME)) ; - CHECK (type->hash == UINT64_MAX) ; - OK (GrB_Type_set_String_(type, MYTYPE_DEFN, GxB_JIT_C_DEFINITION)) ; - OK (GxB_print (type, 3)) ; - CHECK (type->hash != UINT64_MAX) ; - printf (" hash: %016lx\n", type->hash) ; - - OK (GrB_Type_get_SIZE_(type, &size, GrB_NAME)) ; - CHECK (size == 1) ; - OK (GrB_Type_set_String_ (type, "user name of a type", GrB_NAME)) ; - OK (GrB_Type_get_SIZE_(type, &size, GrB_NAME)) ; - CHECK (size == strlen ("user name of a type") + 1) ; - OK (GrB_Type_get_String_ (type, name, GrB_NAME)) ; - CHECK (MATCH (name, "user name of a type")) ; - - expected = GrB_ALREADY_SET ; - ERR (GrB_Type_set_String_ (type, "another user name of a type", GrB_NAME)) ; - printf (" test GrB_ALREADY_SET: ok\n") ; - - OK (GrB_Type_get_String_(type, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "mytype")) ; - OK (GrB_Type_get_SIZE_(type, &size, GxB_JIT_C_NAME)) ; - CHECK (size == strlen ("mytype") + 1) ; - - OK (GrB_Type_get_SIZE_(type, &size, GxB_JIT_C_DEFINITION)) ; - CHECK (size == strlen (MYTYPE_DEFN) + 1) ; - OK (GrB_Type_get_String_(type, defn, GxB_JIT_C_DEFINITION)) ; - CHECK (MATCH (defn, MYTYPE_DEFN)) ; - - OK (GrB_Type_get_Scalar_(type, s_int32, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == sizeof (mytype)) ; - - OK (GrB_Type_get_INT32_(type, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_UDT_CODE) ; - - OK (GrB_Type_get_String_(type, name, GrB_ELTYPE_STRING)) ; - CHECK (MATCH (name, "user name of a type")) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Type_get_INT32_(type, &code, GrB_ELTYPE_STRING)) ; - - i = -1 ; - OK (GrB_Type_get_Scalar_(type, s_int32, GrB_ELTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GrB_UDT_CODE) ; - - OK (GrB_Type_get_Scalar_(type, s_int32, GrB_SIZE)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - 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_SIZE_(GrB_FP32, &size, GrB_SIZE)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Type_get_VOID_(type, nothing, 0)) ; - ERR (GrB_Type_set_Scalar_(type, s_int32, 0)) ; - ERR (GrB_Type_set_INT32_(type, 3, 0)) ; - ERR (GrB_Type_set_VOID_(type, nothing, 0, 256)) ; - - //-------------------------------------------------------------------------- - // GrB_Scalar get/set - //-------------------------------------------------------------------------- - - OK (GrB_Scalar_new (&s, GrB_FP32)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Scalar_get_VOID_(s, nothing, 0)) ; - - OK (GrB_Scalar_get_SIZE_(s, &size, GrB_ELTYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - OK (GrB_Scalar_get_String_(s, name, GrB_ELTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Scalar_get_String_(s, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - - OK (GrB_Scalar_get_INT32_(s, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - i = -1 ; - OK (GrB_Scalar_get_Scalar_(s, s_int32, GrB_ELTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GrB_FP32_CODE) ; - - GxB_print (s, 3) ; - - OK (GrB_Scalar_get_INT32_(s, &i, GrB_STORAGE_ORIENTATION_HINT)) ; - printf ("scalar storage: %d\n", i) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GrB_Scalar_get_INT32_(s, &i, GxB_FORMAT)) ; - printf ("scalar storage: %d\n", i) ; - CHECK (i == GxB_BY_COL) ; - - OK (GrB_Scalar_get_INT32_(s, &i, 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)) ; - printf ("sparsity status: %d\n", i) ; - CHECK (i == GxB_FULL) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Scalar_get_INT32_(s_int32, &i, 0)) ; - ERR (GrB_Scalar_get_SIZE_(s, &size, 0)) ; - - ERR (GrB_Scalar_set_Scalar_(s, s_int32, 0)) ; - OK (GrB_Scalar_set_Scalar_(s, s_int32, GrB_STORAGE_ORIENTATION_HINT)) ; - - ERR (GrB_Scalar_set_INT32_(s, 0, 0)) ; - OK (GrB_Scalar_set_INT32_(s, 0, GrB_STORAGE_ORIENTATION_HINT)) ; - - OK (GrB_Scalar_set_String_(s, "scalar name", GrB_NAME)) ; - OK (GrB_Scalar_get_String_(s, name, GrB_NAME)) ; - OK (GrB_Scalar_get_SIZE_(s, &size, GrB_NAME)) ; - CHECK (MATCH (name, "scalar name")) ; - CHECK (size == strlen (name) + 1) ; - - OK (GrB_Scalar_set_String_(s, "another scalar name", GrB_NAME)) ; - OK (GrB_Scalar_get_String_(s, name, GrB_NAME)) ; - OK (GrB_Scalar_get_SIZE_(s, &size, GrB_NAME)) ; - CHECK (MATCH (name, "another scalar name")) ; - CHECK (size == strlen (name) + 1) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Scalar_set_VOID_(s, nothing, 0, 0)) ; - - //-------------------------------------------------------------------------- - // GrB_Vector get/set - //-------------------------------------------------------------------------- - - OK (GrB_Vector_new (&v, GrB_FP32, 10)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Vector_get_VOID_(v, nothing, 0)) ; - - OK (GrB_Vector_get_SIZE_(v, &size, GrB_ELTYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - OK (GrB_Vector_get_String_(v, name, GrB_ELTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Vector_get_String_(v, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - - OK (GrB_Vector_get_INT32_(v, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - i = -1 ; - OK (GrB_Vector_get_Scalar_(v, s_int32, GrB_ELTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GrB_FP32_CODE) ; - - GxB_print (v, 3) ; - - OK (GrB_Vector_get_INT32_(v, &i, GrB_STORAGE_ORIENTATION_HINT)) ; - printf ("vector storage: %d\n", i) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GrB_Vector_get_INT32_(v, &i, GxB_FORMAT)) ; - printf ("vector storage: %d\n", i) ; - CHECK (i == GxB_BY_COL) ; - - OK (GrB_Vector_set_INT32_(v, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; - 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)) ; - 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)) ; - printf ("sparsity status: %d\n", i) ; - CHECK (i == GxB_FULL) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Vector_get_INT32_(v, &i, 0)) ; - ERR (GrB_Vector_get_SIZE_(v, &size, 0)) ; - - fvalue = -1 ; - OK (GrB_Vector_get_Scalar_(v, s_fp32, GxB_BITMAP_SWITCH)) ; - OK (GrB_Scalar_extractElement_FP32_(&fvalue, s_fp32)) ; - printf ("bitmap switch: %g\n", fvalue) ; - CHECK (abs (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_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; - printf ("bitmap switch: %g\n", dvalue) ; - CHECK (abs (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)) ; - GxB_print (v, 3) ; - - OK (GrB_Vector_get_INT32_(v, &i, 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)) ; - 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)) ; - - OK (GrB_Vector_set_String_(v, "vector name", GrB_NAME)) ; - OK (GrB_Vector_get_String_(v, name, GrB_NAME)) ; - OK (GrB_Vector_get_SIZE_(v, &size, GrB_NAME)) ; - CHECK (MATCH (name, "vector name")) ; - CHECK (size == strlen (name) + 1) ; - - OK (GrB_Vector_set_String_(v, "another vector name", GrB_NAME)) ; - OK (GrB_Vector_get_String_(v, name, GrB_NAME)) ; - OK (GrB_Vector_get_SIZE_(v, &size, GrB_NAME)) ; - CHECK (MATCH (name, "another vector name")) ; - CHECK (size == strlen (name) + 1) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Vector_set_VOID_(v, nothing, 0, 1)) ; - - expected = GrB_EMPTY_OBJECT ; - OK (GrB_Scalar_clear (s_int32)) ; - ERR (GrB_Vector_set_Scalar_(v, s_int32, GxB_FORMAT)) ; - - //-------------------------------------------------------------------------- - // GrB_Matrix get/set - //-------------------------------------------------------------------------- - - OK (GrB_Matrix_new (&A, GrB_FP32, 5, 5)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Matrix_get_VOID_(A, nothing, 0)) ; - - OK (GrB_Matrix_get_SIZE_(A, &size, GrB_ELTYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - OK (GrB_Matrix_get_String_(A, name, GrB_ELTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - - OK (GrB_Matrix_get_INT32_(A, &code, GrB_ELTYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - i = -1 ; - OK (GrB_Matrix_get_Scalar_(A, s_int32, GrB_ELTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GrB_FP32_CODE) ; - - GxB_print (A, 3) ; - - OK (GrB_Matrix_get_INT32_(A, &i, GrB_STORAGE_ORIENTATION_HINT)) ; - printf ("matrix storage: %d\n", i) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GrB_Matrix_get_INT32_(A, &i, GxB_FORMAT)) ; - printf ("matrix storage: %d\n", i) ; - CHECK (i == GxB_BY_COL) ; - - OK (GrB_Matrix_get_INT32_(A, &i, 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)) ; - printf ("sparsity status: %d\n", i) ; - CHECK (i == GxB_FULL) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Matrix_get_INT32_(A, &i, 0)) ; - ERR (GrB_Matrix_get_SIZE_(A, &size, 0)) ; - - fvalue = -1 ; - OK (GrB_Matrix_get_Scalar_(A, s_fp32, GxB_BITMAP_SWITCH)) ; - OK (GrB_Scalar_extractElement_FP32_(&fvalue, s_fp32)) ; - printf ("bitmap switch: %g\n", fvalue) ; - CHECK (abs (fvalue - 0.04) < 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_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; - printf ("bitmap switch: %g\n", dvalue) ; - CHECK (abs (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)) ; - GxB_print (A, 3) ; - - OK (GrB_Matrix_get_INT32_(A, &i, 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_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; - printf ("hyper switch: %g\n", dvalue) ; - CHECK (abs (dvalue - 0.25) < 1e-6) ; - - OK (GrB_Matrix_get_SIZE_(A, &size, GrB_NAME)) ; - CHECK (size == 1) ; - - OK (GrB_Matrix_set_String_(A, "matrix name", GrB_NAME)) ; - OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; - OK (GrB_Matrix_get_SIZE_(A, &size, GrB_NAME)) ; - CHECK (MATCH (name, "matrix name")) ; - CHECK (size == strlen (name) + 1) ; - - OK (GrB_Matrix_set_String_(A, "another matrix name", GrB_NAME)) ; - OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; - OK (GrB_Matrix_get_SIZE_(A, &size, GrB_NAME)) ; - CHECK (MATCH (name, "another matrix name")) ; - CHECK (size == strlen (name) + 1) ; - - OK (GrB_Matrix_get_String_(A, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "float")) ; - OK (GrB_Matrix_get_SIZE_(A, &size, GxB_JIT_C_NAME)) ; - CHECK (size == strlen ("float") + 1) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Matrix_set_String_ (A, "garbage", 999)) ; - ERR (GrB_Matrix_set_VOID_(A, nothing, 0, 1)) ; - ERR (GrB_Matrix_get_SIZE_(A, &size, 999)) ; - - 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)) ; - 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)) ; - 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, 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)) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&A) ; - GrB_free (&v) ; - GrB_free (&s) ; - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&s_uint64) ; - GrB_free (&type) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test26: all tests passed.\n\n") ; -} - diff --git a/Test/GB_mex_test27.c b/Test/GB_mex_test27.c deleted file mode 100644 index 4044bf0247..0000000000 --- a/Test/GB_mex_test27.c +++ /dev/null @@ -1,476 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test27: test GrB_get and GrB_set (unary ops) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test27" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -#define GETOP(op,opname) \ -{ \ - 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) ; \ - 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_INPUT1TYPE_STRING) ; \ - info3 = GrB_UnaryOp_get_String (op, name, GrB_INPUT1TYPE_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_INPUT2TYPE_STRING) ; \ - info3 = GrB_UnaryOp_get_String (op, name, GrB_INPUT2TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (size == 1) ; \ - CHECK (info2 == GrB_NO_VALUE) ; \ - info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_OUTPUTTYPE_STRING) ; \ - info3 = GrB_UnaryOp_get_String (op, name, GrB_OUTPUTTYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (size == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (size == 1) ; } \ -} - -#define GETNAME(op) \ -{ \ - GETOP (op, #op) ; \ -/* OK (GxB_UnaryOp_fprint (op, "unop", 3, NULL)) ; */ \ -} - -#define GETNAM2(op,alias) \ -{ \ - GETOP (op,alias) ; \ -/* OK (GxB_UnaryOp_fprint (op, "unop", 3, NULL)) ; */ \ -} - -void myfunc (float *z, const float *x) ; -void myfunc (float *z, const float *x) { (*z) = -(*x) ; } -#define MYFUNC_DEFN \ -"void myfunc (float *z, const float *x) { (*z) = -(*x) ; }" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_UnaryOp unop = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char cname [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GrB_UnaryOp get name - //-------------------------------------------------------------------------- - - GETNAME (GrB_IDENTITY_BOOL) ; - GETNAME (GrB_IDENTITY_INT8) ; - GETNAME (GrB_IDENTITY_INT16) ; - GETNAME (GrB_IDENTITY_INT32) ; - GETNAME (GrB_IDENTITY_INT64) ; - GETNAME (GrB_IDENTITY_UINT8) ; - GETNAME (GrB_IDENTITY_UINT16) ; - GETNAME (GrB_IDENTITY_UINT32) ; - GETNAME (GrB_IDENTITY_UINT64) ; - GETNAME (GrB_IDENTITY_FP32) ; - GETNAME (GrB_IDENTITY_FP64) ; - GETNAME (GxB_IDENTITY_FC32) ; - GETNAME (GxB_IDENTITY_FC64) ; - - GETNAME (GrB_AINV_BOOL) ; - GETNAME (GrB_AINV_INT8) ; - GETNAME (GrB_AINV_INT16) ; - GETNAME (GrB_AINV_INT32) ; - GETNAME (GrB_AINV_INT64) ; - GETNAME (GrB_AINV_UINT8) ; - GETNAME (GrB_AINV_UINT16) ; - GETNAME (GrB_AINV_UINT32) ; - GETNAME (GrB_AINV_UINT64) ; - GETNAME (GrB_AINV_FP32) ; - GETNAME (GrB_AINV_FP64) ; - GETNAME (GxB_AINV_FC32) ; - GETNAME (GxB_AINV_FC64) ; - - GETNAME (GrB_MINV_BOOL) ; - GETNAME (GrB_MINV_INT8) ; - GETNAME (GrB_MINV_INT16) ; - GETNAME (GrB_MINV_INT32) ; - GETNAME (GrB_MINV_INT64) ; - GETNAME (GrB_MINV_UINT8) ; - GETNAME (GrB_MINV_UINT16) ; - GETNAME (GrB_MINV_UINT32) ; - GETNAME (GrB_MINV_UINT64) ; - GETNAME (GrB_MINV_FP32) ; - GETNAME (GrB_MINV_FP64) ; - GETNAME (GxB_MINV_FC32) ; - GETNAME (GxB_MINV_FC64) ; - - GETNAME (GrB_LNOT) ; - GETNAM2 (GxB_LNOT_BOOL, "GrB_LNOT") ; - GETNAME (GxB_LNOT_INT8) ; - GETNAME (GxB_LNOT_INT16) ; - GETNAME (GxB_LNOT_INT32) ; - GETNAME (GxB_LNOT_INT64) ; - GETNAME (GxB_LNOT_UINT8) ; - GETNAME (GxB_LNOT_UINT16) ; - GETNAME (GxB_LNOT_UINT32) ; - GETNAME (GxB_LNOT_UINT64) ; - GETNAME (GxB_LNOT_FP32) ; - GETNAME (GxB_LNOT_FP64) ; - - GETNAME (GxB_ONE_BOOL) ; - GETNAME (GxB_ONE_INT8) ; - GETNAME (GxB_ONE_INT16) ; - GETNAME (GxB_ONE_INT32) ; - GETNAME (GxB_ONE_INT64) ; - GETNAME (GxB_ONE_UINT8) ; - GETNAME (GxB_ONE_UINT16) ; - GETNAME (GxB_ONE_UINT32) ; - GETNAME (GxB_ONE_UINT64) ; - GETNAME (GxB_ONE_FP32) ; - GETNAME (GxB_ONE_FP64) ; - GETNAME (GxB_ONE_FC32) ; - GETNAME (GxB_ONE_FC64) ; - - GETNAME (GrB_ABS_BOOL) ; - GETNAME (GrB_ABS_INT8) ; - GETNAME (GrB_ABS_INT16) ; - GETNAME (GrB_ABS_INT32) ; - GETNAME (GrB_ABS_INT64) ; - GETNAME (GrB_ABS_UINT8) ; - GETNAME (GrB_ABS_UINT16) ; - GETNAME (GrB_ABS_UINT32) ; - GETNAME (GrB_ABS_UINT64) ; - GETNAME (GrB_ABS_FP32) ; - GETNAME (GrB_ABS_FP64) ; - - GETNAME (GrB_BNOT_INT8) ; - GETNAME (GrB_BNOT_INT16) ; - GETNAME (GrB_BNOT_INT32) ; - GETNAME (GrB_BNOT_INT64) ; - GETNAME (GrB_BNOT_UINT8) ; - GETNAME (GrB_BNOT_UINT16) ; - GETNAME (GrB_BNOT_UINT32) ; - GETNAME (GrB_BNOT_UINT64) ; - - GETNAM2 (GxB_ABS_BOOL, "GrB_ABS_BOOL") ; - GETNAM2 (GxB_ABS_INT8, "GrB_ABS_INT8") ; - GETNAM2 (GxB_ABS_INT16, "GrB_ABS_INT16") ; - GETNAM2 (GxB_ABS_INT32, "GrB_ABS_INT32") ; - GETNAM2 (GxB_ABS_INT64, "GrB_ABS_INT64") ; - GETNAM2 (GxB_ABS_UINT8, "GrB_ABS_UINT8") ; - GETNAM2 (GxB_ABS_UINT16, "GrB_ABS_UINT16") ; - GETNAM2 (GxB_ABS_UINT32, "GrB_ABS_UINT32") ; - GETNAM2 (GxB_ABS_UINT64, "GrB_ABS_UINT64") ; - GETNAM2 (GxB_ABS_FP32, "GrB_ABS_FP32") ; - GETNAM2 (GxB_ABS_FP64, "GrB_ABS_FP64") ; - GETNAME (GxB_ABS_FC32) ; - GETNAME (GxB_ABS_FC64) ; - - GETNAME (GxB_SQRT_FP32) ; - GETNAME (GxB_SQRT_FP64) ; - GETNAME (GxB_SQRT_FC32) ; - GETNAME (GxB_SQRT_FC64) ; - - GETNAME (GxB_LOG_FP32) ; - GETNAME (GxB_LOG_FP64) ; - GETNAME (GxB_LOG_FC32) ; - GETNAME (GxB_LOG_FC64) ; - - GETNAME (GxB_EXP_FP32) ; - GETNAME (GxB_EXP_FP64) ; - GETNAME (GxB_EXP_FC32) ; - GETNAME (GxB_EXP_FC64) ; - - GETNAME (GxB_LOG2_FP32) ; - GETNAME (GxB_LOG2_FP64) ; - GETNAME (GxB_LOG2_FC32) ; - GETNAME (GxB_LOG2_FC64) ; - - GETNAME (GxB_SIN_FP32) ; - GETNAME (GxB_SIN_FP64) ; - GETNAME (GxB_SIN_FC32) ; - GETNAME (GxB_SIN_FC64) ; - - GETNAME (GxB_COS_FP32) ; - GETNAME (GxB_COS_FP64) ; - GETNAME (GxB_COS_FC32) ; - GETNAME (GxB_COS_FC64) ; - - GETNAME (GxB_TAN_FP32) ; - GETNAME (GxB_TAN_FP64) ; - GETNAME (GxB_TAN_FC32) ; - GETNAME (GxB_TAN_FC64) ; - - GETNAME (GxB_ACOS_FP32) ; - GETNAME (GxB_ACOS_FP64) ; - GETNAME (GxB_ACOS_FC32) ; - GETNAME (GxB_ACOS_FC64) ; - - GETNAME (GxB_ASIN_FP32) ; - GETNAME (GxB_ASIN_FP64) ; - GETNAME (GxB_ASIN_FC32) ; - GETNAME (GxB_ASIN_FC64) ; - - GETNAME (GxB_ATAN_FP32) ; - GETNAME (GxB_ATAN_FP64) ; - GETNAME (GxB_ATAN_FC32) ; - GETNAME (GxB_ATAN_FC64) ; - - GETNAME (GxB_SINH_FP32) ; - GETNAME (GxB_SINH_FP64) ; - GETNAME (GxB_SINH_FC32) ; - GETNAME (GxB_SINH_FC64) ; - - GETNAME (GxB_COSH_FP32) ; - GETNAME (GxB_COSH_FP64) ; - GETNAME (GxB_COSH_FC32) ; - GETNAME (GxB_COSH_FC64) ; - - GETNAME (GxB_TANH_FP32) ; - GETNAME (GxB_TANH_FP64) ; - GETNAME (GxB_TANH_FC32) ; - GETNAME (GxB_TANH_FC64) ; - - GETNAME (GxB_ATANH_FP32) ; - GETNAME (GxB_ATANH_FP64) ; - GETNAME (GxB_ATANH_FC32) ; - GETNAME (GxB_ATANH_FC64) ; - - GETNAME (GxB_ASINH_FP32) ; - GETNAME (GxB_ASINH_FP64) ; - GETNAME (GxB_ASINH_FC32) ; - GETNAME (GxB_ASINH_FC64) ; - - GETNAME (GxB_ACOSH_FP32) ; - GETNAME (GxB_ACOSH_FP64) ; - GETNAME (GxB_ACOSH_FC32) ; - GETNAME (GxB_ACOSH_FC64) ; - - GETNAME (GxB_SIGNUM_FP32) ; - GETNAME (GxB_SIGNUM_FP64) ; - GETNAME (GxB_SIGNUM_FC32) ; - GETNAME (GxB_SIGNUM_FC64) ; - - GETNAME (GxB_CEIL_FP32) ; - GETNAME (GxB_CEIL_FP64) ; - GETNAME (GxB_CEIL_FC32) ; - GETNAME (GxB_CEIL_FC64) ; - - GETNAME (GxB_FLOOR_FP32) ; - GETNAME (GxB_FLOOR_FP64) ; - GETNAME (GxB_FLOOR_FC32) ; - GETNAME (GxB_FLOOR_FC64) ; - - GETNAME (GxB_ROUND_FP32) ; - GETNAME (GxB_ROUND_FP64) ; - GETNAME (GxB_ROUND_FC32) ; - GETNAME (GxB_ROUND_FC64) ; - - GETNAME (GxB_TRUNC_FP32) ; - GETNAME (GxB_TRUNC_FP64) ; - GETNAME (GxB_TRUNC_FC32) ; - GETNAME (GxB_TRUNC_FC64) ; - - GETNAME (GxB_EXP2_FP32) ; - GETNAME (GxB_EXP2_FP64) ; - GETNAME (GxB_EXP2_FC32) ; - GETNAME (GxB_EXP2_FC64) ; - - GETNAME (GxB_EXPM1_FP32) ; - GETNAME (GxB_EXPM1_FP64) ; - GETNAME (GxB_EXPM1_FC32) ; - GETNAME (GxB_EXPM1_FC64) ; - - GETNAME (GxB_LOG10_FP32) ; - GETNAME (GxB_LOG10_FP64) ; - GETNAME (GxB_LOG10_FC32) ; - GETNAME (GxB_LOG10_FC64) ; - - GETNAME (GxB_LOG1P_FP32) ; - GETNAME (GxB_LOG1P_FP64) ; - GETNAME (GxB_LOG1P_FC32) ; - GETNAME (GxB_LOG1P_FC64) ; - - GETNAME (GxB_LGAMMA_FP32) ; - GETNAME (GxB_LGAMMA_FP64) ; - - GETNAME (GxB_TGAMMA_FP32) ; - GETNAME (GxB_TGAMMA_FP64) ; - - GETNAME (GxB_ERF_FP32) ; - GETNAME (GxB_ERF_FP64) ; - - GETNAME (GxB_ERFC_FP32) ; - GETNAME (GxB_ERFC_FP64) ; - - GETNAME (GxB_CBRT_FP32) ; - GETNAME (GxB_CBRT_FP64) ; - - GETNAME (GxB_FREXPX_FP32) ; - GETNAME (GxB_FREXPX_FP64) ; - - GETNAME (GxB_FREXPE_FP32) ; - GETNAME (GxB_FREXPE_FP64) ; - - GETNAME (GxB_CONJ_FC32) ; - GETNAME (GxB_CONJ_FC64) ; - - GETNAME (GxB_CREAL_FC32) ; - GETNAME (GxB_CREAL_FC64) ; - - GETNAME (GxB_CIMAG_FC32) ; - GETNAME (GxB_CIMAG_FC64) ; - - GETNAME (GxB_CARG_FC32) ; - GETNAME (GxB_CARG_FC64) ; - - GETNAME (GxB_ISINF_FP32) ; - GETNAME (GxB_ISINF_FP64) ; - GETNAME (GxB_ISINF_FC32) ; - GETNAME (GxB_ISINF_FC64) ; - - GETNAME (GxB_ISNAN_FP32) ; - GETNAME (GxB_ISNAN_FP64) ; - GETNAME (GxB_ISNAN_FC32) ; - GETNAME (GxB_ISNAN_FC64) ; - - GETNAME (GxB_ISFINITE_FP32) ; - GETNAME (GxB_ISFINITE_FP64) ; - GETNAME (GxB_ISFINITE_FC32) ; - GETNAME (GxB_ISFINITE_FC64) ; - - GETNAME (GxB_POSITIONI_INT32) ; - GETNAME (GxB_POSITIONI_INT64) ; - GETNAME (GxB_POSITIONI1_INT32) ; - GETNAME (GxB_POSITIONI1_INT64) ; - - GETNAME (GxB_POSITIONJ_INT32) ; - GETNAME (GxB_POSITIONJ_INT64) ; - GETNAME (GxB_POSITIONJ1_INT32) ; - GETNAME (GxB_POSITIONJ1_INT64) ; - - //-------------------------------------------------------------------------- - // other get/set methods for GrB_UnaryOp - //-------------------------------------------------------------------------- - - OK (GrB_UnaryOp_get_INT32_(GrB_ABS_FP32, &code, GrB_INPUT1TYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_UnaryOp_get_String_(GrB_ABS_FP32, name, GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_UnaryOp_get_INT32_(GrB_ABS_FP64, &code, GrB_OUTPUTTYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_UnaryOp_get_String_(GrB_ABS_FP64, name, GrB_OUTPUTTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP64")) ; - - OK (GrB_UnaryOp_get_Scalar_(GrB_ABS_FP32, s_int32, GrB_INPUT1TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_UnaryOp_get_Scalar_(GrB_LNOT, s_int32, GrB_OUTPUTTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - expected = GrB_NO_VALUE ; - ERR (GrB_UnaryOp_get_INT32_(GrB_BNOT_UINT8, &code, GrB_INPUT2TYPE_CODE)) ; - ERR (GrB_UnaryOp_get_Scalar_(GrB_LNOT, s_int32, GrB_INPUT2TYPE_CODE)) ; - ERR (GrB_UnaryOp_get_String_(GrB_BNOT_UINT8, name, GrB_INPUT2TYPE_STRING)) ; - ERR (GrB_UnaryOp_get_SIZE_(GrB_BNOT_UINT8, &size, GrB_INPUT2TYPE_STRING)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_UnaryOp_get_INT32_(GrB_BNOT_UINT8, &code, GrB_NAME)) ; - - 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_get_SIZE_(unop, &size, GrB_NAME)) ; - CHECK (size == 1) ; - OK (GrB_UnaryOp_get_SIZE_(unop, &size, GxB_JIT_C_NAME)) ; - CHECK (size == 1) ; - OK (GrB_UnaryOp_get_SIZE_(unop, &size, GxB_JIT_C_DEFINITION)) ; - CHECK (size == 1) ; - - expected = GrB_INVALID_VALUE ; - OK (GrB_UnaryOp_set_String_(unop, "myfunc", GxB_JIT_C_NAME)) ; - OK (GrB_UnaryOp_get_String_(unop, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "myfunc")) ; - - CHECK (unop->hash == UINT64_MAX) ; - METHOD (GrB_UnaryOp_set_String (unop, MYFUNC_DEFN, GxB_JIT_C_DEFINITION)) ; - OK (GrB_UnaryOp_get_String_(unop, defn, GxB_JIT_C_DEFINITION)) ; - CHECK (MATCH (defn, MYFUNC_DEFN)) ; - CHECK (unop->hash != UINT64_MAX) ; - OK (GxB_print (unop, 3)) ; - - OK (GrB_UnaryOp_set_String_(unop, "user name for myfunc", GrB_NAME)) ; - OK (GrB_UnaryOp_get_String_(unop, name, GrB_NAME)) ; - CHECK (MATCH (name, "user name for myfunc")) ; - expected = GrB_ALREADY_SET ; - ERR (GrB_UnaryOp_set_String_(unop, "another user name", GrB_NAME)) ; - printf (" test GrB_ALREADY_SET: ok\n") ; - - expected = GrB_NO_VALUE ; - ERR (GrB_UnaryOp_get_INT32_(unop, &code, GrB_INPUT2TYPE_CODE)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_UnaryOp_set_String_(unop, "another_name", 999)) ; - ERR (GrB_UnaryOp_get_SIZE(unop, &size, 999)) ; - - expected = GrB_ALREADY_SET ; - ERR (GrB_UnaryOp_set_String_(unop, "another_name", GxB_JIT_C_NAME)) ; - ERR (GrB_UnaryOp_set_String_(unop, "another_defn", GxB_JIT_C_DEFINITION)) ; - CHECK (MATCH ("GrB_ALREADY_SET", GB_status_code (GrB_ALREADY_SET))) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_UnaryOp_set_String_(GrB_LNOT, "another_name", GxB_JIT_C_NAME)) ; - ERR (GrB_UnaryOp_set_Scalar_(unop, s_int32, 0)) ; - ERR (GrB_UnaryOp_set_INT32_(unop, 0, 0)) ; - ERR (GrB_UnaryOp_set_VOID_(unop, nothing, 0, 0)) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&unop) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test27: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test28.c b/Test/GB_mex_test28.c deleted file mode 100644 index ab337738c4..0000000000 --- a/Test/GB_mex_test28.c +++ /dev/null @@ -1,680 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test28: test GrB_get and GrB_set (binary ops) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test28" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -#define GETOP(op,opname) \ -{ \ - 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_SIZE (op, &size, GrB_NAME)) ; \ - CHECK (size == strlen (name) + 1) ; \ - GrB_Info info2, info3 ; \ - info2 = GrB_BinaryOp_get_SIZE (op, &siz1, GrB_INPUT1TYPE_STRING) ; \ - info3 = GrB_BinaryOp_get_String (op, name, GrB_INPUT1TYPE_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_INPUT2TYPE_STRING) ; \ - info3 = GrB_BinaryOp_get_String (op, name, GrB_INPUT2TYPE_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_OUTPUTTYPE_STRING) ; \ - info3 = GrB_BinaryOp_get_String (op, name, GrB_OUTPUTTYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz3 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz3 == 1) ; } \ -} - -#define GETNAME(op) \ -{ \ - GETOP (op, #op) ; \ -/* OK (GxB_BinaryOp_fprint (op, "binop", 3, NULL)) ; */ \ -} - -#define GETNAM2(op,alias) \ -{ \ - GETOP (op,alias) ; \ -/* OK (GxB_BinaryOp_fprint (op, "binop", 3, NULL)) ; */ \ -} - -void myfunc (float *z, const float *x, const float *y) ; -void myfunc (float *z, const float *x, const float *y) { (*z) = (*x)+(*y) ; } -#define MYFUNC_DEFN \ -"void myfunc (float *z, const float *x, const float *y) { (*z) = (*x)+(*y) ; }" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_BinaryOp binop = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char cname [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GrB_BinaryOp get name - //-------------------------------------------------------------------------- - - GETNAME (GrB_FIRST_BOOL) ; - GETNAME (GrB_FIRST_INT8) ; - GETNAME (GrB_FIRST_INT16) ; - GETNAME (GrB_FIRST_INT32) ; - GETNAME (GrB_FIRST_INT64) ; - GETNAME (GrB_FIRST_UINT8) ; - GETNAME (GrB_FIRST_UINT16) ; - GETNAME (GrB_FIRST_UINT32) ; - GETNAME (GrB_FIRST_UINT64) ; - GETNAME (GrB_FIRST_FP32) ; - GETNAME (GrB_FIRST_FP64) ; - GETNAME (GxB_FIRST_FC32) ; - GETNAME (GxB_FIRST_FC64) ; - - GETNAME (GrB_SECOND_BOOL) ; - GETNAME (GrB_SECOND_INT8) ; - GETNAME (GrB_SECOND_INT16) ; - GETNAME (GrB_SECOND_INT32) ; - GETNAME (GrB_SECOND_INT64) ; - GETNAME (GrB_SECOND_UINT8) ; - GETNAME (GrB_SECOND_UINT16) ; - GETNAME (GrB_SECOND_UINT32) ; - GETNAME (GrB_SECOND_UINT64) ; - GETNAME (GrB_SECOND_FP32) ; - GETNAME (GrB_SECOND_FP64) ; - GETNAME (GxB_SECOND_FC32) ; - GETNAME (GxB_SECOND_FC64) ; - - GETNAME (GrB_ONEB_BOOL) ; - GETNAME (GrB_ONEB_INT8) ; - GETNAME (GrB_ONEB_INT16) ; - GETNAME (GrB_ONEB_INT32) ; - GETNAME (GrB_ONEB_INT64) ; - GETNAME (GrB_ONEB_UINT8) ; - GETNAME (GrB_ONEB_UINT16) ; - GETNAME (GrB_ONEB_UINT32) ; - GETNAME (GrB_ONEB_UINT64) ; - GETNAME (GrB_ONEB_FP32) ; - GETNAME (GrB_ONEB_FP64) ; - GETNAME (GxB_ONEB_FC32) ; - GETNAME (GxB_ONEB_FC64) ; - - GETNAME (GxB_POW_BOOL) ; - GETNAME (GxB_POW_INT8) ; - GETNAME (GxB_POW_INT16) ; - GETNAME (GxB_POW_INT32) ; - GETNAME (GxB_POW_INT64) ; - GETNAME (GxB_POW_UINT8) ; - GETNAME (GxB_POW_UINT16) ; - GETNAME (GxB_POW_UINT32) ; - GETNAME (GxB_POW_UINT64) ; - GETNAME (GxB_POW_FP32) ; - GETNAME (GxB_POW_FP64) ; - GETNAME (GxB_POW_FC32) ; - GETNAME (GxB_POW_FC64) ; - - GETNAME (GrB_PLUS_BOOL) ; - GETNAME (GrB_PLUS_INT8) ; - GETNAME (GrB_PLUS_INT16) ; - GETNAME (GrB_PLUS_INT32) ; - GETNAME (GrB_PLUS_INT64) ; - GETNAME (GrB_PLUS_UINT8) ; - GETNAME (GrB_PLUS_UINT16) ; - GETNAME (GrB_PLUS_UINT32) ; - GETNAME (GrB_PLUS_UINT64) ; - GETNAME (GrB_PLUS_FP32) ; - GETNAME (GrB_PLUS_FP64) ; - GETNAME (GxB_PLUS_FC32) ; - GETNAME (GxB_PLUS_FC64) ; - - GETNAME (GrB_MINUS_BOOL) ; - GETNAME (GrB_MINUS_INT8) ; - GETNAME (GrB_MINUS_INT16) ; - GETNAME (GrB_MINUS_INT32) ; - GETNAME (GrB_MINUS_INT64) ; - GETNAME (GrB_MINUS_UINT8) ; - GETNAME (GrB_MINUS_UINT16) ; - GETNAME (GrB_MINUS_UINT32) ; - GETNAME (GrB_MINUS_UINT64) ; - GETNAME (GrB_MINUS_FP32) ; - GETNAME (GrB_MINUS_FP64) ; - GETNAME (GxB_MINUS_FC32) ; - GETNAME (GxB_MINUS_FC64) ; - - GETNAME (GrB_TIMES_BOOL) ; - GETNAME (GrB_TIMES_INT8) ; - GETNAME (GrB_TIMES_INT16) ; - GETNAME (GrB_TIMES_INT32) ; - GETNAME (GrB_TIMES_INT64) ; - GETNAME (GrB_TIMES_UINT8) ; - GETNAME (GrB_TIMES_UINT16) ; - GETNAME (GrB_TIMES_UINT32) ; - GETNAME (GrB_TIMES_UINT64) ; - GETNAME (GrB_TIMES_FP32) ; - GETNAME (GrB_TIMES_FP64) ; - GETNAME (GxB_TIMES_FC32) ; - GETNAME (GxB_TIMES_FC64) ; - - GETNAME (GrB_DIV_BOOL) ; - GETNAME (GrB_DIV_INT8) ; - GETNAME (GrB_DIV_INT16) ; - GETNAME (GrB_DIV_INT32) ; - GETNAME (GrB_DIV_INT64) ; - GETNAME (GrB_DIV_UINT8) ; - GETNAME (GrB_DIV_UINT16) ; - GETNAME (GrB_DIV_UINT32) ; - GETNAME (GrB_DIV_UINT64) ; - GETNAME (GrB_DIV_FP32) ; - GETNAME (GrB_DIV_FP64) ; - GETNAME (GxB_DIV_FC32) ; - GETNAME (GxB_DIV_FC64) ; - - GETNAME (GxB_RMINUS_BOOL) ; - GETNAME (GxB_RMINUS_INT8) ; - GETNAME (GxB_RMINUS_INT16) ; - GETNAME (GxB_RMINUS_INT32) ; - GETNAME (GxB_RMINUS_INT64) ; - GETNAME (GxB_RMINUS_UINT8) ; - GETNAME (GxB_RMINUS_UINT16) ; - GETNAME (GxB_RMINUS_UINT32) ; - GETNAME (GxB_RMINUS_UINT64) ; - GETNAME (GxB_RMINUS_FP32) ; - GETNAME (GxB_RMINUS_FP64) ; - GETNAME (GxB_RMINUS_FC32) ; - GETNAME (GxB_RMINUS_FC64) ; - - GETNAME (GxB_RDIV_BOOL) ; - GETNAME (GxB_RDIV_INT8) ; - GETNAME (GxB_RDIV_INT16) ; - GETNAME (GxB_RDIV_INT32) ; - GETNAME (GxB_RDIV_INT64) ; - GETNAME (GxB_RDIV_UINT8) ; - GETNAME (GxB_RDIV_UINT16) ; - GETNAME (GxB_RDIV_UINT32) ; - GETNAME (GxB_RDIV_UINT64) ; - GETNAME (GxB_RDIV_FP32) ; - GETNAME (GxB_RDIV_FP64) ; - GETNAME (GxB_RDIV_FC32) ; - GETNAME (GxB_RDIV_FC64) ; - - GETNAM2 (GxB_PAIR_BOOL, "GrB_ONEB_BOOL") ; - GETNAM2 (GxB_PAIR_INT8, "GrB_ONEB_INT8") ; - GETNAM2 (GxB_PAIR_INT16, "GrB_ONEB_INT16") ; - GETNAM2 (GxB_PAIR_INT32, "GrB_ONEB_INT32") ; - GETNAM2 (GxB_PAIR_INT64, "GrB_ONEB_INT64") ; - GETNAM2 (GxB_PAIR_UINT8, "GrB_ONEB_UINT8") ; - GETNAM2 (GxB_PAIR_UINT16, "GrB_ONEB_UINT16") ; - GETNAM2 (GxB_PAIR_UINT32, "GrB_ONEB_UINT32") ; - GETNAM2 (GxB_PAIR_UINT64, "GrB_ONEB_UINT64") ; - GETNAM2 (GxB_PAIR_FP32, "GrB_ONEB_FP32") ; - GETNAM2 (GxB_PAIR_FP64, "GrB_ONEB_FP64") ; - GETNAM2 (GxB_PAIR_FC32, "GxB_ONEB_FC32") ; - GETNAM2 (GxB_PAIR_FC64, "GxB_ONEB_FC64") ; - - GETNAME (GxB_ANY_BOOL) ; - GETNAME (GxB_ANY_INT8) ; - GETNAME (GxB_ANY_INT16) ; - GETNAME (GxB_ANY_INT32) ; - GETNAME (GxB_ANY_INT64) ; - GETNAME (GxB_ANY_UINT8) ; - GETNAME (GxB_ANY_UINT16) ; - GETNAME (GxB_ANY_UINT32) ; - GETNAME (GxB_ANY_UINT64) ; - GETNAME (GxB_ANY_FP32) ; - GETNAME (GxB_ANY_FP64) ; - GETNAME (GxB_ANY_FC32) ; - GETNAME (GxB_ANY_FC64) ; - - GETNAME (GxB_ISEQ_BOOL) ; - GETNAME (GxB_ISEQ_INT8) ; - GETNAME (GxB_ISEQ_INT16) ; - GETNAME (GxB_ISEQ_INT32) ; - GETNAME (GxB_ISEQ_INT64) ; - GETNAME (GxB_ISEQ_UINT8) ; - GETNAME (GxB_ISEQ_UINT16) ; - GETNAME (GxB_ISEQ_UINT32) ; - GETNAME (GxB_ISEQ_UINT64) ; - GETNAME (GxB_ISEQ_FP32) ; - GETNAME (GxB_ISEQ_FP64) ; - GETNAME (GxB_ISEQ_FC32) ; - GETNAME (GxB_ISEQ_FC64) ; - - GETNAME (GxB_ISNE_BOOL) ; - GETNAME (GxB_ISNE_INT8) ; - GETNAME (GxB_ISNE_INT16) ; - GETNAME (GxB_ISNE_INT32) ; - GETNAME (GxB_ISNE_INT64) ; - GETNAME (GxB_ISNE_UINT8) ; - GETNAME (GxB_ISNE_UINT16) ; - GETNAME (GxB_ISNE_UINT32) ; - GETNAME (GxB_ISNE_UINT64) ; - GETNAME (GxB_ISNE_FP32) ; - GETNAME (GxB_ISNE_FP64) ; - GETNAME (GxB_ISNE_FC32) ; - GETNAME (GxB_ISNE_FC64) ; - - GETNAME (GxB_ISGT_BOOL) ; - GETNAME (GxB_ISGT_INT8) ; - GETNAME (GxB_ISGT_INT16) ; - GETNAME (GxB_ISGT_INT32) ; - GETNAME (GxB_ISGT_INT64) ; - GETNAME (GxB_ISGT_UINT8) ; - GETNAME (GxB_ISGT_UINT16) ; - GETNAME (GxB_ISGT_UINT32) ; - GETNAME (GxB_ISGT_UINT64) ; - GETNAME (GxB_ISGT_FP32) ; - GETNAME (GxB_ISGT_FP64) ; - - GETNAME (GxB_ISLT_BOOL) ; - GETNAME (GxB_ISLT_INT8) ; - GETNAME (GxB_ISLT_INT16) ; - GETNAME (GxB_ISLT_INT32) ; - GETNAME (GxB_ISLT_INT64) ; - GETNAME (GxB_ISLT_UINT8) ; - GETNAME (GxB_ISLT_UINT16) ; - GETNAME (GxB_ISLT_UINT32) ; - GETNAME (GxB_ISLT_UINT64) ; - GETNAME (GxB_ISLT_FP32) ; - GETNAME (GxB_ISLT_FP64) ; - - GETNAME (GxB_ISGE_BOOL) ; - GETNAME (GxB_ISGE_INT8) ; - GETNAME (GxB_ISGE_INT16) ; - GETNAME (GxB_ISGE_INT32) ; - GETNAME (GxB_ISGE_INT64) ; - GETNAME (GxB_ISGE_UINT8) ; - GETNAME (GxB_ISGE_UINT16) ; - GETNAME (GxB_ISGE_UINT32) ; - GETNAME (GxB_ISGE_UINT64) ; - GETNAME (GxB_ISGE_FP32) ; - GETNAME (GxB_ISGE_FP64) ; - - GETNAME (GxB_ISLE_BOOL) ; - GETNAME (GxB_ISLE_INT8) ; - GETNAME (GxB_ISLE_INT16) ; - GETNAME (GxB_ISLE_INT32) ; - GETNAME (GxB_ISLE_INT64) ; - GETNAME (GxB_ISLE_UINT8) ; - GETNAME (GxB_ISLE_UINT16) ; - GETNAME (GxB_ISLE_UINT32) ; - GETNAME (GxB_ISLE_UINT64) ; - GETNAME (GxB_ISLE_FP32) ; - GETNAME (GxB_ISLE_FP64) ; - - GETNAME (GrB_MIN_BOOL) ; - GETNAME (GrB_MIN_INT8) ; - GETNAME (GrB_MIN_INT16) ; - GETNAME (GrB_MIN_INT32) ; - GETNAME (GrB_MIN_INT64) ; - GETNAME (GrB_MIN_UINT8) ; - GETNAME (GrB_MIN_UINT16) ; - GETNAME (GrB_MIN_UINT32) ; - GETNAME (GrB_MIN_UINT64) ; - GETNAME (GrB_MIN_FP32) ; - GETNAME (GrB_MIN_FP64) ; - - GETNAME (GrB_MAX_BOOL) ; - GETNAME (GrB_MAX_INT8) ; - GETNAME (GrB_MAX_INT16) ; - GETNAME (GrB_MAX_INT32) ; - GETNAME (GrB_MAX_INT64) ; - GETNAME (GrB_MAX_UINT8) ; - GETNAME (GrB_MAX_UINT16) ; - GETNAME (GrB_MAX_UINT32) ; - GETNAME (GrB_MAX_UINT64) ; - GETNAME (GrB_MAX_FP32) ; - GETNAME (GrB_MAX_FP64) ; - - GETNAME (GrB_LOR) ; - GETNAM2 (GxB_LOR_BOOL, "GrB_LOR") ; - GETNAME (GxB_LOR_INT8) ; - GETNAME (GxB_LOR_INT16) ; - GETNAME (GxB_LOR_INT32) ; - GETNAME (GxB_LOR_INT64) ; - GETNAME (GxB_LOR_UINT8) ; - GETNAME (GxB_LOR_UINT16) ; - GETNAME (GxB_LOR_UINT32) ; - GETNAME (GxB_LOR_UINT64) ; - GETNAME (GxB_LOR_FP32) ; - GETNAME (GxB_LOR_FP64) ; - - GETNAME (GrB_LAND) ; - GETNAM2 (GxB_LAND_BOOL, "GrB_LAND") ; - GETNAME (GxB_LAND_INT8) ; - GETNAME (GxB_LAND_INT16) ; - GETNAME (GxB_LAND_INT32) ; - GETNAME (GxB_LAND_INT64) ; - GETNAME (GxB_LAND_UINT8) ; - GETNAME (GxB_LAND_UINT16) ; - GETNAME (GxB_LAND_UINT32) ; - GETNAME (GxB_LAND_UINT64) ; - GETNAME (GxB_LAND_FP32) ; - GETNAME (GxB_LAND_FP64) ; - - GETNAME (GrB_LXOR) ; - GETNAM2 (GxB_LXOR_BOOL, "GrB_LXOR") ; - GETNAME (GxB_LXOR_INT8) ; - GETNAME (GxB_LXOR_INT16) ; - GETNAME (GxB_LXOR_INT32) ; - GETNAME (GxB_LXOR_INT64) ; - GETNAME (GxB_LXOR_UINT8) ; - GETNAME (GxB_LXOR_UINT16) ; - GETNAME (GxB_LXOR_UINT32) ; - GETNAME (GxB_LXOR_UINT64) ; - GETNAME (GxB_LXOR_FP32) ; - GETNAME (GxB_LXOR_FP64) ; - - GETNAME (GrB_LXNOR) ; - - GETNAME (GxB_ATAN2_FP32) ; - GETNAME (GxB_ATAN2_FP64) ; - - GETNAME (GxB_HYPOT_FP32) ; - GETNAME (GxB_HYPOT_FP64) ; - - GETNAME (GxB_FMOD_FP32) ; - GETNAME (GxB_FMOD_FP64) ; - - GETNAME (GxB_REMAINDER_FP32) ; - GETNAME (GxB_REMAINDER_FP64) ; - - GETNAME (GxB_LDEXP_FP32) ; - GETNAME (GxB_LDEXP_FP64) ; - - GETNAME (GxB_COPYSIGN_FP32) ; - GETNAME (GxB_COPYSIGN_FP64) ; - - GETNAME (GrB_BOR_INT8) ; - GETNAME (GrB_BOR_INT16) ; - GETNAME (GrB_BOR_INT32) ; - GETNAME (GrB_BOR_INT64) ; - GETNAME (GrB_BOR_UINT8) ; - GETNAME (GrB_BOR_UINT16) ; - GETNAME (GrB_BOR_UINT32) ; - GETNAME (GrB_BOR_UINT64) ; - - GETNAME (GrB_BAND_INT8) ; - GETNAME (GrB_BAND_INT16) ; - GETNAME (GrB_BAND_INT32) ; - GETNAME (GrB_BAND_INT64) ; - GETNAME (GrB_BAND_UINT8) ; - GETNAME (GrB_BAND_UINT16) ; - GETNAME (GrB_BAND_UINT32) ; - GETNAME (GrB_BAND_UINT64) ; - - GETNAME (GrB_BXOR_INT8) ; - GETNAME (GrB_BXOR_INT16) ; - GETNAME (GrB_BXOR_INT32) ; - GETNAME (GrB_BXOR_INT64) ; - GETNAME (GrB_BXOR_UINT8) ; - GETNAME (GrB_BXOR_UINT16) ; - GETNAME (GrB_BXOR_UINT32) ; - GETNAME (GrB_BXOR_UINT64) ; - - GETNAME (GrB_BXNOR_INT8) ; - GETNAME (GrB_BXNOR_INT16) ; - GETNAME (GrB_BXNOR_INT32) ; - GETNAME (GrB_BXNOR_INT64) ; - GETNAME (GrB_BXNOR_UINT8) ; - GETNAME (GrB_BXNOR_UINT16) ; - GETNAME (GrB_BXNOR_UINT32) ; - GETNAME (GrB_BXNOR_UINT64) ; - - GETNAME (GxB_BGET_INT8) ; - GETNAME (GxB_BGET_INT16) ; - GETNAME (GxB_BGET_INT32) ; - GETNAME (GxB_BGET_INT64) ; - GETNAME (GxB_BGET_UINT8) ; - GETNAME (GxB_BGET_UINT16) ; - GETNAME (GxB_BGET_UINT32) ; - GETNAME (GxB_BGET_UINT64) ; - - GETNAME (GxB_BSET_INT8) ; - GETNAME (GxB_BSET_INT16) ; - GETNAME (GxB_BSET_INT32) ; - GETNAME (GxB_BSET_INT64) ; - GETNAME (GxB_BSET_UINT8) ; - GETNAME (GxB_BSET_UINT16) ; - GETNAME (GxB_BSET_UINT32) ; - GETNAME (GxB_BSET_UINT64) ; - - GETNAME (GxB_BCLR_INT8) ; - GETNAME (GxB_BCLR_INT16) ; - GETNAME (GxB_BCLR_INT32) ; - GETNAME (GxB_BCLR_INT64) ; - GETNAME (GxB_BCLR_UINT8) ; - GETNAME (GxB_BCLR_UINT16) ; - GETNAME (GxB_BCLR_UINT32) ; - GETNAME (GxB_BCLR_UINT64) ; - - GETNAME (GxB_BSHIFT_INT8) ; - GETNAME (GxB_BSHIFT_INT16) ; - GETNAME (GxB_BSHIFT_INT32) ; - GETNAME (GxB_BSHIFT_INT64) ; - GETNAME (GxB_BSHIFT_UINT8) ; - GETNAME (GxB_BSHIFT_UINT16) ; - GETNAME (GxB_BSHIFT_UINT32) ; - GETNAME (GxB_BSHIFT_UINT64) ; - - GETNAM2 (GrB_EQ_BOOL, "GrB_LXNOR") ; - GETNAME (GrB_EQ_INT8) ; - GETNAME (GrB_EQ_INT16) ; - GETNAME (GrB_EQ_INT32) ; - GETNAME (GrB_EQ_INT64) ; - GETNAME (GrB_EQ_UINT8) ; - GETNAME (GrB_EQ_UINT16) ; - GETNAME (GrB_EQ_UINT32) ; - GETNAME (GrB_EQ_UINT64) ; - GETNAME (GrB_EQ_FP32) ; - GETNAME (GrB_EQ_FP64) ; - GETNAME (GxB_EQ_FC32) ; - GETNAME (GxB_EQ_FC64) ; - - GETNAME (GrB_NE_BOOL) ; - GETNAME (GrB_NE_INT8) ; - GETNAME (GrB_NE_INT16) ; - GETNAME (GrB_NE_INT32) ; - GETNAME (GrB_NE_INT64) ; - GETNAME (GrB_NE_UINT8) ; - GETNAME (GrB_NE_UINT16) ; - GETNAME (GrB_NE_UINT32) ; - GETNAME (GrB_NE_UINT64) ; - GETNAME (GrB_NE_FP32) ; - GETNAME (GrB_NE_FP64) ; - GETNAME (GxB_NE_FC32) ; - GETNAME (GxB_NE_FC64) ; - - GETNAME (GrB_GT_BOOL) ; - GETNAME (GrB_GT_INT8) ; - GETNAME (GrB_GT_INT16) ; - GETNAME (GrB_GT_INT32) ; - GETNAME (GrB_GT_INT64) ; - GETNAME (GrB_GT_UINT8) ; - GETNAME (GrB_GT_UINT16) ; - GETNAME (GrB_GT_UINT32) ; - GETNAME (GrB_GT_UINT64) ; - GETNAME (GrB_GT_FP32) ; - GETNAME (GrB_GT_FP64) ; - - GETNAME (GrB_LT_BOOL) ; - GETNAME (GrB_LT_INT8) ; - GETNAME (GrB_LT_INT16) ; - GETNAME (GrB_LT_INT32) ; - GETNAME (GrB_LT_INT64) ; - GETNAME (GrB_LT_UINT8) ; - GETNAME (GrB_LT_UINT16) ; - GETNAME (GrB_LT_UINT32) ; - GETNAME (GrB_LT_UINT64) ; - GETNAME (GrB_LT_FP32) ; - GETNAME (GrB_LT_FP64) ; - - GETNAME (GrB_GE_BOOL) ; - GETNAME (GrB_GE_INT8) ; - GETNAME (GrB_GE_INT16) ; - GETNAME (GrB_GE_INT32) ; - GETNAME (GrB_GE_INT64) ; - GETNAME (GrB_GE_UINT8) ; - GETNAME (GrB_GE_UINT16) ; - GETNAME (GrB_GE_UINT32) ; - GETNAME (GrB_GE_UINT64) ; - GETNAME (GrB_GE_FP32) ; - GETNAME (GrB_GE_FP64) ; - - GETNAME (GrB_LE_BOOL) ; - GETNAME (GrB_LE_INT8) ; - GETNAME (GrB_LE_INT16) ; - GETNAME (GrB_LE_INT32) ; - GETNAME (GrB_LE_INT64) ; - GETNAME (GrB_LE_UINT8) ; - GETNAME (GrB_LE_UINT16) ; - GETNAME (GrB_LE_UINT32) ; - GETNAME (GrB_LE_UINT64) ; - GETNAME (GrB_LE_FP32) ; - GETNAME (GrB_LE_FP64) ; - - GETNAME (GxB_CMPLX_FP32) ; - GETNAME (GxB_CMPLX_FP64) ; - - GETNAME (GxB_FIRSTI_INT32) ; GETNAME (GxB_FIRSTI_INT64) ; - GETNAME (GxB_FIRSTI1_INT32) ; GETNAME (GxB_FIRSTI1_INT64) ; - GETNAME (GxB_FIRSTJ_INT32) ; GETNAME (GxB_FIRSTJ_INT64) ; - GETNAME (GxB_FIRSTJ1_INT32) ; GETNAME (GxB_FIRSTJ1_INT64) ; - GETNAME (GxB_SECONDI_INT32) ; GETNAME (GxB_SECONDI_INT64) ; - GETNAME (GxB_SECONDI1_INT32) ; GETNAME (GxB_SECONDI1_INT64) ; - GETNAME (GxB_SECONDJ_INT32) ; GETNAME (GxB_SECONDJ_INT64) ; - GETNAME (GxB_SECONDJ1_INT32) ; GETNAME (GxB_SECONDJ1_INT64) ; - - GETNAME (GxB_IGNORE_DUP) ; - - //-------------------------------------------------------------------------- - // other get/set methods for GrB_BinaryOp - //-------------------------------------------------------------------------- - - OK (GrB_BinaryOp_get_INT32_(GrB_MAX_FP32, &code, GrB_INPUT1TYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_BinaryOp_get_SIZE_(GrB_MAX_FP32, &size, GrB_INPUT1TYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - - OK (GrB_BinaryOp_get_String_(GrB_MAX_FP32, name, GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_BinaryOp_get_SIZE_(GrB_MAX_INT32, &size, GrB_INPUT2TYPE_STRING)) ; - CHECK (size == strlen ("GrB_INT32") + 1) ; - - OK (GrB_BinaryOp_get_String_(GrB_MAX_INT32, name, GrB_INPUT2TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_INT32")) ; - - OK (GrB_BinaryOp_get_INT32_(GrB_MAX_FP64, &code, GrB_OUTPUTTYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_BinaryOp_get_SIZE_(GrB_MAX_FP64, &size, GrB_OUTPUTTYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP64") + 1) ; - - OK (GrB_BinaryOp_get_String_(GrB_MAX_FP64, name, GrB_OUTPUTTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP64")) ; - - OK (GrB_BinaryOp_get_Scalar_(GrB_MAX_FP32, s_int32, GrB_INPUT1TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_BinaryOp_get_Scalar_(GrB_LAND, s_int32, GrB_OUTPUTTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - OK (GrB_BinaryOp_get_INT32_(GrB_PLUS_FP64, &code, GrB_INPUT2TYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_BinaryOp_get_Scalar_(GrB_LAND, s_int32, GrB_INPUT2TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_BinaryOp_get_INT32_(GrB_LAND, &code, GrB_NAME)) ; - ERR (GrB_BinaryOp_get_String_(GrB_MAX_INT32, name, 999)) ; - - 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_get_SIZE_(binop, &size, GrB_NAME)) ; - CHECK (size == 1) ; - OK (GrB_BinaryOp_get_SIZE_(binop, &size, GxB_JIT_C_NAME)) ; - CHECK (size == 1) ; - OK (GrB_BinaryOp_get_SIZE_(binop, &size, GxB_JIT_C_DEFINITION)) ; - CHECK (size == 1) ; - OK (GrB_BinaryOp_set_String_(binop, "myfunc", GxB_JIT_C_NAME)) ; - OK (GrB_BinaryOp_get_String_(binop, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "myfunc")) ; - CHECK (binop->hash == UINT64_MAX) ; - METHOD (GrB_BinaryOp_set_String (binop, MYFUNC_DEFN, GxB_JIT_C_DEFINITION)) ; - OK (GrB_BinaryOp_get_String_(binop, defn, GxB_JIT_C_DEFINITION)) ; - CHECK (MATCH (defn, MYFUNC_DEFN)) ; - CHECK (binop->hash != UINT64_MAX) ; - OK (GxB_print (binop, 3)) ; - - OK (GrB_BinaryOp_set_String_(binop, "user name for myfunc", GrB_NAME)) ; - OK (GrB_BinaryOp_get_String_(binop, name, GrB_NAME)) ; - CHECK (MATCH (name, "user name for myfunc")) ; - expected = GrB_ALREADY_SET ; - ERR (GrB_BinaryOp_set_String_(binop, "another user name", GrB_NAME)) ; - printf (" test GrB_ALREADY_SET: ok\n") ; - - OK (GrB_BinaryOp_get_INT32_(binop, &code, GrB_INPUT2TYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_BinaryOp_set_Scalar_(binop, s_int32, 0)) ; - ERR (GrB_BinaryOp_set_INT32_(binop, 0, 0)) ; - ERR (GrB_BinaryOp_set_VOID_(binop, nothing, 0, 0)) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&binop) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test28: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test29.c b/Test/GB_mex_test29.c deleted file mode 100644 index 54073a6c6b..0000000000 --- a/Test/GB_mex_test29.c +++ /dev/null @@ -1,462 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test29: test GrB_get and GrB_set (global) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test29" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -int myprintf (const char *restrict format, ...) ; - -int myprintf (const char *restrict format, ...) -{ - printf ("[[myprintf:") ; - va_list ap ; - va_start (ap, format) ; - vprintf (format, ap) ; - va_end (ap) ; - printf ("]]") ; - return (1) ; -} - -int myflush (void) ; - -int myflush (void) -{ - printf ("myflush\n") ; - fflush (stdout) ; - return (0) ; -} - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Matrix A = NULL ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char defn [2048], defn2 [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // global set/get - //-------------------------------------------------------------------------- - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_LIBRARY_VER_MAJOR)) ; - CHECK (i == GxB_IMPLEMENTATION_MAJOR) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_LIBRARY_VER_MINOR)) ; - CHECK (i == GxB_IMPLEMENTATION_MINOR) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_LIBRARY_VER_PATCH)) ; - CHECK (i == GxB_IMPLEMENTATION_SUB) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_API_VER_MAJOR)) ; - CHECK (i == GxB_SPEC_MAJOR) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_API_VER_MINOR)) ; - CHECK (i == GxB_SPEC_MINOR) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_API_VER_PATCH)) ; - CHECK (i == GxB_SPEC_SUB) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_BLOCKING_MODE)) ; - CHECK (i == GrB_NONBLOCKING) ; - - i = -1 ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_MODE)) ; - CHECK (i == GrB_NONBLOCKING) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, GrB_ROWMAJOR, - GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, - GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_ROWMAJOR) ; - - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, GrB_COLMAJOR, - GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, - GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, GrB_BOTH, - GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, - GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_ROWMAJOR) ; - - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, GrB_COLMAJOR, - GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, - GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, GrB_UNKNOWN, - GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, - GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_ROWMAJOR) ; - - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, GrB_COLMAJOR, - GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, - GrB_STORAGE_ORIENTATION_HINT)) ; - CHECK (i == GrB_COLMAJOR) ; - - expected = GrB_INVALID_VALUE ; - 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)) ; - CHECK (i == GxB_BY_COL) ; - - int32_t nth ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &nth, 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)) ; - CHECK (i == 2) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, nth, GxB_GLOBAL_NTHREADS)) ; - - int32_t gpu ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &gpu, 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)) ; - CHECK (i == -1) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, gpu, GxB_GLOBAL_GPU_ID)) ; - - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_BURBLE)) ; - printf ("burble: %d\n", i) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, 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_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)) ; - CHECK (i == 1) ; - - int32_t onebase ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &onebase, GxB_PRINT_1BASED)) ; - printf ("1based: %d\n", i) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, 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)) ; - CHECK (i == onebase) ; - - int32_t control ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &control, 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)) ; - CHECK (c == b) ; - } - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, control, GxB_JIT_C_CONTROL)) ; - - int32_t use_cmake ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &use_cmake, 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)) ; - CHECK (i == 1) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, use_cmake, GxB_JIT_USE_CMAKE)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, GrB_BLOCKING_MODE)) ; - expected = GrB_EMPTY_OBJECT ; - ERR (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_int32, - GrB_STORAGE_ORIENTATION_HINT)) ; - expected = GrB_INVALID_VALUE ; - 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_Scalar_setElement_INT32 (s_int32, 2)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_int32, 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)) ; - CHECK (i == control) ; - - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, 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_Scalar_clear (s_fp64)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, 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_Scalar_clear (s_fp64)) ; - - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, 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_Scalar_clear (s_fp64)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, GxB_CHUNK)) ; - OK (GrB_Scalar_extractElement (&dvalue, s_fp64)) ; - CHECK (dvalue == 8901) ; - - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, GrB_ELTYPE_CODE)) ; - ERR (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_ELTYPE_CODE)) ; - ERR (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GrB_ELTYPE_CODE)) ; - ERR (GrB_Global_get_String_ (GrB_GLOBAL, name, GrB_ELTYPE_CODE)) ; - ERR (GrB_Global_get_VOID_ (GrB_GLOBAL, nothing, GrB_ELTYPE_CODE)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GrB_NAME)) ; - printf ("library name: [%s]\n", name) ; - CHECK (MATCH (name, GxB_IMPLEMENTATION_NAME)) ; - - name [0] = 0 ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, 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)) ; - printf ("library date: [%s]\n", name) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - printf ("library license: [%s]\n", defn) ; - CHECK (MATCH (defn, GxB_IMPLEMENTATION_LICENSE)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_COMPILE_DATE)) ; - printf ("library compile date: [%s]\n", name) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_COMPILE_TIME)) ; - printf ("library compile time: [%s]\n", name) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_URL)) ; - printf ("library url: [%s]\n", name) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_API_DATE)) ; - printf ("api date: [%s]\n", name) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_API_ABOUT)) ; - printf ("api about: [%s]\n", defn) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_API_URL)) ; - printf ("api url: [%s]\n", name) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_COMPILER_NAME)) ; - printf ("compiler: [%s]\n", defn) ; - - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - CHECK (MATCH (defn2, defn)) ; - - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, 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)) ; - 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)) ; - 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)) ; - 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)) ; - 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)) ; - 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, - size)) ; - memset (sw, 0, size) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, 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, - 0)) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, 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, - 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, - sizeof (GB_printf_function_t))) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) myflush, GxB_FLUSH, - sizeof (GB_flush_function_t))) ; - OK (GxB_print (s_int32, 3)) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) mexPrintf, GxB_PRINTF, - sizeof (GB_printf_function_t))) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, 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)) ; - CHECK (size == sizeof (int32_t) * 3) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) cv, - GxB_COMPILER_VERSION)) ; - - for (int k = 0 ; k < 3 ; k++) - { - printf ("compiler version [%d] = %d\n", k, cv [k]) ; - } - - void *f = NULL ; - OK (GrB_Global_get_VOID_(GrB_GLOBAL, (void *) &f, GxB_MALLOC_FUNCTION)) ; - CHECK (f == mxMalloc) ; - OK (GrB_Global_get_VOID_(GrB_GLOBAL, (void *) &f, GxB_REALLOC_FUNCTION)) ; - CHECK (f == mxRealloc) ; - OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) &f, GxB_CALLOC_FUNCTION)) ; - CHECK (f == mxCalloc) ; - OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) &f, GxB_FREE_FUNCTION)) ; - CHECK (f == mxFree) ; - - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_MALLOC_FUNCTION)) ; - CHECK (size == sizeof (void *)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_REALLOC_FUNCTION)) ; - CHECK (size == sizeof (void *)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_CALLOC_FUNCTION)) ; - CHECK (size == sizeof (void *)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_FREE_FUNCTION)) ; - CHECK (size == sizeof (void *)) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&A) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test29: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test30.c b/Test/GB_mex_test30.c deleted file mode 100644 index 92377abd66..0000000000 --- a/Test/GB_mex_test30.c +++ /dev/null @@ -1,286 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test30: test GrB_get and GrB_set (index unary ops) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test30" - -#define FREE_ALL ; -#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_INPUT1TYPE_STRING) ; \ - info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_INPUT1TYPE_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_INPUT2TYPE_STRING) ; \ - info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_INPUT2TYPE_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_OUTPUTTYPE_STRING) ; \ - info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_OUTPUTTYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz3 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz3 == 1) ; } \ -} - -#define GETNAME(op) \ -{ \ - GETOP (op, #op) ; \ -/* OK (GxB_IndexUnaryOp_fprint (op, "idxop", 3, NULL)) ; */\ -} - -void myfunc (bool *z, const float *x, GrB_Index i, GrB_Index j, - const float *y) ; -void myfunc (bool *z, const float *x, GrB_Index i, GrB_Index j, - const float *y) -{ - (*z) = (*x) > 2 ; -} - -#define MYFUNC_DEFN \ -"void myfunc (bool *z, const float *x, GrB_Index i, GrB_Index j, \n" \ -" const float *y) \n" \ -"{ \n" \ -" (*z) = (*x) > 2 ; \n" \ -"}" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_IndexUnaryOp op = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char cname [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GrB_IndexUnaryOp get name - //-------------------------------------------------------------------------- - - GETNAME (GrB_ROWINDEX_INT32) ; - GETNAME (GrB_ROWINDEX_INT64) ; - GETNAME (GrB_COLINDEX_INT32) ; - GETNAME (GrB_COLINDEX_INT64) ; - GETNAME (GrB_DIAGINDEX_INT32) ; - GETNAME (GrB_DIAGINDEX_INT64) ; - - GETNAME (GxB_FLIPDIAGINDEX_INT32) ; - GETNAME (GxB_FLIPDIAGINDEX_INT64) ; - - GETNAME (GrB_TRIL) ; - GETNAME (GrB_TRIU) ; - GETNAME (GrB_DIAG) ; - GETNAME (GrB_OFFDIAG) ; - - GETNAME (GrB_COLLE) ; - GETNAME (GrB_COLGT) ; - GETNAME (GrB_ROWLE) ; - GETNAME (GrB_ROWGT) ; - - GETNAME (GrB_VALUEEQ_BOOL) ; - GETNAME (GrB_VALUEEQ_INT8) ; - GETNAME (GrB_VALUEEQ_INT16) ; - GETNAME (GrB_VALUEEQ_INT32) ; - GETNAME (GrB_VALUEEQ_INT64) ; - GETNAME (GrB_VALUEEQ_UINT8) ; - GETNAME (GrB_VALUEEQ_UINT16) ; - GETNAME (GrB_VALUEEQ_UINT32) ; - GETNAME (GrB_VALUEEQ_UINT64) ; - GETNAME (GrB_VALUEEQ_FP32) ; - GETNAME (GrB_VALUEEQ_FP64) ; - GETNAME (GxB_VALUEEQ_FC32) ; - GETNAME (GxB_VALUEEQ_FC64) ; - - GETNAME (GrB_VALUENE_BOOL) ; - GETNAME (GrB_VALUENE_INT8) ; - GETNAME (GrB_VALUENE_INT16) ; - GETNAME (GrB_VALUENE_INT32) ; - GETNAME (GrB_VALUENE_INT64) ; - GETNAME (GrB_VALUENE_UINT8) ; - GETNAME (GrB_VALUENE_UINT16) ; - GETNAME (GrB_VALUENE_UINT32) ; - GETNAME (GrB_VALUENE_UINT64) ; - GETNAME (GrB_VALUENE_FP32) ; - GETNAME (GrB_VALUENE_FP64) ; - GETNAME (GxB_VALUENE_FC32) ; - GETNAME (GxB_VALUENE_FC64) ; - - GETNAME (GrB_VALUELT_BOOL) ; - GETNAME (GrB_VALUELT_INT8) ; - GETNAME (GrB_VALUELT_INT16) ; - GETNAME (GrB_VALUELT_INT32) ; - GETNAME (GrB_VALUELT_INT64) ; - GETNAME (GrB_VALUELT_UINT8) ; - GETNAME (GrB_VALUELT_UINT16) ; - GETNAME (GrB_VALUELT_UINT32) ; - GETNAME (GrB_VALUELT_UINT64) ; - GETNAME (GrB_VALUELT_FP32) ; - GETNAME (GrB_VALUELT_FP64) ; - - GETNAME (GrB_VALUELE_BOOL) ; - GETNAME (GrB_VALUELE_INT8) ; - GETNAME (GrB_VALUELE_INT16) ; - GETNAME (GrB_VALUELE_INT32) ; - GETNAME (GrB_VALUELE_INT64) ; - GETNAME (GrB_VALUELE_UINT8) ; - GETNAME (GrB_VALUELE_UINT16) ; - GETNAME (GrB_VALUELE_UINT32) ; - GETNAME (GrB_VALUELE_UINT64) ; - GETNAME (GrB_VALUELE_FP32) ; - GETNAME (GrB_VALUELE_FP64) ; - - GETNAME (GrB_VALUEGT_BOOL) ; - GETNAME (GrB_VALUEGT_INT8) ; - GETNAME (GrB_VALUEGT_INT16) ; - GETNAME (GrB_VALUEGT_INT32) ; - GETNAME (GrB_VALUEGT_INT64) ; - GETNAME (GrB_VALUEGT_UINT8) ; - GETNAME (GrB_VALUEGT_UINT16) ; - GETNAME (GrB_VALUEGT_UINT32) ; - GETNAME (GrB_VALUEGT_UINT64) ; - GETNAME (GrB_VALUEGT_FP32) ; - GETNAME (GrB_VALUEGT_FP64) ; - - GETNAME (GrB_VALUEGE_BOOL) ; - GETNAME (GrB_VALUEGE_INT8) ; - GETNAME (GrB_VALUEGE_INT16) ; - GETNAME (GrB_VALUEGE_INT32) ; - GETNAME (GrB_VALUEGE_INT64) ; - GETNAME (GrB_VALUEGE_UINT8) ; - GETNAME (GrB_VALUEGE_UINT16) ; - GETNAME (GrB_VALUEGE_UINT32) ; - GETNAME (GrB_VALUEGE_UINT64) ; - GETNAME (GrB_VALUEGE_FP32) ; - GETNAME (GrB_VALUEGE_FP64) ; - - GETNAME (GxB_NONZOMBIE) ; - - //-------------------------------------------------------------------------- - // other get/set methods for GrB_IndexUnaryOp - //-------------------------------------------------------------------------- - - OK (GrB_IndexUnaryOp_get_INT32_(GrB_VALUEGE_FP32, &code, GrB_INPUT1TYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_IndexUnaryOp_get_String_(GrB_VALUEGE_FP32, name, GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_IndexUnaryOp_get_INT32_(GrB_VALUEGE_FP64, &code, GrB_OUTPUTTYPE_CODE)) ; - CHECK (code == GrB_BOOL_CODE) ; - - OK (GrB_IndexUnaryOp_get_String_(GrB_VALUEGE_FP64, name, GrB_OUTPUTTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_BOOL")) ; - - OK (GrB_IndexUnaryOp_get_Scalar_(GrB_VALUEGE_FP32, s_int32, GrB_INPUT1TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_IndexUnaryOp_get_Scalar_(GrB_VALUEGE_FP32, s_int32, GrB_OUTPUTTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - expected = GrB_NO_VALUE ; - ERR (GrB_IndexUnaryOp_get_INT32_(GrB_TRIL, &code, GrB_INPUT1TYPE_CODE)) ; - ERR (GrB_IndexUnaryOp_get_Scalar_(GrB_TRIL, s_int32, GrB_INPUT1TYPE_CODE)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_IndexUnaryOp_get_INT32_(GrB_TRIL, &code, GrB_NAME)) ; - - 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_get_SIZE_(op, &size, GrB_NAME)) ; - CHECK (size == 1) ; - OK (GrB_IndexUnaryOp_get_SIZE_(op, &size, GxB_JIT_C_NAME)) ; - printf ("size %lu\n", size) ; - CHECK (size == 1) ; - OK (GrB_IndexUnaryOp_get_SIZE_(op, &size, GxB_JIT_C_DEFINITION)) ; - CHECK (size == 1) ; - - expected = GrB_INVALID_VALUE ; - OK (GrB_IndexUnaryOp_set_String_(op, "myfunc", GxB_JIT_C_NAME)) ; - OK (GrB_IndexUnaryOp_get_String_(op, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "myfunc")) ; - CHECK (op->hash == UINT64_MAX) ; - METHOD (GrB_IndexUnaryOp_set_String (op, MYFUNC_DEFN, GxB_JIT_C_DEFINITION)) ; - OK (GrB_IndexUnaryOp_get_String_(op, defn, GxB_JIT_C_DEFINITION)) ; - CHECK (MATCH (defn, MYFUNC_DEFN)) ; - CHECK (op->hash != UINT64_MAX) ; - OK (GxB_print (op, 3)) ; - - OK (GrB_IndexUnaryOp_set_String_(op, "user name for myfunc", GrB_NAME)) ; - OK (GrB_IndexUnaryOp_get_String_(op, name, GrB_NAME)) ; - CHECK (MATCH (name, "user name for myfunc")) ; - expected = GrB_ALREADY_SET ; - ERR (GrB_IndexUnaryOp_set_String_(op, "another user name", GrB_NAME)) ; - printf (" test GrB_ALREADY_SET: ok\n") ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_IndexUnaryOp_set_String_(op, "another_name", 999)) ; - ERR (GrB_IndexUnaryOp_get_SIZE(op, &size, 999)) ; - - expected = GrB_ALREADY_SET ; - ERR (GrB_IndexUnaryOp_set_String_(op, "another_name", GxB_JIT_C_NAME)) ; - ERR (GrB_IndexUnaryOp_set_String_(op, "another_defn", GxB_JIT_C_DEFINITION)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_IndexUnaryOp_set_String_(GrB_LNOT, "newname", GxB_JIT_C_NAME)) ; - ERR (GrB_IndexUnaryOp_set_Scalar_(op, s_int32, 0)) ; - ERR (GrB_IndexUnaryOp_set_INT32_(op, 0, 0)) ; - ERR (GrB_IndexUnaryOp_set_VOID_(op, nothing, 0, 0)) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&op) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test30: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test31.c b/Test/GB_mex_test31.c deleted file mode 100644 index 1892e7d837..0000000000 --- a/Test/GB_mex_test31.c +++ /dev/null @@ -1,381 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test31: test GrB_get and GrB_set (monoids) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test31" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -#define GETOP(op,opname) \ -{ \ - size_t siz1, siz2, siz3 ; \ - OK (GrB_Monoid_get_String (op, name, GrB_NAME)) ; \ - CHECK (MATCH (name, opname)) ; \ - OK (GrB_Monoid_get_SIZE (op, &size, GrB_NAME)) ; \ - CHECK (size == strlen (name) + 1) ; \ - GrB_Info info2, info3 ; \ - info2 = GrB_Monoid_get_SIZE (op, &siz1, GrB_INPUT1TYPE_STRING) ; \ - info3 = GrB_Monoid_get_String (op, name, GrB_INPUT1TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz1 == strlen (name) + 1) ; \ - CHECK (info2 == GrB_SUCCESS) ; \ - info2 = GrB_Monoid_get_SIZE (op, &siz2, GrB_INPUT2TYPE_STRING) ; \ - info3 = GrB_Monoid_get_String (op, name, GrB_INPUT2TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz2 == strlen (name) + 1) ; \ - CHECK (info2 == GrB_SUCCESS) ; \ - info2 = GrB_Monoid_get_SIZE (op, &siz3, GrB_OUTPUTTYPE_STRING) ; \ - info3 = GrB_Monoid_get_String (op, name, GrB_OUTPUTTYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz3 == strlen (name) + 1) ; \ - CHECK (info2 == GrB_SUCCESS) ; \ -} - -#define GETNAME(op) \ -{ \ - GETOP (op, #op) ; \ -/* OK (GxB_Monoid_fprint (op, "binop", 3, NULL)) ; */ \ -} - -#define GETNAM2(op,alias) \ -{ \ - GETOP (op,alias) ; \ -/* OK (GxB_Monoid_fprint (op, "binop", 3, NULL)) ; */ \ -} - -void myfunc (float *z, const float *x, const float *y) ; -void myfunc (float *z, const float *x, const float *y) { (*z) = (*x)+(*y) ; } -#define MYFUNC_DEFN \ -"void myfunc (float *z, const float *x, const float *y) { (*z) = (*x)+(*y) ; }" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_BinaryOp binop = NULL, op = NULL ; - GrB_Monoid monoid = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - GrB_Index nvals = 999 ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GrB_Monoid get name - //-------------------------------------------------------------------------- - - GETNAM2 (GxB_MIN_INT8_MONOID, "GrB_MIN_MONOID_INT8") ; - GETNAM2 (GxB_MIN_INT16_MONOID, "GrB_MIN_MONOID_INT16") ; - GETNAM2 (GxB_MIN_INT32_MONOID, "GrB_MIN_MONOID_INT32") ; - GETNAM2 (GxB_MIN_INT64_MONOID, "GrB_MIN_MONOID_INT64") ; - GETNAM2 (GxB_MIN_UINT8_MONOID, "GrB_MIN_MONOID_UINT8") ; - GETNAM2 (GxB_MIN_UINT16_MONOID, "GrB_MIN_MONOID_UINT16") ; - GETNAM2 (GxB_MIN_UINT32_MONOID, "GrB_MIN_MONOID_UINT32") ; - GETNAM2 (GxB_MIN_UINT64_MONOID, "GrB_MIN_MONOID_UINT64") ; - GETNAM2 (GxB_MIN_FP32_MONOID, "GrB_MIN_MONOID_FP32") ; - GETNAM2 (GxB_MIN_FP64_MONOID, "GrB_MIN_MONOID_FP64") ; - - GETNAME (GrB_MIN_MONOID_INT8) ; - GETNAME (GrB_MIN_MONOID_INT16) ; - GETNAME (GrB_MIN_MONOID_INT32) ; - GETNAME (GrB_MIN_MONOID_INT64) ; - GETNAME (GrB_MIN_MONOID_UINT8) ; - GETNAME (GrB_MIN_MONOID_UINT16) ; - GETNAME (GrB_MIN_MONOID_UINT32) ; - GETNAME (GrB_MIN_MONOID_UINT64) ; - GETNAME (GrB_MIN_MONOID_FP32) ; - GETNAME (GrB_MIN_MONOID_FP64) ; - - GETNAM2 (GxB_MAX_INT8_MONOID, "GrB_MAX_MONOID_INT8") ; - GETNAM2 (GxB_MAX_INT16_MONOID, "GrB_MAX_MONOID_INT16") ; - GETNAM2 (GxB_MAX_INT32_MONOID, "GrB_MAX_MONOID_INT32") ; - GETNAM2 (GxB_MAX_INT64_MONOID, "GrB_MAX_MONOID_INT64") ; - GETNAM2 (GxB_MAX_UINT8_MONOID, "GrB_MAX_MONOID_UINT8") ; - GETNAM2 (GxB_MAX_UINT16_MONOID, "GrB_MAX_MONOID_UINT16") ; - GETNAM2 (GxB_MAX_UINT32_MONOID, "GrB_MAX_MONOID_UINT32") ; - GETNAM2 (GxB_MAX_UINT64_MONOID, "GrB_MAX_MONOID_UINT64") ; - GETNAM2 (GxB_MAX_FP32_MONOID, "GrB_MAX_MONOID_FP32") ; - GETNAM2 (GxB_MAX_FP64_MONOID, "GrB_MAX_MONOID_FP64") ; - - GETNAME (GrB_MAX_MONOID_INT8) ; - GETNAME (GrB_MAX_MONOID_INT16) ; - GETNAME (GrB_MAX_MONOID_INT32) ; - GETNAME (GrB_MAX_MONOID_INT64) ; - GETNAME (GrB_MAX_MONOID_UINT8) ; - GETNAME (GrB_MAX_MONOID_UINT16) ; - GETNAME (GrB_MAX_MONOID_UINT32) ; - GETNAME (GrB_MAX_MONOID_UINT64) ; - GETNAME (GrB_MAX_MONOID_FP32) ; - GETNAME (GrB_MAX_MONOID_FP64) ; - - GETNAM2 (GxB_PLUS_INT8_MONOID, "GrB_PLUS_MONOID_INT8") ; - GETNAM2 (GxB_PLUS_INT16_MONOID, "GrB_PLUS_MONOID_INT16") ; - GETNAM2 (GxB_PLUS_INT32_MONOID, "GrB_PLUS_MONOID_INT32") ; - GETNAM2 (GxB_PLUS_INT64_MONOID, "GrB_PLUS_MONOID_INT64") ; - GETNAM2 (GxB_PLUS_UINT8_MONOID, "GrB_PLUS_MONOID_UINT8") ; - GETNAM2 (GxB_PLUS_UINT16_MONOID, "GrB_PLUS_MONOID_UINT16") ; - GETNAM2 (GxB_PLUS_UINT32_MONOID, "GrB_PLUS_MONOID_UINT32") ; - GETNAM2 (GxB_PLUS_UINT64_MONOID, "GrB_PLUS_MONOID_UINT64") ; - GETNAM2 (GxB_PLUS_FP32_MONOID, "GrB_PLUS_MONOID_FP32") ; - GETNAM2 (GxB_PLUS_FP64_MONOID, "GrB_PLUS_MONOID_FP64") ; - GETNAME (GxB_PLUS_FC32_MONOID) ; - GETNAME (GxB_PLUS_FC64_MONOID) ; - - GETNAME (GrB_PLUS_MONOID_INT8) ; - GETNAME (GrB_PLUS_MONOID_INT16) ; - GETNAME (GrB_PLUS_MONOID_INT32) ; - GETNAME (GrB_PLUS_MONOID_INT64) ; - GETNAME (GrB_PLUS_MONOID_UINT8) ; - GETNAME (GrB_PLUS_MONOID_UINT16) ; - GETNAME (GrB_PLUS_MONOID_UINT32) ; - GETNAME (GrB_PLUS_MONOID_UINT64) ; - GETNAME (GrB_PLUS_MONOID_FP32) ; - GETNAME (GrB_PLUS_MONOID_FP64) ; - - GETNAM2 (GxB_TIMES_INT8_MONOID, "GrB_TIMES_MONOID_INT8") ; - GETNAM2 (GxB_TIMES_INT16_MONOID, "GrB_TIMES_MONOID_INT16") ; - GETNAM2 (GxB_TIMES_INT32_MONOID, "GrB_TIMES_MONOID_INT32") ; - GETNAM2 (GxB_TIMES_INT64_MONOID, "GrB_TIMES_MONOID_INT64") ; - GETNAM2 (GxB_TIMES_UINT8_MONOID, "GrB_TIMES_MONOID_UINT8") ; - GETNAM2 (GxB_TIMES_UINT16_MONOID, "GrB_TIMES_MONOID_UINT16") ; - GETNAM2 (GxB_TIMES_UINT32_MONOID, "GrB_TIMES_MONOID_UINT32") ; - GETNAM2 (GxB_TIMES_UINT64_MONOID, "GrB_TIMES_MONOID_UINT64") ; - GETNAM2 (GxB_TIMES_FP32_MONOID, "GrB_TIMES_MONOID_FP32") ; - GETNAM2 (GxB_TIMES_FP64_MONOID, "GrB_TIMES_MONOID_FP64") ; - GETNAME (GxB_TIMES_FC32_MONOID) ; - GETNAME (GxB_TIMES_FC64_MONOID) ; - - GETNAME (GrB_TIMES_MONOID_INT8) ; - GETNAME (GrB_TIMES_MONOID_INT16) ; - GETNAME (GrB_TIMES_MONOID_INT32) ; - GETNAME (GrB_TIMES_MONOID_INT64) ; - GETNAME (GrB_TIMES_MONOID_UINT8) ; - GETNAME (GrB_TIMES_MONOID_UINT16) ; - GETNAME (GrB_TIMES_MONOID_UINT32) ; - GETNAME (GrB_TIMES_MONOID_UINT64) ; - GETNAME (GrB_TIMES_MONOID_FP32) ; - GETNAME (GrB_TIMES_MONOID_FP64) ; - - GETNAME (GxB_ANY_BOOL_MONOID) ; - GETNAME (GxB_ANY_INT8_MONOID) ; - GETNAME (GxB_ANY_INT16_MONOID) ; - GETNAME (GxB_ANY_INT32_MONOID) ; - GETNAME (GxB_ANY_INT64_MONOID) ; - GETNAME (GxB_ANY_UINT8_MONOID) ; - GETNAME (GxB_ANY_UINT16_MONOID) ; - GETNAME (GxB_ANY_UINT32_MONOID) ; - GETNAME (GxB_ANY_UINT64_MONOID) ; - GETNAME (GxB_ANY_FP32_MONOID) ; - GETNAME (GxB_ANY_FP64_MONOID) ; - GETNAME (GxB_ANY_FC32_MONOID) ; - GETNAME (GxB_ANY_FC64_MONOID) ; - - GETNAM2 (GxB_LOR_BOOL_MONOID, "GrB_LOR_MONOID_BOOL") ; - GETNAM2 (GxB_LAND_BOOL_MONOID, "GrB_LAND_MONOID_BOOL") ; - GETNAM2 (GxB_LXOR_BOOL_MONOID, "GrB_LXOR_MONOID_BOOL") ; - GETNAM2 (GxB_LXNOR_BOOL_MONOID, "GrB_LXNOR_MONOID_BOOL") ; - GETNAM2 (GxB_EQ_BOOL_MONOID, "GrB_LXNOR_MONOID_BOOL") ; - - GETNAME (GrB_LOR_MONOID_BOOL) ; - GETNAME (GrB_LAND_MONOID_BOOL) ; - GETNAME (GrB_LXOR_MONOID_BOOL) ; - GETNAME (GrB_LXNOR_MONOID_BOOL) ; - - GETNAME (GxB_BOR_UINT8_MONOID) ; - GETNAME (GxB_BOR_UINT16_MONOID) ; - GETNAME (GxB_BOR_UINT32_MONOID) ; - GETNAME (GxB_BOR_UINT64_MONOID) ; - - GETNAME (GxB_BAND_UINT8_MONOID) ; - GETNAME (GxB_BAND_UINT16_MONOID) ; - GETNAME (GxB_BAND_UINT32_MONOID) ; - GETNAME (GxB_BAND_UINT64_MONOID) ; - - GETNAME (GxB_BXOR_UINT8_MONOID) ; - GETNAME (GxB_BXOR_UINT16_MONOID) ; - GETNAME (GxB_BXOR_UINT32_MONOID) ; - GETNAME (GxB_BXOR_UINT64_MONOID) ; - - GETNAME (GxB_BXNOR_UINT8_MONOID) ; - GETNAME (GxB_BXNOR_UINT16_MONOID) ; - GETNAME (GxB_BXNOR_UINT32_MONOID) ; - GETNAME (GxB_BXNOR_UINT64_MONOID) ; - - //-------------------------------------------------------------------------- - // other get/set methods for GrB_Monoid - //-------------------------------------------------------------------------- - - OK (GrB_Monoid_get_INT32_(GrB_MAX_MONOID_FP32, &code, GrB_INPUT1TYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_Monoid_get_String_(GrB_MAX_MONOID_FP32, name, - GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Monoid_get_String_(GrB_MAX_MONOID_INT32, name, - GrB_INPUT2TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_INT32")) ; - - OK (GrB_Monoid_get_INT32_(GrB_MAX_MONOID_FP64, &code, GrB_OUTPUTTYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_Monoid_get_String_(GrB_MAX_MONOID_FP64, name, - GrB_OUTPUTTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP64")) ; - - OK (GrB_Monoid_get_Scalar_(GrB_MAX_MONOID_FP32, s_int32, - GrB_INPUT1TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_Monoid_get_Scalar_(GrB_LAND_MONOID_BOOL, s_int32, - GrB_OUTPUTTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - OK (GrB_Monoid_get_INT32_(GrB_PLUS_MONOID_FP64, &code, - GrB_INPUT2TYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_Monoid_get_Scalar_(GrB_LAND_MONOID_BOOL, s_int32, - GrB_INPUT2TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Monoid_get_INT32_(GrB_LAND_MONOID_BOOL, &code, GrB_NAME)) ; - 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_set_String_(binop, "myfunc", GrB_NAME)) ; - METHOD (GrB_BinaryOp_set_String (binop, MYFUNC_DEFN, GxB_JIT_C_DEFINITION)) ; - - OK (GrB_Monoid_new_FP32 (&monoid, binop, (float) 0.0)) ; - OK (GrB_Monoid_get_SIZE_(monoid, &size, GrB_NAME)) ; - OK (GrB_Monoid_get_String_(monoid, name, GrB_NAME)) ; - printf ("\nuser monoid: [%s]\n", name) ; - CHECK (MATCH (name, "")) ; - CHECK (size == 1) ; - OK (GxB_print (monoid, 3)) ; - - OK (GrB_Monoid_get_String_(monoid, name, GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Monoid_get_SIZE_(monoid, &size, GrB_INPUT1TYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Monoid_get_SIZE_(monoid, &size, GrB_INPUT1TYPE_CODE)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Monoid_set_Scalar_(monoid, s_int32, 0)) ; - ERR (GrB_Monoid_set_INT32_(monoid, 0, 0)) ; - ERR (GrB_Monoid_set_VOID_(monoid, nothing, 0, 0)) ; - - OK (GrB_Monoid_set_String_(monoid, "monoid_stuff", GrB_NAME)) ; - OK (GrB_Monoid_get_String_(monoid, name, GrB_NAME)) ; - printf ("\nuser monoid: [%s]\n", name) ; - CHECK (MATCH (name, "monoid_stuff")) ; - OK (GrB_Monoid_get_SIZE_(monoid, &size, GrB_NAME)) ; - CHECK (size == strlen (name) + 1) ; - - expected = GrB_ALREADY_SET ; - ERR (GrB_Monoid_set_String_(monoid, "another user name", GrB_NAME)) ; - printf (" test GrB_ALREADY_SET: ok\n") ; - - printf ("\nterminal monoid:\n") ; - int32_t id_int32 ; - OK (GxB_print (GrB_MAX_MONOID_INT32, 3)) ; - OK (GrB_Monoid_get_Scalar_ (GrB_MAX_MONOID_INT32, s_int32, - GxB_MONOID_IDENTITY)) ; - OK (GrB_Scalar_nvals (&nvals, s_int32)) ; - CHECK (nvals == 1) ; - OK (GrB_Scalar_extractElement_INT32_(&id_int32, s_int32)) ; - CHECK (id_int32 == INT32_MIN) ; - - int32_t term_int32 ; - OK (GrB_Monoid_get_Scalar_ (GrB_MAX_MONOID_INT32, s_int32, - GxB_MONOID_TERMINAL)) ; - OK (GrB_Scalar_extractElement_INT32_(&term_int32, s_int32)) ; - CHECK (term_int32 == INT32_MAX) ; - - printf ("\nmon-terminal monoid:\n") ; - OK (GxB_print (GrB_PLUS_MONOID_INT32, 3)) ; - OK (GrB_Monoid_get_Scalar_ (GrB_PLUS_MONOID_INT32, s_int32, - GxB_MONOID_TERMINAL)) ; - OK (GrB_Scalar_nvals (&nvals, s_int32)) ; - CHECK (nvals == 0) ; - - OK (GrB_Monoid_get_Scalar_ (GrB_PLUS_MONOID_INT32, s_int32, - GxB_MONOID_IDENTITY)) ; - OK (GrB_Scalar_extractElement_INT32_(&id_int32, s_int32)) ; - CHECK (id_int32 == 0) ; - - expected = GrB_DOMAIN_MISMATCH ; - ERR (GrB_Monoid_get_Scalar_ (GrB_PLUS_MONOID_INT32, s_fp64, - GxB_MONOID_IDENTITY)) ; - ERR (GrB_Monoid_get_Scalar_ (GrB_PLUS_MONOID_INT32, s_fp64, - GxB_MONOID_TERMINAL)) ; - ERR (GrB_Monoid_get_Scalar_ (GrB_MAX_MONOID_INT32, s_fp64, - GxB_MONOID_IDENTITY)) ; - ERR (GrB_Monoid_get_Scalar_ (GrB_MAX_MONOID_INT32, s_fp64, - GxB_MONOID_TERMINAL)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Monoid_get_Scalar_ (GrB_MAX_MONOID_INT32, s_fp64, - GrB_OUTP_FIELD)) ; - ERR (GrB_Monoid_set_String_(GrB_MAX_MONOID_INT32, "newname", GrB_NAME)) ; - - op = NULL ; - OK (GrB_Monoid_get_SIZE_ (monoid, &size, GxB_MONOID_OPERATOR)) ; - CHECK (size == sizeof (GrB_BinaryOp)) ; - OK (GrB_Monoid_get_VOID (monoid, (void *) (&op), GxB_MONOID_OPERATOR)) ; - CHECK (op == binop) ; - OK (GrB_Monoid_get_VOID_ (GrB_PLUS_MONOID_INT32, (void *) &op, - GxB_MONOID_OPERATOR)) ; - CHECK (op == GrB_PLUS_INT32) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&binop) ; - GrB_free (&monoid) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test31: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test32.c b/Test/GB_mex_test32.c deleted file mode 100644 index fd37bae0ad..0000000000 --- a/Test/GB_mex_test32.c +++ /dev/null @@ -1,2271 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test32: test GrB_get and GrB_set (semirings) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test32" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -#define GETOP(op,opname) \ -{ \ - size_t siz1, siz2, siz3 ; \ - OK (GrB_Semiring_get_String (op, name, GrB_NAME)) ; \ - CHECK (MATCH (name, opname)) ; \ - OK (GrB_Semiring_get_SIZE (op, &size, GrB_NAME)) ; \ - CHECK (size == strlen (name) + 1) ; \ - GrB_Info info2, info3 ; \ - info2 = GrB_Semiring_get_SIZE (op, &siz1, GrB_INPUT1TYPE_STRING) ; \ - info3 = GrB_Semiring_get_String (op, name, GrB_INPUT1TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz1 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz1 == 1) ; } \ - info2 = GrB_Semiring_get_SIZE (op, &siz2, GrB_INPUT2TYPE_STRING) ; \ - info3 = GrB_Semiring_get_String (op, name, GrB_INPUT2TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz2 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz1 == 1) ; } \ - info2 = GrB_Semiring_get_SIZE (op, &siz3, GrB_OUTPUTTYPE_STRING) ; \ - info3 = GrB_Semiring_get_String (op, name, GrB_OUTPUTTYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz3 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz1 == 1) ; } \ -} - -#define GETNAME(op) \ -{ \ - GETOP (op, #op) ; \ -/* OK (GxB_Semiring_fprint (sm, "semiring", 3, NULL)) ; */ \ -} - -#define GETNAM2(op,alias) \ -{ \ - GETOP (op,alias) ; \ -/* OK (GxB_Semiring_fprint (sm, "semiring", 3, NULL)) ; */ \ -} - -void mytimes (float *z, const float *x, const float *y) ; -void mytimes (float *z, const float *x, const float *y) { (*z) = (*x)*(*y) ; } -#define MYTIMES_DEFN \ -"void mytimes (float *z, const float *x, const float *y) { (*z) = (*x)*(*y) ; }" - -void myadd (float *z, const float *x, const float *y) ; -void myadd (float *z, const float *x, const float *y) { (*z) = (*x)+(*y) ; } -#define MYADD_DEFN \ -"void myadd (float *z, const float *x, const float *y) { (*z) = (*x)+(*y) ; }" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_BinaryOp times = NULL, add = NULL, op = NULL ; - GrB_Monoid monoid = NULL, mon = NULL ; - GrB_Semiring semiring = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [1024] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - GrB_Index nvals = 999 ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GrB_Semiring get name - //-------------------------------------------------------------------------- - - //-------------------------------------------------------------------------- - // *_FIRST - //-------------------------------------------------------------------------- - - GETNAME (GrB_MIN_FIRST_SEMIRING_INT8) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_INT16) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_INT32) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_INT64) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_UINT8) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_UINT16) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_UINT32) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_UINT64) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_FP32) ; - GETNAME (GrB_MIN_FIRST_SEMIRING_FP64) ; - - GETNAM2 (GxB_MIN_FIRST_INT8, "GrB_MIN_FIRST_SEMIRING_INT8") ; - GETNAM2 (GxB_MIN_FIRST_INT16, "GrB_MIN_FIRST_SEMIRING_INT16") ; - GETNAM2 (GxB_MIN_FIRST_INT32, "GrB_MIN_FIRST_SEMIRING_INT32") ; - GETNAM2 (GxB_MIN_FIRST_INT64, "GrB_MIN_FIRST_SEMIRING_INT64") ; - GETNAM2 (GxB_MIN_FIRST_UINT8, "GrB_MIN_FIRST_SEMIRING_UINT8") ; - GETNAM2 (GxB_MIN_FIRST_UINT16, "GrB_MIN_FIRST_SEMIRING_UINT16") ; - GETNAM2 (GxB_MIN_FIRST_UINT32, "GrB_MIN_FIRST_SEMIRING_UINT32") ; - GETNAM2 (GxB_MIN_FIRST_UINT64, "GrB_MIN_FIRST_SEMIRING_UINT64") ; - GETNAM2 (GxB_MIN_FIRST_FP32, "GrB_MIN_FIRST_SEMIRING_FP32") ; - GETNAM2 (GxB_MIN_FIRST_FP64, "GrB_MIN_FIRST_SEMIRING_FP64") ; - - GETNAME (GrB_MAX_FIRST_SEMIRING_INT8) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_INT16) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_INT32) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_INT64) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_UINT8) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_UINT16) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_UINT32) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_UINT64) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_FP32) ; - GETNAME (GrB_MAX_FIRST_SEMIRING_FP64) ; - - GETNAM2 (GxB_MAX_FIRST_INT8, "GrB_MAX_FIRST_SEMIRING_INT8") ; - GETNAM2 (GxB_MAX_FIRST_INT16, "GrB_MAX_FIRST_SEMIRING_INT16") ; - GETNAM2 (GxB_MAX_FIRST_INT32, "GrB_MAX_FIRST_SEMIRING_INT32") ; - GETNAM2 (GxB_MAX_FIRST_INT64, "GrB_MAX_FIRST_SEMIRING_INT64") ; - GETNAM2 (GxB_MAX_FIRST_UINT8, "GrB_MAX_FIRST_SEMIRING_UINT8") ; - GETNAM2 (GxB_MAX_FIRST_UINT16, "GrB_MAX_FIRST_SEMIRING_UINT16") ; - GETNAM2 (GxB_MAX_FIRST_UINT32, "GrB_MAX_FIRST_SEMIRING_UINT32") ; - GETNAM2 (GxB_MAX_FIRST_UINT64, "GrB_MAX_FIRST_SEMIRING_UINT64") ; - GETNAM2 (GxB_MAX_FIRST_FP32, "GrB_MAX_FIRST_SEMIRING_FP32") ; - GETNAM2 (GxB_MAX_FIRST_FP64, "GrB_MAX_FIRST_SEMIRING_FP64") ; - - GETNAME (GxB_PLUS_FIRST_INT8) ; - GETNAME (GxB_PLUS_FIRST_INT16) ; - GETNAME (GxB_PLUS_FIRST_INT32) ; - GETNAME (GxB_PLUS_FIRST_INT64) ; - GETNAME (GxB_PLUS_FIRST_UINT8) ; - GETNAME (GxB_PLUS_FIRST_UINT16) ; - GETNAME (GxB_PLUS_FIRST_UINT32) ; - GETNAME (GxB_PLUS_FIRST_UINT64) ; - GETNAME (GxB_PLUS_FIRST_FP32) ; - GETNAME (GxB_PLUS_FIRST_FP64) ; - GETNAME (GxB_PLUS_FIRST_FC32) ; - GETNAME (GxB_PLUS_FIRST_FC64) ; - - GETNAME (GxB_TIMES_FIRST_INT8) ; - GETNAME (GxB_TIMES_FIRST_INT16) ; - GETNAME (GxB_TIMES_FIRST_INT32) ; - GETNAME (GxB_TIMES_FIRST_INT64) ; - GETNAME (GxB_TIMES_FIRST_UINT8) ; - GETNAME (GxB_TIMES_FIRST_UINT16) ; - GETNAME (GxB_TIMES_FIRST_UINT32) ; - GETNAME (GxB_TIMES_FIRST_UINT64) ; - GETNAME (GxB_TIMES_FIRST_FP32) ; - GETNAME (GxB_TIMES_FIRST_FP64) ; - GETNAME (GxB_TIMES_FIRST_FC32) ; - GETNAME (GxB_TIMES_FIRST_FC64) ; - - GETNAME (GxB_ANY_FIRST_INT8) ; - GETNAME (GxB_ANY_FIRST_INT16) ; - GETNAME (GxB_ANY_FIRST_INT32) ; - GETNAME (GxB_ANY_FIRST_INT64) ; - GETNAME (GxB_ANY_FIRST_UINT8) ; - GETNAME (GxB_ANY_FIRST_UINT16) ; - GETNAME (GxB_ANY_FIRST_UINT32) ; - GETNAME (GxB_ANY_FIRST_UINT64) ; - GETNAME (GxB_ANY_FIRST_FP32) ; - GETNAME (GxB_ANY_FIRST_FP64) ; - GETNAME (GxB_ANY_FIRST_FC32) ; - GETNAME (GxB_ANY_FIRST_FC64) ; - - GETNAME (GxB_LOR_FIRST_BOOL) ; - GETNAME (GxB_LAND_FIRST_BOOL) ; - GETNAME (GxB_LXOR_FIRST_BOOL) ; - GETNAME (GxB_EQ_FIRST_BOOL) ; - GETNAME (GxB_ANY_FIRST_BOOL) ; - - //-------------------------------------------------------------------------- - // *_SECOND - //-------------------------------------------------------------------------- - - GETNAME (GrB_MIN_SECOND_SEMIRING_INT8) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_INT16) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_INT32) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_INT64) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_UINT8) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_UINT16) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_UINT32) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_UINT64) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_FP32) ; - GETNAME (GrB_MIN_SECOND_SEMIRING_FP64) ; - - GETNAM2 (GxB_MIN_SECOND_INT8, "GrB_MIN_SECOND_SEMIRING_INT8") ; - GETNAM2 (GxB_MIN_SECOND_INT16, "GrB_MIN_SECOND_SEMIRING_INT16") ; - GETNAM2 (GxB_MIN_SECOND_INT32, "GrB_MIN_SECOND_SEMIRING_INT32") ; - GETNAM2 (GxB_MIN_SECOND_INT64, "GrB_MIN_SECOND_SEMIRING_INT64") ; - GETNAM2 (GxB_MIN_SECOND_UINT8, "GrB_MIN_SECOND_SEMIRING_UINT8") ; - GETNAM2 (GxB_MIN_SECOND_UINT16, "GrB_MIN_SECOND_SEMIRING_UINT16") ; - GETNAM2 (GxB_MIN_SECOND_UINT32, "GrB_MIN_SECOND_SEMIRING_UINT32") ; - GETNAM2 (GxB_MIN_SECOND_UINT64, "GrB_MIN_SECOND_SEMIRING_UINT64") ; - GETNAM2 (GxB_MIN_SECOND_FP32, "GrB_MIN_SECOND_SEMIRING_FP32") ; - GETNAM2 (GxB_MIN_SECOND_FP64, "GrB_MIN_SECOND_SEMIRING_FP64") ; - - GETNAME (GrB_MAX_SECOND_SEMIRING_INT8) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_INT16) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_INT32) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_INT64) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_UINT8) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_UINT16) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_UINT32) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_UINT64) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_FP32) ; - GETNAME (GrB_MAX_SECOND_SEMIRING_FP64) ; - - GETNAM2 (GxB_MAX_SECOND_INT8, "GrB_MAX_SECOND_SEMIRING_INT8") ; - GETNAM2 (GxB_MAX_SECOND_INT16, "GrB_MAX_SECOND_SEMIRING_INT16") ; - GETNAM2 (GxB_MAX_SECOND_INT32, "GrB_MAX_SECOND_SEMIRING_INT32") ; - GETNAM2 (GxB_MAX_SECOND_INT64, "GrB_MAX_SECOND_SEMIRING_INT64") ; - GETNAM2 (GxB_MAX_SECOND_UINT8, "GrB_MAX_SECOND_SEMIRING_UINT8") ; - GETNAM2 (GxB_MAX_SECOND_UINT16, "GrB_MAX_SECOND_SEMIRING_UINT16") ; - GETNAM2 (GxB_MAX_SECOND_UINT32, "GrB_MAX_SECOND_SEMIRING_UINT32") ; - GETNAM2 (GxB_MAX_SECOND_UINT64, "GrB_MAX_SECOND_SEMIRING_UINT64") ; - GETNAM2 (GxB_MAX_SECOND_FP32, "GrB_MAX_SECOND_SEMIRING_FP32") ; - GETNAM2 (GxB_MAX_SECOND_FP64, "GrB_MAX_SECOND_SEMIRING_FP64") ; - - GETNAME (GxB_PLUS_SECOND_INT8) ; - GETNAME (GxB_PLUS_SECOND_INT16) ; - GETNAME (GxB_PLUS_SECOND_INT32) ; - GETNAME (GxB_PLUS_SECOND_INT64) ; - GETNAME (GxB_PLUS_SECOND_UINT8) ; - GETNAME (GxB_PLUS_SECOND_UINT16) ; - GETNAME (GxB_PLUS_SECOND_UINT32) ; - GETNAME (GxB_PLUS_SECOND_UINT64) ; - GETNAME (GxB_PLUS_SECOND_FP32) ; - GETNAME (GxB_PLUS_SECOND_FP64) ; - GETNAME (GxB_PLUS_SECOND_FC32) ; - GETNAME (GxB_PLUS_SECOND_FC64) ; - - GETNAME (GxB_TIMES_SECOND_INT8) ; - GETNAME (GxB_TIMES_SECOND_INT16) ; - GETNAME (GxB_TIMES_SECOND_INT32) ; - GETNAME (GxB_TIMES_SECOND_INT64) ; - GETNAME (GxB_TIMES_SECOND_UINT8) ; - GETNAME (GxB_TIMES_SECOND_UINT16) ; - GETNAME (GxB_TIMES_SECOND_UINT32) ; - GETNAME (GxB_TIMES_SECOND_UINT64) ; - GETNAME (GxB_TIMES_SECOND_FP32) ; - GETNAME (GxB_TIMES_SECOND_FP64) ; - GETNAME (GxB_TIMES_SECOND_FC32) ; - GETNAME (GxB_TIMES_SECOND_FC64) ; - - GETNAME (GxB_ANY_SECOND_INT8) ; - GETNAME (GxB_ANY_SECOND_INT16) ; - GETNAME (GxB_ANY_SECOND_INT32) ; - GETNAME (GxB_ANY_SECOND_INT64) ; - GETNAME (GxB_ANY_SECOND_UINT8) ; - GETNAME (GxB_ANY_SECOND_UINT16) ; - GETNAME (GxB_ANY_SECOND_UINT32) ; - GETNAME (GxB_ANY_SECOND_UINT64) ; - GETNAME (GxB_ANY_SECOND_FP32) ; - GETNAME (GxB_ANY_SECOND_FP64) ; - GETNAME (GxB_ANY_SECOND_FC32) ; - GETNAME (GxB_ANY_SECOND_FC64) ; - - GETNAME (GxB_LOR_SECOND_BOOL) ; - GETNAME (GxB_LAND_SECOND_BOOL) ; - GETNAME (GxB_LXOR_SECOND_BOOL) ; - GETNAME (GxB_EQ_SECOND_BOOL) ; - GETNAME (GxB_ANY_SECOND_BOOL) ; - - //-------------------------------------------------------------------------- - // *_PAIR - //-------------------------------------------------------------------------- - - GETNAM2 (GxB_MIN_PAIR_INT8, "GxB_ANY_PAIR_INT8") ; - GETNAM2 (GxB_MIN_PAIR_INT16, "GxB_ANY_PAIR_INT16") ; - GETNAM2 (GxB_MIN_PAIR_INT32, "GxB_ANY_PAIR_INT32") ; - GETNAM2 (GxB_MIN_PAIR_INT64, "GxB_ANY_PAIR_INT64") ; - GETNAM2 (GxB_MIN_PAIR_UINT8, "GxB_ANY_PAIR_UINT8") ; - GETNAM2 (GxB_MIN_PAIR_UINT16, "GxB_ANY_PAIR_UINT16") ; - GETNAM2 (GxB_MIN_PAIR_UINT32, "GxB_ANY_PAIR_UINT32") ; - GETNAM2 (GxB_MIN_PAIR_UINT64, "GxB_ANY_PAIR_UINT64") ; - GETNAM2 (GxB_MIN_PAIR_FP32, "GxB_ANY_PAIR_FP32") ; - GETNAM2 (GxB_MIN_PAIR_FP64, "GxB_ANY_PAIR_FP64") ; - - GETNAM2 (GxB_MAX_PAIR_INT8, "GxB_ANY_PAIR_INT8") ; - GETNAM2 (GxB_MAX_PAIR_INT16, "GxB_ANY_PAIR_INT16") ; - GETNAM2 (GxB_MAX_PAIR_INT32, "GxB_ANY_PAIR_INT32") ; - GETNAM2 (GxB_MAX_PAIR_INT64, "GxB_ANY_PAIR_INT64") ; - GETNAM2 (GxB_MAX_PAIR_UINT8, "GxB_ANY_PAIR_UINT8") ; - GETNAM2 (GxB_MAX_PAIR_UINT16, "GxB_ANY_PAIR_UINT16") ; - GETNAM2 (GxB_MAX_PAIR_UINT32, "GxB_ANY_PAIR_UINT32") ; - GETNAM2 (GxB_MAX_PAIR_UINT64, "GxB_ANY_PAIR_UINT64") ; - GETNAM2 (GxB_MAX_PAIR_FP32, "GxB_ANY_PAIR_FP32") ; - GETNAM2 (GxB_MAX_PAIR_FP64, "GxB_ANY_PAIR_FP64") ; - - GETNAME (GxB_PLUS_PAIR_INT8) ; - GETNAME (GxB_PLUS_PAIR_INT16) ; - GETNAME (GxB_PLUS_PAIR_INT32) ; - GETNAME (GxB_PLUS_PAIR_INT64) ; - GETNAME (GxB_PLUS_PAIR_UINT8) ; - GETNAME (GxB_PLUS_PAIR_UINT16) ; - GETNAME (GxB_PLUS_PAIR_UINT32) ; - GETNAME (GxB_PLUS_PAIR_UINT64) ; - GETNAME (GxB_PLUS_PAIR_FP32) ; - GETNAME (GxB_PLUS_PAIR_FP64) ; - GETNAME (GxB_PLUS_PAIR_FC32) ; - GETNAME (GxB_PLUS_PAIR_FC64) ; - - GETNAM2 (GxB_TIMES_PAIR_INT8, "GxB_ANY_PAIR_INT8") ; - GETNAM2 (GxB_TIMES_PAIR_INT16, "GxB_ANY_PAIR_INT16") ; - GETNAM2 (GxB_TIMES_PAIR_INT32, "GxB_ANY_PAIR_INT32") ; - GETNAM2 (GxB_TIMES_PAIR_INT64, "GxB_ANY_PAIR_INT64") ; - GETNAM2 (GxB_TIMES_PAIR_UINT8, "GxB_ANY_PAIR_UINT8") ; - GETNAM2 (GxB_TIMES_PAIR_UINT16, "GxB_ANY_PAIR_UINT16") ; - GETNAM2 (GxB_TIMES_PAIR_UINT32, "GxB_ANY_PAIR_UINT32") ; - GETNAM2 (GxB_TIMES_PAIR_UINT64, "GxB_ANY_PAIR_UINT64") ; - GETNAM2 (GxB_TIMES_PAIR_FP32, "GxB_ANY_PAIR_FP32") ; - GETNAM2 (GxB_TIMES_PAIR_FP64, "GxB_ANY_PAIR_FP64") ; - GETNAM2 (GxB_TIMES_PAIR_FC32, "GxB_ANY_PAIR_FC32") ; - GETNAM2 (GxB_TIMES_PAIR_FC64, "GxB_ANY_PAIR_FC64") ; - - GETNAME (GxB_ANY_PAIR_INT8) ; - GETNAME (GxB_ANY_PAIR_INT16) ; - GETNAME (GxB_ANY_PAIR_INT32) ; - GETNAME (GxB_ANY_PAIR_INT64) ; - GETNAME (GxB_ANY_PAIR_UINT8) ; - GETNAME (GxB_ANY_PAIR_UINT16) ; - GETNAME (GxB_ANY_PAIR_UINT32) ; - GETNAME (GxB_ANY_PAIR_UINT64) ; - GETNAME (GxB_ANY_PAIR_FP32) ; - GETNAME (GxB_ANY_PAIR_FP64) ; - GETNAME (GxB_ANY_PAIR_FC32) ; - GETNAME (GxB_ANY_PAIR_FC64) ; - - GETNAM2 (GxB_LOR_PAIR_BOOL, "GxB_ANY_PAIR_BOOL") ; - GETNAM2 (GxB_LAND_PAIR_BOOL, "GxB_ANY_PAIR_BOOL") ; - GETNAME (GxB_LXOR_PAIR_BOOL) ; - GETNAM2 (GxB_EQ_PAIR_BOOL, "GxB_ANY_PAIR_BOOL") ; - GETNAME (GxB_ANY_PAIR_BOOL) ; - - //-------------------------------------------------------------------------- - // *_MIN - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_MIN_INT8) ; - GETNAME (GxB_MIN_MIN_INT16) ; - GETNAME (GxB_MIN_MIN_INT32) ; - GETNAME (GxB_MIN_MIN_INT64) ; - GETNAME (GxB_MIN_MIN_UINT8) ; - GETNAME (GxB_MIN_MIN_UINT16) ; - GETNAME (GxB_MIN_MIN_UINT32) ; - GETNAME (GxB_MIN_MIN_UINT64) ; - GETNAME (GxB_MIN_MIN_FP32) ; - GETNAME (GxB_MIN_MIN_FP64) ; - - GETNAME (GrB_MAX_MIN_SEMIRING_INT8) ; - GETNAME (GrB_MAX_MIN_SEMIRING_INT16) ; - GETNAME (GrB_MAX_MIN_SEMIRING_INT32) ; - GETNAME (GrB_MAX_MIN_SEMIRING_INT64) ; - GETNAME (GrB_MAX_MIN_SEMIRING_UINT8) ; - GETNAME (GrB_MAX_MIN_SEMIRING_UINT16) ; - GETNAME (GrB_MAX_MIN_SEMIRING_UINT32) ; - GETNAME (GrB_MAX_MIN_SEMIRING_UINT64) ; - GETNAME (GrB_MAX_MIN_SEMIRING_FP32) ; - GETNAME (GrB_MAX_MIN_SEMIRING_FP64) ; - - GETNAM2 (GxB_MAX_MIN_INT8, "GrB_MAX_MIN_SEMIRING_INT8") ; - GETNAM2 (GxB_MAX_MIN_INT16, "GrB_MAX_MIN_SEMIRING_INT16") ; - GETNAM2 (GxB_MAX_MIN_INT32, "GrB_MAX_MIN_SEMIRING_INT32") ; - GETNAM2 (GxB_MAX_MIN_INT64, "GrB_MAX_MIN_SEMIRING_INT64") ; - GETNAM2 (GxB_MAX_MIN_UINT8, "GrB_MAX_MIN_SEMIRING_UINT8") ; - GETNAM2 (GxB_MAX_MIN_UINT16, "GrB_MAX_MIN_SEMIRING_UINT16") ; - GETNAM2 (GxB_MAX_MIN_UINT32, "GrB_MAX_MIN_SEMIRING_UINT32") ; - GETNAM2 (GxB_MAX_MIN_UINT64, "GrB_MAX_MIN_SEMIRING_UINT64") ; - GETNAM2 (GxB_MAX_MIN_FP32, "GrB_MAX_MIN_SEMIRING_FP32") ; - GETNAM2 (GxB_MAX_MIN_FP64, "GrB_MAX_MIN_SEMIRING_FP64") ; - - GETNAME (GrB_PLUS_MIN_SEMIRING_INT8) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_INT16) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_INT32) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_INT64) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_UINT8) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_UINT16) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_UINT32) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_UINT64) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_FP32) ; - GETNAME (GrB_PLUS_MIN_SEMIRING_FP64) ; - - GETNAM2 (GxB_PLUS_MIN_INT8, "GrB_PLUS_MIN_SEMIRING_INT8") ; - GETNAM2 (GxB_PLUS_MIN_INT16, "GrB_PLUS_MIN_SEMIRING_INT16") ; - GETNAM2 (GxB_PLUS_MIN_INT32, "GrB_PLUS_MIN_SEMIRING_INT32") ; - GETNAM2 (GxB_PLUS_MIN_INT64, "GrB_PLUS_MIN_SEMIRING_INT64") ; - GETNAM2 (GxB_PLUS_MIN_UINT8, "GrB_PLUS_MIN_SEMIRING_UINT8") ; - GETNAM2 (GxB_PLUS_MIN_UINT16, "GrB_PLUS_MIN_SEMIRING_UINT16") ; - GETNAM2 (GxB_PLUS_MIN_UINT32, "GrB_PLUS_MIN_SEMIRING_UINT32") ; - GETNAM2 (GxB_PLUS_MIN_UINT64, "GrB_PLUS_MIN_SEMIRING_UINT64") ; - GETNAM2 (GxB_PLUS_MIN_FP32, "GrB_PLUS_MIN_SEMIRING_FP32") ; - GETNAM2 (GxB_PLUS_MIN_FP64, "GrB_PLUS_MIN_SEMIRING_FP64") ; - - GETNAME (GxB_TIMES_MIN_INT8) ; - GETNAME (GxB_TIMES_MIN_INT16) ; - GETNAME (GxB_TIMES_MIN_INT32) ; - GETNAME (GxB_TIMES_MIN_INT64) ; - GETNAME (GxB_TIMES_MIN_UINT8) ; - GETNAME (GxB_TIMES_MIN_UINT16) ; - GETNAME (GxB_TIMES_MIN_UINT32) ; - GETNAME (GxB_TIMES_MIN_UINT64) ; - GETNAME (GxB_TIMES_MIN_FP32) ; - GETNAME (GxB_TIMES_MIN_FP64) ; - - GETNAME (GxB_ANY_MIN_INT8) ; - GETNAME (GxB_ANY_MIN_INT16) ; - GETNAME (GxB_ANY_MIN_INT32) ; - GETNAME (GxB_ANY_MIN_INT64) ; - GETNAME (GxB_ANY_MIN_UINT8) ; - GETNAME (GxB_ANY_MIN_UINT16) ; - GETNAME (GxB_ANY_MIN_UINT32) ; - GETNAME (GxB_ANY_MIN_UINT64) ; - GETNAME (GxB_ANY_MIN_FP32) ; - GETNAME (GxB_ANY_MIN_FP64) ; - - //-------------------------------------------------------------------------- - // *_MAX - //-------------------------------------------------------------------------- - - GETNAME (GxB_MAX_MAX_INT8) ; - GETNAME (GxB_MAX_MAX_INT16) ; - GETNAME (GxB_MAX_MAX_INT32) ; - GETNAME (GxB_MAX_MAX_INT64) ; - GETNAME (GxB_MAX_MAX_UINT8) ; - GETNAME (GxB_MAX_MAX_UINT16) ; - GETNAME (GxB_MAX_MAX_UINT32) ; - GETNAME (GxB_MAX_MAX_UINT64) ; - GETNAME (GxB_MAX_MAX_FP32) ; - GETNAME (GxB_MAX_MAX_FP64) ; - - GETNAME (GrB_MIN_MAX_SEMIRING_INT8) ; - GETNAME (GrB_MIN_MAX_SEMIRING_INT16) ; - GETNAME (GrB_MIN_MAX_SEMIRING_INT32) ; - GETNAME (GrB_MIN_MAX_SEMIRING_INT64) ; - GETNAME (GrB_MIN_MAX_SEMIRING_UINT8) ; - GETNAME (GrB_MIN_MAX_SEMIRING_UINT16) ; - GETNAME (GrB_MIN_MAX_SEMIRING_UINT32) ; - GETNAME (GrB_MIN_MAX_SEMIRING_UINT64) ; - GETNAME (GrB_MIN_MAX_SEMIRING_FP32) ; - GETNAME (GrB_MIN_MAX_SEMIRING_FP64) ; - - GETNAM2 (GxB_MIN_MAX_INT8, "GrB_MIN_MAX_SEMIRING_INT8") ; - GETNAM2 (GxB_MIN_MAX_INT16, "GrB_MIN_MAX_SEMIRING_INT16") ; - GETNAM2 (GxB_MIN_MAX_INT32, "GrB_MIN_MAX_SEMIRING_INT32") ; - GETNAM2 (GxB_MIN_MAX_INT64, "GrB_MIN_MAX_SEMIRING_INT64") ; - GETNAM2 (GxB_MIN_MAX_UINT8, "GrB_MIN_MAX_SEMIRING_UINT8") ; - GETNAM2 (GxB_MIN_MAX_UINT16, "GrB_MIN_MAX_SEMIRING_UINT16") ; - GETNAM2 (GxB_MIN_MAX_UINT32, "GrB_MIN_MAX_SEMIRING_UINT32") ; - GETNAM2 (GxB_MIN_MAX_UINT64, "GrB_MIN_MAX_SEMIRING_UINT64") ; - GETNAM2 (GxB_MIN_MAX_FP32, "GrB_MIN_MAX_SEMIRING_FP32") ; - GETNAM2 (GxB_MIN_MAX_FP64, "GrB_MIN_MAX_SEMIRING_FP64") ; - - GETNAME (GxB_PLUS_MAX_INT8) ; - GETNAME (GxB_PLUS_MAX_INT16) ; - GETNAME (GxB_PLUS_MAX_INT32) ; - GETNAME (GxB_PLUS_MAX_INT64) ; - GETNAME (GxB_PLUS_MAX_UINT8) ; - GETNAME (GxB_PLUS_MAX_UINT16) ; - GETNAME (GxB_PLUS_MAX_UINT32) ; - GETNAME (GxB_PLUS_MAX_UINT64) ; - GETNAME (GxB_PLUS_MAX_FP32) ; - GETNAME (GxB_PLUS_MAX_FP64) ; - - GETNAME (GxB_TIMES_MAX_INT8) ; - GETNAME (GxB_TIMES_MAX_INT16) ; - GETNAME (GxB_TIMES_MAX_INT32) ; - GETNAME (GxB_TIMES_MAX_INT64) ; - GETNAME (GxB_TIMES_MAX_UINT8) ; - GETNAME (GxB_TIMES_MAX_UINT16) ; - GETNAME (GxB_TIMES_MAX_UINT32) ; - GETNAME (GxB_TIMES_MAX_UINT64) ; - GETNAME (GxB_TIMES_MAX_FP32) ; - GETNAME (GxB_TIMES_MAX_FP64) ; - - GETNAME (GxB_ANY_MAX_INT8) ; - GETNAME (GxB_ANY_MAX_INT16) ; - GETNAME (GxB_ANY_MAX_INT32) ; - GETNAME (GxB_ANY_MAX_INT64) ; - GETNAME (GxB_ANY_MAX_UINT8) ; - GETNAME (GxB_ANY_MAX_UINT16) ; - GETNAME (GxB_ANY_MAX_UINT32) ; - GETNAME (GxB_ANY_MAX_UINT64) ; - GETNAME (GxB_ANY_MAX_FP32) ; - GETNAME (GxB_ANY_MAX_FP64) ; - - //-------------------------------------------------------------------------- - // *_PLUS - //-------------------------------------------------------------------------- - - GETNAME (GrB_MIN_PLUS_SEMIRING_INT8) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_INT16) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_INT32) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_INT64) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_UINT8) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_UINT16) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_UINT32) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_UINT64) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_FP32) ; - GETNAME (GrB_MIN_PLUS_SEMIRING_FP64) ; - - GETNAM2 (GxB_MIN_PLUS_INT8, "GrB_MIN_PLUS_SEMIRING_INT8") ; - GETNAM2 (GxB_MIN_PLUS_INT16, "GrB_MIN_PLUS_SEMIRING_INT16") ; - GETNAM2 (GxB_MIN_PLUS_INT32, "GrB_MIN_PLUS_SEMIRING_INT32") ; - GETNAM2 (GxB_MIN_PLUS_INT64, "GrB_MIN_PLUS_SEMIRING_INT64") ; - GETNAM2 (GxB_MIN_PLUS_UINT8, "GrB_MIN_PLUS_SEMIRING_UINT8") ; - GETNAM2 (GxB_MIN_PLUS_UINT16, "GrB_MIN_PLUS_SEMIRING_UINT16") ; - GETNAM2 (GxB_MIN_PLUS_UINT32, "GrB_MIN_PLUS_SEMIRING_UINT32") ; - GETNAM2 (GxB_MIN_PLUS_UINT64, "GrB_MIN_PLUS_SEMIRING_UINT64") ; - GETNAM2 (GxB_MIN_PLUS_FP32, "GrB_MIN_PLUS_SEMIRING_FP32") ; - GETNAM2 (GxB_MIN_PLUS_FP64, "GrB_MIN_PLUS_SEMIRING_FP64") ; - - GETNAME (GrB_MAX_PLUS_SEMIRING_INT8) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_INT16) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_INT32) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_INT64) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_UINT8) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_UINT16) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_UINT32) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_UINT64) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_FP32) ; - GETNAME (GrB_MAX_PLUS_SEMIRING_FP64) ; - - GETNAM2 (GxB_MAX_PLUS_INT8, "GrB_MAX_PLUS_SEMIRING_INT8") ; - GETNAM2 (GxB_MAX_PLUS_INT16, "GrB_MAX_PLUS_SEMIRING_INT16") ; - GETNAM2 (GxB_MAX_PLUS_INT32, "GrB_MAX_PLUS_SEMIRING_INT32") ; - GETNAM2 (GxB_MAX_PLUS_INT64, "GrB_MAX_PLUS_SEMIRING_INT64") ; - GETNAM2 (GxB_MAX_PLUS_UINT8, "GrB_MAX_PLUS_SEMIRING_UINT8") ; - GETNAM2 (GxB_MAX_PLUS_UINT16, "GrB_MAX_PLUS_SEMIRING_UINT16") ; - GETNAM2 (GxB_MAX_PLUS_UINT32, "GrB_MAX_PLUS_SEMIRING_UINT32") ; - GETNAM2 (GxB_MAX_PLUS_UINT64, "GrB_MAX_PLUS_SEMIRING_UINT64") ; - GETNAM2 (GxB_MAX_PLUS_FP32, "GrB_MAX_PLUS_SEMIRING_FP32") ; - GETNAM2 (GxB_MAX_PLUS_FP64, "GrB_MAX_PLUS_SEMIRING_FP64") ; - - GETNAME (GxB_PLUS_PLUS_INT8) ; - GETNAME (GxB_PLUS_PLUS_INT16) ; - GETNAME (GxB_PLUS_PLUS_INT32) ; - GETNAME (GxB_PLUS_PLUS_INT64) ; - GETNAME (GxB_PLUS_PLUS_UINT8) ; - GETNAME (GxB_PLUS_PLUS_UINT16) ; - GETNAME (GxB_PLUS_PLUS_UINT32) ; - GETNAME (GxB_PLUS_PLUS_UINT64) ; - GETNAME (GxB_PLUS_PLUS_FP32) ; - GETNAME (GxB_PLUS_PLUS_FP64) ; - GETNAME (GxB_PLUS_PLUS_FC32) ; - GETNAME (GxB_PLUS_PLUS_FC64) ; - - GETNAME (GxB_TIMES_PLUS_INT8) ; - GETNAME (GxB_TIMES_PLUS_INT16) ; - GETNAME (GxB_TIMES_PLUS_INT32) ; - GETNAME (GxB_TIMES_PLUS_INT64) ; - GETNAME (GxB_TIMES_PLUS_UINT8) ; - GETNAME (GxB_TIMES_PLUS_UINT16) ; - GETNAME (GxB_TIMES_PLUS_UINT32) ; - GETNAME (GxB_TIMES_PLUS_UINT64) ; - GETNAME (GxB_TIMES_PLUS_FP32) ; - GETNAME (GxB_TIMES_PLUS_FP64) ; - GETNAME (GxB_TIMES_PLUS_FC32) ; - GETNAME (GxB_TIMES_PLUS_FC64) ; - - GETNAME (GxB_ANY_PLUS_INT8) ; - GETNAME (GxB_ANY_PLUS_INT16) ; - GETNAME (GxB_ANY_PLUS_INT32) ; - GETNAME (GxB_ANY_PLUS_INT64) ; - GETNAME (GxB_ANY_PLUS_UINT8) ; - GETNAME (GxB_ANY_PLUS_UINT16) ; - GETNAME (GxB_ANY_PLUS_UINT32) ; - GETNAME (GxB_ANY_PLUS_UINT64) ; - GETNAME (GxB_ANY_PLUS_FP32) ; - GETNAME (GxB_ANY_PLUS_FP64) ; - GETNAME (GxB_ANY_PLUS_FC32) ; - GETNAME (GxB_ANY_PLUS_FC64) ; - - //-------------------------------------------------------------------------- - // *_MINUS - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_MINUS_INT8) ; - GETNAME (GxB_MIN_MINUS_INT16) ; - GETNAME (GxB_MIN_MINUS_INT32) ; - GETNAME (GxB_MIN_MINUS_INT64) ; - GETNAME (GxB_MIN_MINUS_UINT8) ; - GETNAME (GxB_MIN_MINUS_UINT16) ; - GETNAME (GxB_MIN_MINUS_UINT32) ; - GETNAME (GxB_MIN_MINUS_UINT64) ; - GETNAME (GxB_MIN_MINUS_FP32) ; - GETNAME (GxB_MIN_MINUS_FP64) ; - - GETNAME (GxB_MAX_MINUS_INT8) ; - GETNAME (GxB_MAX_MINUS_INT16) ; - GETNAME (GxB_MAX_MINUS_INT32) ; - GETNAME (GxB_MAX_MINUS_INT64) ; - GETNAME (GxB_MAX_MINUS_UINT8) ; - GETNAME (GxB_MAX_MINUS_UINT16) ; - GETNAME (GxB_MAX_MINUS_UINT32) ; - GETNAME (GxB_MAX_MINUS_UINT64) ; - GETNAME (GxB_MAX_MINUS_FP32) ; - GETNAME (GxB_MAX_MINUS_FP64) ; - - GETNAME (GxB_PLUS_MINUS_INT8) ; - GETNAME (GxB_PLUS_MINUS_INT16) ; - GETNAME (GxB_PLUS_MINUS_INT32) ; - GETNAME (GxB_PLUS_MINUS_INT64) ; - GETNAME (GxB_PLUS_MINUS_UINT8) ; - GETNAME (GxB_PLUS_MINUS_UINT16) ; - GETNAME (GxB_PLUS_MINUS_UINT32) ; - GETNAME (GxB_PLUS_MINUS_UINT64) ; - GETNAME (GxB_PLUS_MINUS_FP32) ; - GETNAME (GxB_PLUS_MINUS_FP64) ; - GETNAME (GxB_PLUS_MINUS_FC32) ; - GETNAME (GxB_PLUS_MINUS_FC64) ; - - GETNAME (GxB_TIMES_MINUS_INT8) ; - GETNAME (GxB_TIMES_MINUS_INT16) ; - GETNAME (GxB_TIMES_MINUS_INT32) ; - GETNAME (GxB_TIMES_MINUS_INT64) ; - GETNAME (GxB_TIMES_MINUS_UINT8) ; - GETNAME (GxB_TIMES_MINUS_UINT16) ; - GETNAME (GxB_TIMES_MINUS_UINT32) ; - GETNAME (GxB_TIMES_MINUS_UINT64) ; - GETNAME (GxB_TIMES_MINUS_FP32) ; - GETNAME (GxB_TIMES_MINUS_FP64) ; - GETNAME (GxB_TIMES_MINUS_FC32) ; - GETNAME (GxB_TIMES_MINUS_FC64) ; - - GETNAME (GxB_ANY_MINUS_INT8) ; - GETNAME (GxB_ANY_MINUS_INT16) ; - GETNAME (GxB_ANY_MINUS_INT32) ; - GETNAME (GxB_ANY_MINUS_INT64) ; - GETNAME (GxB_ANY_MINUS_UINT8) ; - GETNAME (GxB_ANY_MINUS_UINT16) ; - GETNAME (GxB_ANY_MINUS_UINT32) ; - GETNAME (GxB_ANY_MINUS_UINT64) ; - GETNAME (GxB_ANY_MINUS_FP32) ; - GETNAME (GxB_ANY_MINUS_FP64) ; - GETNAME (GxB_ANY_MINUS_FC32) ; - GETNAME (GxB_ANY_MINUS_FC64) ; - - //-------------------------------------------------------------------------- - // *_TIMES - //-------------------------------------------------------------------------- - - GETNAME (GrB_MIN_TIMES_SEMIRING_INT8) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_INT16) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_INT32) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_INT64) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_UINT8) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_UINT16) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_UINT32) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_UINT64) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_FP32) ; - GETNAME (GrB_MIN_TIMES_SEMIRING_FP64) ; - - GETNAM2 (GxB_MIN_TIMES_INT8, "GrB_MIN_TIMES_SEMIRING_INT8") ; - GETNAM2 (GxB_MIN_TIMES_INT16, "GrB_MIN_TIMES_SEMIRING_INT16") ; - GETNAM2 (GxB_MIN_TIMES_INT32, "GrB_MIN_TIMES_SEMIRING_INT32") ; - GETNAM2 (GxB_MIN_TIMES_INT64, "GrB_MIN_TIMES_SEMIRING_INT64") ; - GETNAM2 (GxB_MIN_TIMES_UINT8, "GrB_MIN_TIMES_SEMIRING_UINT8") ; - GETNAM2 (GxB_MIN_TIMES_UINT16, "GrB_MIN_TIMES_SEMIRING_UINT16") ; - GETNAM2 (GxB_MIN_TIMES_UINT32, "GrB_MIN_TIMES_SEMIRING_UINT32") ; - GETNAM2 (GxB_MIN_TIMES_UINT64, "GrB_MIN_TIMES_SEMIRING_UINT64") ; - GETNAM2 (GxB_MIN_TIMES_FP32, "GrB_MIN_TIMES_SEMIRING_FP32") ; - GETNAM2 (GxB_MIN_TIMES_FP64, "GrB_MIN_TIMES_SEMIRING_FP64") ; - - GETNAME (GrB_MAX_TIMES_SEMIRING_INT8) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_INT16) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_INT32) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_INT64) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_UINT8) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_UINT16) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_UINT32) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_UINT64) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_FP32) ; - GETNAME (GrB_MAX_TIMES_SEMIRING_FP64) ; - - GETNAM2 (GxB_MAX_TIMES_INT8, "GrB_MAX_TIMES_SEMIRING_INT8") ; - GETNAM2 (GxB_MAX_TIMES_INT16, "GrB_MAX_TIMES_SEMIRING_INT16") ; - GETNAM2 (GxB_MAX_TIMES_INT32, "GrB_MAX_TIMES_SEMIRING_INT32") ; - GETNAM2 (GxB_MAX_TIMES_INT64, "GrB_MAX_TIMES_SEMIRING_INT64") ; - GETNAM2 (GxB_MAX_TIMES_UINT8, "GrB_MAX_TIMES_SEMIRING_UINT8") ; - GETNAM2 (GxB_MAX_TIMES_UINT16, "GrB_MAX_TIMES_SEMIRING_UINT16") ; - GETNAM2 (GxB_MAX_TIMES_UINT32, "GrB_MAX_TIMES_SEMIRING_UINT32") ; - GETNAM2 (GxB_MAX_TIMES_UINT64, "GrB_MAX_TIMES_SEMIRING_UINT64") ; - GETNAM2 (GxB_MAX_TIMES_FP32, "GrB_MAX_TIMES_SEMIRING_FP32") ; - GETNAM2 (GxB_MAX_TIMES_FP64, "GrB_MAX_TIMES_SEMIRING_FP64") ; - - GETNAME (GrB_PLUS_TIMES_SEMIRING_INT8) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_INT16) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_INT32) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_INT64) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_UINT8) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_UINT16) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_UINT32) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_UINT64) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_FP32) ; - GETNAME (GrB_PLUS_TIMES_SEMIRING_FP64) ; - - GETNAM2 (GxB_PLUS_TIMES_INT8, "GrB_PLUS_TIMES_SEMIRING_INT8") ; - GETNAM2 (GxB_PLUS_TIMES_INT16, "GrB_PLUS_TIMES_SEMIRING_INT16") ; - GETNAM2 (GxB_PLUS_TIMES_INT32, "GrB_PLUS_TIMES_SEMIRING_INT32") ; - GETNAM2 (GxB_PLUS_TIMES_INT64, "GrB_PLUS_TIMES_SEMIRING_INT64") ; - GETNAM2 (GxB_PLUS_TIMES_UINT8, "GrB_PLUS_TIMES_SEMIRING_UINT8") ; - GETNAM2 (GxB_PLUS_TIMES_UINT16, "GrB_PLUS_TIMES_SEMIRING_UINT16") ; - GETNAM2 (GxB_PLUS_TIMES_UINT32, "GrB_PLUS_TIMES_SEMIRING_UINT32") ; - GETNAM2 (GxB_PLUS_TIMES_UINT64, "GrB_PLUS_TIMES_SEMIRING_UINT64") ; - GETNAM2 (GxB_PLUS_TIMES_FP32, "GrB_PLUS_TIMES_SEMIRING_FP32") ; - GETNAM2 (GxB_PLUS_TIMES_FP64, "GrB_PLUS_TIMES_SEMIRING_FP64") ; - GETNAME (GxB_PLUS_TIMES_FC32) ; - GETNAME (GxB_PLUS_TIMES_FC64) ; - - GETNAME (GxB_TIMES_TIMES_INT8) ; - GETNAME (GxB_TIMES_TIMES_INT16) ; - GETNAME (GxB_TIMES_TIMES_INT32) ; - GETNAME (GxB_TIMES_TIMES_INT64) ; - GETNAME (GxB_TIMES_TIMES_UINT8) ; - GETNAME (GxB_TIMES_TIMES_UINT16) ; - GETNAME (GxB_TIMES_TIMES_UINT32) ; - GETNAME (GxB_TIMES_TIMES_UINT64) ; - GETNAME (GxB_TIMES_TIMES_FP32) ; - GETNAME (GxB_TIMES_TIMES_FP64) ; - GETNAME (GxB_TIMES_TIMES_FC32) ; - GETNAME (GxB_TIMES_TIMES_FC64) ; - - GETNAME (GxB_ANY_TIMES_INT8) ; - GETNAME (GxB_ANY_TIMES_INT16) ; - GETNAME (GxB_ANY_TIMES_INT32) ; - GETNAME (GxB_ANY_TIMES_INT64) ; - GETNAME (GxB_ANY_TIMES_UINT8) ; - GETNAME (GxB_ANY_TIMES_UINT16) ; - GETNAME (GxB_ANY_TIMES_UINT32) ; - GETNAME (GxB_ANY_TIMES_UINT64) ; - GETNAME (GxB_ANY_TIMES_FP32) ; - GETNAME (GxB_ANY_TIMES_FP64) ; - GETNAME (GxB_ANY_TIMES_FC32) ; - GETNAME (GxB_ANY_TIMES_FC64) ; - - //-------------------------------------------------------------------------- - // *_DIV - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_DIV_INT8) ; - GETNAME (GxB_MIN_DIV_INT16) ; - GETNAME (GxB_MIN_DIV_INT32) ; - GETNAME (GxB_MIN_DIV_INT64) ; - GETNAME (GxB_MIN_DIV_UINT8) ; - GETNAME (GxB_MIN_DIV_UINT16) ; - GETNAME (GxB_MIN_DIV_UINT32) ; - GETNAME (GxB_MIN_DIV_UINT64) ; - GETNAME (GxB_MIN_DIV_FP32) ; - GETNAME (GxB_MIN_DIV_FP64) ; - - GETNAME (GxB_MAX_DIV_INT8) ; - GETNAME (GxB_MAX_DIV_INT16) ; - GETNAME (GxB_MAX_DIV_INT32) ; - GETNAME (GxB_MAX_DIV_INT64) ; - GETNAME (GxB_MAX_DIV_UINT8) ; - GETNAME (GxB_MAX_DIV_UINT16) ; - GETNAME (GxB_MAX_DIV_UINT32) ; - GETNAME (GxB_MAX_DIV_UINT64) ; - GETNAME (GxB_MAX_DIV_FP32) ; - GETNAME (GxB_MAX_DIV_FP64) ; - - GETNAME (GxB_PLUS_DIV_INT8) ; - GETNAME (GxB_PLUS_DIV_INT16) ; - GETNAME (GxB_PLUS_DIV_INT32) ; - GETNAME (GxB_PLUS_DIV_INT64) ; - GETNAME (GxB_PLUS_DIV_UINT8) ; - GETNAME (GxB_PLUS_DIV_UINT16) ; - GETNAME (GxB_PLUS_DIV_UINT32) ; - GETNAME (GxB_PLUS_DIV_UINT64) ; - GETNAME (GxB_PLUS_DIV_FP32) ; - GETNAME (GxB_PLUS_DIV_FP64) ; - GETNAME (GxB_PLUS_DIV_FC32) ; - GETNAME (GxB_PLUS_DIV_FC64) ; - - GETNAME (GxB_TIMES_DIV_INT8) ; - GETNAME (GxB_TIMES_DIV_INT16) ; - GETNAME (GxB_TIMES_DIV_INT32) ; - GETNAME (GxB_TIMES_DIV_INT64) ; - GETNAME (GxB_TIMES_DIV_UINT8) ; - GETNAME (GxB_TIMES_DIV_UINT16) ; - GETNAME (GxB_TIMES_DIV_UINT32) ; - GETNAME (GxB_TIMES_DIV_UINT64) ; - GETNAME (GxB_TIMES_DIV_FP32) ; - GETNAME (GxB_TIMES_DIV_FP64) ; - GETNAME (GxB_TIMES_DIV_FC32) ; - GETNAME (GxB_TIMES_DIV_FC64) ; - - GETNAME (GxB_ANY_DIV_INT8) ; - GETNAME (GxB_ANY_DIV_INT16) ; - GETNAME (GxB_ANY_DIV_INT32) ; - GETNAME (GxB_ANY_DIV_INT64) ; - GETNAME (GxB_ANY_DIV_UINT8) ; - GETNAME (GxB_ANY_DIV_UINT16) ; - GETNAME (GxB_ANY_DIV_UINT32) ; - GETNAME (GxB_ANY_DIV_UINT64) ; - GETNAME (GxB_ANY_DIV_FP32) ; - GETNAME (GxB_ANY_DIV_FP64) ; - GETNAME (GxB_ANY_DIV_FC32) ; - GETNAME (GxB_ANY_DIV_FC64) ; - - //-------------------------------------------------------------------------- - // *_RDIV - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_RDIV_INT8) ; - GETNAME (GxB_MIN_RDIV_INT16) ; - GETNAME (GxB_MIN_RDIV_INT32) ; - GETNAME (GxB_MIN_RDIV_INT64) ; - GETNAME (GxB_MIN_RDIV_UINT8) ; - GETNAME (GxB_MIN_RDIV_UINT16) ; - GETNAME (GxB_MIN_RDIV_UINT32) ; - GETNAME (GxB_MIN_RDIV_UINT64) ; - GETNAME (GxB_MIN_RDIV_FP32) ; - GETNAME (GxB_MIN_RDIV_FP64) ; - - GETNAME (GxB_MAX_RDIV_INT8) ; - GETNAME (GxB_MAX_RDIV_INT16) ; - GETNAME (GxB_MAX_RDIV_INT32) ; - GETNAME (GxB_MAX_RDIV_INT64) ; - GETNAME (GxB_MAX_RDIV_UINT8) ; - GETNAME (GxB_MAX_RDIV_UINT16) ; - GETNAME (GxB_MAX_RDIV_UINT32) ; - GETNAME (GxB_MAX_RDIV_UINT64) ; - GETNAME (GxB_MAX_RDIV_FP32) ; - GETNAME (GxB_MAX_RDIV_FP64) ; - - GETNAME (GxB_PLUS_RDIV_INT8) ; - GETNAME (GxB_PLUS_RDIV_INT16) ; - GETNAME (GxB_PLUS_RDIV_INT32) ; - GETNAME (GxB_PLUS_RDIV_INT64) ; - GETNAME (GxB_PLUS_RDIV_UINT8) ; - GETNAME (GxB_PLUS_RDIV_UINT16) ; - GETNAME (GxB_PLUS_RDIV_UINT32) ; - GETNAME (GxB_PLUS_RDIV_UINT64) ; - GETNAME (GxB_PLUS_RDIV_FP32) ; - GETNAME (GxB_PLUS_RDIV_FP64) ; - GETNAME (GxB_PLUS_RDIV_FC32) ; - GETNAME (GxB_PLUS_RDIV_FC64) ; - - GETNAME (GxB_TIMES_RDIV_INT8) ; - GETNAME (GxB_TIMES_RDIV_INT16) ; - GETNAME (GxB_TIMES_RDIV_INT32) ; - GETNAME (GxB_TIMES_RDIV_INT64) ; - GETNAME (GxB_TIMES_RDIV_UINT8) ; - GETNAME (GxB_TIMES_RDIV_UINT16) ; - GETNAME (GxB_TIMES_RDIV_UINT32) ; - GETNAME (GxB_TIMES_RDIV_UINT64) ; - GETNAME (GxB_TIMES_RDIV_FP32) ; - GETNAME (GxB_TIMES_RDIV_FP64) ; - GETNAME (GxB_TIMES_RDIV_FC32) ; - GETNAME (GxB_TIMES_RDIV_FC64) ; - - GETNAME (GxB_ANY_RDIV_INT8) ; - GETNAME (GxB_ANY_RDIV_INT16) ; - GETNAME (GxB_ANY_RDIV_INT32) ; - GETNAME (GxB_ANY_RDIV_INT64) ; - GETNAME (GxB_ANY_RDIV_UINT8) ; - GETNAME (GxB_ANY_RDIV_UINT16) ; - GETNAME (GxB_ANY_RDIV_UINT32) ; - GETNAME (GxB_ANY_RDIV_UINT64) ; - GETNAME (GxB_ANY_RDIV_FP32) ; - GETNAME (GxB_ANY_RDIV_FP64) ; - GETNAME (GxB_ANY_RDIV_FC32) ; - GETNAME (GxB_ANY_RDIV_FC64) ; - - //-------------------------------------------------------------------------- - // *_RMINUS - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_RMINUS_INT8) ; - GETNAME (GxB_MIN_RMINUS_INT16) ; - GETNAME (GxB_MIN_RMINUS_INT32) ; - GETNAME (GxB_MIN_RMINUS_INT64) ; - GETNAME (GxB_MIN_RMINUS_UINT8) ; - GETNAME (GxB_MIN_RMINUS_UINT16) ; - GETNAME (GxB_MIN_RMINUS_UINT32) ; - GETNAME (GxB_MIN_RMINUS_UINT64) ; - GETNAME (GxB_MIN_RMINUS_FP32) ; - GETNAME (GxB_MIN_RMINUS_FP64) ; - - GETNAME (GxB_MAX_RMINUS_INT8) ; - GETNAME (GxB_MAX_RMINUS_INT16) ; - GETNAME (GxB_MAX_RMINUS_INT32) ; - GETNAME (GxB_MAX_RMINUS_INT64) ; - GETNAME (GxB_MAX_RMINUS_UINT8) ; - GETNAME (GxB_MAX_RMINUS_UINT16) ; - GETNAME (GxB_MAX_RMINUS_UINT32) ; - GETNAME (GxB_MAX_RMINUS_UINT64) ; - GETNAME (GxB_MAX_RMINUS_FP32) ; - GETNAME (GxB_MAX_RMINUS_FP64) ; - - GETNAME (GxB_PLUS_RMINUS_INT8) ; - GETNAME (GxB_PLUS_RMINUS_INT16) ; - GETNAME (GxB_PLUS_RMINUS_INT32) ; - GETNAME (GxB_PLUS_RMINUS_INT64) ; - GETNAME (GxB_PLUS_RMINUS_UINT8) ; - GETNAME (GxB_PLUS_RMINUS_UINT16) ; - GETNAME (GxB_PLUS_RMINUS_UINT32) ; - GETNAME (GxB_PLUS_RMINUS_UINT64) ; - GETNAME (GxB_PLUS_RMINUS_FP32) ; - GETNAME (GxB_PLUS_RMINUS_FP64) ; - GETNAME (GxB_PLUS_RMINUS_FC32) ; - GETNAME (GxB_PLUS_RMINUS_FC64) ; - - GETNAME (GxB_TIMES_RMINUS_INT8) ; - GETNAME (GxB_TIMES_RMINUS_INT16) ; - GETNAME (GxB_TIMES_RMINUS_INT32) ; - GETNAME (GxB_TIMES_RMINUS_INT64) ; - GETNAME (GxB_TIMES_RMINUS_UINT8) ; - GETNAME (GxB_TIMES_RMINUS_UINT16) ; - GETNAME (GxB_TIMES_RMINUS_UINT32) ; - GETNAME (GxB_TIMES_RMINUS_UINT64) ; - GETNAME (GxB_TIMES_RMINUS_FP32) ; - GETNAME (GxB_TIMES_RMINUS_FP64) ; - GETNAME (GxB_TIMES_RMINUS_FC32) ; - GETNAME (GxB_TIMES_RMINUS_FC64) ; - - GETNAME (GxB_ANY_RMINUS_INT8) ; - GETNAME (GxB_ANY_RMINUS_INT16) ; - GETNAME (GxB_ANY_RMINUS_INT32) ; - GETNAME (GxB_ANY_RMINUS_INT64) ; - GETNAME (GxB_ANY_RMINUS_UINT8) ; - GETNAME (GxB_ANY_RMINUS_UINT16) ; - GETNAME (GxB_ANY_RMINUS_UINT32) ; - GETNAME (GxB_ANY_RMINUS_UINT64) ; - GETNAME (GxB_ANY_RMINUS_FP32) ; - GETNAME (GxB_ANY_RMINUS_FP64) ; - GETNAME (GxB_ANY_RMINUS_FC32) ; - GETNAME (GxB_ANY_RMINUS_FC64) ; - - //-------------------------------------------------------------------------- - // *_ISEQ - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_ISEQ_INT8) ; - GETNAME (GxB_MIN_ISEQ_INT16) ; - GETNAME (GxB_MIN_ISEQ_INT32) ; - GETNAME (GxB_MIN_ISEQ_INT64) ; - GETNAME (GxB_MIN_ISEQ_UINT8) ; - GETNAME (GxB_MIN_ISEQ_UINT16) ; - GETNAME (GxB_MIN_ISEQ_UINT32) ; - GETNAME (GxB_MIN_ISEQ_UINT64) ; - GETNAME (GxB_MIN_ISEQ_FP32) ; - GETNAME (GxB_MIN_ISEQ_FP64) ; - - GETNAME (GxB_MAX_ISEQ_INT8) ; - GETNAME (GxB_MAX_ISEQ_INT16) ; - GETNAME (GxB_MAX_ISEQ_INT32) ; - GETNAME (GxB_MAX_ISEQ_INT64) ; - GETNAME (GxB_MAX_ISEQ_UINT8) ; - GETNAME (GxB_MAX_ISEQ_UINT16) ; - GETNAME (GxB_MAX_ISEQ_UINT32) ; - GETNAME (GxB_MAX_ISEQ_UINT64) ; - GETNAME (GxB_MAX_ISEQ_FP32) ; - GETNAME (GxB_MAX_ISEQ_FP64) ; - - GETNAME (GxB_PLUS_ISEQ_INT8) ; - GETNAME (GxB_PLUS_ISEQ_INT16) ; - GETNAME (GxB_PLUS_ISEQ_INT32) ; - GETNAME (GxB_PLUS_ISEQ_INT64) ; - GETNAME (GxB_PLUS_ISEQ_UINT8) ; - GETNAME (GxB_PLUS_ISEQ_UINT16) ; - GETNAME (GxB_PLUS_ISEQ_UINT32) ; - GETNAME (GxB_PLUS_ISEQ_UINT64) ; - GETNAME (GxB_PLUS_ISEQ_FP32) ; - GETNAME (GxB_PLUS_ISEQ_FP64) ; - - GETNAME (GxB_TIMES_ISEQ_INT8) ; - GETNAME (GxB_TIMES_ISEQ_INT16) ; - GETNAME (GxB_TIMES_ISEQ_INT32) ; - GETNAME (GxB_TIMES_ISEQ_INT64) ; - GETNAME (GxB_TIMES_ISEQ_UINT8) ; - GETNAME (GxB_TIMES_ISEQ_UINT16) ; - GETNAME (GxB_TIMES_ISEQ_UINT32) ; - GETNAME (GxB_TIMES_ISEQ_UINT64) ; - GETNAME (GxB_TIMES_ISEQ_FP32) ; - GETNAME (GxB_TIMES_ISEQ_FP64) ; - - GETNAME (GxB_ANY_ISEQ_INT8) ; - GETNAME (GxB_ANY_ISEQ_INT16) ; - GETNAME (GxB_ANY_ISEQ_INT32) ; - GETNAME (GxB_ANY_ISEQ_INT64) ; - GETNAME (GxB_ANY_ISEQ_UINT8) ; - GETNAME (GxB_ANY_ISEQ_UINT16) ; - GETNAME (GxB_ANY_ISEQ_UINT32) ; - GETNAME (GxB_ANY_ISEQ_UINT64) ; - GETNAME (GxB_ANY_ISEQ_FP32) ; - GETNAME (GxB_ANY_ISEQ_FP64) ; - - //-------------------------------------------------------------------------- - // *_ISNE - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_ISNE_INT8) ; - GETNAME (GxB_MIN_ISNE_INT16) ; - GETNAME (GxB_MIN_ISNE_INT32) ; - GETNAME (GxB_MIN_ISNE_INT64) ; - GETNAME (GxB_MIN_ISNE_UINT8) ; - GETNAME (GxB_MIN_ISNE_UINT16) ; - GETNAME (GxB_MIN_ISNE_UINT32) ; - GETNAME (GxB_MIN_ISNE_UINT64) ; - GETNAME (GxB_MIN_ISNE_FP32) ; - GETNAME (GxB_MIN_ISNE_FP64) ; - - GETNAME (GxB_MAX_ISNE_INT8) ; - GETNAME (GxB_MAX_ISNE_INT16) ; - GETNAME (GxB_MAX_ISNE_INT32) ; - GETNAME (GxB_MAX_ISNE_INT64) ; - GETNAME (GxB_MAX_ISNE_UINT8) ; - GETNAME (GxB_MAX_ISNE_UINT16) ; - GETNAME (GxB_MAX_ISNE_UINT32) ; - GETNAME (GxB_MAX_ISNE_UINT64) ; - GETNAME (GxB_MAX_ISNE_FP32) ; - GETNAME (GxB_MAX_ISNE_FP64) ; - - GETNAME (GxB_PLUS_ISNE_INT8) ; - GETNAME (GxB_PLUS_ISNE_INT16) ; - GETNAME (GxB_PLUS_ISNE_INT32) ; - GETNAME (GxB_PLUS_ISNE_INT64) ; - GETNAME (GxB_PLUS_ISNE_UINT8) ; - GETNAME (GxB_PLUS_ISNE_UINT16) ; - GETNAME (GxB_PLUS_ISNE_UINT32) ; - GETNAME (GxB_PLUS_ISNE_UINT64) ; - GETNAME (GxB_PLUS_ISNE_FP32) ; - GETNAME (GxB_PLUS_ISNE_FP64) ; - - GETNAME (GxB_TIMES_ISNE_INT8) ; - GETNAME (GxB_TIMES_ISNE_INT16) ; - GETNAME (GxB_TIMES_ISNE_INT32) ; - GETNAME (GxB_TIMES_ISNE_INT64) ; - GETNAME (GxB_TIMES_ISNE_UINT8) ; - GETNAME (GxB_TIMES_ISNE_UINT16) ; - GETNAME (GxB_TIMES_ISNE_UINT32) ; - GETNAME (GxB_TIMES_ISNE_UINT64) ; - GETNAME (GxB_TIMES_ISNE_FP32) ; - GETNAME (GxB_TIMES_ISNE_FP64) ; - - GETNAME (GxB_ANY_ISNE_INT8) ; - GETNAME (GxB_ANY_ISNE_INT16) ; - GETNAME (GxB_ANY_ISNE_INT32) ; - GETNAME (GxB_ANY_ISNE_INT64) ; - GETNAME (GxB_ANY_ISNE_UINT8) ; - GETNAME (GxB_ANY_ISNE_UINT16) ; - GETNAME (GxB_ANY_ISNE_UINT32) ; - GETNAME (GxB_ANY_ISNE_UINT64) ; - GETNAME (GxB_ANY_ISNE_FP32) ; - GETNAME (GxB_ANY_ISNE_FP64) ; - - //-------------------------------------------------------------------------- - // *_ISGT - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_ISGT_INT8) ; - GETNAME (GxB_MIN_ISGT_INT16) ; - GETNAME (GxB_MIN_ISGT_INT32) ; - GETNAME (GxB_MIN_ISGT_INT64) ; - GETNAME (GxB_MIN_ISGT_UINT8) ; - GETNAME (GxB_MIN_ISGT_UINT16) ; - GETNAME (GxB_MIN_ISGT_UINT32) ; - GETNAME (GxB_MIN_ISGT_UINT64) ; - GETNAME (GxB_MIN_ISGT_FP32) ; - GETNAME (GxB_MIN_ISGT_FP64) ; - - GETNAME (GxB_MAX_ISGT_INT8) ; - GETNAME (GxB_MAX_ISGT_INT16) ; - GETNAME (GxB_MAX_ISGT_INT32) ; - GETNAME (GxB_MAX_ISGT_INT64) ; - GETNAME (GxB_MAX_ISGT_UINT8) ; - GETNAME (GxB_MAX_ISGT_UINT16) ; - GETNAME (GxB_MAX_ISGT_UINT32) ; - GETNAME (GxB_MAX_ISGT_UINT64) ; - GETNAME (GxB_MAX_ISGT_FP32) ; - GETNAME (GxB_MAX_ISGT_FP64) ; - - GETNAME (GxB_PLUS_ISGT_INT8) ; - GETNAME (GxB_PLUS_ISGT_INT16) ; - GETNAME (GxB_PLUS_ISGT_INT32) ; - GETNAME (GxB_PLUS_ISGT_INT64) ; - GETNAME (GxB_PLUS_ISGT_UINT8) ; - GETNAME (GxB_PLUS_ISGT_UINT16) ; - GETNAME (GxB_PLUS_ISGT_UINT32) ; - GETNAME (GxB_PLUS_ISGT_UINT64) ; - GETNAME (GxB_PLUS_ISGT_FP32) ; - GETNAME (GxB_PLUS_ISGT_FP64) ; - - GETNAME (GxB_TIMES_ISGT_INT8) ; - GETNAME (GxB_TIMES_ISGT_INT16) ; - GETNAME (GxB_TIMES_ISGT_INT32) ; - GETNAME (GxB_TIMES_ISGT_INT64) ; - GETNAME (GxB_TIMES_ISGT_UINT8) ; - GETNAME (GxB_TIMES_ISGT_UINT16) ; - GETNAME (GxB_TIMES_ISGT_UINT32) ; - GETNAME (GxB_TIMES_ISGT_UINT64) ; - GETNAME (GxB_TIMES_ISGT_FP32) ; - GETNAME (GxB_TIMES_ISGT_FP64) ; - - GETNAME (GxB_ANY_ISGT_INT8) ; - GETNAME (GxB_ANY_ISGT_INT16) ; - GETNAME (GxB_ANY_ISGT_INT32) ; - GETNAME (GxB_ANY_ISGT_INT64) ; - GETNAME (GxB_ANY_ISGT_UINT8) ; - GETNAME (GxB_ANY_ISGT_UINT16) ; - GETNAME (GxB_ANY_ISGT_UINT32) ; - GETNAME (GxB_ANY_ISGT_UINT64) ; - GETNAME (GxB_ANY_ISGT_FP32) ; - GETNAME (GxB_ANY_ISGT_FP64) ; - - //-------------------------------------------------------------------------- - // *_ISLT - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_ISLT_INT8) ; - GETNAME (GxB_MIN_ISLT_INT16) ; - GETNAME (GxB_MIN_ISLT_INT32) ; - GETNAME (GxB_MIN_ISLT_INT64) ; - GETNAME (GxB_MIN_ISLT_UINT8) ; - GETNAME (GxB_MIN_ISLT_UINT16) ; - GETNAME (GxB_MIN_ISLT_UINT32) ; - GETNAME (GxB_MIN_ISLT_UINT64) ; - GETNAME (GxB_MIN_ISLT_FP32) ; - GETNAME (GxB_MIN_ISLT_FP64) ; - - GETNAME (GxB_MAX_ISLT_INT8) ; - GETNAME (GxB_MAX_ISLT_INT16) ; - GETNAME (GxB_MAX_ISLT_INT32) ; - GETNAME (GxB_MAX_ISLT_INT64) ; - GETNAME (GxB_MAX_ISLT_UINT8) ; - GETNAME (GxB_MAX_ISLT_UINT16) ; - GETNAME (GxB_MAX_ISLT_UINT32) ; - GETNAME (GxB_MAX_ISLT_UINT64) ; - GETNAME (GxB_MAX_ISLT_FP32) ; - GETNAME (GxB_MAX_ISLT_FP64) ; - - GETNAME (GxB_PLUS_ISLT_INT8) ; - GETNAME (GxB_PLUS_ISLT_INT16) ; - GETNAME (GxB_PLUS_ISLT_INT32) ; - GETNAME (GxB_PLUS_ISLT_INT64) ; - GETNAME (GxB_PLUS_ISLT_UINT8) ; - GETNAME (GxB_PLUS_ISLT_UINT16) ; - GETNAME (GxB_PLUS_ISLT_UINT32) ; - GETNAME (GxB_PLUS_ISLT_UINT64) ; - GETNAME (GxB_PLUS_ISLT_FP32) ; - GETNAME (GxB_PLUS_ISLT_FP64) ; - - GETNAME (GxB_TIMES_ISLT_INT8) ; - GETNAME (GxB_TIMES_ISLT_INT16) ; - GETNAME (GxB_TIMES_ISLT_INT32) ; - GETNAME (GxB_TIMES_ISLT_INT64) ; - GETNAME (GxB_TIMES_ISLT_UINT8) ; - GETNAME (GxB_TIMES_ISLT_UINT16) ; - GETNAME (GxB_TIMES_ISLT_UINT32) ; - GETNAME (GxB_TIMES_ISLT_UINT64) ; - GETNAME (GxB_TIMES_ISLT_FP32) ; - GETNAME (GxB_TIMES_ISLT_FP64) ; - - GETNAME (GxB_ANY_ISLT_INT8) ; - GETNAME (GxB_ANY_ISLT_INT16) ; - GETNAME (GxB_ANY_ISLT_INT32) ; - GETNAME (GxB_ANY_ISLT_INT64) ; - GETNAME (GxB_ANY_ISLT_UINT8) ; - GETNAME (GxB_ANY_ISLT_UINT16) ; - GETNAME (GxB_ANY_ISLT_UINT32) ; - GETNAME (GxB_ANY_ISLT_UINT64) ; - GETNAME (GxB_ANY_ISLT_FP32) ; - GETNAME (GxB_ANY_ISLT_FP64) ; - - //-------------------------------------------------------------------------- - // *_ISGE - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_ISGE_INT8) ; - GETNAME (GxB_MIN_ISGE_INT16) ; - GETNAME (GxB_MIN_ISGE_INT32) ; - GETNAME (GxB_MIN_ISGE_INT64) ; - GETNAME (GxB_MIN_ISGE_UINT8) ; - GETNAME (GxB_MIN_ISGE_UINT16) ; - GETNAME (GxB_MIN_ISGE_UINT32) ; - GETNAME (GxB_MIN_ISGE_UINT64) ; - GETNAME (GxB_MIN_ISGE_FP32) ; - GETNAME (GxB_MIN_ISGE_FP64) ; - - GETNAME (GxB_MAX_ISGE_INT8) ; - GETNAME (GxB_MAX_ISGE_INT16) ; - GETNAME (GxB_MAX_ISGE_INT32) ; - GETNAME (GxB_MAX_ISGE_INT64) ; - GETNAME (GxB_MAX_ISGE_UINT8) ; - GETNAME (GxB_MAX_ISGE_UINT16) ; - GETNAME (GxB_MAX_ISGE_UINT32) ; - GETNAME (GxB_MAX_ISGE_UINT64) ; - GETNAME (GxB_MAX_ISGE_FP32) ; - GETNAME (GxB_MAX_ISGE_FP64) ; - - GETNAME (GxB_PLUS_ISGE_INT8) ; - GETNAME (GxB_PLUS_ISGE_INT16) ; - GETNAME (GxB_PLUS_ISGE_INT32) ; - GETNAME (GxB_PLUS_ISGE_INT64) ; - GETNAME (GxB_PLUS_ISGE_UINT8) ; - GETNAME (GxB_PLUS_ISGE_UINT16) ; - GETNAME (GxB_PLUS_ISGE_UINT32) ; - GETNAME (GxB_PLUS_ISGE_UINT64) ; - GETNAME (GxB_PLUS_ISGE_FP32) ; - GETNAME (GxB_PLUS_ISGE_FP64) ; - - GETNAME (GxB_TIMES_ISGE_INT8) ; - GETNAME (GxB_TIMES_ISGE_INT16) ; - GETNAME (GxB_TIMES_ISGE_INT32) ; - GETNAME (GxB_TIMES_ISGE_INT64) ; - GETNAME (GxB_TIMES_ISGE_UINT8) ; - GETNAME (GxB_TIMES_ISGE_UINT16) ; - GETNAME (GxB_TIMES_ISGE_UINT32) ; - GETNAME (GxB_TIMES_ISGE_UINT64) ; - GETNAME (GxB_TIMES_ISGE_FP32) ; - GETNAME (GxB_TIMES_ISGE_FP64) ; - - GETNAME (GxB_ANY_ISGE_INT8) ; - GETNAME (GxB_ANY_ISGE_INT16) ; - GETNAME (GxB_ANY_ISGE_INT32) ; - GETNAME (GxB_ANY_ISGE_INT64) ; - GETNAME (GxB_ANY_ISGE_UINT8) ; - GETNAME (GxB_ANY_ISGE_UINT16) ; - GETNAME (GxB_ANY_ISGE_UINT32) ; - GETNAME (GxB_ANY_ISGE_UINT64) ; - GETNAME (GxB_ANY_ISGE_FP32) ; - GETNAME (GxB_ANY_ISGE_FP64) ; - - //-------------------------------------------------------------------------- - // *_ISLE - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_ISLE_INT8) ; - GETNAME (GxB_MIN_ISLE_INT16) ; - GETNAME (GxB_MIN_ISLE_INT32) ; - GETNAME (GxB_MIN_ISLE_INT64) ; - GETNAME (GxB_MIN_ISLE_UINT8) ; - GETNAME (GxB_MIN_ISLE_UINT16) ; - GETNAME (GxB_MIN_ISLE_UINT32) ; - GETNAME (GxB_MIN_ISLE_UINT64) ; - GETNAME (GxB_MIN_ISLE_FP32) ; - GETNAME (GxB_MIN_ISLE_FP64) ; - - GETNAME (GxB_MAX_ISLE_INT8) ; - GETNAME (GxB_MAX_ISLE_INT16) ; - GETNAME (GxB_MAX_ISLE_INT32) ; - GETNAME (GxB_MAX_ISLE_INT64) ; - GETNAME (GxB_MAX_ISLE_UINT8) ; - GETNAME (GxB_MAX_ISLE_UINT16) ; - GETNAME (GxB_MAX_ISLE_UINT32) ; - GETNAME (GxB_MAX_ISLE_UINT64) ; - GETNAME (GxB_MAX_ISLE_FP32) ; - GETNAME (GxB_MAX_ISLE_FP64) ; - - GETNAME (GxB_PLUS_ISLE_INT8) ; - GETNAME (GxB_PLUS_ISLE_INT16) ; - GETNAME (GxB_PLUS_ISLE_INT32) ; - GETNAME (GxB_PLUS_ISLE_INT64) ; - GETNAME (GxB_PLUS_ISLE_UINT8) ; - GETNAME (GxB_PLUS_ISLE_UINT16) ; - GETNAME (GxB_PLUS_ISLE_UINT32) ; - GETNAME (GxB_PLUS_ISLE_UINT64) ; - GETNAME (GxB_PLUS_ISLE_FP32) ; - GETNAME (GxB_PLUS_ISLE_FP64) ; - - GETNAME (GxB_TIMES_ISLE_INT8) ; - GETNAME (GxB_TIMES_ISLE_INT16) ; - GETNAME (GxB_TIMES_ISLE_INT32) ; - GETNAME (GxB_TIMES_ISLE_INT64) ; - GETNAME (GxB_TIMES_ISLE_UINT8) ; - GETNAME (GxB_TIMES_ISLE_UINT16) ; - GETNAME (GxB_TIMES_ISLE_UINT32) ; - GETNAME (GxB_TIMES_ISLE_UINT64) ; - GETNAME (GxB_TIMES_ISLE_FP32) ; - GETNAME (GxB_TIMES_ISLE_FP64) ; - - GETNAME (GxB_ANY_ISLE_INT8) ; - GETNAME (GxB_ANY_ISLE_INT16) ; - GETNAME (GxB_ANY_ISLE_INT32) ; - GETNAME (GxB_ANY_ISLE_INT64) ; - GETNAME (GxB_ANY_ISLE_UINT8) ; - GETNAME (GxB_ANY_ISLE_UINT16) ; - GETNAME (GxB_ANY_ISLE_UINT32) ; - GETNAME (GxB_ANY_ISLE_UINT64) ; - GETNAME (GxB_ANY_ISLE_FP32) ; - GETNAME (GxB_ANY_ISLE_FP64) ; - - //-------------------------------------------------------------------------- - // *_LOR - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_LOR_INT8) ; - GETNAME (GxB_MIN_LOR_INT16) ; - GETNAME (GxB_MIN_LOR_INT32) ; - GETNAME (GxB_MIN_LOR_INT64) ; - GETNAME (GxB_MIN_LOR_UINT8) ; - GETNAME (GxB_MIN_LOR_UINT16) ; - GETNAME (GxB_MIN_LOR_UINT32) ; - GETNAME (GxB_MIN_LOR_UINT64) ; - GETNAME (GxB_MIN_LOR_FP32) ; - GETNAME (GxB_MIN_LOR_FP64) ; - - GETNAME (GxB_MAX_LOR_INT8) ; - GETNAME (GxB_MAX_LOR_INT16) ; - GETNAME (GxB_MAX_LOR_INT32) ; - GETNAME (GxB_MAX_LOR_INT64) ; - GETNAME (GxB_MAX_LOR_UINT8) ; - GETNAME (GxB_MAX_LOR_UINT16) ; - GETNAME (GxB_MAX_LOR_UINT32) ; - GETNAME (GxB_MAX_LOR_UINT64) ; - GETNAME (GxB_MAX_LOR_FP32) ; - GETNAME (GxB_MAX_LOR_FP64) ; - - GETNAME (GxB_PLUS_LOR_INT8) ; - GETNAME (GxB_PLUS_LOR_INT16) ; - GETNAME (GxB_PLUS_LOR_INT32) ; - GETNAME (GxB_PLUS_LOR_INT64) ; - GETNAME (GxB_PLUS_LOR_UINT8) ; - GETNAME (GxB_PLUS_LOR_UINT16) ; - GETNAME (GxB_PLUS_LOR_UINT32) ; - GETNAME (GxB_PLUS_LOR_UINT64) ; - GETNAME (GxB_PLUS_LOR_FP32) ; - GETNAME (GxB_PLUS_LOR_FP64) ; - - GETNAME (GxB_TIMES_LOR_INT8) ; - GETNAME (GxB_TIMES_LOR_INT16) ; - GETNAME (GxB_TIMES_LOR_INT32) ; - GETNAME (GxB_TIMES_LOR_INT64) ; - GETNAME (GxB_TIMES_LOR_UINT8) ; - GETNAME (GxB_TIMES_LOR_UINT16) ; - GETNAME (GxB_TIMES_LOR_UINT32) ; - GETNAME (GxB_TIMES_LOR_UINT64) ; - GETNAME (GxB_TIMES_LOR_FP32) ; - GETNAME (GxB_TIMES_LOR_FP64) ; - - GETNAME (GxB_ANY_LOR_INT8) ; - GETNAME (GxB_ANY_LOR_INT16) ; - GETNAME (GxB_ANY_LOR_INT32) ; - GETNAME (GxB_ANY_LOR_INT64) ; - GETNAME (GxB_ANY_LOR_UINT8) ; - GETNAME (GxB_ANY_LOR_UINT16) ; - GETNAME (GxB_ANY_LOR_UINT32) ; - GETNAME (GxB_ANY_LOR_UINT64) ; - GETNAME (GxB_ANY_LOR_FP32) ; - GETNAME (GxB_ANY_LOR_FP64) ; - - GETNAME (GxB_LOR_LOR_BOOL) ; - GETNAME (GxB_LXOR_LOR_BOOL) ; - GETNAME (GxB_ANY_LOR_BOOL) ; - - GETNAM2 (GxB_LAND_LOR_BOOL, "GrB_LAND_LOR_SEMIRING_BOOL") ; - GETNAME (GrB_LAND_LOR_SEMIRING_BOOL) ; - - GETNAM2 (GxB_EQ_LOR_BOOL, "GrB_LXNOR_LOR_SEMIRING_BOOL") ; - GETNAME (GrB_LXNOR_LOR_SEMIRING_BOOL) ; - - //-------------------------------------------------------------------------- - // *_LAND - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_LAND_INT8) ; - GETNAME (GxB_MIN_LAND_INT16) ; - GETNAME (GxB_MIN_LAND_INT32) ; - GETNAME (GxB_MIN_LAND_INT64) ; - GETNAME (GxB_MIN_LAND_UINT8) ; - GETNAME (GxB_MIN_LAND_UINT16) ; - GETNAME (GxB_MIN_LAND_UINT32) ; - GETNAME (GxB_MIN_LAND_UINT64) ; - GETNAME (GxB_MIN_LAND_FP32) ; - GETNAME (GxB_MIN_LAND_FP64) ; - - GETNAME (GxB_MAX_LAND_INT8) ; - GETNAME (GxB_MAX_LAND_INT16) ; - GETNAME (GxB_MAX_LAND_INT32) ; - GETNAME (GxB_MAX_LAND_INT64) ; - GETNAME (GxB_MAX_LAND_UINT8) ; - GETNAME (GxB_MAX_LAND_UINT16) ; - GETNAME (GxB_MAX_LAND_UINT32) ; - GETNAME (GxB_MAX_LAND_UINT64) ; - GETNAME (GxB_MAX_LAND_FP32) ; - GETNAME (GxB_MAX_LAND_FP64) ; - - GETNAME (GxB_PLUS_LAND_INT8) ; - GETNAME (GxB_PLUS_LAND_INT16) ; - GETNAME (GxB_PLUS_LAND_INT32) ; - GETNAME (GxB_PLUS_LAND_INT64) ; - GETNAME (GxB_PLUS_LAND_UINT8) ; - GETNAME (GxB_PLUS_LAND_UINT16) ; - GETNAME (GxB_PLUS_LAND_UINT32) ; - GETNAME (GxB_PLUS_LAND_UINT64) ; - GETNAME (GxB_PLUS_LAND_FP32) ; - GETNAME (GxB_PLUS_LAND_FP64) ; - - GETNAME (GxB_TIMES_LAND_INT8) ; - GETNAME (GxB_TIMES_LAND_INT16) ; - GETNAME (GxB_TIMES_LAND_INT32) ; - GETNAME (GxB_TIMES_LAND_INT64) ; - GETNAME (GxB_TIMES_LAND_UINT8) ; - GETNAME (GxB_TIMES_LAND_UINT16) ; - GETNAME (GxB_TIMES_LAND_UINT32) ; - GETNAME (GxB_TIMES_LAND_UINT64) ; - GETNAME (GxB_TIMES_LAND_FP32) ; - GETNAME (GxB_TIMES_LAND_FP64) ; - - GETNAME (GxB_ANY_LAND_INT8) ; - GETNAME (GxB_ANY_LAND_INT16) ; - GETNAME (GxB_ANY_LAND_INT32) ; - GETNAME (GxB_ANY_LAND_INT64) ; - GETNAME (GxB_ANY_LAND_UINT8) ; - GETNAME (GxB_ANY_LAND_UINT16) ; - GETNAME (GxB_ANY_LAND_UINT32) ; - GETNAME (GxB_ANY_LAND_UINT64) ; - GETNAME (GxB_ANY_LAND_FP32) ; - GETNAME (GxB_ANY_LAND_FP64) ; - - GETNAME (GxB_LAND_LAND_BOOL) ; - GETNAME (GxB_ANY_LAND_BOOL) ; - GETNAME (GxB_EQ_LAND_BOOL) ; - - GETNAM2 (GxB_LOR_LAND_BOOL, "GrB_LOR_LAND_SEMIRING_BOOL") ; - GETNAME (GrB_LOR_LAND_SEMIRING_BOOL) ; - - GETNAM2 (GxB_LXOR_LAND_BOOL, "GrB_LXOR_LAND_SEMIRING_BOOL") ; - GETNAME (GrB_LXOR_LAND_SEMIRING_BOOL) ; - - //-------------------------------------------------------------------------- - // *_LXOR - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_LXOR_INT8) ; - GETNAME (GxB_MIN_LXOR_INT16) ; - GETNAME (GxB_MIN_LXOR_INT32) ; - GETNAME (GxB_MIN_LXOR_INT64) ; - GETNAME (GxB_MIN_LXOR_UINT8) ; - GETNAME (GxB_MIN_LXOR_UINT16) ; - GETNAME (GxB_MIN_LXOR_UINT32) ; - GETNAME (GxB_MIN_LXOR_UINT64) ; - GETNAME (GxB_MIN_LXOR_FP32) ; - GETNAME (GxB_MIN_LXOR_FP64) ; - - GETNAME (GxB_MAX_LXOR_INT8) ; - GETNAME (GxB_MAX_LXOR_INT16) ; - GETNAME (GxB_MAX_LXOR_INT32) ; - GETNAME (GxB_MAX_LXOR_INT64) ; - GETNAME (GxB_MAX_LXOR_UINT8) ; - GETNAME (GxB_MAX_LXOR_UINT16) ; - GETNAME (GxB_MAX_LXOR_UINT32) ; - GETNAME (GxB_MAX_LXOR_UINT64) ; - GETNAME (GxB_MAX_LXOR_FP32) ; - GETNAME (GxB_MAX_LXOR_FP64) ; - - GETNAME (GxB_PLUS_LXOR_INT8) ; - GETNAME (GxB_PLUS_LXOR_INT16) ; - GETNAME (GxB_PLUS_LXOR_INT32) ; - GETNAME (GxB_PLUS_LXOR_INT64) ; - GETNAME (GxB_PLUS_LXOR_UINT8) ; - GETNAME (GxB_PLUS_LXOR_UINT16) ; - GETNAME (GxB_PLUS_LXOR_UINT32) ; - GETNAME (GxB_PLUS_LXOR_UINT64) ; - GETNAME (GxB_PLUS_LXOR_FP32) ; - GETNAME (GxB_PLUS_LXOR_FP64) ; - - GETNAME (GxB_TIMES_LXOR_INT8) ; - GETNAME (GxB_TIMES_LXOR_INT16) ; - GETNAME (GxB_TIMES_LXOR_INT32) ; - GETNAME (GxB_TIMES_LXOR_INT64) ; - GETNAME (GxB_TIMES_LXOR_UINT8) ; - GETNAME (GxB_TIMES_LXOR_UINT16) ; - GETNAME (GxB_TIMES_LXOR_UINT32) ; - GETNAME (GxB_TIMES_LXOR_UINT64) ; - GETNAME (GxB_TIMES_LXOR_FP32) ; - GETNAME (GxB_TIMES_LXOR_FP64) ; - - GETNAME (GxB_ANY_LXOR_INT8) ; - GETNAME (GxB_ANY_LXOR_INT16) ; - GETNAME (GxB_ANY_LXOR_INT32) ; - GETNAME (GxB_ANY_LXOR_INT64) ; - GETNAME (GxB_ANY_LXOR_UINT8) ; - GETNAME (GxB_ANY_LXOR_UINT16) ; - GETNAME (GxB_ANY_LXOR_UINT32) ; - GETNAME (GxB_ANY_LXOR_UINT64) ; - GETNAME (GxB_ANY_LXOR_FP32) ; - GETNAME (GxB_ANY_LXOR_FP64) ; - - GETNAME (GxB_LOR_LXOR_BOOL) ; - GETNAME (GxB_LAND_LXOR_BOOL) ; - GETNAME (GxB_LXOR_LXOR_BOOL) ; - GETNAME (GxB_EQ_LXOR_BOOL) ; - GETNAME (GxB_ANY_LXOR_BOOL) ; - - //-------------------------------------------------------------------------- - // *_EQ - //-------------------------------------------------------------------------- - - GETNAME (GxB_LOR_EQ_INT8) ; - GETNAME (GxB_LOR_EQ_INT16) ; - GETNAME (GxB_LOR_EQ_INT32) ; - GETNAME (GxB_LOR_EQ_INT64) ; - GETNAME (GxB_LOR_EQ_UINT8) ; - GETNAME (GxB_LOR_EQ_UINT16) ; - GETNAME (GxB_LOR_EQ_UINT32) ; - GETNAME (GxB_LOR_EQ_UINT64) ; - GETNAME (GxB_LOR_EQ_FP32) ; - GETNAME (GxB_LOR_EQ_FP64) ; - - GETNAME (GxB_LAND_EQ_INT8) ; - GETNAME (GxB_LAND_EQ_INT16) ; - GETNAME (GxB_LAND_EQ_INT32) ; - GETNAME (GxB_LAND_EQ_INT64) ; - GETNAME (GxB_LAND_EQ_UINT8) ; - GETNAME (GxB_LAND_EQ_UINT16) ; - GETNAME (GxB_LAND_EQ_UINT32) ; - GETNAME (GxB_LAND_EQ_UINT64) ; - GETNAME (GxB_LAND_EQ_FP32) ; - GETNAME (GxB_LAND_EQ_FP64) ; - - GETNAME (GxB_LXOR_EQ_INT8) ; - GETNAME (GxB_LXOR_EQ_INT16) ; - GETNAME (GxB_LXOR_EQ_INT32) ; - GETNAME (GxB_LXOR_EQ_INT64) ; - GETNAME (GxB_LXOR_EQ_UINT8) ; - GETNAME (GxB_LXOR_EQ_UINT16) ; - GETNAME (GxB_LXOR_EQ_UINT32) ; - GETNAME (GxB_LXOR_EQ_UINT64) ; - GETNAME (GxB_LXOR_EQ_FP32) ; - GETNAME (GxB_LXOR_EQ_FP64) ; - - GETNAME (GxB_EQ_EQ_INT8) ; - GETNAME (GxB_EQ_EQ_INT16) ; - GETNAME (GxB_EQ_EQ_INT32) ; - GETNAME (GxB_EQ_EQ_INT64) ; - GETNAME (GxB_EQ_EQ_UINT8) ; - GETNAME (GxB_EQ_EQ_UINT16) ; - GETNAME (GxB_EQ_EQ_UINT32) ; - GETNAME (GxB_EQ_EQ_UINT64) ; - GETNAME (GxB_EQ_EQ_FP32) ; - GETNAME (GxB_EQ_EQ_FP64) ; - - GETNAME (GxB_ANY_EQ_INT8) ; - GETNAME (GxB_ANY_EQ_INT16) ; - GETNAME (GxB_ANY_EQ_INT32) ; - GETNAME (GxB_ANY_EQ_INT64) ; - GETNAME (GxB_ANY_EQ_UINT8) ; - GETNAME (GxB_ANY_EQ_UINT16) ; - GETNAME (GxB_ANY_EQ_UINT32) ; - GETNAME (GxB_ANY_EQ_UINT64) ; - GETNAME (GxB_ANY_EQ_FP32) ; - GETNAME (GxB_ANY_EQ_FP64) ; - - GETNAME (GxB_LOR_EQ_BOOL) ; - GETNAME (GxB_LAND_EQ_BOOL) ; - GETNAME (GxB_LXOR_EQ_BOOL) ; - GETNAME (GxB_EQ_EQ_BOOL) ; - GETNAME (GxB_ANY_EQ_BOOL) ; - - //-------------------------------------------------------------------------- - // *_NE - //-------------------------------------------------------------------------- - - GETNAME (GxB_LOR_NE_INT8) ; - GETNAME (GxB_LOR_NE_INT16) ; - GETNAME (GxB_LOR_NE_INT32) ; - GETNAME (GxB_LOR_NE_INT64) ; - GETNAME (GxB_LOR_NE_UINT8) ; - GETNAME (GxB_LOR_NE_UINT16) ; - GETNAME (GxB_LOR_NE_UINT32) ; - GETNAME (GxB_LOR_NE_UINT64) ; - GETNAME (GxB_LOR_NE_FP32) ; - GETNAME (GxB_LOR_NE_FP64) ; - - GETNAME (GxB_LAND_NE_INT8) ; - GETNAME (GxB_LAND_NE_INT16) ; - GETNAME (GxB_LAND_NE_INT32) ; - GETNAME (GxB_LAND_NE_INT64) ; - GETNAME (GxB_LAND_NE_UINT8) ; - GETNAME (GxB_LAND_NE_UINT16) ; - GETNAME (GxB_LAND_NE_UINT32) ; - GETNAME (GxB_LAND_NE_UINT64) ; - GETNAME (GxB_LAND_NE_FP32) ; - GETNAME (GxB_LAND_NE_FP64) ; - - GETNAME (GxB_LXOR_NE_INT8) ; - GETNAME (GxB_LXOR_NE_INT16) ; - GETNAME (GxB_LXOR_NE_INT32) ; - GETNAME (GxB_LXOR_NE_INT64) ; - GETNAME (GxB_LXOR_NE_UINT8) ; - GETNAME (GxB_LXOR_NE_UINT16) ; - GETNAME (GxB_LXOR_NE_UINT32) ; - GETNAME (GxB_LXOR_NE_UINT64) ; - GETNAME (GxB_LXOR_NE_FP32) ; - GETNAME (GxB_LXOR_NE_FP64) ; - - GETNAME (GxB_EQ_NE_INT8) ; - GETNAME (GxB_EQ_NE_INT16) ; - GETNAME (GxB_EQ_NE_INT32) ; - GETNAME (GxB_EQ_NE_INT64) ; - GETNAME (GxB_EQ_NE_UINT8) ; - GETNAME (GxB_EQ_NE_UINT16) ; - GETNAME (GxB_EQ_NE_UINT32) ; - GETNAME (GxB_EQ_NE_UINT64) ; - GETNAME (GxB_EQ_NE_FP32) ; - GETNAME (GxB_EQ_NE_FP64) ; - - GETNAME (GxB_ANY_NE_INT8) ; - GETNAME (GxB_ANY_NE_INT16) ; - GETNAME (GxB_ANY_NE_INT32) ; - GETNAME (GxB_ANY_NE_INT64) ; - GETNAME (GxB_ANY_NE_UINT8) ; - GETNAME (GxB_ANY_NE_UINT16) ; - GETNAME (GxB_ANY_NE_UINT32) ; - GETNAME (GxB_ANY_NE_UINT64) ; - GETNAME (GxB_ANY_NE_FP32) ; - GETNAME (GxB_ANY_NE_FP64) ; - - //-------------------------------------------------------------------------- - // *_GT - //-------------------------------------------------------------------------- - - GETNAME (GxB_LOR_GT_INT8) ; - GETNAME (GxB_LOR_GT_INT16) ; - GETNAME (GxB_LOR_GT_INT32) ; - GETNAME (GxB_LOR_GT_INT64) ; - GETNAME (GxB_LOR_GT_UINT8) ; - GETNAME (GxB_LOR_GT_UINT16) ; - GETNAME (GxB_LOR_GT_UINT32) ; - GETNAME (GxB_LOR_GT_UINT64) ; - GETNAME (GxB_LOR_GT_FP32) ; - GETNAME (GxB_LOR_GT_FP64) ; - - GETNAME (GxB_LAND_GT_INT8) ; - GETNAME (GxB_LAND_GT_INT16) ; - GETNAME (GxB_LAND_GT_INT32) ; - GETNAME (GxB_LAND_GT_INT64) ; - GETNAME (GxB_LAND_GT_UINT8) ; - GETNAME (GxB_LAND_GT_UINT16) ; - GETNAME (GxB_LAND_GT_UINT32) ; - GETNAME (GxB_LAND_GT_UINT64) ; - GETNAME (GxB_LAND_GT_FP32) ; - GETNAME (GxB_LAND_GT_FP64) ; - - GETNAME (GxB_LXOR_GT_INT8) ; - GETNAME (GxB_LXOR_GT_INT16) ; - GETNAME (GxB_LXOR_GT_INT32) ; - GETNAME (GxB_LXOR_GT_INT64) ; - GETNAME (GxB_LXOR_GT_UINT8) ; - GETNAME (GxB_LXOR_GT_UINT16) ; - GETNAME (GxB_LXOR_GT_UINT32) ; - GETNAME (GxB_LXOR_GT_UINT64) ; - GETNAME (GxB_LXOR_GT_FP32) ; - GETNAME (GxB_LXOR_GT_FP64) ; - - GETNAME (GxB_EQ_GT_INT8) ; - GETNAME (GxB_EQ_GT_INT16) ; - GETNAME (GxB_EQ_GT_INT32) ; - GETNAME (GxB_EQ_GT_INT64) ; - GETNAME (GxB_EQ_GT_UINT8) ; - GETNAME (GxB_EQ_GT_UINT16) ; - GETNAME (GxB_EQ_GT_UINT32) ; - GETNAME (GxB_EQ_GT_UINT64) ; - GETNAME (GxB_EQ_GT_FP32) ; - GETNAME (GxB_EQ_GT_FP64) ; - - GETNAME (GxB_ANY_GT_INT8) ; - GETNAME (GxB_ANY_GT_INT16) ; - GETNAME (GxB_ANY_GT_INT32) ; - GETNAME (GxB_ANY_GT_INT64) ; - GETNAME (GxB_ANY_GT_UINT8) ; - GETNAME (GxB_ANY_GT_UINT16) ; - GETNAME (GxB_ANY_GT_UINT32) ; - GETNAME (GxB_ANY_GT_UINT64) ; - GETNAME (GxB_ANY_GT_FP32) ; - GETNAME (GxB_ANY_GT_FP64) ; - - GETNAME (GxB_LOR_GT_BOOL) ; - GETNAME (GxB_LAND_GT_BOOL) ; - GETNAME (GxB_LXOR_GT_BOOL) ; - GETNAME (GxB_EQ_GT_BOOL) ; - GETNAME (GxB_ANY_GT_BOOL) ; - - //-------------------------------------------------------------------------- - // *_LT - //-------------------------------------------------------------------------- - - GETNAME (GxB_LOR_LT_INT8) ; - GETNAME (GxB_LOR_LT_INT16) ; - GETNAME (GxB_LOR_LT_INT32) ; - GETNAME (GxB_LOR_LT_INT64) ; - GETNAME (GxB_LOR_LT_UINT8) ; - GETNAME (GxB_LOR_LT_UINT16) ; - GETNAME (GxB_LOR_LT_UINT32) ; - GETNAME (GxB_LOR_LT_UINT64) ; - GETNAME (GxB_LOR_LT_FP32) ; - GETNAME (GxB_LOR_LT_FP64) ; - - GETNAME (GxB_LAND_LT_INT8) ; - GETNAME (GxB_LAND_LT_INT16) ; - GETNAME (GxB_LAND_LT_INT32) ; - GETNAME (GxB_LAND_LT_INT64) ; - GETNAME (GxB_LAND_LT_UINT8) ; - GETNAME (GxB_LAND_LT_UINT16) ; - GETNAME (GxB_LAND_LT_UINT32) ; - GETNAME (GxB_LAND_LT_UINT64) ; - GETNAME (GxB_LAND_LT_FP32) ; - GETNAME (GxB_LAND_LT_FP64) ; - - GETNAME (GxB_LXOR_LT_INT8) ; - GETNAME (GxB_LXOR_LT_INT16) ; - GETNAME (GxB_LXOR_LT_INT32) ; - GETNAME (GxB_LXOR_LT_INT64) ; - GETNAME (GxB_LXOR_LT_UINT8) ; - GETNAME (GxB_LXOR_LT_UINT16) ; - GETNAME (GxB_LXOR_LT_UINT32) ; - GETNAME (GxB_LXOR_LT_UINT64) ; - GETNAME (GxB_LXOR_LT_FP32) ; - GETNAME (GxB_LXOR_LT_FP64) ; - - GETNAME (GxB_EQ_LT_INT8) ; - GETNAME (GxB_EQ_LT_INT16) ; - GETNAME (GxB_EQ_LT_INT32) ; - GETNAME (GxB_EQ_LT_INT64) ; - GETNAME (GxB_EQ_LT_UINT8) ; - GETNAME (GxB_EQ_LT_UINT16) ; - GETNAME (GxB_EQ_LT_UINT32) ; - GETNAME (GxB_EQ_LT_UINT64) ; - GETNAME (GxB_EQ_LT_FP32) ; - GETNAME (GxB_EQ_LT_FP64) ; - - GETNAME (GxB_ANY_LT_INT8) ; - GETNAME (GxB_ANY_LT_INT16) ; - GETNAME (GxB_ANY_LT_INT32) ; - GETNAME (GxB_ANY_LT_INT64) ; - GETNAME (GxB_ANY_LT_UINT8) ; - GETNAME (GxB_ANY_LT_UINT16) ; - GETNAME (GxB_ANY_LT_UINT32) ; - GETNAME (GxB_ANY_LT_UINT64) ; - GETNAME (GxB_ANY_LT_FP32) ; - GETNAME (GxB_ANY_LT_FP64) ; - - GETNAME (GxB_LOR_LT_BOOL) ; - GETNAME (GxB_LAND_LT_BOOL) ; - GETNAME (GxB_LXOR_LT_BOOL) ; - GETNAME (GxB_EQ_LT_BOOL) ; - GETNAME (GxB_ANY_LT_BOOL) ; - - //-------------------------------------------------------------------------- - // *_GE - //-------------------------------------------------------------------------- - - GETNAME (GxB_LOR_GE_INT8) ; - GETNAME (GxB_LOR_GE_INT16) ; - GETNAME (GxB_LOR_GE_INT32) ; - GETNAME (GxB_LOR_GE_INT64) ; - GETNAME (GxB_LOR_GE_UINT8) ; - GETNAME (GxB_LOR_GE_UINT16) ; - GETNAME (GxB_LOR_GE_UINT32) ; - GETNAME (GxB_LOR_GE_UINT64) ; - GETNAME (GxB_LOR_GE_FP32) ; - GETNAME (GxB_LOR_GE_FP64) ; - - GETNAME (GxB_LAND_GE_INT8) ; - GETNAME (GxB_LAND_GE_INT16) ; - GETNAME (GxB_LAND_GE_INT32) ; - GETNAME (GxB_LAND_GE_INT64) ; - GETNAME (GxB_LAND_GE_UINT8) ; - GETNAME (GxB_LAND_GE_UINT16) ; - GETNAME (GxB_LAND_GE_UINT32) ; - GETNAME (GxB_LAND_GE_UINT64) ; - GETNAME (GxB_LAND_GE_FP32) ; - GETNAME (GxB_LAND_GE_FP64) ; - - GETNAME (GxB_LXOR_GE_INT8) ; - GETNAME (GxB_LXOR_GE_INT16) ; - GETNAME (GxB_LXOR_GE_INT32) ; - GETNAME (GxB_LXOR_GE_INT64) ; - GETNAME (GxB_LXOR_GE_UINT8) ; - GETNAME (GxB_LXOR_GE_UINT16) ; - GETNAME (GxB_LXOR_GE_UINT32) ; - GETNAME (GxB_LXOR_GE_UINT64) ; - GETNAME (GxB_LXOR_GE_FP32) ; - GETNAME (GxB_LXOR_GE_FP64) ; - - GETNAME (GxB_EQ_GE_INT8) ; - GETNAME (GxB_EQ_GE_INT16) ; - GETNAME (GxB_EQ_GE_INT32) ; - GETNAME (GxB_EQ_GE_INT64) ; - GETNAME (GxB_EQ_GE_UINT8) ; - GETNAME (GxB_EQ_GE_UINT16) ; - GETNAME (GxB_EQ_GE_UINT32) ; - GETNAME (GxB_EQ_GE_UINT64) ; - GETNAME (GxB_EQ_GE_FP32) ; - GETNAME (GxB_EQ_GE_FP64) ; - - GETNAME (GxB_ANY_GE_INT8) ; - GETNAME (GxB_ANY_GE_INT16) ; - GETNAME (GxB_ANY_GE_INT32) ; - GETNAME (GxB_ANY_GE_INT64) ; - GETNAME (GxB_ANY_GE_UINT8) ; - GETNAME (GxB_ANY_GE_UINT16) ; - GETNAME (GxB_ANY_GE_UINT32) ; - GETNAME (GxB_ANY_GE_UINT64) ; - GETNAME (GxB_ANY_GE_FP32) ; - GETNAME (GxB_ANY_GE_FP64) ; - - GETNAME (GxB_LOR_GE_BOOL) ; - GETNAME (GxB_LAND_GE_BOOL) ; - GETNAME (GxB_LXOR_GE_BOOL) ; - GETNAME (GxB_EQ_GE_BOOL) ; - GETNAME (GxB_ANY_GE_BOOL) ; - - //-------------------------------------------------------------------------- - // *_LE - //-------------------------------------------------------------------------- - - GETNAME (GxB_LOR_LE_INT8) ; - GETNAME (GxB_LOR_LE_INT16) ; - GETNAME (GxB_LOR_LE_INT32) ; - GETNAME (GxB_LOR_LE_INT64) ; - GETNAME (GxB_LOR_LE_UINT8) ; - GETNAME (GxB_LOR_LE_UINT16) ; - GETNAME (GxB_LOR_LE_UINT32) ; - GETNAME (GxB_LOR_LE_UINT64) ; - GETNAME (GxB_LOR_LE_FP32) ; - GETNAME (GxB_LOR_LE_FP64) ; - - GETNAME (GxB_LAND_LE_INT8) ; - GETNAME (GxB_LAND_LE_INT16) ; - GETNAME (GxB_LAND_LE_INT32) ; - GETNAME (GxB_LAND_LE_INT64) ; - GETNAME (GxB_LAND_LE_UINT8) ; - GETNAME (GxB_LAND_LE_UINT16) ; - GETNAME (GxB_LAND_LE_UINT32) ; - GETNAME (GxB_LAND_LE_UINT64) ; - GETNAME (GxB_LAND_LE_FP32) ; - GETNAME (GxB_LAND_LE_FP64) ; - - GETNAME (GxB_LXOR_LE_INT8) ; - GETNAME (GxB_LXOR_LE_INT16) ; - GETNAME (GxB_LXOR_LE_INT32) ; - GETNAME (GxB_LXOR_LE_INT64) ; - GETNAME (GxB_LXOR_LE_UINT8) ; - GETNAME (GxB_LXOR_LE_UINT16) ; - GETNAME (GxB_LXOR_LE_UINT32) ; - GETNAME (GxB_LXOR_LE_UINT64) ; - GETNAME (GxB_LXOR_LE_FP32) ; - GETNAME (GxB_LXOR_LE_FP64) ; - - GETNAME (GxB_EQ_LE_INT8) ; - GETNAME (GxB_EQ_LE_INT16) ; - GETNAME (GxB_EQ_LE_INT32) ; - GETNAME (GxB_EQ_LE_INT64) ; - GETNAME (GxB_EQ_LE_UINT8) ; - GETNAME (GxB_EQ_LE_UINT16) ; - GETNAME (GxB_EQ_LE_UINT32) ; - GETNAME (GxB_EQ_LE_UINT64) ; - GETNAME (GxB_EQ_LE_FP32) ; - GETNAME (GxB_EQ_LE_FP64) ; - - GETNAME (GxB_ANY_LE_INT8) ; - GETNAME (GxB_ANY_LE_INT16) ; - GETNAME (GxB_ANY_LE_INT32) ; - GETNAME (GxB_ANY_LE_INT64) ; - GETNAME (GxB_ANY_LE_UINT8) ; - GETNAME (GxB_ANY_LE_UINT16) ; - GETNAME (GxB_ANY_LE_UINT32) ; - GETNAME (GxB_ANY_LE_UINT64) ; - GETNAME (GxB_ANY_LE_FP32) ; - GETNAME (GxB_ANY_LE_FP64) ; - - GETNAME (GxB_LOR_LE_BOOL) ; - GETNAME (GxB_LAND_LE_BOOL) ; - GETNAME (GxB_LXOR_LE_BOOL) ; - GETNAME (GxB_EQ_LE_BOOL) ; - GETNAME (GxB_ANY_LE_BOOL) ; - - - //-------------------------------------------------------------------------- - // bitwise - //-------------------------------------------------------------------------- - - GETNAME (GxB_BOR_BOR_UINT8) ; - GETNAME (GxB_BOR_BOR_UINT16) ; - GETNAME (GxB_BOR_BOR_UINT32) ; - GETNAME (GxB_BOR_BOR_UINT64) ; - - GETNAME (GxB_BOR_BAND_UINT8) ; - GETNAME (GxB_BOR_BAND_UINT16) ; - GETNAME (GxB_BOR_BAND_UINT32) ; - GETNAME (GxB_BOR_BAND_UINT64) ; - - GETNAME (GxB_BOR_BXOR_UINT8) ; - GETNAME (GxB_BOR_BXOR_UINT16) ; - GETNAME (GxB_BOR_BXOR_UINT32) ; - GETNAME (GxB_BOR_BXOR_UINT64) ; - - GETNAME (GxB_BOR_BXNOR_UINT8) ; - GETNAME (GxB_BOR_BXNOR_UINT16) ; - GETNAME (GxB_BOR_BXNOR_UINT32) ; - GETNAME (GxB_BOR_BXNOR_UINT64) ; - - GETNAME (GxB_BAND_BOR_UINT8) ; - GETNAME (GxB_BAND_BOR_UINT16) ; - GETNAME (GxB_BAND_BOR_UINT32) ; - GETNAME (GxB_BAND_BOR_UINT64) ; - - GETNAME (GxB_BAND_BAND_UINT8) ; - GETNAME (GxB_BAND_BAND_UINT16) ; - GETNAME (GxB_BAND_BAND_UINT32) ; - GETNAME (GxB_BAND_BAND_UINT64) ; - - GETNAME (GxB_BAND_BXOR_UINT8) ; - GETNAME (GxB_BAND_BXOR_UINT16) ; - GETNAME (GxB_BAND_BXOR_UINT32) ; - GETNAME (GxB_BAND_BXOR_UINT64) ; - - GETNAME (GxB_BAND_BXNOR_UINT8) ; - GETNAME (GxB_BAND_BXNOR_UINT16) ; - GETNAME (GxB_BAND_BXNOR_UINT32) ; - GETNAME (GxB_BAND_BXNOR_UINT64) ; - - GETNAME (GxB_BXOR_BOR_UINT8) ; - GETNAME (GxB_BXOR_BOR_UINT16) ; - GETNAME (GxB_BXOR_BOR_UINT32) ; - GETNAME (GxB_BXOR_BOR_UINT64) ; - - GETNAME (GxB_BXOR_BAND_UINT8) ; - GETNAME (GxB_BXOR_BAND_UINT16) ; - GETNAME (GxB_BXOR_BAND_UINT32) ; - GETNAME (GxB_BXOR_BAND_UINT64) ; - - GETNAME (GxB_BXOR_BXOR_UINT8) ; - GETNAME (GxB_BXOR_BXOR_UINT16) ; - GETNAME (GxB_BXOR_BXOR_UINT32) ; - GETNAME (GxB_BXOR_BXOR_UINT64) ; - - GETNAME (GxB_BXOR_BXNOR_UINT8) ; - GETNAME (GxB_BXOR_BXNOR_UINT16) ; - GETNAME (GxB_BXOR_BXNOR_UINT32) ; - GETNAME (GxB_BXOR_BXNOR_UINT64) ; - - - GETNAME (GxB_BXNOR_BOR_UINT8) ; - GETNAME (GxB_BXNOR_BOR_UINT16) ; - GETNAME (GxB_BXNOR_BOR_UINT32) ; - GETNAME (GxB_BXNOR_BOR_UINT64) ; - - GETNAME (GxB_BXNOR_BAND_UINT8) ; - GETNAME (GxB_BXNOR_BAND_UINT16) ; - GETNAME (GxB_BXNOR_BAND_UINT32) ; - GETNAME (GxB_BXNOR_BAND_UINT64) ; - - GETNAME (GxB_BXNOR_BXOR_UINT8) ; - GETNAME (GxB_BXNOR_BXOR_UINT16) ; - GETNAME (GxB_BXNOR_BXOR_UINT32) ; - GETNAME (GxB_BXNOR_BXOR_UINT64) ; - - GETNAME (GxB_BXNOR_BXNOR_UINT8) ; - GETNAME (GxB_BXNOR_BXNOR_UINT16) ; - GETNAME (GxB_BXNOR_BXNOR_UINT32) ; - GETNAME (GxB_BXNOR_BXNOR_UINT64) ; - - //-------------------------------------------------------------------------- - // positional semirings - //-------------------------------------------------------------------------- - - GETNAME (GxB_MIN_FIRSTI_INT32) ; - GETNAME (GxB_MIN_FIRSTI_INT64) ; - - GETNAME (GxB_MAX_FIRSTI_INT32) ; - GETNAME (GxB_MAX_FIRSTI_INT64) ; - - GETNAME (GxB_ANY_FIRSTI_INT32) ; - GETNAME (GxB_ANY_FIRSTI_INT64) ; - - GETNAME (GxB_PLUS_FIRSTI_INT32) ; - GETNAME (GxB_PLUS_FIRSTI_INT64) ; - - GETNAME (GxB_TIMES_FIRSTI_INT32) ; - GETNAME (GxB_TIMES_FIRSTI_INT64) ; - - GETNAME (GxB_MIN_FIRSTI1_INT32) ; - GETNAME (GxB_MIN_FIRSTI1_INT64) ; - - GETNAME (GxB_MAX_FIRSTI1_INT32) ; - GETNAME (GxB_MAX_FIRSTI1_INT64) ; - - GETNAME (GxB_ANY_FIRSTI1_INT32) ; - GETNAME (GxB_ANY_FIRSTI1_INT64) ; - - GETNAME (GxB_PLUS_FIRSTI1_INT32) ; - GETNAME (GxB_PLUS_FIRSTI1_INT64) ; - - GETNAME (GxB_TIMES_FIRSTI1_INT32) ; - GETNAME (GxB_TIMES_FIRSTI1_INT64) ; - - GETNAM2 (GxB_MIN_FIRSTJ_INT32, "GxB_MIN_SECONDI_INT32") ; - GETNAM2 (GxB_MIN_FIRSTJ_INT64, "GxB_MIN_SECONDI_INT64") ; - - GETNAM2 (GxB_MAX_FIRSTJ_INT32, "GxB_MAX_SECONDI_INT32") ; - GETNAM2 (GxB_MAX_FIRSTJ_INT64, "GxB_MAX_SECONDI_INT64") ; - - GETNAM2 (GxB_ANY_FIRSTJ_INT32, "GxB_ANY_SECONDI_INT32") ; - GETNAM2 (GxB_ANY_FIRSTJ_INT64, "GxB_ANY_SECONDI_INT64") ; - - GETNAM2 (GxB_PLUS_FIRSTJ_INT32, "GxB_PLUS_SECONDI_INT32") ; - GETNAM2 (GxB_PLUS_FIRSTJ_INT64, "GxB_PLUS_SECONDI_INT64") ; - - GETNAM2 (GxB_TIMES_FIRSTJ_INT32, "GxB_TIMES_SECONDI_INT32") ; - GETNAM2 (GxB_TIMES_FIRSTJ_INT64, "GxB_TIMES_SECONDI_INT64") ; - - GETNAM2 (GxB_MIN_FIRSTJ1_INT32, "GxB_MIN_SECONDI1_INT32") ; - GETNAM2 (GxB_MIN_FIRSTJ1_INT64, "GxB_MIN_SECONDI1_INT64") ; - - GETNAM2 (GxB_MAX_FIRSTJ1_INT32, "GxB_MAX_SECONDI1_INT32") ; - GETNAM2 (GxB_MAX_FIRSTJ1_INT64, "GxB_MAX_SECONDI1_INT64") ; - - GETNAM2 (GxB_ANY_FIRSTJ1_INT32, "GxB_ANY_SECONDI1_INT32") ; - GETNAM2 (GxB_ANY_FIRSTJ1_INT64, "GxB_ANY_SECONDI1_INT64") ; - - GETNAM2 (GxB_PLUS_FIRSTJ1_INT32, "GxB_PLUS_SECONDI1_INT32") ; - GETNAM2 (GxB_PLUS_FIRSTJ1_INT64, "GxB_PLUS_SECONDI1_INT64") ; - - GETNAM2 (GxB_TIMES_FIRSTJ1_INT32, "GxB_TIMES_SECONDI1_INT32") ; - GETNAM2 (GxB_TIMES_FIRSTJ1_INT64, "GxB_TIMES_SECONDI1_INT64") ; - - GETNAME (GxB_MIN_SECONDI_INT32) ; - GETNAME (GxB_MIN_SECONDI_INT64) ; - - GETNAME (GxB_MAX_SECONDI_INT32) ; - GETNAME (GxB_MAX_SECONDI_INT64) ; - - GETNAME (GxB_ANY_SECONDI_INT32) ; - GETNAME (GxB_ANY_SECONDI_INT64) ; - - GETNAME (GxB_PLUS_SECONDI_INT32) ; - GETNAME (GxB_PLUS_SECONDI_INT64) ; - - GETNAME (GxB_TIMES_SECONDI_INT32) ; - GETNAME (GxB_TIMES_SECONDI_INT64) ; - - GETNAME (GxB_MIN_SECONDI1_INT32) ; - GETNAME (GxB_MIN_SECONDI1_INT64) ; - - GETNAME (GxB_MAX_SECONDI1_INT32) ; - GETNAME (GxB_MAX_SECONDI1_INT64) ; - - GETNAME (GxB_ANY_SECONDI1_INT32) ; - GETNAME (GxB_ANY_SECONDI1_INT64) ; - - GETNAME (GxB_PLUS_SECONDI1_INT32) ; - GETNAME (GxB_PLUS_SECONDI1_INT64) ; - - GETNAME (GxB_TIMES_SECONDI1_INT32) ; - GETNAME (GxB_TIMES_SECONDI1_INT64) ; - - GETNAME (GxB_MIN_SECONDJ_INT32) ; - GETNAME (GxB_MIN_SECONDJ_INT64) ; - - GETNAME (GxB_MAX_SECONDJ_INT32) ; - GETNAME (GxB_MAX_SECONDJ_INT64) ; - - GETNAME (GxB_ANY_SECONDJ_INT32) ; - GETNAME (GxB_ANY_SECONDJ_INT64) ; - - GETNAME (GxB_PLUS_SECONDJ_INT32) ; - GETNAME (GxB_PLUS_SECONDJ_INT64) ; - - GETNAME (GxB_TIMES_SECONDJ_INT32) ; - GETNAME (GxB_TIMES_SECONDJ_INT64) ; - - GETNAME (GxB_MIN_SECONDJ1_INT32) ; - GETNAME (GxB_MIN_SECONDJ1_INT64) ; - - GETNAME (GxB_MAX_SECONDJ1_INT32) ; - GETNAME (GxB_MAX_SECONDJ1_INT64) ; - - GETNAME (GxB_ANY_SECONDJ1_INT32) ; - GETNAME (GxB_ANY_SECONDJ1_INT64) ; - - GETNAME (GxB_PLUS_SECONDJ1_INT32) ; - GETNAME (GxB_PLUS_SECONDJ1_INT64) ; - - GETNAME (GxB_TIMES_SECONDJ1_INT32) ; - GETNAME (GxB_TIMES_SECONDJ1_INT64) ; - - //-------------------------------------------------------------------------- - // other methods - //-------------------------------------------------------------------------- - - OK (GrB_Semiring_get_INT32_(GrB_PLUS_TIMES_SEMIRING_FP32, &code, - GrB_INPUT1TYPE_CODE)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_Semiring_get_SIZE_(GrB_PLUS_TIMES_SEMIRING_FP32, &size, - GrB_INPUT1TYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - - OK (GrB_Semiring_get_String_(GrB_PLUS_TIMES_SEMIRING_FP32, name, - GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GrB_Semiring_get_SIZE_(GrB_MAX_PLUS_SEMIRING_INT32, &size, - GrB_INPUT2TYPE_STRING)) ; - CHECK (size == strlen ("GrB_INT32") + 1) ; - - OK (GrB_Semiring_get_String_(GrB_MAX_PLUS_SEMIRING_INT32, name, - GrB_INPUT2TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_INT32")) ; - - OK (GrB_Semiring_get_INT32_(GrB_PLUS_TIMES_SEMIRING_FP64, &code, - GrB_OUTPUTTYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_Semiring_get_SIZE_(GrB_PLUS_TIMES_SEMIRING_FP64, &size, - GrB_OUTPUTTYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP64") + 1) ; - - OK (GrB_Semiring_get_String_(GrB_PLUS_TIMES_SEMIRING_FP64, name, - GrB_OUTPUTTYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP64")) ; - - OK (GrB_Semiring_get_Scalar_(GrB_PLUS_TIMES_SEMIRING_FP32, s_int32, - GrB_INPUT1TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_FP32_CODE) ; - - OK (GrB_Semiring_get_Scalar_(GrB_LOR_LAND_SEMIRING_BOOL, s_int32, - GrB_OUTPUTTYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - OK (GrB_Semiring_get_INT32_(GrB_PLUS_TIMES_SEMIRING_FP64, &code, - GrB_INPUT2TYPE_CODE)) ; - CHECK (code == GrB_FP64_CODE) ; - - OK (GrB_Semiring_get_Scalar_(GrB_LOR_LAND_SEMIRING_BOOL, s_int32, - GrB_INPUT2TYPE_CODE)) ; - OK (GrB_Scalar_extractElement_INT32_(&code, s_int32)) ; - CHECK (code == GrB_BOOL_CODE) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Semiring_get_INT32_(GrB_LOR_LAND_SEMIRING_BOOL, &code, - GrB_NAME)) ; - ERR (GrB_Semiring_get_String_(GrB_PLUS_TIMES_SEMIRING_INT32, name, - 999)) ; - - 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_set_String_(times, "mytimes", GrB_NAME)) ; - METHOD (GrB_BinaryOp_set_String (times, MYTIMES_DEFN, GxB_JIT_C_DEFINITION)) ; - - OK (GrB_BinaryOp_new (&add, 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)) ; - - OK (GrB_Monoid_new_FP32 (&monoid, add, (float) 0.0)) ; - OK (GrB_Monoid_get_SIZE_(monoid, &size, GrB_NAME)) ; - OK (GrB_Monoid_get_String_(monoid, name, GrB_NAME)) ; - printf ("\nuser monoid: [%s]:%d\n", name, size) ; - CHECK (MATCH (name, "")) ; - CHECK (size == 1) ; - OK (GxB_print (monoid, 3)) ; - - OK (GrB_Semiring_new (&semiring, monoid, times)) ; - - OK (GrB_Semiring_get_SIZE_(semiring, &size, GrB_INPUT1TYPE_STRING)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - OK (GrB_Semiring_get_String(semiring, name, GrB_INPUT1TYPE_STRING)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Semiring_get_SIZE_(semiring, &size, GrB_INPUT1TYPE_CODE)) ; - ERR (GrB_Semiring_set_String_(GrB_MAX_TIMES_SEMIRING_INT32, "stuff", - GrB_NAME)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Semiring_set_Scalar_(semiring, s_int32, 0)) ; - ERR (GrB_Semiring_set_INT32_(semiring, 0, 0)) ; - ERR (GrB_Semiring_set_VOID_(semiring, nothing, 0, 0)) ; - - OK (GrB_Semiring_get_String_(semiring, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - OK (GrB_Semiring_set_String_(semiring, "stuff", GrB_NAME)) ; - OK (GrB_Semiring_get_String_(semiring, name, GrB_NAME)) ; - CHECK (MATCH (name, "stuff")) ; - OK (GrB_Semiring_get_SIZE_(semiring, &size, GrB_NAME)) ; - CHECK (size == strlen (name) + 1) ; - OK (GxB_print (semiring, 3)) ; - - expected = GrB_ALREADY_SET ; - ERR (GrB_Semiring_set_String_(semiring, "another user name", GrB_NAME)) ; - printf (" test GrB_ALREADY_SET: ok\n") ; - - printf ("\nsemiring with terminal monoid:\n") ; - int32_t id_int32 ; - OK (GrB_Semiring_get_String_(GrB_MAX_TIMES_SEMIRING_INT32, - name, GrB_NAME)) ; - OK (GxB_Semiring_fprint (GrB_MAX_TIMES_SEMIRING_INT32, name, 3, NULL)) ; - OK (GrB_Monoid_get_Scalar_ (GrB_MAX_TIMES_SEMIRING_INT32, s_int32, - GxB_MONOID_IDENTITY)) ; - OK (GrB_Scalar_nvals (&nvals, s_int32)) ; - CHECK (nvals == 1) ; - OK (GrB_Scalar_extractElement_INT32_(&id_int32, s_int32)) ; - CHECK (id_int32 == INT32_MIN) ; - - int32_t term_int32 ; - OK (GrB_Monoid_get_Scalar_ (GrB_MAX_TIMES_SEMIRING_INT32, s_int32, - GxB_MONOID_TERMINAL)) ; - OK (GrB_Scalar_extractElement_INT32_(&term_int32, s_int32)) ; - CHECK (term_int32 == INT32_MAX) ; - - op = NULL ; - OK (GrB_Semiring_get_SIZE_ (semiring, &size, GxB_MONOID_OPERATOR)) ; - CHECK (size == sizeof (GrB_BinaryOp)) ; - OK (GrB_Semiring_get_VOID (semiring, (void *) (&op), GxB_MONOID_OPERATOR)) ; - CHECK (op == add) ; - OK (GrB_Semiring_get_VOID_ (GrB_PLUS_TIMES_SEMIRING_INT32, (void *) &op, - GxB_MONOID_OPERATOR)) ; - CHECK (op == GrB_PLUS_INT32) ; - - OK (GrB_Semiring_get_SIZE_ (semiring, &size, GxB_SEMIRING_MONOID)) ; - CHECK (size == sizeof (GrB_Monoid)) ; - - OK (GrB_Semiring_get_SIZE_ (semiring, &size, GxB_SEMIRING_MULTIPLY)) ; - CHECK (size == sizeof (GrB_BinaryOp)) ; - - OK (GrB_Semiring_get_VOID_ (semiring, (void *) (&mon), - GxB_SEMIRING_MONOID)) ; - CHECK (mon == monoid) ; - - OK (GrB_Semiring_get_VOID_ (semiring, (void *) (&op), - GxB_SEMIRING_MULTIPLY)) ; - CHECK (op == times) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&add) ; - GrB_free (×) ; - GrB_free (&monoid) ; - GrB_free (&semiring) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test32: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test33.c b/Test/GB_mex_test33.c deleted file mode 100644 index 00a459d468..0000000000 --- a/Test/GB_mex_test33.c +++ /dev/null @@ -1,155 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test33: test GrB_get and GrB_set (context) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test33" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Matrix A = NULL ; - GrB_Vector v = NULL ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GxB_Context context = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GxB_Context get/set - //-------------------------------------------------------------------------- - - int32_t nthreads1 = 999, nthreads2 = 777 ; - GxB_get (GxB_NTHREADS, &nthreads1) ; - printf ("nthreads: %d\n", nthreads1) ; - - OK (GxB_Context_get_INT_ (GxB_CONTEXT_WORLD, &nthreads2, GxB_NTHREADS)) ; - printf ("nthreads: %d\n", nthreads2) ; - CHECK (nthreads1 == nthreads2) ; - - OK (GxB_Context_set_INT_ (GxB_CONTEXT_WORLD, 7, GxB_NTHREADS)) ; - OK (GxB_Context_get_INT_ (GxB_CONTEXT_WORLD, &nthreads2, GxB_NTHREADS)) ; - CHECK (nthreads2 == 7) ; - - OK (GxB_Global_Option_get (GxB_NTHREADS, &i)) ; - CHECK (i == 7) ; - - OK (GrB_Scalar_setElement_FP64 (s_int32, 31)) ; - OK (GxB_Context_set_Scalar_ (GxB_CONTEXT_WORLD, s_int32, GxB_NTHREADS)) ; - OK (GxB_Context_get_Scalar_ (GxB_CONTEXT_WORLD, s_fp64, GxB_NTHREADS)) ; - OK (GrB_Scalar_extractElement_FP64 (&dvalue, s_fp64)) ; - CHECK (dvalue == 31) ; - - GxB_set (GxB_NTHREADS, nthreads1) ; - - int32_t gpu ; - OK (GxB_Context_get_INT_ (GxB_CONTEXT_WORLD, &gpu, GxB_GPU_ID)) ; - CHECK (gpu == -1) ; - - gpu = 4 ; - OK (GxB_Context_set_INT_ (GxB_CONTEXT_WORLD, 3, GxB_GPU_ID)) ; - OK (GxB_Context_get_INT_ (GxB_CONTEXT_WORLD, &gpu, GxB_GPU_ID)) ; - CHECK (gpu == -1) ; - - OK (GxB_Context_set_Scalar_ (GxB_CONTEXT_WORLD, s_int32, GxB_GPU_ID)) ; - OK (GxB_Context_get_Scalar_ (GxB_CONTEXT_WORLD, s_fp64, GxB_GPU_ID)) ; - OK (GrB_Scalar_extractElement_FP64 (&dvalue, s_fp64)) ; - CHECK (dvalue == -1) ; - - double chunk ; - OK (GxB_Context_get_Scalar_ (GxB_CONTEXT_WORLD, s_fp64, GxB_CHUNK)) ; - OK (GrB_Scalar_extractElement_FP64 (&chunk, s_fp64)) ; - printf ("chunk: %g\n", chunk) ; - - OK (GrB_Scalar_setElement_FP64 (s_fp64, 2048)) ; - OK (GxB_Context_set_Scalar_ (GxB_CONTEXT_WORLD, s_fp64, GxB_CHUNK)) ; - OK (GxB_Context_get_Scalar_ (GxB_CONTEXT_WORLD, s_fp32, GxB_CHUNK)) ; - OK (GrB_Scalar_extractElement_FP32 (&fvalue, s_fp32)) ; - CHECK (fvalue == 2048) ; - printf ("new chunk: %g\n", fvalue) ; - - OK (GxB_Context_get_SIZE_ (GxB_CONTEXT_WORLD, &size, GrB_NAME)) ; - CHECK (size == GxB_MAX_NAME_LEN) ; - OK (GxB_Context_get_String_ (GxB_CONTEXT_WORLD, name, GrB_NAME)) ; - printf ("name of world [%s]\n", name) ; - CHECK (MATCH (name, "GxB_CONTEXT_WORLD")) ; - - expected = GrB_INVALID_VALUE ; - ERR (GxB_Context_set_String_ (GxB_CONTEXT_WORLD, "newname", GrB_NAME)) ; - 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)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GxB_Context_get_VOID_ (GxB_CONTEXT_WORLD, nothing, 0)) ; - ERR (GxB_Context_set_VOID_ (GxB_CONTEXT_WORLD, nothing, 0, 0)) ; - ERR (GxB_Context_get_String_ (GxB_CONTEXT_WORLD, name, 999)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GxB_Context_get_INT_ (GxB_CONTEXT_WORLD, &i, GrB_NAME)) ; - ERR (GxB_Context_get_Scalar_ (GxB_CONTEXT_WORLD, s_fp32, GrB_NAME)) ; - ERR (GxB_Context_set_INT_ (GxB_CONTEXT_WORLD, 7, GrB_NAME)) ; - ERR (GxB_Context_set_Scalar_ (GxB_CONTEXT_WORLD, s_fp64, GrB_NAME)) ; - - expected = GrB_EMPTY_OBJECT ; - OK (GrB_Scalar_clear (s_int32)) ; - ERR (GxB_Context_set_Scalar_ (GxB_CONTEXT_WORLD, s_int32, GxB_NTHREADS)) ; - - OK (GxB_Context_new (&context)) ; - OK (GxB_Context_get_String_ (context, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - OK (GxB_Context_set_String_ (context, "another_name", GrB_NAME)) ; - OK (GxB_Context_get_String_ (context, name, GrB_NAME)) ; - CHECK (MATCH (name, "another_name")) ; - OK (GxB_Context_get_SIZE_ (context, &size, GrB_NAME)) ; - CHECK (size == strlen (name) + 1) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&A) ; - GrB_free (&v) ; - GrB_free (&s) ; - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&context) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test33: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test34.c b/Test/GB_mex_test34.c deleted file mode 100644 index 4ec290378b..0000000000 --- a/Test/GB_mex_test34.c +++ /dev/null @@ -1,466 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test34: test GrB_get and GrB_set (descriptor) -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test34" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -#define DGET(desc,value,field) \ -{ \ - OK (GrB_Descriptor_get_INT32 (desc, &i, field)) ; \ - CHECK (i == value) ; \ - OK (GrB_Scalar_clear (s_int32)) ; \ - OK (GrB_Descriptor_get_Scalar (desc, s_int32, field)) ; \ - int32_t iscalar = -1 ; \ - OK (GrB_Scalar_extractElement_INT32 (&iscalar, s_int32)) ; \ - CHECK (iscalar == value) ; \ - OK (GrB_Descriptor_get_SIZE (desc, &size, GrB_NAME)) ; \ - CHECK (size == GxB_MAX_NAME_LEN) ; \ - OK (GrB_Descriptor_get_String (desc, name, GrB_NAME)) ; \ - CHECK (MATCH (name, #desc)) ; \ -} - -#define DSET(desc,value,field) \ -{ \ - OK (GrB_Descriptor_set_INT32 (desc, GrB_DEFAULT, field)) ; \ - OK (GrB_Descriptor_set_INT32 (desc, value, field)) ; \ - int32_t i2 ; \ - OK (GrB_Descriptor_get_INT32 (desc, &i2, field)) ; \ - CHECK (i2 == value) ; \ - OK (GrB_Descriptor_set_INT32 (desc, GrB_DEFAULT, field)) ; \ - OK (GrB_Scalar_setElement_INT32 (s_int32, value)) ; \ - OK (GrB_Descriptor_set_Scalar (desc, s_int32, field)) ; \ - int32_t i3 ; \ - OK (GrB_Descriptor_get_INT32 (desc, &i2, field)) ; \ - CHECK (i2 == value) ; \ -} - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Matrix A = NULL ; - GrB_Vector v = NULL ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_Descriptor desc = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size ; - char name [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GrB_Descriptor get/set - //-------------------------------------------------------------------------- - -#if 0 - - // OUTP MASK MASK INP0 INP1 - // structural complement - // =========== ============== ========== ======== ======== - -// GrB_NULL // - - - - - -GrB_DESC_T1 , // - - - - GrB_TRAN -GrB_DESC_T0 , // - - - GrB_TRAN - -GrB_DESC_T0T1 , // - - - GrB_TRAN GrB_TRAN - -GrB_DESC_C , // - - GrB_COMP - - -GrB_DESC_CT1 , // - - GrB_COMP - GrB_TRAN -GrB_DESC_CT0 , // - - GrB_COMP GrB_TRAN - -GrB_DESC_CT0T1 , // - - GrB_COMP GrB_TRAN GrB_TRAN - -GrB_DESC_S , // - GrB_STRUCTURE - - - -GrB_DESC_ST1 , // - GrB_STRUCTURE - - GrB_TRAN -GrB_DESC_ST0 , // - GrB_STRUCTURE - GrB_TRAN - -GrB_DESC_ST0T1 , // - GrB_STRUCTURE - GrB_TRAN GrB_TRAN - -GrB_DESC_SC , // - GrB_STRUCTURE GrB_COMP - - -GrB_DESC_SCT1 , // - GrB_STRUCTURE GrB_COMP - GrB_TRAN -GrB_DESC_SCT0 , // - GrB_STRUCTURE GrB_COMP GrB_TRAN - -GrB_DESC_SCT0T1 , // - GrB_STRUCTURE GrB_COMP GrB_TRAN GrB_TRAN - -GrB_DESC_R , // GrB_REPLACE - - - - -GrB_DESC_RT1 , // GrB_REPLACE - - - GrB_TRAN -GrB_DESC_RT0 , // GrB_REPLACE - - GrB_TRAN - -GrB_DESC_RT0T1 , // GrB_REPLACE - - GrB_TRAN GrB_TRAN - -GrB_DESC_RC , // GrB_REPLACE - GrB_COMP - - -GrB_DESC_RCT1 , // GrB_REPLACE - GrB_COMP - GrB_TRAN -GrB_DESC_RCT0 , // GrB_REPLACE - GrB_COMP GrB_TRAN - -GrB_DESC_RCT0T1 , // GrB_REPLACE - GrB_COMP GrB_TRAN GrB_TRAN - -GrB_DESC_RS , // GrB_REPLACE GrB_STRUCTURE - - - -GrB_DESC_RST1 , // GrB_REPLACE GrB_STRUCTURE - - GrB_TRAN -GrB_DESC_RST0 , // GrB_REPLACE GrB_STRUCTURE - GrB_TRAN - -GrB_DESC_RST0T1 , // GrB_REPLACE GrB_STRUCTURE - GrB_TRAN GrB_TRAN - -GrB_DESC_RSC , // GrB_REPLACE GrB_STRUCTURE GrB_COMP - - -GrB_DESC_RSCT1 , // GrB_REPLACE GrB_STRUCTURE GrB_COMP - GrB_TRAN -GrB_DESC_RSCT0 , // GrB_REPLACE GrB_STRUCTURE GrB_COMP GrB_TRAN - -GrB_DESC_RSCT0T1 ; // GrB_REPLACE GrB_STRUCTURE GrB_COMP GrB_TRAN GrB_TRAN - -#endif - - DGET (GrB_NULL , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_T1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_T0 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_T0T1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_C , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_CT1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_CT0 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_CT0T1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_S , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_ST1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_ST0 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_ST0T1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_SC , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_SCT1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_SCT0 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_SCT0T1 , GrB_DEFAULT, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_R , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RT1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RT0 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RT0T1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_RC , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RCT1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RCT0 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RCT0T1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_RS , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RST1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RST0 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RST0T1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - - DGET (GrB_DESC_RSC , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RSCT1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RSCT0 , GrB_REPLACE, GrB_OUTP_FIELD) ; - DGET (GrB_DESC_RSCT0T1 , GrB_REPLACE, GrB_OUTP_FIELD) ; - - - - DGET (GrB_NULL , GrB_DEFAULT, GrB_MASK_FIELD) ; - DGET (GrB_DESC_T1 , GrB_DEFAULT, GrB_MASK_FIELD) ; - DGET (GrB_DESC_T0 , GrB_DEFAULT, GrB_MASK_FIELD) ; - DGET (GrB_DESC_T0T1 , GrB_DEFAULT, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_C , GrB_COMP, GrB_MASK_FIELD) ; - DGET (GrB_DESC_CT1 , GrB_COMP, GrB_MASK_FIELD) ; - DGET (GrB_DESC_CT0 , GrB_COMP, GrB_MASK_FIELD) ; - DGET (GrB_DESC_CT0T1 , GrB_COMP, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_S , GrB_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_ST1 , GrB_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_ST0 , GrB_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_ST0T1 , GrB_STRUCTURE, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_SC , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_SCT1 , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_SCT0 , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_SCT0T1 , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_R , GrB_DEFAULT, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RT1 , GrB_DEFAULT, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RT0 , GrB_DEFAULT, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RT0T1 , GrB_DEFAULT, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_RC , GrB_COMP, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RCT1 , GrB_COMP, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RCT0 , GrB_COMP, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RCT0T1 , GrB_COMP, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_RS , GrB_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RST1 , GrB_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RST0 , GrB_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RST0T1 , GrB_STRUCTURE, GrB_MASK_FIELD) ; - - DGET (GrB_DESC_RSC , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RSCT1 , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RSCT0 , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - DGET (GrB_DESC_RSCT0T1 , GrB_COMP_STRUCTURE, GrB_MASK_FIELD) ; - - - - DGET (GrB_NULL , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_T1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_T0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_T0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_C , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_CT1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_CT0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_CT0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_S , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_ST1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_ST0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_ST0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_SC , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_SCT1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_SCT0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_SCT0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_R , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RT1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RT0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_RT0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_RC , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RCT1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RCT0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_RCT0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_RS , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RST1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RST0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_RST0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - DGET (GrB_DESC_RSC , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RSCT1 , GrB_DEFAULT, GrB_INP0_FIELD) ; - DGET (GrB_DESC_RSCT0 , GrB_TRAN , GrB_INP0_FIELD) ; - DGET (GrB_DESC_RSCT0T1 , GrB_TRAN , GrB_INP0_FIELD) ; - - - DGET (GrB_NULL , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_T1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_T0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_T0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_C , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_CT1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_CT0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_CT0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_S , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_ST1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_ST0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_ST0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_SC , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_SCT1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_SCT0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_SCT0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_R , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RT1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_RT0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RT0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_RC , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RCT1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_RCT0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RCT0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_RS , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RST1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_RST0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RST0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - DGET (GrB_DESC_RSC , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RSCT1 , GrB_TRAN , GrB_INP1_FIELD) ; - DGET (GrB_DESC_RSCT0 , GrB_DEFAULT, GrB_INP1_FIELD) ; - DGET (GrB_DESC_RSCT0T1 , GrB_TRAN , GrB_INP1_FIELD) ; - - - for (int field = GxB_AxB_METHOD ; field <= GxB_IMPORT ; field++) - { - DGET (GrB_NULL , GrB_DEFAULT, field) ; - DGET (GrB_DESC_T1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_T0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_T0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_C , GrB_DEFAULT, field) ; - DGET (GrB_DESC_CT1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_CT0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_CT0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_S , GrB_DEFAULT, field) ; - DGET (GrB_DESC_ST1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_ST0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_ST0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_SC , GrB_DEFAULT, field) ; - DGET (GrB_DESC_SCT1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_SCT0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_SCT0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_R , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RT1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RT0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RT0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_RC , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RCT1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RCT0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RCT0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_RS , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RST1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RST0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RST0T1 , GrB_DEFAULT, field) ; - - DGET (GrB_DESC_RSC , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RSCT1 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RSCT0 , GrB_DEFAULT, field) ; - DGET (GrB_DESC_RSCT0T1 , GrB_DEFAULT, field) ; - } - - OK (GrB_Descriptor_get_String (NULL, name, GrB_NAME)) ; - CHECK (MATCH (name, "GrB_NULL")) ; - - //-------------------------------------------------------------------------- - - OK (GrB_Descriptor_new (&desc)) ; - - DSET (desc, GrB_REPLACE, GrB_OUTP_FIELD) ; - DSET (desc, GrB_DEFAULT, GrB_OUTP_FIELD) ; - - DSET (desc, GrB_REPLACE, GrB_OUTP) ; - DSET (desc, GrB_DEFAULT, GrB_OUTP) ; - - DSET (desc, GrB_COMP , GrB_MASK_FIELD) ; - DSET (desc, GrB_STRUCTURE , GrB_MASK_FIELD) ; - DSET (desc, GrB_COMP_STRUCTURE , GrB_MASK_FIELD) ; - DSET (desc, GrB_DEFAULT , GrB_MASK_FIELD) ; - - DSET (desc, GrB_COMP , GrB_MASK) ; - DSET (desc, GrB_STRUCTURE , GrB_MASK) ; - DSET (desc, GrB_COMP_STRUCTURE , GrB_MASK) ; - DSET (desc, GrB_DEFAULT , GrB_MASK) ; - - DSET (desc, GrB_TRAN , GrB_INP0) ; - DSET (desc, GrB_DEFAULT , GrB_INP0) ; - - DSET (desc, GrB_TRAN , GrB_INP1) ; - DSET (desc, GrB_DEFAULT , GrB_INP1) ; - - DSET (desc, GxB_AxB_GUSTAVSON , GxB_AxB_METHOD) ; - DSET (desc, GxB_AxB_DOT , GxB_AxB_METHOD) ; - DSET (desc, GxB_AxB_HASH , GxB_AxB_METHOD) ; - DSET (desc, GxB_AxB_SAXPY , GxB_AxB_METHOD) ; - DSET (desc, GrB_DEFAULT , GxB_AxB_METHOD) ; - - DSET (desc, 1 , GxB_SORT) ; - DSET (desc, GrB_DEFAULT , GxB_SORT) ; - - DSET (desc, 1 , GxB_COMPRESSION) ; - DSET (desc, GrB_DEFAULT , GxB_COMPRESSION) ; - - DSET (desc, GxB_FAST_IMPORT , GxB_IMPORT) ; - DSET (desc, GxB_SECURE_IMPORT , GxB_IMPORT) ; - DSET (desc, GrB_DEFAULT , GxB_IMPORT) ; - - OK (GrB_Descriptor_get_String_ (desc, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - OK (GrB_Descriptor_set_String_ (desc, "user_name", GrB_NAME)) ; - OK (GrB_Descriptor_get_String_ (desc, name, GrB_NAME)) ; - printf ("got name: [%s]\n", name) ; - CHECK (MATCH (name, "user_name")) ; - OK (GrB_Descriptor_set_String_ (desc, "", GrB_NAME)) ; - OK (GrB_Descriptor_get_String_ (desc, name, GrB_NAME)) ; - printf ("got name: [%s]\n", name) ; - CHECK (MATCH (name, "")) ; - METHOD (GrB_Descriptor_set_String_ (desc, "yet another name", GrB_NAME)) ; - OK (GrB_Descriptor_get_String_ (desc, name, GrB_NAME)) ; - printf ("got name: [%s]\n", name) ; - CHECK (MATCH (name, "yet another name")) ; - OK (GrB_Descriptor_get_SIZE_ (desc, &size, GrB_NAME)) ; - CHECK (size == strlen (name) + 1) ; - - //-------------------------------------------------------------------------- - // error handling - //-------------------------------------------------------------------------- - - printf ("\nerror handling:\n") ; - expected = GrB_INVALID_VALUE ; - ERR (GrB_Descriptor_get_VOID_ (GrB_DESC_T1, nothing, GrB_NAME)) ; - ERR (GrB_Descriptor_set_VOID_ (desc, nothing, 0, 0)) ; - - 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_ (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)) ; - OK (GrB_Descriptor_error (&err, desc)) ; - printf ("error: %s\n\n", err) ; - - ERR (GrB_Descriptor_set_INT32_ (desc, 998, GrB_MASK)) ; - OK (GrB_Descriptor_error (&err, desc)) ; - printf ("error: %s\n\n", err) ; - - ERR (GrB_Descriptor_set_INT32_ (desc, 997, GrB_INP0)) ; - OK (GrB_Descriptor_error (&err, desc)) ; - printf ("error: %s\n\n", err) ; - - ERR (GrB_Descriptor_set_INT32_ (desc, 996, GrB_INP1)) ; - OK (GrB_Descriptor_error (&err, desc)) ; - printf ("error: %s\n\n", err) ; - - ERR (GrB_Descriptor_set_INT32_ (desc, 995, 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)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Descriptor_set_VOID_ (desc, nothing, 0, 0)) ; - ERR (GrB_Descriptor_get_VOID_ (desc, nothing, 0)) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&A) ; - GrB_free (&v) ; - GrB_free (&s) ; - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&desc) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test34: all tests passed\n\n") ; -} - diff --git a/Test/GB_mex_test35.c b/Test/GB_mex_test35.c deleted file mode 100644 index 1b7807581c..0000000000 --- a/Test/GB_mex_test35.c +++ /dev/null @@ -1,316 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_mex_test35: test GrB_get for a serialized blob -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_mex.h" -#include "GB_mex_errors.h" - -#define USAGE "GB_mex_test35" - -#define FREE_ALL ; -#define GET_DEEP_COPY ; -#define FREE_DEEP_COPY ; - -typedef struct { int32_t stuff ; } mytype ; -#define MYTYPE_DEFN \ -"typedef struct { int32_t stuff ; } mytype ;" - -void mexFunction -( - int nargout, - mxArray *pargout [ ], - int nargin, - const mxArray *pargin [ ] -) -{ - - //-------------------------------------------------------------------------- - // startup GraphBLAS - //-------------------------------------------------------------------------- - - GrB_Info info, expected ; - bool malloc_debug = GB_mx_get_global (true) ; - GrB_Matrix A = NULL ; - GrB_Scalar s = NULL, s_fp64 = NULL, s_int32 = NULL, s_fp32 = NULL ; - GrB_Type type = NULL ; - uint8_t stuff [256] ; - void *nothing = stuff ; - size_t size, blob_size = 0 ; - char name [256] ; - char defn [2048] ; - int32_t code, i ; - float fvalue ; - double dvalue ; - void *blob = NULL ; - - OK (GrB_Scalar_new (&s_fp64, GrB_FP64)) ; - OK (GrB_Scalar_new (&s_fp32, GrB_FP32)) ; - OK (GrB_Scalar_new (&s_int32, GrB_INT32)) ; - - //-------------------------------------------------------------------------- - // GxB_Serialized_get - //-------------------------------------------------------------------------- - - OK (GrB_Matrix_new (&A, GrB_FP32, 5, 5)) ; - OK (GrB_Matrix_setElement (A, 0, 0, 1)) ; - OK (GrB_Matrix_wait (A, GrB_MATERIALIZE)) ; - OK (GxB_Matrix_serialize (&blob, &blob_size, A, NULL)) ; - - expected = GrB_INVALID_VALUE ; - ERR (GxB_Serialized_get_VOID_(blob, nothing, 0, blob_size)) ; - - OK (GxB_Serialized_get_SIZE_(blob, &size, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - OK (GxB_Serialized_get_String_(blob, name, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GxB_Serialized_get_SIZE_(blob, &size, GxB_JIT_C_NAME, blob_size)) ; - CHECK (size == strlen ("float") + 1) ; - OK (GxB_Serialized_get_String_(blob, name, GxB_JIT_C_NAME, blob_size)) ; - CHECK (MATCH (name, "float")) ; - - OK (GxB_Serialized_get_String_(blob, name, GrB_NAME, blob_size)) ; - CHECK (MATCH (name, "")) ; - - OK (GxB_Serialized_get_String_(blob, name, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - - OK (GxB_Serialized_get_SIZE_(blob, &size, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - - OK (GxB_Serialized_get_INT32_(blob, &code, GrB_ELTYPE_CODE, blob_size)) ; - CHECK (code == GrB_FP32_CODE) ; - - i = -1 ; - OK (GxB_Serialized_get_Scalar_(blob, s_int32, GrB_ELTYPE_CODE, blob_size)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GrB_FP32_CODE) ; - - OK (GxB_Serialized_get_INT32_(blob, &i, GrB_STORAGE_ORIENTATION_HINT, - blob_size)) ; - printf ("blob storage: %d\n", i) ; - CHECK (i == GrB_COLMAJOR) ; - - OK (GxB_Serialized_get_INT32_(blob, &i, 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)) ; - printf ("blob sparsity control: %d\n", i) ; - CHECK (i == GxB_AUTO_SPARSITY) ; - - OK (GrB_assign (A, NULL, NULL, 1, GrB_ALL, 5, GrB_ALL, 5, NULL)) ; - OK (GrB_Matrix_wait (A, GrB_MATERIALIZE)) ; - - OK (GrB_Matrix_get_String_ (A, name, GxB_JIT_C_NAME)) ; - CHECK (MATCH (name, "float")) ; - - OK (GrB_Matrix_get_SIZE_(A, &size, GrB_NAME)) ; - CHECK (size == 1) ; - OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; - CHECK (MATCH (name, "")) ; - - OK (GrB_Matrix_set_String_(A, "A matrix", GrB_NAME)) ; - OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; - CHECK (MATCH (name, "A matrix")) ; - - // 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_INT32_(blob, &i, GxB_SPARSITY_STATUS, blob_size)) ; - printf ("blob sparsity status: %d\n", i) ; - CHECK (i == GxB_FULL) ; - - OK (GxB_Serialized_get_String_ (blob, name, GrB_NAME, blob_size)) ; - printf ("name: [%s]\n", name) ; - CHECK (MATCH (name, "A matrix")) ; - OK (GxB_Serialized_get_String_ (blob, &size, GrB_NAME, blob_size)) ; - CHECK (size == strlen ("A matrix") + 1) ; - - OK (GxB_Serialized_get_String_ (blob, name, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (MATCH (name, "GrB_FP32")) ; - OK (GxB_Serialized_get_String_(blob, &size, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (size == strlen ("GrB_FP32") + 1) ; - - OK (GxB_Serialized_get_String_ (blob, name, GxB_JIT_C_NAME, blob_size)) ; - CHECK (MATCH (name, "float")) ; - OK (GxB_Serialized_get_String_ (blob, &size, GxB_JIT_C_NAME, blob_size)) ; - CHECK (size == strlen ("float") + 1) ; - - expected = GrB_INVALID_VALUE ; - ERR (GxB_Serialized_get_INT32_(blob, &i, 0, blob_size)) ; - ERR (GxB_Serialized_get_SIZE_(blob, &size, 0, blob_size)) ; - - fvalue = -1 ; - OK (GxB_Serialized_get_Scalar_(blob, s_fp32, 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) ; - - OK (GrB_Matrix_set_INT32_(A, GxB_BITMAP, GxB_SPARSITY_CONTROL)) ; - - // 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_String_(A, name, GxB_JIT_C_NAME)) ; - - OK (GxB_Serialized_get_INT32_(blob, &i, 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)) ; - - // 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 (GrB_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; - printf ("blob hyper switch: %g\n", dvalue) ; - CHECK (abs (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)) ; - CHECK (i == GxB_BY_ROW) ; - // GxB_print (A, 3) ; - - // 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_INT32_(blob, &i, GrB_STORAGE_ORIENTATION_HINT, - blob_size)) ; - CHECK (i == GrB_ROWMAJOR) ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; - CHECK (i == GxB_BY_ROW) ; - // GxB_print (A, 3) ; - - expected = GrB_INVALID_VALUE ; - ERR (GrB_Matrix_get_String_(A, defn, 999)) ; - ERR (GrB_Matrix_get_Scalar(A, s_int32, 999)) ; - - OK (GrB_Matrix_get_SIZE_(A, &size, GrB_NAME)) ; - CHECK (size == strlen ("A matrix") + 1) ; - - expected = GrB_INVALID_OBJECT ; - uint8_t *b = (uint8_t *) blob ; - ERR (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, 20)) ; - b [0]++ ; - ERR (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; - b [0]-- ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; - CHECK (i == GxB_BY_ROW) ; - - OK (GxB_Serialized_get_Scalar_(blob, s_int32, GrB_STORAGE_ORIENTATION_HINT, - blob_size)) ; - 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 (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GxB_BY_ROW) ; - - OK (GxB_Serialized_get_Scalar_(blob, s_int32, 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, - blob_size)) ; - OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; - CHECK (i == GxB_BITMAP) ; - - expected = GrB_INVALID_VALUE ; - ERR (GxB_Serialized_get_Scalar_(blob, s_int32, GrB_NAME, blob_size)) ; - ERR (GxB_Serialized_get_Scalar_(blob, name, 9999, blob_size)) ; - - OK (GrB_Type_new (&type, sizeof (mytype))) ; - OK (GrB_Type_set_String_ (type, "mytype", GxB_JIT_C_NAME)) ; - OK (GrB_Type_set_String_ (type, MYTYPE_DEFN, GxB_JIT_C_DEFINITION)) ; - GrB_free (&A) ; - - int32_t one = 1 ; - OK (GrB_Matrix_new (&A, type, 5, 5)) ; - OK (GrB_Matrix_setElement (A, (void *) &one, 0, 0)) ; - OK (GrB_Matrix_wait (A, GrB_MATERIALIZE)) ; - OK (GxB_print (A, 3)) ; - OK (GxB_Matrix_serialize (&blob, &blob_size, A, NULL)) ; - - // 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_String_(blob, name, GrB_NAME, blob_size)) ; - CHECK (MATCH (name, "")) ; - - OK (GxB_Serialized_get_String_(blob, name, GxB_JIT_C_NAME, blob_size)) ; - CHECK (MATCH (name, "mytype")) ; - - OK (GxB_Serialized_get_String_(blob, name, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (MATCH (name, "")) ; - - GrB_free (&A) ; - GrB_free (&type) ; - OK (GrB_Type_new (&type, sizeof (mytype))) ; - 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_String_(A, "A hyper", GrB_NAME)) ; - OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; - printf ("name [%s]\n", name) ; - CHECK (MATCH (name, "A hyper")) ; - GxB_print (A, 3) ; - - // 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_String_(blob, name, GxB_JIT_C_NAME, blob_size)) ; - CHECK (MATCH (name, "")) ; - OK (GxB_Serialized_get_String_(blob, name, GrB_NAME, blob_size)) ; - printf ("name [%s]\n", name) ; - CHECK (MATCH (name, "A hyper")) ; - - OK (GrB_Type_set_String_ (type, "mytype", GxB_JIT_C_NAME)) ; - OK (GrB_Type_set_String_ (type, "my type", GrB_NAME)) ; - - // 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_String_(blob, name, GxB_JIT_C_NAME, blob_size)) ; - CHECK (MATCH (name, "mytype")) ; - OK (GxB_Serialized_get_String_(blob, name, GrB_ELTYPE_STRING, blob_size)) ; - CHECK (MATCH (name, "my type")) ; - OK (GxB_Serialized_get_String_(blob, name, GrB_NAME, blob_size)) ; - printf ("name [%s]\n", name) ; - CHECK (MATCH (name, "A hyper")) ; - - //-------------------------------------------------------------------------- - // finalize GraphBLAS - //-------------------------------------------------------------------------- - - GrB_free (&A) ; - GrB_free (&s) ; - GrB_free (&s_fp64) ; - GrB_free (&s_fp32) ; - GrB_free (&s_int32) ; - GrB_free (&type) ; - if (blob != NULL) mxFree (blob) ; - GB_mx_put_global (true) ; - printf ("\nGB_mex_test35: all tests passed.\n\n") ; -} - diff --git a/Test/GB_mex_test5.c b/Test/GB_mex_test5.c index 7d48a17de0..a794b031ce 100644 --- a/Test/GB_mex_test5.c +++ b/Test/GB_mex_test5.c @@ -547,12 +547,20 @@ void mexFunction OK (GrB_IndexUnaryOp_wait_ (Banded, GrB_MATERIALIZE)) ; OK (GxB_IndexUnaryOp_fprint (Banded, "banded", 3, NULL)) ; +// #undef GrB_IndexUnaryOp_new +// #undef GrM_IndexUnaryOp_new +// OK (GRB (IndexUnaryOp_new) (&UpperBanded, +// (GxB_index_unary_function) upperbanded_idx, +// GrB_BOOL, GrB_INT64, GrB_INT64)) ; OK (GxB_IndexUnaryOp_new (&UpperBanded, (GxB_index_unary_function) upperbanded_idx, GrB_BOOL, GrB_INT64, GrB_INT64, "upperbanded_idx", UPPERBANDED_IDX_DEFN)) ; OK (GxB_IndexUnaryOp_fprint (UpperBanded, "upperbanded", 3, NULL)) ; +// OK (GRB (IndexUnaryOp_new) (&UpperBanded_int64, +// (GxB_index_unary_function) upperbanded_idx_int64, +// GrB_INT64, GrB_INT64, GrB_INT64)) ; OK (GxB_IndexUnaryOp_new (&UpperBanded_int64, (GxB_index_unary_function) upperbanded_idx_int64, GrB_INT64, GrB_INT64, GrB_INT64, @@ -1232,7 +1240,7 @@ void mexFunction expected = GrB_DOMAIN_MISMATCH ; printf ("(1)------------------------------------------------\n") ; - OK (GrB_IndexUnaryOp_new (&Gunk, + OK (GRB (IndexUnaryOp_new) (&Gunk, (GxB_index_unary_function) donothing, MyType, MyType, MyType)) ; ERR (GrB_Matrix_select_Scalar (A, NULL, NULL, Gunk, A, scalar, NULL)) ; OK (GrB_Matrix_error_ (&err, A)) ; @@ -1240,7 +1248,7 @@ void mexFunction OK (GrB_IndexUnaryOp_free_ (&Gunk)) ; printf ("(2)------------------------------------------------\n") ; - OK (GrB_IndexUnaryOp_new (&Gunk, + OK (GRB (IndexUnaryOp_new) (&Gunk, (GxB_index_unary_function) donothing, GrB_BOOL, MyType, MyType)) ; ERR (GrB_Matrix_select_Scalar (A, NULL, NULL, Gunk, A, scalar, NULL)) ; OK (GrB_Matrix_error_ (&err, A)) ; @@ -1248,7 +1256,7 @@ void mexFunction OK (GrB_IndexUnaryOp_free_ (&Gunk)) ; printf ("(3)------------------------------------------------\n") ; - OK (GrB_IndexUnaryOp_new (&Gunk, + OK (GRB (IndexUnaryOp_new) (&Gunk, (GxB_index_unary_function) donothing, GrB_BOOL, GrB_FP64, MyType)) ; ERR (GrB_Matrix_select_Scalar (A, NULL, NULL, Gunk, A, scalar, NULL)) ; OK (GrB_Matrix_error_ (&err, A)) ; @@ -1256,7 +1264,7 @@ void mexFunction OK (GrB_IndexUnaryOp_free_ (&Gunk)) ; printf ("(4)------------------------------------------------\n") ; - OK (GrB_IndexUnaryOp_new (&Gunk, + OK (GRB (IndexUnaryOp_new) (&Gunk, (GxB_index_unary_function) donothing, MyType, GrB_FP64, GrB_FP64)) ; ERR (GrB_Matrix_select_Scalar (A, NULL, NULL, Gunk, A, scalar, NULL)) ; OK (GrB_Matrix_error_ (&err, A)) ; diff --git a/Test/GB_mex_test7.c b/Test/GB_mex_test7.c index cffd16f7aa..c9340ffe46 100644 --- a/Test/GB_mex_test7.c +++ b/Test/GB_mex_test7.c @@ -29,7 +29,6 @@ void mexFunction GrB_Info info ; GrB_Matrix A = NULL, B = NULL, Y_mangled = NULL, Y = NULL, C1 = NULL, C2 = NULL ; - GrB_Scalar s = NULL ; //-------------------------------------------------------------------------- // startup GraphBLAS @@ -42,15 +41,6 @@ void mexFunction // matrix check //-------------------------------------------------------------------------- - 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_Scalar_clear (s)) ; - OK (GrB_Global_get_Scalar (GrB_GLOBAL, s, 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 (GrB_Matrix_setElement_FP64 (A, (double) 1.2, 0, 0)) ; @@ -296,13 +286,6 @@ void mexFunction // wrapup //-------------------------------------------------------------------------- - OK (GrB_Scalar_setElement_INT64 (s, 1024)) ; - OK (GrB_Global_set_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH)) ; - OK (GrB_Scalar_clear (s)) ; - OK (GrB_Global_get_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH)) ; - OK (GrB_Scalar_extractElement_INT64 (&i, s)) ; - CHECK (i == 1024) ; - OK (GrB_Scalar_free (&s)) ; GB_mx_put_global (true) ; printf ("\nGB_mex_test7: all tests passed\n\n") ; } diff --git a/Test/GB_mx_get_global.c b/Test/GB_mx_get_global.c index 2293698d51..374bab5a97 100644 --- a/Test/GB_mx_get_global.c +++ b/Test/GB_mx_get_global.c @@ -162,16 +162,6 @@ bool GB_mx_get_global // true if doing malloc_debug Complex_init (builtin_complex [0]) ; - //-------------------------------------------------------------------------- - // set the hyper_hash control to a small value - //-------------------------------------------------------------------------- - - 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_Scalar_free (&s) ; - //-------------------------------------------------------------------------- // return malloc debug status //-------------------------------------------------------------------------- diff --git a/Test/GB_spec_op.m b/Test/GB_spec_op.m index 52b3f07dc3..8e31058d65 100644 --- a/Test/GB_spec_op.m +++ b/Test/GB_spec_op.m @@ -222,20 +222,20 @@ z = pow2 (x,y) ; case { 'fmod', 'rem' } - % see C11 fmod function - % the built-in rem differs slightly from the C11 fmod, + % see ANSI C11 fmod function + % the built-in rem differs slightly from the ANSI C11 fmod, % if x/y is O(eps) smaller than an integer. z = rem (x,y) ; case { 'remainder' } - % see C11 remainder function + % see ANSI C11 remainder function m = (y ~= 0 & x ~= y) ; z = nan (size (x), ztype) ; z (x == y) = 0 ; z (m) = x (m) - round (x (m) ./ y (m)) .* y (m) ; case { 'copysign' } - % see C11 copysign function + % see ANSI C11 copysign function z = abs (x) .* (2 * double (y >= 0) - 1) ; case { 'complex', 'cmplx' } diff --git a/Test/README.txt b/Test/README.txt index 9fa56d5242..e633aa6fdb 100644 --- a/Test/README.txt +++ b/Test/README.txt @@ -15,8 +15,8 @@ files to provide 'help GB_mex...' documentation. For a usable @GrB interface to GraphBLAS, see the GraphBLAS/GraphBLAS folder, and the @GrB object it supports. -Requirements: the mex command must use a C compiler supporting C11. -Microft Visual Studio does not support C11 so this test is not available +Requirements: the mex command must use a C compiler supporting ANSI C11. +Microft Visual Studio does not support ANSI C11 so this test is not available on Windows unless you use another compiler. To run the tests, use the following command in this directory, in the diff --git a/Test/logstat.m b/Test/logstat.m index 111e7898e5..73c0b1043f 100644 --- a/Test/logstat.m +++ b/Test/logstat.m @@ -142,13 +142,8 @@ function logstat (testscript, threads, jit_controls, factory_controls) fprintf (f, '%s %-11s %7.1f sec ', s, testscript, t) ; if (~isempty (strfind (pwd, 'Tcov'))) - global GraphBLAS_debug GraphBLAS_grbcov GraphBLAS_grbcovs ... - GraphBLAS_scripts GraphBLAS_times - GraphBLAS_grbcovs {end+1} = GraphBLAS_grbcov (1:n) ; - GraphBLAS_scripts {end+1} = testscript ; - GraphBLAS_times {end+1} = t ; - save grbstat GraphBLAS_debug GraphBLAS_grbcov GraphBLAS_grbcovs ... - GraphBLAS_scripts GraphBLAS_times + global GraphBLAS_debug GraphBLAS_grbcov + save grbstat GraphBLAS_debug GraphBLAS_grbcov testscript if (isempty (GraphBLAS_debug)) GraphBLAS_debug = false ; end diff --git a/Test/make.m b/Test/make.m index 99e1750314..63e4af6d52 100644 --- a/Test/make.m +++ b/Test/make.m @@ -11,7 +11,7 @@ function make (what) % % 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 +% GraphBLAS requires an ANSI 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. diff --git a/Test/unused/test151.m b/Test/test151.m similarity index 100% rename from Test/unused/test151.m rename to Test/test151.m diff --git a/Test/unused/test156.m b/Test/test156.m similarity index 100% rename from Test/unused/test156.m rename to Test/test156.m diff --git a/Test/unused/test233.m b/Test/test233.m similarity index 100% rename from Test/unused/test233.m rename to Test/test233.m diff --git a/Test/unused/test266.m b/Test/test266.m similarity index 100% rename from Test/unused/test266.m rename to Test/test266.m diff --git a/Test/test269.m b/Test/test269.m deleted file mode 100644 index 7499482c72..0000000000 --- a/Test/test269.m +++ /dev/null @@ -1,10 +0,0 @@ -function test269 -%TEST269 test GrB_get / GrB_set for types, scalars, vectors, and matrices - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test26 ; -fprintf ('test269: all tests passed.\n') ; - - diff --git a/Test/test270.m b/Test/test270.m deleted file mode 100644 index ef47b3e291..0000000000 --- a/Test/test270.m +++ /dev/null @@ -1,10 +0,0 @@ -function test270 -%TEST270 test GrB_get / GrB_set for unary ops - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test27 ; -fprintf ('test270: all tests passed.\n') ; - - diff --git a/Test/test271.m b/Test/test271.m deleted file mode 100644 index d894881954..0000000000 --- a/Test/test271.m +++ /dev/null @@ -1,10 +0,0 @@ -function test271 -%TEST271 test GrB_get / GrB_set for binary ops - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test28 ; -fprintf ('test271: all tests passed.\n') ; - - diff --git a/Test/test273.m b/Test/test273.m deleted file mode 100644 index d6ab27b54d..0000000000 --- a/Test/test273.m +++ /dev/null @@ -1,9 +0,0 @@ -function test273 -%TEST273 test Global get/set - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test29 ; -fprintf ('test273 all tests passed.\n') ; - diff --git a/Test/test274.m b/Test/test274.m deleted file mode 100644 index 0e6ea92271..0000000000 --- a/Test/test274.m +++ /dev/null @@ -1,9 +0,0 @@ -function test274 -%TEST274 test get/set for IndexUnary ops - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test30 ; -fprintf ('test274 all tests passed.\n') ; - diff --git a/Test/test275.m b/Test/test275.m deleted file mode 100644 index b6238edafb..0000000000 --- a/Test/test275.m +++ /dev/null @@ -1,9 +0,0 @@ -function test275 -%TEST275 test get/set for monoids - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test31 ; -fprintf ('test275 all tests passed.\n') ; - diff --git a/Test/test276.m b/Test/test276.m deleted file mode 100644 index 832a5c1794..0000000000 --- a/Test/test276.m +++ /dev/null @@ -1,9 +0,0 @@ -function test276 -%TEST276 test get/set for semirings - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test32 ; -fprintf ('test276 all tests passed.\n') ; - diff --git a/Test/test277.m b/Test/test277.m deleted file mode 100644 index c84d58d820..0000000000 --- a/Test/test277.m +++ /dev/null @@ -1,9 +0,0 @@ -function test277 -%TEST277 test get/set for context - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test33 ; -fprintf ('test277 all tests passed.\n') ; - diff --git a/Test/test278.m b/Test/test278.m deleted file mode 100644 index b594294c13..0000000000 --- a/Test/test278.m +++ /dev/null @@ -1,9 +0,0 @@ -function test278 -%TEST278 test get/set for descriptor - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test34 ; -fprintf ('test278 all tests passed.\n') ; - diff --git a/Test/test279.m b/Test/test279.m deleted file mode 100644 index cb5a68c705..0000000000 --- a/Test/test279.m +++ /dev/null @@ -1,9 +0,0 @@ -function test279 -%TEST279 test get/set for serialized blob - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -GB_mex_test35 ; -fprintf ('test279 all tests passed.\n') ; - diff --git a/Test/unused/test_assign.m b/Test/test_assign.m similarity index 100% rename from Test/unused/test_assign.m rename to Test/test_assign.m diff --git a/Test/testall.m b/Test/testall.m index 17204c2a56..db7e9fe704 100644 --- a/Test/testall.m +++ b/Test/testall.m @@ -74,15 +74,12 @@ function testall (threads,longtests) f00 = {0,0} ; % factory off, off % run twice -j04 = {0,4} ; % JIT off, off 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 -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,18 +96,7 @@ function testall (threads,longtests) % tests with high rates (over 100/sec) %---------------------------------------- -logstat ('test250' ,t, j44 , f10 ) ; % JIT tests, set/get, other tests -logstat ('test279' ,t, j0 , f1 ) ; % blob get/set -logstat ('test278' ,t, j0 , f1 ) ; % descriptor get/set -logstat ('test277' ,t, j0 , f1 ) ; % context get/set -logstat ('test276' ,t, j0 , f1 ) ; % semiring get/set -logstat ('test275' ,t, j0 , f1 ) ; % monoid get/set -logstat ('test274' ,t, j0 , f1 ) ; % index unary op get/set -logstat ('test273' ,t, j0 , f1 ) ; % global get/set -logstat ('test272' ,t, j0 , f1 ) ; % misc simple tests -logstat ('test271' ,t, j0 , f1 ) ; % binary op get/set -logstat ('test270' ,t, j0 , f1 ) ; % unary op get/set -logstat ('test269' ,t, j0 , f1 ) ; % get/set for type, scalar, vec, mtx +logstat ('test272' ,t, j0 , f1 ) ; % Context logstat ('test268' ,t, j4 , f1 ) ; % C=Z sparse masker jall = {4,3,2,1,4,2} ; fall = {1,1,1,1,0,0} ; @@ -126,6 +112,7 @@ function testall (threads,longtests) hack (2) = 0 ; GB_mex_hack (hack) ; % re-enable the Werk stack logstat ('test267' ,t, j40 , f00 ) ; % JIT error handling +logstat ('test266' ,t, j4 , f0 ) ; % JIT error handling logstat ('test265' ,t, j4 , f0 ) ; % reduce to scalar with user types logstat ('test264' ,t, j4 , f0 ) ; % enumify / macrofy tests logstat ('test263' ,t, j4 , f0 ) ; % JIT tests @@ -139,14 +126,13 @@ 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 ('test251' ,t, j44 , f10 ) ; % dot4, dot2, with plus_pair +logstat ('test251' ,t, j404, f110) ; % dot4, dot2, with plus_pair +logstat ('test250' ,t, j44 , f10 ) ; % JIT tests, set/get, other tests 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 ('test01' ,t, j44 , f10 ) ; % error handling logstat ('test245' ,t, j40 , f11 ) ; % test complex row/col scale logstat ('test199' ,t, j4 , f1 ) ; % test dot2 with hypersparse logstat ('test83' ,t, j4 , f1 ) ; % GrB_assign with C_replace and empty J @@ -165,8 +151,7 @@ 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) +logstat ('test150' ,t, j40 , f10 ) ; %% mxm zombies, typecasting (dot3,saxpy) hack (2) = 0 ; GB_mex_hack (hack) ; % re-enable the Werk stack @@ -180,7 +165,7 @@ 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 ('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 @@ -188,12 +173,10 @@ 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 ('test159' ,t, j40 , f10 ) ; %% 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 ('test141' ,t, j404, f110) ; % 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) logstat ('test213' ,t, j4 , f1 ) ; % test iso assign (method 05d) @@ -215,10 +198,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 ('test14' ,t, j404, f110) ; % 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 @@ -238,8 +219,7 @@ 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 ('test151b' ,t, j404, f110) ; % test bshift operator logstat ('test184' ,t, j4 , f1 ) ; % special cases: mxm, transpose, build logstat ('test191' ,t, j40 , f10 ) ; %% test split logstat ('test188' ,t, j40 , f11 ) ; % test concat @@ -282,8 +262,7 @@ function testall (threads,longtests) 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 ('test142' ,t, j4040, f1100) ; %% test GrB_assign with accum logstat ('test137' ,s, j40 , f11 ) ; % GrB_eWiseMult, FIRST and SECOND logstat ('test139' ,s, j4 , f1 ) ; % merge sort, special cases logstat ('test172' ,t, j4 , f1 ) ; % test eWiseMult with M bitmap/full @@ -317,24 +296,20 @@ 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' ,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 ('test151' ,t, j44 , f10 ) ; % test bitwise operators +logstat ('test23' ,t, j40 , f11 ) ; % 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 ('test160' ,s, j40 , f11 ) ; % 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 ('test74' ,t, j40 , f11 ) ; % test GrB_mxm on all semirings +logstat ('test127' ,t, j404, f110) ; % test eWiseAdd, eWiseMult logstat ('test19' ,t, j4 , f1 ) ; % GxB_subassign, many pending operators %---------------------------------------- @@ -344,15 +319,12 @@ 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 ('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 +logstat ('test29' ,t, j40 , f11 ) ; % 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 ('testc2(0,0)',t, j404, f110) ; % 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 logstat ('testcc(1)' ,t, j4 , f1 ) ; % transpose, builtin complex @@ -368,7 +340,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/cmake_modules/GraphBLAS_JIT_configure.cmake b/cmake_modules/GraphBLAS_JIT_configure.cmake index 8b49048c00..8f57d212ab 100644 --- a/cmake_modules/GraphBLAS_JIT_configure.cmake +++ b/cmake_modules/GraphBLAS_JIT_configure.cmake @@ -8,7 +8,13 @@ #------------------------------------------------------------------------------- # construct the JIT compiler/link strings -set ( GB_C_COMPILER "${CMAKE_C_COMPILER}" ) +if ( MINGW ) + execute_process ( COMMAND cygpath -u "${CMAKE_C_COMPILER}" + OUTPUT_VARIABLE C_COMPILER_BINARY OUTPUT_STRIP_TRAILING_WHITESPACE ) +else ( ) + set ( C_COMPILER_BINARY "${CMAKE_C_COMPILER}" ) +endif ( ) +set ( GB_C_COMPILER "${C_COMPILER_BINARY}" ) set ( GB_C_FLAGS "${CMAKE_C_FLAGS}" ) set ( GB_C_LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}" ) set ( GB_LIB_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}" ) @@ -25,8 +31,8 @@ if ( APPLE ) set ( GB_C_FLAGS "${GB_C_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT} " ) set ( GB_C_LINK_FLAGS "${GB_C_LINK_FLAGS} -dynamiclib " ) set ( GB_OBJ_SUFFIX ".o" ) -elseif ( WIN32 ) - # Windows +elseif ( MSVC ) + # Microsoft compiler set ( GB_OBJ_SUFFIX ".obj" ) else ( ) # Linux / Unix @@ -38,7 +44,7 @@ endif ( ) string ( REPLACE "\"" "\\\"" GB_C_FLAGS ${GB_C_FLAGS} ) # construct the -I list for OpenMP -if ( OPENMP_FOUND ) +if ( OpenMP_C_FOUND ) set ( GB_OMP_INC_DIRS ${OpenMP_C_INCLUDE_DIRS} ) set ( GB_OMP_INC ${OpenMP_C_INCLUDE_DIRS} ) list ( TRANSFORM GB_OMP_INC PREPEND " -I" ) @@ -48,16 +54,59 @@ else ( ) endif ( ) # construct the library list -string ( REPLACE "." "\\." LIBSUFFIX1 ${GB_LIB_SUFFIX} ) -string ( REPLACE "." "\\." LIBSUFFIX2 ${CMAKE_STATIC_LIBRARY_SUFFIX} ) -set ( GB_C_LIBRARIES "" ) -foreach ( LIB_NAME ${GB_CMAKE_LIBRARIES} ) - if (( LIB_NAME MATCHES ${LIBSUFFIX1} ) OR ( LIB_NAME MATCHES ${LIBSUFFIX2} )) - string ( APPEND GB_C_LIBRARIES " " ${LIB_NAME} ) - else ( ) - string ( APPEND GB_C_LIBRARIES " -l" ${LIB_NAME} ) - endif ( ) -endforeach ( ) +if ( APPLE ) + set ( default_jit_enable_relocate OFF ) +else ( ) + set ( default_jit_enable_relocate ON ) +endif ( ) + +option ( GRAPHBLAS_JIT_ENABLE_RELOCATE + "ON: Enable relocation of libraries for JIT. OFF: Keep libraries with full path for JIT." + default_jit_enable_relocate ) + +if ( GRAPHBLAS_JIT_ENABLE_RELOCATE ) + + # This might be something like: + # /usr/lib/libgomp.so;/usr/lib/libpthread.a;m + # convert to -l flags to avoid relocation issues, i.e.: "-lgomp -lpthread -lm" + set ( GB_C_LIBRARIES "" ) + foreach ( _lib ${GB_CMAKE_LIBRARIES} ) + string ( FIND ${_lib} "." _pos REVERSE ) + if ( ${_pos} EQUAL "-1" ) + set ( GB_C_LIBRARIES "${GB_C_LIBRARIES} -l${_lib}" ) + continue () + endif ( ) + set ( _kinds "SHARED" "STATIC" ) + if ( WIN32 ) + list ( PREPEND _kinds "IMPORT" ) + endif ( ) + foreach ( _kind IN LISTS _kinds ) + set ( _regex ".*\\/(lib)?([^\\.]*)(${CMAKE_${_kind}_LIBRARY_SUFFIX})" ) + if ( ${_lib} MATCHES ${_regex} ) + string ( REGEX REPLACE ${_regex} "\\2" _libname ${_lib} ) + if ( NOT "${_libname}" STREQUAL "" ) + set ( GB_C_LIBRARIES "${GB_C_LIBRARIES} -l${_libname}" ) + break () + endif ( ) + endif ( ) + endforeach ( ) + endforeach ( ) + +else ( ) + + # keep full paths to libraries + string ( REPLACE "." "\\." LIBSUFFIX1 ${GB_LIB_SUFFIX} ) + string ( REPLACE "." "\\." LIBSUFFIX2 ${CMAKE_STATIC_LIBRARY_SUFFIX} ) + set ( GB_C_LIBRARIES "" ) + foreach ( LIB_NAME ${GB_CMAKE_LIBRARIES} ) + if (( LIB_NAME MATCHES ${LIBSUFFIX1} ) OR ( LIB_NAME MATCHES ${LIBSUFFIX2} )) + string ( APPEND GB_C_LIBRARIES " " ${LIB_NAME} ) + else ( ) + string ( APPEND GB_C_LIBRARIES " -l" ${LIB_NAME} ) + endif ( ) + endforeach ( ) + +endif ( ) if ( NOT NJIT OR ENABLE_CUDA ) message ( STATUS "------------------------------------------------------------------------" ) diff --git a/cmake_modules/GraphBLAS_JIT_paths.cmake b/cmake_modules/GraphBLAS_JIT_paths.cmake index e718fae789..69a3737840 100644 --- a/cmake_modules/GraphBLAS_JIT_paths.cmake +++ b/cmake_modules/GraphBLAS_JIT_paths.cmake @@ -43,8 +43,8 @@ if ( SUITESPARSE_CUDA ) set ( COMPACT on ) endif ( ) -option ( COMPACT "ON: do not compile FactoryKernels. OFF (default): compile FactoryKernels" off ) -option ( NJIT "ON: do not use the CPU JIT. OFF (default): enable the CPU JIT" off ) +option ( COMPACT "ON: do not compile FactoryKernels. OFF (default): compile FactoryKernels" OFF ) +option ( NJIT "ON: do not use the CPU JIT. OFF (default): enable the CPU JIT" OFF ) if ( NJIT ) # disable the CPU JIT (but keep any PreJIT kernels enabled) diff --git a/cmake_modules/GraphBLAS_version.cmake b/cmake_modules/GraphBLAS_version.cmake index 7a9dac2ba5..90ad98f4fb 100644 --- a/cmake_modules/GraphBLAS_version.cmake +++ b/cmake_modules/GraphBLAS_version.cmake @@ -8,15 +8,15 @@ #------------------------------------------------------------------------------- # version of SuiteSparse:GraphBLAS -set ( GraphBLAS_DATE "Oct 7, 2023" ) -set ( GraphBLAS_VERSION_MAJOR 9 ) -set ( GraphBLAS_VERSION_MINOR 0 ) -set ( GraphBLAS_VERSION_SUB 0 ) +set ( GraphBLAS_DATE "Dec 30, 2023" ) +set ( GraphBLAS_VERSION_MAJOR 8 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 -set ( GraphBLAS_API_DATE "Oct 7, 2023" ) +set ( GraphBLAS_API_DATE "Nov 15, 2021" ) set ( GraphBLAS_API_VERSION_MAJOR 2 ) -set ( GraphBLAS_API_VERSION_MINOR 1 ) +set ( GraphBLAS_API_VERSION_MINOR 0 ) set ( GraphBLAS_API_VERSION_SUB 0 ) message ( STATUS "Building SuiteSparse:GraphBLAS version: v" diff --git a/cmake_modules/SuiteSparsePolicy.cmake b/cmake_modules/SuiteSparsePolicy.cmake index 3d07aaa566..8e64cc381d 100644 --- a/cmake_modules/SuiteSparsePolicy.cmake +++ b/cmake_modules/SuiteSparsePolicy.cmake @@ -15,21 +15,28 @@ # set ( CMAKE_BUILD_TYPE Debug ) # # ENABLE_CUDA: if set to true, CUDA is enabled for the project. -# Default: true for CHOLMOD and SPQR, false for GraphBLAS -# (for which CUDA is in progress and not ready for -# production use). +# Default: true for CHOLMOD and SPQR, which use the GPU +# for their numerical factorizsation. The flag is false +# for GraphBLAS since CUDA for that package is in +# progress and not ready for production use. +# CUDA acceleration not supported on Windows with MSVC. # # LOCAL_INSTALL: if true, "cmake --install" will install # into SuiteSparse/lib and SuiteSparse/include. # if false, "cmake --install" will install into the # default prefix (or the one configured with # CMAKE_INSTALL_PREFIX). Requires cmake 3.19. +# This is ignored when using the root CMakeLists.txt. +# Set CMAKE_INSTALL_PREFIX instead. # Default: false # -# NSTATIC: if true, static libraries are not built. -# Default: false, except for GraphBLAS, which +# BUILD_SHARED_LIBS: if true, shared libraries are built. +# Default: true. +# +# BUILD_STATIC_LIBS: if true, static libraries are built. +# Default: true, except for GraphBLAS, which # takes a long time to compile so the default for -# GraphBLAS is true. +# GraphBLAS is false. # # SUITESPARSE_CUDA_ARCHITECTURES: a string, such as "all" or # "35;50;75;80" that lists the CUDA architectures to use @@ -68,9 +75,25 @@ # explicitly, if the defaults are not appropriate for your # system. # Default: false +# +# SUITESPARSE_PKGFILEDIR: where to install the CMake Config and pkg-config +# files. This defaults to the same directory as where +# the compiled libraries are installed, in a subfolder +# called cmake. If not already set in the cache, +# LOCAL_INSTALL=0 defines this as "lib", and the +# CMAKE_INSTALL_PREFIX is added. LOCAL_INSTALL=1 defines +# this as SuiteSparse/lib. This variable is cached so +# that if it is not set, or unset first, it remains +# unchanged (see "make local" and "make global" in the +# SuiteSparse_config/Makefile for an example). +# +# SUITESPARSE_INCLUDEDIR_POSTFIX : # Postfix for installation target of +# header from SuiteSparse. Default: suitesparse, so the +# default include directory is: +# CMAKE_INSTALL_PREFIX/include/suitesparse -message ( STATUS "Source: ${CMAKE_SOURCE_DIR} ") -message ( STATUS "Build: ${CMAKE_BINARY_DIR} ") +message ( STATUS "Source: ${CMAKE_SOURCE_DIR} ") +message ( STATUS "Build: ${CMAKE_BINARY_DIR} ") cmake_policy ( SET CMP0042 NEW ) # enable MACOSX_RPATH by default cmake_policy ( SET CMP0048 NEW ) # VERSION variable policy @@ -92,19 +115,30 @@ include ( GNUInstallDirs ) set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake_modules ) -# NSTATIC option -if ( NSTATIC_DEFAULT_ON ) - option ( NSTATIC "ON (default): do not build static libraries. OFF: build static libraries" on ) +# BUILD_SHARED_LIBS and BUILD_STATIC_LIBS options +option ( BUILD_SHARED_LIBS "OFF: do not build shared libraries. ON (default): build shared libraries" ON ) + +if ( BUILD_STATIC_LIBS_DEFAULT_OFF ) + option ( BUILD_STATIC_LIBS "OFF (default): do not build static libraries. ON: build static libraries" OFF ) else ( ) - option ( NSTATIC "ON: do not build static libraries. OFF (default): build static libraries" off ) + # For backwards compatibility, use NSTATIC if it is set. + if ( NSTATIC ) + option ( BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" OFF ) + else ( ) + option ( BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" ON ) + endif ( ) +endif ( ) + +if ( NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS ) + message ( FATAL_ERROR "At least one of BUILD_SHARED_LIBS or BUILD_STATIC_LIBS must be set to ON." ) endif ( ) # installation options -if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.19.0" ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.19.0" ) # the LOCAL_INSTALL option requires cmake 3.19.0 or later - option ( LOCAL_INSTALL "Install in SuiteSparse/lib" off ) + option ( LOCAL_INSTALL "Install in SuiteSparse/lib" OFF ) else ( ) - set ( LOCAL_INSTALL off ) + set ( LOCAL_INSTALL OFF ) endif ( ) if ( SUITESPARSE_SECOND_LEVEL ) @@ -121,32 +155,37 @@ endif ( ) # find this one without "make install" set ( CMAKE_BUILD_RPATH ${CMAKE_BUILD_RPATH} ${CMAKE_BINARY_DIR} ) -# determine if this Package is inside the SuiteSparse folder -set ( INSIDE_SUITESPARSE false ) -if ( LOCAL_INSTALL ) - # if you do not want to install local copies of SuiteSparse - # packages in SuiteSparse/lib and SuiteSparse/, set - # LOCAL_INSTALL to false in your CMake options. - if ( SUITESPARSE_SECOND_LEVEL ) - # the package is normally located at the 2nd level inside SuiteSparse - # (SuiteSparse/GraphBLAS/GraphBLAS/ for example) - if ( EXISTS ${CMAKE_SOURCE_DIR}/../../SuiteSparse_config ) - set ( INSIDE_SUITESPARSE true ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) + # determine if this Package is inside the SuiteSparse folder + set ( INSIDE_SUITESPARSE false ) + if ( LOCAL_INSTALL ) + # if you do not want to install local copies of SuiteSparse + # packages in SuiteSparse/lib and SuiteSparse/, set + # LOCAL_INSTALL to false in your CMake options. + if ( SUITESPARSE_SECOND_LEVEL ) + # the package is normally located at the 2nd level inside SuiteSparse + # (SuiteSparse/GraphBLAS/GraphBLAS/ for example) + if ( EXISTS ${CMAKE_SOURCE_DIR}/../../SuiteSparse_config ) + set ( INSIDE_SUITESPARSE true ) + endif ( ) + else ( ) + # typical case, the package is at the 1st level inside SuiteSparse + # (SuiteSparse/AMD for example) + if ( EXISTS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config ) + set ( INSIDE_SUITESPARSE true ) + endif ( ) endif ( ) - else ( ) - # typical case, the package is at the 1st level inside SuiteSparse - # (SuiteSparse/AMD for example) - if ( EXISTS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config ) - set ( INSIDE_SUITESPARSE true ) + + if ( NOT INSIDE_SUITESPARSE ) + message ( FATAL_ERROR "Unsupported layout for local installation. Correct the directory layout or unset LOCAL_INSTALL." ) endif ( ) - endif ( ) - if ( NOT INSIDE_SUITESPARSE ) - message ( FATAL_ERROR "Unsupported layout for local installation. Correct the directory layout or unset LOCAL_INSTALL." ) endif ( ) - endif ( ) +set ( SUITESPARSE_INCLUDEDIR_POSTFIX "suitesparse" CACHE STRING + "Postfix for installation target of header from SuiteSparse (default: \"suitesparse\")" ) + if ( LOCAL_INSTALL ) if ( INSIDE_SUITESPARSE ) # ../lib and ../include exist: the package is inside SuiteSparse. @@ -160,11 +199,11 @@ if ( LOCAL_INSTALL ) endif ( ) endif ( ) set ( SUITESPARSE_LIBDIR ${SUITESPARSE_LOCAL_PREFIX}/lib ) - set ( SUITESPARSE_INCLUDEDIR ${SUITESPARSE_LOCAL_PREFIX}/include ) + set ( SUITESPARSE_INCLUDEDIR ${SUITESPARSE_LOCAL_PREFIX}/include/${SUITESPARSE_INCLUDEDIR_POSTFIX} ) set ( SUITESPARSE_BINDIR ${SUITESPARSE_LOCAL_PREFIX}/bin ) else ( ) set ( SUITESPARSE_LIBDIR ${CMAKE_INSTALL_LIBDIR} ) - set ( SUITESPARSE_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} ) + set ( SUITESPARSE_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/${SUITESPARSE_INCLUDEDIR_POSTFIX} ) set ( SUITESPARSE_BINDIR ${CMAKE_INSTALL_BINDIR} ) endif ( ) @@ -174,17 +213,21 @@ if ( INSIDE_SUITESPARSE ) set ( CMAKE_BUILD_RPATH ${CMAKE_BUILD_RPATH} ${SUITESPARSE_LIBDIR} ) endif ( ) -message ( STATUS "Install lib: ${SUITESPARSE_LIBDIR}" ) -message ( STATUS "Install include: ${SUITESPARSE_INCLUDEDIR}" ) -message ( STATUS "Install bin: ${SUITESPARSE_BINDIR}" ) -message ( STATUS "Install rpath: ${CMAKE_INSTALL_RPATH}" ) -message ( STATUS "Build rpath: ${CMAKE_BUILD_RPATH}" ) +set ( SUITESPARSE_PKGFILEDIR ${SUITESPARSE_LIBDIR} CACHE STRING + "Directory where CMake Config and pkg-config files will be installed" ) + +message ( STATUS "Install lib: ${SUITESPARSE_LIBDIR}" ) +message ( STATUS "Install include: ${SUITESPARSE_INCLUDEDIR}" ) +message ( STATUS "Install bin: ${SUITESPARSE_BINDIR}" ) +message ( STATUS "Install pkg-file: ${SUITESPARSE_PKGFILEDIR}" ) +message ( STATUS "Install rpath: ${CMAKE_INSTALL_RPATH}" ) +message ( STATUS "Build rpath: ${CMAKE_BUILD_RPATH}" ) if ( NOT CMAKE_BUILD_TYPE ) set ( CMAKE_BUILD_TYPE Release ) endif ( ) -message ( STATUS "Build type: ${CMAKE_BUILD_TYPE} ") +message ( STATUS "Build type: ${CMAKE_BUILD_TYPE} ") set ( CMAKE_INCLUDE_CURRENT_DIR ON ) @@ -195,16 +238,16 @@ set ( CMAKE_INCLUDE_CURRENT_DIR ON ) include ( CheckLanguage ) option ( NFORTRAN "ON: do not try to use Fortran. OFF (default): try Fortran" off ) if ( NFORTRAN ) - message ( STATUS "Fortran: not enabled" ) + message ( STATUS "Fortran: not enabled" ) else ( ) check_language ( Fortran ) if ( CMAKE_Fortran_COMPILER ) enable_language ( Fortran ) - message ( STATUS "Fortran: ${CMAKE_Fortran_COMPILER}" ) + message ( STATUS "Fortran: ${CMAKE_Fortran_COMPILER}" ) else ( ) # Fortran not available: set ( NFORTRAN true ) - message ( STATUS "Fortran: not available" ) + message ( STATUS "Fortran: not available" ) endif ( ) endif ( ) @@ -223,48 +266,47 @@ endif ( ) # find CUDA #------------------------------------------------------------------------------- -if ( ENABLE_CUDA ) +if ( ENABLE_CUDA AND NOT MSVC ) # try finding CUDA check_language ( CUDA ) - message ( STATUS "Looking for CUDA" ) + # message ( STATUS "Looking for CUDA" ) if ( CMAKE_CUDA_COMPILER ) # with CUDA: - message ( STATUS "Find CUDA tool kit:" ) + # message ( STATUS "Find CUDA tool kit:" ) # FindCUDAToolKit needs to have C or CXX enabled first (see above) - include ( FindCUDAToolkit ) - message ( STATUS "CUDA toolkit found: " ${CUDAToolkit_FOUND} ) - message ( STATUS "CUDA toolkit version: " ${CUDAToolkit_VERSION} ) - message ( STATUS "CUDA toolkit include: " ${CUDAToolkit_INCLUDE_DIRS} ) - message ( STATUS "CUDA toolkit lib dir: " ${CUDAToolkit_LIBRARY_DIR} ) + find_package ( CUDAToolkit ) + message ( STATUS "CUDA toolkit : " ${CUDAToolkit_FOUND} ) + message ( STATUS "CUDA toolkit ver: " ${CUDAToolkit_VERSION} ) + message ( STATUS "CUDA toolkit inc: " ${CUDAToolkit_INCLUDE_DIRS} ) + message ( STATUS "CUDA toolkit lib: " ${CUDAToolkit_LIBRARY_DIR} ) if ( CUDAToolkit_VERSION VERSION_LESS "11.2" ) # CUDA is present but too old - message ( STATUS "CUDA: not enabled (CUDA 11.2 or later required)" ) - set ( SUITESPARSE_CUDA off ) + message ( STATUS "CUDA: not enabled (CUDA 11.2 or later required)" ) + set ( SUITESPARSE_CUDA OFF ) else ( ) # CUDA 11.2 or later present enable_language ( CUDA ) - set ( SUITESPARSE_CUDA on ) + set ( SUITESPARSE_CUDA ON ) endif ( ) else ( ) # without CUDA: - message ( STATUS "CUDA: not found" ) - set ( SUITESPARSE_CUDA off ) + message ( STATUS "CUDA: not found" ) + set ( SUITESPARSE_CUDA OFF ) endif ( ) else ( ) # CUDA is disabled - set ( SUITESPARSE_CUDA off ) + set ( SUITESPARSE_CUDA OFF ) endif ( ) if ( SUITESPARSE_CUDA ) - message ( STATUS "CUDA: enabled" ) - add_compile_definitions ( SUITESPARSE_CUDA ) + message ( STATUS "CUDA: enabled" ) set ( SUITESPARSE_CUDA_ARCHITECTURES "52;75;80" CACHE STRING "CUDA architectures" ) set ( CMAKE_CUDA_ARCHITECTURES ${SUITESPARSE_CUDA_ARCHITECTURES} ) else ( ) - message ( STATUS "CUDA: not enabled" ) + message ( STATUS "CUDA: not enabled" ) endif ( ) diff --git a/cmake_modules/SuiteSparseReport.cmake b/cmake_modules/SuiteSparseReport.cmake index 9271c4a920..b5ee026a35 100644 --- a/cmake_modules/SuiteSparseReport.cmake +++ b/cmake_modules/SuiteSparseReport.cmake @@ -12,14 +12,13 @@ message ( STATUS "------------------------------------------------------------------------" ) message ( STATUS "SuiteSparse CMAKE report for: ${CMAKE_PROJECT_NAME}" ) message ( STATUS "------------------------------------------------------------------------" ) -message ( STATUS "inside common SuiteSparse root: ${INSIDE_SUITESPARSE}" ) -message ( STATUS "install in SuiteSparse/lib and SuiteSparse/include: ${LOCAL_INSTALL}" ) -message ( STATUS "build type: ${CMAKE_BUILD_TYPE}" ) -if ( NSTATIC ) - message ( STATUS "NSTATIC: true (do not build static library)" ) -else ( ) - message ( STATUS "NSTATIC: false (build static library)" ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) + message ( STATUS "inside common SuiteSparse root: ${INSIDE_SUITESPARSE}" ) + message ( STATUS "install in SuiteSparse/lib and SuiteSparse/include: ${LOCAL_INSTALL}" ) endif ( ) +message ( STATUS "build type: ${CMAKE_BUILD_TYPE}" ) +message ( STATUS "BUILD_SHARED_LIBS: ${BUILD_SHARED_LIBS}" ) +message ( STATUS "BUILD_STATIC_LIBS: ${BUILD_STATIC_LIBS}" ) if ( OPENMP_FOUND ) message ( STATUS "use OpenMP: yes ") else ( ) diff --git a/lz4/README.txt b/lz4/README.txt index 222c8c9c22..e2f8c05db7 100644 --- a/lz4/README.txt +++ b/lz4/README.txt @@ -23,7 +23,7 @@ Files in this folder: When LZ4 is compiled for use in SuiteSparse:GraphBLAS, LZ4_USER_MEMORY_FUNCTIONS is defined, and LZ4_malloc, LZ4_calloc, and LZ4_free, are provided to LZ4. Those functions use whatever memory manager is given to -GxB_init, or the C11 malloc/calloc/free for GrB_init. +GxB_init, or the ANSI C11 malloc/calloc/free for GrB_init. This compile-time change could cause a conflict if LZ4 is also installed as a system-wide library. To avoid the conflict, all LZ4 function names are renamed diff --git a/rmm_wrap/CMakeLists.txt b/rmm_wrap/CMakeLists.txt index 177a5da235..5267e55b75 100644 --- a/rmm_wrap/CMakeLists.txt +++ b/rmm_wrap/CMakeLists.txt @@ -8,70 +8,71 @@ cmake_minimum_required ( VERSION 3.19 ) -project(rmm_wrap VERSION 0.1) +project ( rmm_wrap VERSION 0.1 ) # This build depends upon having RMM cmake installed from https://github.com/rapidsai/rmm.git -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_C_STANDARD 99) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") +set ( CMAKE_CXX_STANDARD 17 ) +set ( CMAKE_C_STANDARD 99 ) +set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" ) -find_package(CUDA REQUIRED) +find_package ( CUDAToolkit REQUIRED ) -set(EXTERNAL_INCLUDES_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/external_includes) +set ( EXTERNAL_INCLUDES_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/external_includes ) -IF(NOT EXISTS ${EXTERNAL_INCLUDES_DIRECTORY}) -file(MAKE_DIRECTORY ${EXTERNAL_INCLUDES_DIRECTORY}) -endif() +if ( NOT EXISTS ${EXTERNAL_INCLUDES_DIRECTORY} ) + file ( MAKE_DIRECTORY ${EXTERNAL_INCLUDES_DIRECTORY} ) +endif ( ) -IF(NOT EXISTS ${EXTERNAL_INCLUDES_DIRECTORY}/spdlog) -execute_process( - COMMAND git clone "https://github.com/gabime/spdlog.git" --branch v1.10.0 --recursive spdlog - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/external_includes) -endif() +if ( NOT EXISTS ${EXTERNAL_INCLUDES_DIRECTORY}/spdlog ) + execute_process ( + COMMAND git clone "https://github.com/gabime/spdlog.git" --branch v1.10.0 --recursive spdlog + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/external_includes ) +endif ( ) -set(SPDLOG_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external_includes/spdlog/include) -include_directories(${SPDLOG_INCLUDE_DIR}) +set ( SPDLOG_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external_includes/spdlog/include ) +include_directories ( ${SPDLOG_INCLUDE_DIR} ) -IF(NOT EXISTS ${EXTERNAL_INCLUDES_DIRECTORY}/rmm) -execute_process( - COMMAND git clone "https://github.com/rapidsai/rmm.git" --branch branch-21.10 --recursive rmm - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/external_includes) +if ( NOT EXISTS ${EXTERNAL_INCLUDES_DIRECTORY}/rmm ) + execute_process ( + COMMAND git clone "https://github.com/rapidsai/rmm.git" --branch branch-21.10 --recursive rmm + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/external_includes ) endif() -set(RMM_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external_includes/rmm/include) -include_directories(${RMM_INCLUDE_DIR}) +set ( RMM_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external_includes/rmm/include ) +include_directories ( ${RMM_INCLUDE_DIR} ) -add_library(rmm_wrap rmm_wrap.cpp rmm_wrap.hpp rmm_wrap.h) +add_library ( RMM_wrap rmm_wrap.cpp rmm_wrap.hpp rmm_wrap.h ) -set_target_properties (rmm_wrap PROPERTIES - VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB} - SOVERSION ${GraphBLAS_VERSION_MAJOR} - C_STANDARD 11 - C_STANDARD_REQUIRED ON - PUBLIC_HEADER "rmm_wrap.h" ) +set_target_properties ( RMM_wrap PROPERTIES + VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB} + OUTPUT_NAME rmm_wrap + SOVERSION ${GraphBLAS_VERSION_MAJOR} + PUBLIC_HEADER "rmm_wrap.h" + WINDOWS_EXPORT_ALL_SYMBOLS ON ) -add_executable(rmm_wrap_test rmm_wrap_test.c rmm_wrap.cpp rmm_wrap.hpp rmm_wrap.h) +add_executable ( rmm_wrap_test rmm_wrap_test.c rmm_wrap.cpp rmm_wrap.hpp rmm_wrap.h ) -set(RMM_WRAP_LIBS ${EXTRA_LIBS} ${CUDA_LIBRARIES}) -set(RMM_WRAP_INCLUDES ${PROJECT_BINARY_DIR} - ${SPDLOG_INCLUDE_DIR} - ${RMM_INCLUDE_DIR} - ${CUDA_INCLUDE_DIRS} - ${CONDA_PREFIX}/include - ${PROJECT_SOURCE_DIR}/include) +set ( RMM_WRAP_LIBS ${EXTRA_LIBS} CUDA::cudart_static ) +set ( RMM_WRAP_INCLUDES ${PROJECT_BINARY_DIR} + ${SPDLOG_INCLUDE_DIR} + ${RMM_INCLUDE_DIR} + ${CUDA_INCLUDE_DIRS} + ${CONDA_PREFIX}/include + ${PROJECT_SOURCE_DIR}/include ) -target_link_libraries(rmm_wrap PUBLIC ${RMM_WRAP_LIBS}) -target_include_directories(rmm_wrap PUBLIC "${RMM_WRAP_INCLUDES}") +target_link_libraries ( RMM_wrap PRIVATE ${RMM_WRAP_LIBS} ) +target_include_directories ( RMM_wrap PRIVATE "${RMM_WRAP_INCLUDES}" ) -target_link_libraries(rmm_wrap_test PUBLIC ${RMM_WRAP_LIBS}) -target_include_directories(rmm_wrap_test PUBLIC "${RMM_WRAP_INCLUDES}") +target_link_libraries ( rmm_wrap_test PUBLIC ${RMM_WRAP_LIBS} ) +target_include_directories ( rmm_wrap_test PUBLIC "${RMM_WRAP_INCLUDES}" ) #------------------------------------------------------------------------------- # installation location #------------------------------------------------------------------------------- -install ( TARGETS rmm_wrap +install ( TARGETS RMM_wrap + EXPORT GraphBLASTargets LIBRARY DESTINATION ${SUITESPARSE_LIBDIR} ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} diff --git a/zstd/README.txt b/zstd/README.txt index 6c9d594c89..227086b279 100644 --- a/zstd/README.txt +++ b/zstd/README.txt @@ -17,8 +17,8 @@ Files in this folder: When ZSTD is compiled for use in SuiteSparse:GraphBLAS, ZSTD_DEPS_MALLOC is defined, and ZSTD_malloc, ZSTD_calloc, and ZSTD_free, are provided to ZSTD -instead of have it use the standard C11 malloc/calloc/free. Those -functions use whatever memory manager is given to GxB_init, or the C11 +instead of have it use the standard ANSI C11 malloc/calloc/free. Those +functions use whatever memory manager is given to GxB_init, or the ANSI C11 malloc/calloc/free for GrB_init. This compile-time change could cause a conflict if ZSTD is also installed as a